tsml2sqlite(1)          FreeBSD General Commands Manual         tsml2sqlite(1)

NAME
     TMSL to SQLite - converts TSML documents to Sqlite Databases.

SYNOPSIS
     tsml2sqlite [-f <filename>]

DESCRIPTION
     The tsml2sqlite utility converts a TSML document into a SQLite database.
     The tsmlquery(1) munger module provides functions to query databases.
     TSML is defined in tsml(5).

     By default, the database is created in the current working directory and
     is named tsml.db.  A different path and filename can be specified with
     the -f command line option.

   DATABASE SCHEMA
     The TSML table contains records representing the TSML document.  Records
     in the TSML table have four columns:

     index   contains a unique natural number identifier for each record.

     path    describes the record's hierarchical relationship to the rest of
             the document.  The path field resembles a filesystem path.  The
             paths in a TSML document are not unique.

     data    contains document text if the record describes a segment of
             document data or the empty string otherwise.

     parent  contains the index field of the record's parent element or 0 if
             the record represents the toplevel element.

     Consider the following simple TSML document:

     [TSML[blather[inner[booger]]blather]TSML]

     After parsing by tsml2sqlite, the following TSML table will have been
     created:

     index           path            data        parent
     -----           ----            ----        ------
     1               \TSML           ''          0
     2               \TSML\          blather     1
     3               \TSML\inner     ''          1
     4               \TSML\inner\    booger      3
     5               \TSML\          blather     1

     Records that represent elements have path fields that do not end with a
     backslash and have empty data fields.  Records that represent document
     data have path fields that end with a backslash and have non-empty data
     fields.

     Record 1 represents the TSML element.  The data column for this element
     is the empty string because it represents the element itself and not its
     content.  Record 1's parent element is set to 0 to indicate that record 1
     is a toplevel element.

     Record 2's path field is identical to record 1's except for the addition
     of a trailing backslash.  Record 2 represents the first segment of
     document data in the TSML element.  The data field contains the text
     blather.

     Record 3 represents the inner element.  Record 4 represents the document
     data of the inner element.  Record 5 represents the second segment of
     document data in the TSML element.

AUTHORS
     James Bailie <jimmy@mammothcheese.ca>
     http://www.mammothcheese.ca

                               Wed Nov 22, 2017