XLIST
A generic container. It can be used to construct most of the common
container classes (although these can only be validated at postprocessing
time). The DTD imposes very little constraints on how XLIST can be used,
but CONTENT can be set to show certain common methods. XLIST can contain
any or all of the common generic data items (A, ARRAY, XVAR and XLIST
itself). The commonest uses are:
- CONTENT=STRUCT (default). The XLIST can contain any variety of components
(similar to a struct in C. The STRUCT can be given a name with the
STRUCT= attribute which could be used, for example, to define a PERSON
(age, name, etc). SGML cannot parse the validity of such a STRUCT which
must be done by the postprocessor.
By convention it will
impose no restricions, but if the user wishes to define bags, sets, etc.
they can do this with the STRUCT= attribute.
Example:
<XLIST STRUCT=PERSON><XVAR>John Doe<A HREF=jdoe@xyzzy.com></A></XLIST>
- CONTENT=ARRAY. A Homogeneous array of other components. Examples:
- A list of dates:
<XLIST CONTENT=ARRAY SIZE=3 SUBELEMENT="XVAR">
<XVAR TYPE=date>1995-06-03</XVAR;>
<XVAR;>1995-06-07</XVAR;>
<XVAR;>1995-06-08</XVAR;>
</XLIST>
- A list of pointers:
<XLIST CONTENT=ARRAY SIZE=3 SUBELEMENT=HREF>
<A HREF=alpha></A>
<A HREF=beta></A>
;</XLIST>
- CONTENT=BIBLIST. A list of BIBs (citations).
- CONTENT=GRAPH. A special case of CONTENT=TABLE primarily designed to be
displayed graphically. The ARRAY can have BUILTINs of 1 XAXIS and 1+ YAXIS.
There may be additional hints to suggest axis scales, directions, etc.
through the DISPLAY attribute. Not fully worked out yet.
- CONTENT=NODE. This designates the XLIST as a node in a tree.
All contained
XLISTs are assumed to be potential child nodes. Other contained objects
belong to the node. If a contained XLIST is not a NODE, it is treated as
belonging to the node like the other objects, and will not be recursively
explored by a tree search algorithm. (It might be a STRUCT, for example).
Example:
<XLIST CONTENT=NODE TITLE=vertebrate>
<XLIST CONTENT=NODE TITLE=mammal>
<XVAR>Suckles its young</XVAR>
<XLIST CONTENT=NODE TITLE=human>
<XVAR>Walks</XVAR></XLIST>
<XLIST CONTENT=NODE TITLE=bat>
<XVAR>Flies</XVAR></XLIST>
</XLIST>
<XLIST CONTENT=NODE TITLE=reptile>
<XVAR>Lays eggs</XVAR>
<XLIST CONTENT=NODE TITLE=snake>
<XVAR>Slithers</XVAR></XLIST>
<XLIST CONTENT=NODE TITLE=crocodile>
<XVAR>Swims</XVAR></XLIST>
</XLIST>
</XLIST>
- CONTENT=TABLE. This represents a (rectangular) (relational) table, based
on columns. The columns can be of two sorts, XVAR or XLIST, and all columns
must have the same length. One or more ARRAY columns can be designated as KEYs
(using the KEY attribute) - the XLIST columns cannot be used as KEYs.
Example:
<XLIST CONTENT=TABLE SIZE=3>
<ARRAY CONTENT=INTEGER TITLE="Age" UNITS=year>23 37</ARRAY>
<ARRAY KEY=PRIMARY TITLE="Name">"John Doe" "Jane Doe"</ARRAY>
<XLIST CONTENT=ARRAY TITLE="WWW">
<A HREF="john"></A>
<A HREF="jane"></A></XLIST>
</XLIST>
The format of the table is different from the HTML 2.1 tables, (TAB)
and even when
that comes in, XLIST will be retained. It has much more possibility for
semantics.
Note that the counts (COLUMNS, ROWS, SIZE) are advisory and primarily used
for checking. The postprocessor is assumed to be able to count.
Content Model
Because XLIST can be used in so many ways the possible content is
completely flexible and I have used the SGML keyword ANY. Any
element in any of the DTDs (including #PCDATA) can be used and in any
order. Note that CONTENT=TABLE and
CONTENT=GRAPH put strong constraints on the contained sublements.
Content
ATTRIBUTES
CONTENT DECLARATION
- Tag Minimization
-
Open Tag: REQUIRED
Close Tag: REQUIRED
Parent Elements
- admin -- Administrivia.
- atoms -- A generic container for atomic coordinates and properties
- bonds -- A generic container for bonds and their properties
- cml -- A toplevel DTD encompassing HTML 2.0, TecML and MOL.
- cryst -- Crystallographic data, especially unit cell and symmetry.
- feature -- Features of macromolecules (e.g. SITE, MUTATION).
- formula -- Chemical formula.
- mol -- Toplevel container for molecular information.
- reaction
- relation -- Describes relationship between objects, including hyperlinks.
Experimental at present.
- sequence -- Represents a macromolecular sequence.
- symmetry -- Molecular symmetry.
- tecml -- A toplevel container for the TecML DTD.
Top Elements
All Elements
Tree
cml DTD