<chapter id="record-model">
- <!-- $Id: recordmodel.xml,v 1.7 2002-10-11 09:05:09 adam Exp $ -->
+ <!-- $Id: recordmodel.xml,v 1.11 2002-10-20 14:02:03 mike Exp $ -->
<title>The Record Model</title>
<para>
kind of structured data. Each record in the system is associated with
a <emphasis>record schema</emphasis> which lends context to the data
elements of the record.
- Any number of record schema can coexist in the system.
+ Any number of record schemas can coexist in the system.
Although it may be wise to use only a single schema within
one database, the system poses no such restrictions.
</para>
<para>
The record model described in this chapter applies to the fundamental,
structured
- record type <literal>grs</literal> as introduced in
+ record type <literal>grs</literal>, introduced in
<xref linkend="record-types"/>.
<!--
FIXME - Need to describe the simple string-tag model, or at least
<screen>
<Distributor>
- <Name> USGS/WRD </Name>
- <Organization> USGS/WRD </Organization>
- <Street-Address>
- U.S. GEOLOGICAL SURVEY, 505 MARQUETTE, NW
- </Street-Address>
- <City> ALBUQUERQUE </City>
- <State> NM </State>
- <Zip-Code> 87102 </Zip-Code>
- <Country> USA </Country>
- <Telephone> (505) 766-5560 </Telephone>
+ <Name> USGS/WRD </Name>
+ <Organization> USGS/WRD </Organization>
+ <Street-Address>
+ U.S. GEOLOGICAL SURVEY, 505 MARQUETTE, NW
+ </Street-Address>
+ <City> ALBUQUERQUE </City>
+ <State> NM </State>
+ <Zip-Code> 87102 </Zip-Code>
+ <Country> USA </Country>
+ <Telephone> (505) 766-5560 </Telephone>
</Distributor>
</screen>
Each element is terminated by a closing tag - beginning
with <literal><</literal>/, and containing the same symbolic
tag-name as the corresponding opening tag.
- The general closing tag - <literal><</literal>>/ -
+ The general closing tag - <literal><</literal>/> -
terminates the element started by the last opening tag. The
structuring of elements is significant.
The element <emphasis>Telephone</emphasis>,
</sect3>
- <sect3>
+ <sect3><!-- ### we shouldn't make such a big deal about this -->
<title>Variants</title>
<para>
tag with the same <emphasis>class</emphasis> and
<emphasis>value</emphasis> settings, or by the
appearance of another, normal tag. In other words, the end-tags for
- the variants used in the example above could have been saved.
+ the variants used in the example above could have been omitted.
</para>
<para>
</para>
<para>
- An action is surrounded by curly braces ({...}), and
+ An action is surrounded by curly braces ({...}), and
consists of a sequence of statements. Statements may be separated
by newlines or semicolons (;).
Within actions, the strings that matched the expressions
immediately preceding the action can be referred to as
- $0, $1, $2, etc.
+ $0, $1, $2, etc.
</para>
<para>
<variablelist>
<varlistentry>
- <term>begin <emphasis>type [parameter ... ]</emphasis></term>
+ <term>begin <emphasis>type [parameter ... ]</emphasis></term>
<listitem>
<para>
Begin a new
</listitem>
</varlistentry>
<varlistentry>
- <term>end <emphasis>[type]</emphasis></term>
+ <term>end <emphasis>[type]</emphasis></term>
<listitem>
<para>
Close a tagged element. If no parameter is given,
<para>
<screen>
- TITLE "Zen and the Art of Motorcycle Maintenance"
ROOT
+ TITLE "Zen and the Art of Motorcycle Maintenance"
AUTHOR "Robert Pirsig"
</screen>
<para>
<screen>
- TITLE "Zen and the Art of Motorcycle Maintenance"
ROOT
- FIRST-NAME "Robert"
+ TITLE "Zen and the Art of Motorcycle Maintenance"
AUTHOR
+ FIRST-NAME "Robert"
SURNAME "Pirsig"
</screen>
<para>
Generally, the files are simple ASCII files, which can be maintained
- using any text editor. Blank lines, and lines beginning with a (#) are
- ignored. Any characters on a line followed by a (#) are also ignored.
+ using any text editor. Blank lines, and lines beginning with a (#) are
+ ignored. Any characters on a line followed by a (#) are also ignored.
All other lines contain <emphasis>directives</emphasis>, which provide
some setting or value to the system.
Generally, settings are characterized by a single
</sect2>
- <sect2>
+ <sect2 id="abs-file">
<title>The Abstract Syntax (.abs) Files</title>
<para>
</listitem></varlistentry>
<varlistentry>
<term>att
- <emphasis>att-value att-name [local-value]</emphasis></term>
+ <emphasis>att-value att-name [local-value]</emphasis></term>
<listitem>
<para>
(o,r) This
</listitem></varlistentry>
<varlistentry>
<term>simpleElement
- <emphasis>path ['variant' variant-request]</emphasis></term>
+ <emphasis>path ['variant' variant-request]</emphasis></term>
<listitem>
<para>
(o,r) This corresponds to a simple element request
<listitem>
<para>
- Curly braces {} may be used to enclose ranges of single
+ Curly braces {} may be used to enclose ranges of single
characters (possibly using the escape convention described in the
- preceding point), eg. {a-z} to introduce the
+ preceding point), eg. {a-z} to introduce the
standard range of ASCII characters.
Note that the interpretation of such a range depends on
the concrete representation in your local, physical character set.