ARRAY:
Attributes


BUILTIN

Some BUILTINS specific to ARRAY are (see example files for how to use them):

I am not sure that these are all unique, so be careful.

Value(s)

Default Value

#IMPLIED

COLUMNS

Number of columns if ARRAY is a 2-D matrix.

Value(s)

CDATA

Default Value

#IMPLIED

CONVENTION

Convention for reserved names. This will normally be the name of a glossary or of a standard. It is expected that all chemical/x-* can be identied through this attribute. If omitted its value is "" which is interpreted as "LOCAL" (i.e. no communal semantics are imposed, though collaborating partners may use this if appropriate.) It is likely that a standard list of conventions will become available.

In certain contexts the CONVENTION defaults to a TecML-specific value. Thus DICTNAME within TERMENTRY refers to ISO12620 by default, and within the UNITS glossary to that glossary. In general, however, authors cannot assume any default other than the reserved values "" or LOCAL.

Value(s)

CDATA

Default Value

#IMPLIED

DELTA

See START

Value(s)

CDATA

Default Value

#IMPLIED

DICTNAME

Reserved name (in a dictionary or glossary). XVAR, ARRAY and XLIST are made specific through the use of DICTNAME, which should be in a dictionary or glossary. These may be 'official' (e.g. from a standards body, learned society, etc.) and some may be specifically mentioned in CML (e.g. every chemical/x-* type should have its own glossary). The glossary/dictionary should be identified through the CONVENTION attribute.

Processing applications are under no obligation to process DICTNAME, but in that case should pass it to other applications.

Value(s)

CDATA

Default Value

#IMPLIED

EXPAND

Signals to the application that repeated values may be compressed (e.g. "1 1 1 2 2 1" is represented as "3*1 2*2 1". EXPAND takes the values 'YES' or 'NO' (default), signalling whether the application should attempt to decompress. ('NO' should be used whenever there is a possibility of '*' occurring where it could cause confusion). An application only needs to scan the content for '*' if EXPAND=YES. Fields may NOT contain whitespace or quotes (' or ") (e.g. 4*"Hello 'World'" is not allowed). (We may relax this later - when I've written the code :-).

Value(s)

Default Value

#IMPLIED

FUZZY

Fuzzy data for ARRAY or XVAR. This allows non-exact (numerical or other) data to be included. The attribute value must be either a single string without whitespace or a quoted string. At present the possible attribute values are:
exact
The default. This is a single, presumed exact, value. Example:
<XVAR>23.4</XVAR> <ARRAY>23.4 34.5</ARRAY>
range
Two extrema separated by a '/' (there should only be a single occurrence of the punctuation). The more natural '-' would be confusing if the values are negative numbers or DATES. (Only meaningful for FLOAT, INTEGER, DATE, TIME, (STRING?)). The lower value should always come first. Example:
<XVAR FUZZY=RANGE> 23.4/34.5</XVAR>
<ARRAY FUZZY=RANGE TYPE=DATE>1996-01-12/1996-02-03</ARRAY>
esd
A value with an estimated standard deviation in brackets. (The estimated standard deviation is calculated from the normal matrix of least squares analysis). If no decimal point is given it is on the same scale as the least significant digits. (Only meaningful for FLOAT). Example:
<XVAR FUZZY=ESD> 23.432(12)</XVAR>
(This means 23.432 with an estimated standard deviation of 0.012)
<ARRAY FUZZY=ESD> 23.432(12) 19.23(1)</ARRAY>
(As above, but the second value is 19.23 with an e.s.d. of 0.01
stderr
A value with a standard error in brackets. See ESD (above) for format.
sd
A value with a standard deviation in brackets (presumably calculated from multiple observations). See ESD (above) for format.
errlimit
A value with 'plus-or-minus'. The semantics of this are fuzzy (e.g. is it the same as range, or standard deviation, or standard error?). Format:
<XVAR FUZZY=ERRLIMIT> -23.432+-0.038</XVAR>
list
A (comma-separated) list of values for the item. The semantics of this are fuzzy, so use it with care. (A typical case might be a few multiple measurements of a quantity). Example:
<XVAR FUZZY=LIST TITLE=ACTIVITY> 10,17,20</XVAR>
inequal
A quantity qualified by an inequality operator. The potential operators are: > < >= <= !=. If the operator is omitted, an exact value is assumed. You cannot use this to denote a range (i.e. >10;<20 is not allowed). Note that values must be escaped to avoid confusion with SGML tags. Example:
<ARRAY FUZZY=INEQUAL TITLE=ACTIVITY> "&gt; 23" "&lt;=19" </ARRAY>
(Alternatively is may be possible to use marked sections in the XML syntax, e.g.:
<ARRAY FUZZY=INEQUAL TITLE=ACTIVITY><[CDATA[ "<23" "<=19"]]> </ARRAY>
any
In transcribing legacy documents it may be necessary to include more than one of these conventions in the same ARRAY. This is deprecated (!) and the parsing is not guaranteed to give useful semantics for the values. It may still have some value for textual prsentation.

The current list of fuzzy options (which overrides any list above) is in HREF

The HREF attribute is inherited from HTML2.0 and is used consistently throughout CML. It serves as the tail of a hyperlink, whose semantics are being developed by Murray Maloney and others of the HTML-WG as an Internet draft.

Here is some more information.

Value(s)

CDATA

Default Value

#IMPLIED

KEY

If the ARRAY is a column of a relational table, KEY can be given the values PRIMARY or SECONDARY. Default is #IMPLIED.

Value(s)

CDATA

Default Value

#IMPLIED

LANG

Language in which the container and/or contents is written. The standard ISO codes are recommended. At present this applies to:

Value(s)

CDATA

Default Value

#IMPLIED

METHODS

Operations on destination (advisory) (HTML 2.0) (I don't understand or use this)

Value(s)

NAMES

Default Value

#IMPLIED

MIME

Object type of target (experimental). When pointing to a complex object (through XVAR or ARRAY) it may be useful to identify the required TecML object type (i.e. to extract a MOL or a BIB from a complex file). Still under development. Example:
MIME="chemical/x-cml" TARGETTYPE="MOL"
will extract the first MOL object from the referenced CML object

Value(s)

CDATA

Default Value

#IMPLIED

NAME

NAME specifies the target of a hyperlink and must be unique within a document. It is used in the same way as in HTML, but note that whereas the A element appears to refer to a point in a document, all CML elements are containers and their extent is clearly defined. Here is some more information.

Value(s)

CDATA

Default Value

#IMPLIED

REL

The REL attribute is inherited from HTML2.0 and is used consistently throughout CML. It describes the target of a hyperlink, whose semantics are being developed by Murray Maloney and others of the HTML-WG as an Internet draft.

The use of REL is under review (Jan 1997). At present it has not been used as the CML addressing mechanisms are more advanced.

Value(s)

NAMES

Default Value

#IMPLIED

REV

The REV attribute is inherited from HTML2.0 and is used consistently throughout CML. It describes the backwards relationship of a hyperlink, whose semantics are being developed by Murray Maloney and others of the HTML-WG as an Internet draft.

At present CML does not specify a use and it should evolve in parallel with what the WWW community decides.

Value(s)

NAMES

Default Value

#IMPLIED

ROWS

Number of rows if ARRAY is a 2-D matrix.

Value(s)

CDATA

Default Value

#IMPLIED

SIZE

Dimension of array. If not given, the application is required to determine this from the number of whitespace-separated tokens. If there is a possibility of error, SIZE is recommended.

Value(s)

CDATA

Default Value

#IMPLIED

START

An array in arithmetic sequence (e.g. 1 3 5 7 ...) can be defined by a START value, a DELTA value, and SIZE. This only holds for FLOATs and INTEGERS - dates, etc. cannot be represented this way. If used, START, DELTA and SIZE are all mandatory, but are otherwise optional. For a 2-D matrix, START, DELTA, ROWS and COLUMNS must be given, and SIZE is ignored. The COLUMNS is the fastest moving index.

Value(s)

CDATA

Default Value

#IMPLIED

STRUCT

The array may have a 2-dimensional structure of a geometrical interpretation. At present these are:

The definitive list is given in tecml-arr-str.ent.

Whether the application validates matrix structure against the ROWS and COLUMNS attribute is undefined.

Value(s)

Default Value

#IMPLIED

TARGETTYPE

Value(s)

CDATA

Default Value

#IMPLIED

TITLE

The TITLE attribute is inherited from HTML2.0 and is used consistently throughout CML. In HTML 2.0 it is advisory only, but you are encouraged to use it in CML since it is used to label many of the displays, tables, etc. Virtually all CML elements have this attribute.

The attribute value of TITLE is searchable, but may be better as contents of an XVAR in some cases.

Value(s)

CDATA

Default Value

#IMPLIED

TYPE

The type of the content (XVAR or ARRAY). Applications and postprocessors should interpret the TYPE and transform the content if necessary. All defaults and error actions are presently undefined. At present TYPE is chosen from:

DATE.
An ISO-6501 date (e.g. 1995-09-23) or time (or both).
FLOAT.
A real number (with or without decimal point). It is NOT related to the use of float in C, java or other languages and may hold any legal value.
ID.
An ID (of any sort). NOT an SGML ID.
INTEGER.
An integer. No limits to size.
STRING.
A string. If the string contains whitespace, it should be quoted with ' or ". If it has embedded quotes, use the other sort. STRING is the default value for TYPE.
URL.
A URL. Unlike the HREF mecahism, it is the content which represents the URL.
EMAIL.
An E-mail address.
SYMBOL.
A symbolic value (not yet implemented).
ADDRESS.
An address within the TecML/CML document. (Do NOT confuse with a postal or e-mail address!). This is normally the value of a NAME attribute (as in HTML) but with optional subaddresses in the addressed object. these subadresses can either be a single subobject, or a range. Examples (which define the notation) are:
<XVAR TYPE="ADDRESS">MOL1</XVAR> (a whole object)
<XVAR TYPE="ADDRESS">MOL1:3</XVAR> (the 3rd subobject)
<XVAR TYPE="ADDRESS">MOL1:3-5</XVAR> (the 3,4,5th subobjects)
<ARRAY TYPE="ADDRESS">MOL1:3-5 SPECTRUM:19</ARRAY> as above, with the 19th subobject of another object

The definitive list of ARRAY types is kept in the file x-type.ent. These types are available to the elements, ARRAY, XLIST and XVAR. If TYPE is not given a value, it defaults to "", which is interpreted as STRING.

It's up to the application how TYPE is treated.

Value(s)

Default Value

#IMPLIED

UNITS

Value(s)

CDATA

Default Value

#IMPLIED

URN

Permanent address of destination (HTML 2.0) (I don't use this)

Value(s)

CDATA

Default Value

#IMPLIED
Back to ARRAY


cml DTD