XML Schema Documentation

Table of Contents

top

Schema Document Properties

Target Namespace http://www.xml-cml.org/schema
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations have no namespace.
  • By default, local attribute declarations have no namespace.

Declared Namespaces

Prefix Namespace
Default namespace http://www.xml-cml.org/schema
xml http://www.w3.org/XML/1998/namespace
h http://www.w3.org/1999/xhtml
xsd http://www.w3.org/2001/XMLSchema
Schema Component Representation
<xsd:schema targetNamespace="http://www.xml-cml.org/schema">
...
</xsd:schema>
top

Global Declarations

Element: abundance

Name abundance
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The abundance of an isotope.
The abundance of an isotope in an isotopeList. Values are expressed in percentages.
XML Instance Representation
<abundance
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
units=" unitsType [0..1] ?">
xsd:double
</abundance>
Schema Component Representation
<xsd:element name="abundance" id="el.abundance">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:double ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" units "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: action

Name action
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An action which might occur in scientific data or narrative.
An action which might occur in scientific data or narrative. The definition is deliberately vague, intending to collect examples of possible usage. Thus an action could be addition of materials, measurement, application of heat or radiation. The content model is unrestricted. _action_ iself is normally a child of _actionList_.

The start, end and duration attributes should be interpreted as

  • XSD dateTimes and XSD durations. This allows precise recording of time of day, etc, or duration after start of actionList. A convention="xsd" attribute should be used to enforce XSD.
  • a numerical value, with a units attribute linked to a dictionary.
  • a human-readable string (unlikely to be machine processable)

startCondition and endCondition values are not constrained, which allows XSL-like test attribute values. The semantics of the conditions are yet to be defined and at present are simply human readable.

The order of the action elements in the document may, but will not always, define the order that they actually occur in.

A delay can be shown by an action with no content. Repeated actions or actionLists are indicated through the count attribute.

XML Instance Representation
<action
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
units=" unitsType [0..1] ?"
start=" xsd:string [0..1] ?"
startCondition=" xsd:string [0..1] ?"
duration=" xsd:string [0..1] ?"
end=" xsd:string [0..1] ?"
endCondition=" xsd:string [0..1] ?"
type=" xsd:string [0..1] ?"
order=" actionOrderType [0..1] ?"
count=" positiveNumberType [0..1] ?"
ref=" refType [0..1] ?">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</action>
Schema Component Representation
<xsd:element name="action" id="el.action">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" start "/>
<xsd:attributeGroup ref=" startCondition "/>
<xsd:attributeGroup ref=" duration "/>
<xsd:attributeGroup ref=" end "/>
<xsd:attributeGroup ref=" endCondition "/>
<xsd:attributeGroup ref=" type "/>
<xsd:attributeGroup ref=" actionOrder "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: actionList

Name actionList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for a group of actions.
ActionList contains a series ofactions or nestedactionLists.
XML Instance Representation
<actionList
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
start=" xsd:string [0..1] ?"
startCondition=" xsd:string [0..1] ?"
duration=" xsd:string [0..1] ?"
end=" xsd:string [0..1] ?"
endCondition=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?"
count=" positiveNumberType [0..1] ?"
type=" xsd:string [0..1] ?"
order=" actionOrderType [0..1] ?">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</actionList>
Schema Component Representation
<xsd:element name="actionList" id="el.actionList">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" start "/>
<xsd:attributeGroup ref=" startCondition "/>
<xsd:attributeGroup ref=" duration "/>
<xsd:attributeGroup ref=" end "/>
<xsd:attributeGroup ref=" endCondition "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" type "/>
<xsd:attributeGroup ref=" actionOrder "/>
</xsd:complexType>
</xsd:element>
top

Element: alternative

Name alternative
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An alternative name for an entry.
At present a child of _entry_ which represents an alternative string that refers to the concept. There is a partial controlled vocabulary in _alternativeType_ with values such as :
  • synonym
  • acronym
  • abbreviation
XML Instance Representation
<alternative
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
type=" alternativeTypeType [0..1] ?">
xsd:string
</alternative>
Schema Component Representation
<xsd:element name="alternative" id="el.alternative">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" alternativeType "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: amount

Name amount
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The amount of a substance.
The units attribute is mandatory and can be customised to support mass, volumes, moles, percentages, or ratios (e.g. ppm).
XML Instance Representation
<amount
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
units=" unitsType [0..1] ?">
xsd:double
</amount>
Schema Component Representation
<xsd:element name="amount" id="el.amount">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:double ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" units " id="att.amount.units"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: angle

Name angle
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An angle between three atoms.

It can be used for:

  • Recording experimentally determined bond angles (e.g. in a crystallographic paper).
  • Providing the angle component for internal coordinates (e.g. z-matrix).
XML Instance Representation
<angle
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
atomRefs3=" atomRefs3Type [0..1] ?"
units=" angleUnitsType [0..1] ?"
errorValue=" errorValueType [0..1] ?"
errorBasis=" errorBasisType [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
ref=" refType [0..1] ?">
nonNegativeAngleType
</angle>
Schema Component Representation
<xsd:element name="angle" id="el.angle">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" nonNegativeAngleType ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" atomRefs3 "/>
<xsd:attributeGroup ref=" angleUnits "/>
<xsd:attributeGroup ref=" errorValue "/>
<xsd:attributeGroup ref=" errorBasis "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: annotation

Name annotation
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A documentation container similar to annotation in XML Schema.
A documentation container similar to annotation in XML Schema. At present this is experimental and designed to be used for dictionaries, units, etc. One approach is to convert these into XML Schemas when the documentation and appinfo children will emerge in their correct position in the derived schema.

It is possible that this may develop as a useful tool for annotating components of complex objects such as molecules.

XML Instance Representation
<annotation>
<!-- Mixed content -->
Start Choice [0..*]
<documentation> ... </documentation> [1]
<appinfo> ... </appinfo> [1]
End Choice
</annotation>
Schema Component Representation
<xsd:element name="annotation" id="el.annotation">
<xsd:complexType mixed="true">
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" documentation "/>
<xsd:element ref=" appinfo "/>
</xsd:choice>
</xsd:complexType>
</xsd:element>
top

Element: appinfo

Name appinfo
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container similar to appinfo in XML Schema.
A container for machine processable documentation for an entry. This is likely to be platform and/or language specific. It is possible that XSLT, RDF or XBL will emerge as generic languages. See _annotation_ and _documentation_ for further information.

An example in XSLT where an element _foo_ calls a bespoke template

.
XML Instance Representation
<appinfo
role=" xsd:string [0..1] ?">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</appinfo>
Schema Component Representation
<xsd:element name="appinfo" id="el.appinfo">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: arg

Name arg
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An argument for a function.
Arguments can be typed and have explicit or free values. They can also carry out substitutions in the parent element and its children (substitute, still experiemental) and delete itself after this.
2006-02-14: PMR. Added atomType as child
2006-05-21: PMR. Added substitute and delete attributes
XML Instance Representation
<arg
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
ref=" refType [0..1] ?"
name=" xsd:string [0..1] ?"
dataType=" dataTypeType [0..1] ?"
substitute=" xsd:string [0..1] ?"
parameterName=" xsd:string [0..1] ?"
parentAttribute=" xsd:string [0..1] ?"
delete=" xsd:string [0..1] ?"
eval=" xsd:string [0..1] ?">
Start Choice [0..*]
<atom> ... </atom> [1]
<atomType> ... </atomType> [1]
<scalar> ... </scalar> [1]
<array> ... </array> [1]
<matrix> ... </matrix> [1]
<expression> ... </expression> [1]
End Choice
</arg>
Schema Component Representation
<xsd:element name="arg" id="el.arg">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" atom "/>
<xsd:element ref=" atomType "/>
<xsd:element ref=" scalar "/>
<xsd:element ref=" array "/>
<xsd:element ref=" matrix "/>
<xsd:element ref=" expression "/>
<-- Xerces doesn't let me do this <xsd:any processContents="lax"/> -->
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" dataType "/>
<xsd:attributeGroup ref=" substitute "/>
<xsd:attributeGroup ref=" parameterName "/>
<xsd:attributeGroup ref=" parentAttribute "/>
<xsd:attributeGroup ref=" delete "/>
<xsd:attributeGroup ref=" eval "/>
</xsd:complexType>
</xsd:element>
top

Element: array

Name array
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A homogenous 1 dimensional array of similar object.
These can be encoded as strings (i.e. XSD-like datatypes) and are concatenated as string content. The size of the array should always be >= 1. The default delimiter is whitespace. The _normalize-space()_ function of XSLT could be used to normalize all whitespace to single spaces and this should not affect the value of the array elements. To extract the elements __java.lang.StringTokenizer__ could be used. If the elements themselves contain whitespace then a different delimiter must be used and is identified through the delimiter attribute. This method is mandatory if it is required to represent empty strings. If a delimiter is used it MUST start and end the array - leading and trailing whitespace is ignored. Thus size+1 occurrences of the delimiter character are required. If non-normalized whitespace is to be encoded (e.g. newlines, tabs, etc) you are recommended to translate it character-wise to XML character entities.

Note that normal Schema validation tools cannot validate the elements of array (they are defined as string) However if the string is split, a temporary schema can be constructed from the type and used for validation. Also the type can be contained in a dictionary and software could decide to retrieve this and use it for validation.

When the elements of the array are not simple scalars (e.g. scalars with a value and an error, the scalars should be used as the elements. Although this is verbose, it is simple to understand. If there is a demand for more compact representations, it will be possible to define the syntax in a later version.

the size attribute is not mandatory but provides a useful validity check):

XML Instance Representation
<array
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
dataType=" dataTypeType [0..1] ?"
errorValueArray=" errorValueArrayType [0..1] ?"
errorBasis=" errorBasisType [0..1] ?"
minValueArray=" floatArrayType [0..1] ?"
maxValueArray=" floatArrayType [0..1] ?"
start=" xsd:string [0..1] ?"
end=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?"
delimiter=" delimiterType [0..1] ?"
size=" sizeType [0..1] ?"
ref=" refType [0..1] ?"
constantToSI=" xsd:double [0..1] ?"
multiplierToSI=" xsd:double [0..1] ?"
unitType=" xsd:string [0..1] ?">
xsd:string
</array>
Schema Component Representation
<xsd:element name="array" id="el.array">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" dataType "/>
<xsd:attributeGroup ref=" errorValueArray "/>
<xsd:attributeGroup ref=" errorBasis "/>
<xsd:attributeGroup ref=" minValueArray "/>
<xsd:attributeGroup ref=" maxValueArray "/>
<xsd:attributeGroup ref=" start "/>
<xsd:attributeGroup ref=" end "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" delimiter "/>
<xsd:attributeGroup ref=" size "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" constantToSI "/>
<xsd:attributeGroup ref=" multiplierToSI "/>
<xsd:attributeGroup ref=" unitType "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: atom

Name atom
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An atom.
Atoms can only be chosen from the periodic table and superatoms such as "Phe" or "Tyr" are not allowed. The elementType of an atom is identified by that attribute. There are two additional elementTypes, "Du" (for an object which does not have an identifiable nucleus but is useful in calculations and definitions (such as a centroid); and "R" which describes a generic fragment. Although atoms have an elementType, they do not, by default, support arbitrary atomTypes for which the <atomType> element should be used.
2006-01-12: PMR. Added vector3 child to support accelerations, velocities, dipole, etc.
2006-06-01: PMR. Added documentation.
Application Data
XML Instance Representation
<atom
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
ref=" refType [0..1] ?"
count=" positiveNumberType [0..1] ?"
elementType=" elementTypeType [0..1] ?"
formalCharge=" formalChargeType [0..1] ?"
hydrogenCount=" hydrogenCountType [0..1] ?"
isotope=" xsd:double [0..1] ?"
isotopeNumber=" xsd:positiveInteger [0..1] ?"
isotopeRef=" refType [0..1] ?"
isotopeListRef=" idType [0..1] ?"
occupancy=" occupancyType [0..1] ?"
spinMultiplicity=" xsd:positiveInteger [0..1] ?"
x2=" xsd:double [0..1] ?"
y2=" xsd:double [0..1] ?"
x3=" xsd:double [0..1] ?"
y3=" xsd:double [0..1] ?"
z3=" xsd:double [0..1] ?"
xFract=" xsd:double [0..1] ?"
yFract=" xsd:double [0..1] ?"
zFract=" xsd:double [0..1] ?"
title=" xsd:string [0..1] ?"
role=" xsd:string [0..1] ?"
spaceGroupMultiplicity=" xsd:positiveInteger [0..1] ?"
pointGroupMultiplicity=" xsd:positiveInteger [0..1] ?">
Start Choice [1]
Start Choice [0..*] ?
<name> ... </name> [1]
<label> ... </label> [1]
<atomType> ... </atomType> [1]
<array> ... </array> [1]
<matrix> ... </matrix> [1]
<scalar> ... </scalar> [1]
<atomParity> ... </atomParity> [1]
<electron> ... </electron> [1]
<particle> ... </particle> [1]
<vector3> ... </vector3> [1]
End Choice
End Choice
</atom>
Schema Component Representation
<xsd:element name="atom" id="el.atom">
<xsd:complexType>
<xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" name "/>
<xsd:element ref=" label "/>
<xsd:element ref=" atomType "/>
<xsd:element ref=" array "/>
<xsd:element ref=" matrix "/>
<xsd:element ref=" scalar "/>
<xsd:element ref=" atomParity "/>
<xsd:element ref=" electron "/>
<xsd:element ref=" particle "/>
<xsd:element ref=" vector3 "/>
</xsd:choice>
</xsd:choice>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" elementType "/>
<xsd:attributeGroup ref=" formalCharge "/>
<xsd:attributeGroup ref=" hydrogenCount "/>
<xsd:attributeGroup ref=" isotope "/>
<xsd:attributeGroup ref=" isotopeNumber "/>
<xsd:attributeGroup ref=" isotopeRef "/>
<xsd:attributeGroup ref=" isotopeListRef "/>
<xsd:attributeGroup ref=" occupancy "/>
<xsd:attributeGroup ref=" spinMultiplicity "/>
<xsd:attributeGroup ref=" x2 "/>
<xsd:attributeGroup ref=" y2 "/>
<xsd:attributeGroup ref=" x3 "/>
<xsd:attributeGroup ref=" y3 "/>
<xsd:attributeGroup ref=" z3 "/>
<xsd:attributeGroup ref=" xFract "/>
<xsd:attributeGroup ref=" yFract "/>
<xsd:attributeGroup ref=" zFract "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" spaceGroupMultiplicity "/>
<xsd:attributeGroup ref=" pointGroupMultiplicity "/>
</xsd:complexType>
</xsd:element>
top

Element: atomArray

Name atomArray
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for a list of atoms.
A child of _molecule_ and contains _atom_ information. There are two strategies:
  • Create individual _atom_ elements under _atomArray_ (in any order). This gives the greatest flexibility but is the most verbose.
  • Create *Array attributes (e.g. of _elementTypeArrayType_ under _atomArray_. This requires all arrays to be of identical lengths with explicit values for all atoms in every array. This is NOT suitable for complexType atom children such as _atomParity_. It also cannot be checked as easily by schema- and schematron validation. The _atomIDArray_ attribute is mandatory. It is allowed (though not yet recommended) to add _*Array_ children such as _floatArray_
The attributes are directly related to the scalar attributes under _atom_ which should be consulted for more info.

Example - these are exactly equivalent representations

XML Instance Representation
<atomArray
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
ref=" refType [0..1] ?"
elementType=" elementTypeArrayType [0..1] ?"
count=" countArrayType [0..1] ?"
formalCharge=" formalChargeArrayType [0..1] ?"
hydrogenCount=" hydrogenCountArrayType [0..1] ?"
occupancy=" occupancyArrayType [0..1] ?"
x2=" coordinateComponentArrayType [0..1] ?"
y2=" coordinateComponentArrayType [0..1] ?"
x3=" coordinateComponentArrayType [0..1] ?"
y3=" coordinateComponentArrayType [0..1] ?"
z3=" coordinateComponentArrayType [0..1] ?"
xFract=" coordinateComponentArrayType [0..1] ?"
yFract=" coordinateComponentArrayType [0..1] ?"
zFract=" coordinateComponentArrayType [0..1] ?"
atomID=" atomRefArrayType [0..1] ?">
<atom> ... </atom> [0..*]
<array> ... </array> [0..*]
</atomArray>
Schema Component Representation
<xsd:element name="atomArray" id="el.atomArray">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" atom " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" array " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" elementTypeArray "/>
<xsd:attributeGroup ref=" countArray "/>
<xsd:attributeGroup ref=" formalChargeArray "/>
<xsd:attributeGroup ref=" hydrogenCountArray "/>
<xsd:attributeGroup ref=" occupancyArray "/>
<xsd:attributeGroup ref=" x2Array "/>
<xsd:attributeGroup ref=" y2Array "/>
<xsd:attributeGroup ref=" x3Array "/>
<xsd:attributeGroup ref=" y3Array "/>
<xsd:attributeGroup ref=" z3Array "/>
<xsd:attributeGroup ref=" xFractArray "/>
<xsd:attributeGroup ref=" yFractArray "/>
<xsd:attributeGroup ref=" zFractArray "/>
<xsd:attributeGroup ref=" atomIDArray "/>
</xsd:complexType>
</xsd:element>
top

Element: atomParity

Name atomParity
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The stereochemistry round an atom centre.
It follows the convention of the MIF format, and uses 4 distinct atoms to define the chirality. These can be any atoms (though they are normally bonded to the current atom). There is no default order and the order is defined by the atoms in the atomRefs4 attribute. If there are only 3 ligands, the current atom should be included in the 4 atomRefs.

The value of the parity is a signed number. (It can only be zero if two or more atoms are coincident or the configuration is planar). The sign is the sign of the chiral volume created by the four atoms (a1, a2, a3, a4):

       |  1  1  1  1 |
       | x1 x2 x3 x4 |
       | y1 y2 y3 y4 |
       | z1 z2 z3 z4 |
        

Note that atomParity cannot be used with the *Array syntax for atoms.

XML Instance Representation
<atomParity
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
atomRefs4=" atomRefs4Type [0..1] ?">
xsd:double
</atomParity>
Schema Component Representation
<xsd:element name="atomParity" id="el.atomParity">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:double ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" atomRefs4 "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: atomSet

Name atomSet
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A set of references to atoms.
An atomSet consists of a number of unique references to atoms throught their ids. atomSets need not be related to molecules (which are generally created by aggregation of explicit atoms). Two or more atomSets may reference the same atom, and atomSets may be empty.

atomSets have many potential uses such as:

  • identifying functional groups
  • results of substructure matching
  • identifying atoms with particular roles in a calculation

The atomSet may be referenced from elsewhere in the document and you are encouraged to use locally unique id attributes on atomSets.

XML Instance Representation
<atomSet
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
size=" sizeType [0..1] ?">
atomRefArrayType
</atomSet>
Schema Component Representation
<xsd:element name="atomSet" id="el.atomSet">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" atomRefArrayType ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" size "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: atomType

Name atomType
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An atomType.

atomTypes are used in a wide variety of ways in computational chemistry. They are normally labels added to existing atoms (or dummy atoms) in the molecule and have a number of defined properties. These properties are usually in addition to those deducible from the elementType of the atom. AtomTypes usually depend on the chemical or geometrical environment of the atom and are frequently assigned by algorithms with chemical perception. However they are often frequently set or "tweaked" by humans initiating a program run.

AtomTypes on an atom have no formal relation to its elementType, which only describe the number of protons in the nucleus. It is not unknown (though potentially misleading) to use an "incompatible" atomType to alter the computational properties of an atom (e.g. pretend this K+ is a Ca++ to increase its effective charge). atomTypes will also be required to describe pseudoAtoms such as "halogen" (generic) or "methyl group" (unified atom). Atoms in computations can therefore have an atomType child with a "ref" attribute.

An atomType contains numeric or other quantities associated with it (charges, masses, use in force-fields, etc.) and also description of any perception algorithms (chemical and/or geometrical) which could be used to compute or constrain it. This is still experimental.

atomTypes are referred to by their mandatory name attribute. An atom refers to one or more atomTypes through atomType/@ref children

examples not yet teste.
XML Instance Representation
<atomType
name=" xsd:string [0..1] ?"
ref=" refType [0..1] ?"
atomRef=" atomRefType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<molecule> ... </molecule> [1]
<atom> ... </atom> [1]
<label> ... </label> [1]
End Choice
Start Choice [0..*]
<scalar> ... </scalar> [1]
<array> ... </array> [1]
<matrix> ... </matrix> [1]
<property> ... </property> [1]
End Choice
</atomType>
Schema Component Representation
<xsd:element name="atomType" id="el.atomType">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" molecule "/>
<xsd:element ref=" atom "/>
<xsd:element ref=" label "/>
</xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" scalar "/>
<xsd:element ref=" array "/>
<xsd:element ref=" matrix "/>
<xsd:element ref=" property "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" ref "/>
<-- what do we need this for? -->
<xsd:attributeGroup ref=" atomRef "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: atomTypeList

Name atomTypeList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more atomTypes.
It can contain several atomTypes.
XML Instance Representation
<atomTypeList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..*]
<atomType> ... </atomType> [0..*]
</atomTypeList>
Schema Component Representation
<xsd:element name="atomTypeList" id="el.atomTypeList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" atomType " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: atomicBasisFunction

Name atomicBasisFunction
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An atomicBasisFunction.

An atomic atomicBasisFunction which can be linked to atoms, eigenvalues/vectors etc. Normally contained within _basisSet_

Normally these are atom-centered functions, but they can also serve as "ghost" functions which are centered on points. These can be dummy atoms so that the atomRef mechanism can still be used.

This information is required to interpret the eignevector components and map them onto the atom list. However this mapping is normally implicit in the program and so it may be necessary to generate basisSet information for some programs before XML technology can be automatically used to link the components of the CCML document.

XML Instance Representation
<atomicBasisFunction
atomRef=" atomRefType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
n=" xsd:nonNegativeInteger [0..1] ?"
l=" xsd:nonNegativeInteger [0..1] ?"
m=" xsd:integer [0..1] ?"
symbol=" xsd:string [0..1] ?"
lm=" lmType [0..1] ?">
Start Choice [0..*]
End Choice
Start Choice [0..1]
<gradient> ... </gradient> [1]
End Choice
</atomicBasisFunction>
Schema Component Representation
<xsd:element name="atomicBasisFunction" id="el.atomicBasisFunction">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element ref=" gradient "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" atomRef "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" n "/>
<xsd:attributeGroup ref=" l "/>
<xsd:attributeGroup ref=" m "/>
<xsd:attributeGroup ref=" symbol "/>
<xsd:attributeGroup ref=" lm "/>
</xsd:complexType>
</xsd:element>
top

Element: band

Name band
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A band or Brillouin zone.
Not yet finalised.
2006-01-21: PMR. added kpointRef and deprecated kpointList.
XML Instance Representation
<band
kpoint=" vector3Type [0..1] ?"
kpointRef=" refType [0..1] ?"
weight=" xsd:double [0..1] ?"
label=" xsd:string [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
<array> ... </array> [1] ?
</band>
Schema Component Representation
<xsd:element name="band" id="el.band">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" array " minOccurs="1" maxOccurs="1"/>
</xsd:sequence>
<xsd:attributeGroup ref=" kpoint "/>
<xsd:attributeGroup ref=" kpointRef "/>
<xsd:attributeGroup ref=" weight "/>
<xsd:attributeGroup ref=" label "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: bandList

Name bandList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for bands.
Experimental.
XML Instance Representation
<bandList
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<band> ... </band> [1]
End Choice
</bandList>
Schema Component Representation
<xsd:element name="bandList" id="el.bandList">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" band "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: basisSet

Name basisSet
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more atomicBasisFunctions.
This can contain several orbitals.
XML Instance Representation
<basisSet
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..*]
Start Choice [0..*]
<atomicBasisFunction> ... </atomicBasisFunction> [1]
End Choice
</basisSet>
Schema Component Representation
<xsd:element name="basisSet" id="el.basisSet">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" atomicBasisFunction "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: bond

Name bond
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A bond between atoms, or between atoms and bonds.
_bond_ is a child of _bondArray_ and contains bond information. Bond must refer to at least two atoms (normally using _atomRefs2_) but may also refer to more for multicentre bonds. Bond is often EMPTY but may contain _electron_, _length_ or _bondStereo_ elements.


Application Data <comment>
Validate Bonds
</comment>
<template match="bond" id="val-bond">
<comment>
Atom Refs for 2-atom bond
</comment>
<variable name="at1" select="substring-before(normalize-space(@atomRefs2),' ')"/> <variable name="at2" select="substring-after(normalize-space(@atomRefs2),' ')"/> <comment>
Are atoms distinct?
</comment>
<if test="$at1 = $at2">
<call-template name="error">
<with-param name="error">
BOND (<value-of select="@id"/>): ATOMS not distinct: <value-of select="$at1"/>
</with-param>
</call-template>
</if>
<comment>
Do both atoms exist in current molecule context?
</comment>
<if test="not(key('atoms', $at1))">
<call-template name="error">
<with-param name="error">
BOND (<value-of select="@id"/>): ATOMREF not found: <value-of select="$at1"/>
</with-param>
</call-template>
</if>
<if test="not(key('atoms', $at2))">
<call-template name="error">
<with-param name="error">
BOND (<value-of select="@id"/>): ATOMREF not found: <value-of select="$at2"/>
</with-param>
</call-template>
</if>
</template>
XML Instance Representation
<bond
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
ref=" refType [0..1] ?"
atomRefs2=" atomRefs2Type [0..1] ?"
atomRefs=" atomRefArrayType [0..1] ?"
bondRefs=" bondRefArrayType [0..1] ?"
order=" orderType [0..1] ?">
Start Choice [1]
Start Choice [0..*]
<bondType> ... </bondType> [1]
<electron> ... </electron> [1] ?
<bondStereo> ... </bondStereo> [1] ?
End Choice
End Choice
</bond>
Schema Component Representation
<xsd:element name="bond" id="el.bond">
<xsd:complexType id="bond.content.id">
<xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" bondType "/>
<xsd:element ref=" electron "/>
<xsd:element ref=" bondStereo "/>
</xsd:choice>
</xsd:choice>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" atomRefs2 "/>
<xsd:attributeGroup ref=" atomRefs "/>
<xsd:attributeGroup ref=" bondRefs "/>
<xsd:attributeGroup ref=" order "/>
</xsd:complexType>
</xsd:element>
top

Element: bondArray

Name bondArray
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for a number of bonds.
_bondArray_ is a child of _molecule_ and contains _bond_ information. There are two strategies:
  • Create individual bond elements under bondArray (in any order). This gives the greatest flexibility but is the most verbose.
  • Create *Array attributes (e.g. of orderArrayType under bondArray. This requires all arrays to be of identical lengths with explicit values for all bonds in every array. This is NOT suitable for complexType bond children such as _bondStereo_ nor can IDs be added to bonds.. It also cannot be checked as easily by schema- and schematron validation. The _atomRef1Array_ and _atomRef2Array_ attributes are then mandatory. It is allowed (though not yet recommended) to add _*Array_ children such as _floatArray_

The attributes are directly related to the scalar attributes under _atom_ which should be consulted for more info.

Example - these are exactly equivalent representations

XML Instance Representation
<bondArray
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
bondID=" bondRefArrayType [0..1] ?"
atomRef1=" atomRefArrayType [0..1] ?"
atomRef2=" atomRefArrayType [0..1] ?"
order=" orderArrayType [0..1] ?">
Start Choice [1]
<bond> ... </bond> [1..*]
<array> ... </array> [0..*]
End Choice
</bondArray>
Schema Component Representation
<xsd:element name="bondArray" id="el.bondArray">
<xsd:complexType>
<xsd:choice>
<xsd:element ref=" bond " maxOccurs="unbounded"/>
<xsd:element ref=" array " minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" bondIDArray "/>
<xsd:attributeGroup ref=" atomRef1Array "/>
<xsd:attributeGroup ref=" atomRef2Array "/>
<xsd:attributeGroup ref=" orderArray "/>
</xsd:complexType>
</xsd:element>
top

Element: bondSet

Name bondSet
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A set of references to bonds.
An bondSet consists of a number of unique references to bonds throught their ids. bondSets need not be related to molecules (which are generally created by aggregation of explicit bonds). Two or more bondSets may reference the same bond, and bondSets may be empty.

bondSets have many potential uses such as:

  • identifying functional groups
  • results of substructure matching
  • identifying bonds with particular roles in a calculation

The bondSet may be referenced from elsewhere in the document and you are encouraged to use locally unique id attributes on bondSets.

XML Instance Representation
<bondSet
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
size=" sizeType [0..1] ?">
bondRefArrayType
</bondSet>
Schema Component Representation
<xsd:element name="bondSet" id="el.bondSet">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" bondRefArrayType ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" size "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: bondStereo

Name bondStereo
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container supporting cis trans wedge hatch and other stereochemistry.

An explict list of atomRefs must be given, or it must be a child of bond. There are no implicit conventions such as E/Z. This will be extended to other types of stereochemistry.

At present the following are supported:

  • No atomRefs attribute. Deprecated, but probably unavoidable. This must be a child of bond where it picks up the two atomRefs in the atomRefs2 attribute. Possible values are C/T (which only makes sense if there is exactly one ligand at each end of the bond) and W/H. The latter should be raplaced by atomParity wherever possible. Note that W/H makes no sense without 2D atom coordinates.
  • atomRefs4 attribute. The 4 atoms represent a cis or trans configuration. This may or may not be a child of bond; if so the second and third atomRefs should be identical with the two atomRefs in the bond. This structure can be used to guide processors in processing stereochemistry and is recommended, since there is general agreement on the semantics. The semantics of bondStereo not related to bonds is less clear (e.g. cumulenes, substituted ring nuclei) etc.It is currently an error to have more than one bondStereo referring to the same ordered 4-atom list
  • atomRefs attribute. There are other stereochemical conventions such as cis/trans for metal complexes which require a variable number of reference atoms. This allows users to create their own - at present we do not see CML creating exhaustive tables. For example cis/trans square-planar complexes might require 4 (or 5) atoms for their definition, octahedral 6 or 7, etc. In principle this is very powerful and could supplement or replace the use of cis-, mer-, etc.

the atomRefs and atomRefs4 attributes cannot be used simultaneously.

XML Instance Representation
<bondStereo
atomRefs4=" atomRefs4Type [0..1] ?"
atomRefArray=" atomRefArrayType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
conventionValue=" xsd:string [0..1] ?">
stereoType
</bondStereo>
Schema Component Representation
<xsd:element name="bondStereo" id="el.bondStereo">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" stereoType ">
<xsd:attributeGroup ref=" atomRefs4 "/>
<xsd:attributeGroup ref=" atomRefArray "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" conventionValue "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: bondType

Name bondType
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The type of a bond.
Bond types are used to describe the behaviour of bonds in forcefields, functional groups, reactions and many other domains. They are not as well formalised as atomTypes and we provide less semantic support. BondTypes are referred to by their mandatory _name_ attribute.
XML Instance Representation
<bondType
name=" xsd:string [0..1] ?"
ref=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<molecule> ... </molecule> [1]
<bond> ... </bond> [1]
<label> ... </label> [1]
End Choice
Start Choice [0..*]
<scalar> ... </scalar> [1]
<array> ... </array> [1]
<matrix> ... </matrix> [1]
<property> ... </property> [1]
End Choice
</bondType>
Schema Component Representation
<xsd:element name="bondType" id="el.bondType">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" molecule "/>
<xsd:element ref=" bond "/>
<xsd:element ref=" label "/>
</xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" scalar "/>
<xsd:element ref=" array "/>
<xsd:element ref=" matrix "/>
<xsd:element ref=" property "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: bondTypeList

Name bondTypeList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more bondTypes.
_bondTypeList_ can contain several bondTypes.
XML Instance Representation
<bondTypeList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..*]
Start Choice [0..*]
<bondType> ... </bondType> [1]
End Choice
</bondTypeList>
Schema Component Representation
<xsd:element name="bondTypeList" id="el.bondTypeList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" bondType "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: cellParameter

Name cellParameter
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A set of 3 cell parameters.
Either 3 lengths or 3 angles.
XML Instance Representation
<cellParameter
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?"
type=" xsd:string [0..1] ?"
error=" vector3Type [0..1] ?">
vector3Type
</cellParameter>
Schema Component Representation
<xsd:element name="cellParameter" id="el.cellParameter">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" vector3Type ">
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" cellParameterType "/>
<xsd:attributeGroup ref=" cellParameterError "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: cml

Name cml
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A general container for CML elements.
Often the root of the CML (sub)document. Has no explicit function but can serve to hold the dictionary and namespace and version information, and is a useful tag to alert CML processors and search/XMLQuery tools that there is chemistry in the document. Can contain any content, but usually a list of molecules and other CML components. The fileId attribute can be used to preserve the origin of the information, though metadat should also be used. Can be nested.
XML Instance Representation
<cml
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
fileId=" xsd:string [0..1] ?"
version=" xsd:string [0..1] ?">
Start Sequence [0..*] ?
Allow any elements from any namespace (lax validation). [1]
End Sequence
</cml>
Schema Component Representation
<xsd:element name="cml" id="el.cml">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" fileId "/>
<xsd:attributeGroup ref=" version "/>
</xsd:complexType>
</xsd:element>
top

Element: complexObject

Name complexObject
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An element to hold any combination of heterogeneous element children
complexObject can be used as it stands but will often be extended by schema definitions in dictionary entries.
XML Instance Representation
<complexObject
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Allow any elements from any namespace (lax validation). [0..*]
</complexObject>
Schema Component Representation
<xsd:element name="complexObject" id="el.complexObject">
<xsd:complexType>
<xsd:sequence>
<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: conditionList

Name conditionList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more experimental conditions.
This can contain several conditions. These include (but are not limited to) intensive physical properties (temperature, pressure, etc.), apparatus (test-tube, rotary evaporator, etc.). Actions can be represented elsewhere by actionList and solvents or other substances by substanceList.
XML Instance Representation
<conditionList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..*]
Start Choice [0..*]
<scalar> ... </scalar> [1]
<list> ... </list> [1]
End Choice
</conditionList>
Schema Component Representation
<xsd:element name="conditionList" id="el.conditionList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" scalar "/>
<xsd:element ref=" list "/>
</xsd:choice>
<-- <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>-->
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: copy

Name copy
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Copies an element
Experimental. copies contained element
2006-06-09: PMR. Created
XML Instance Representation
<copy
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
Allow any elements from any namespace (lax validation). [1]
End Choice
</copy>
Schema Component Representation
<xsd:element name="copy" id="el.copy">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: crystal

Name crystal
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A crystallographic cell.
Required if fractional coordinates are provided for a molecule. Originally there were precisely SIX child scalars to represent the cell lengths and angles in that order. There are no default values; the spacegroup is also included. This is now deprecated and replaced by cellParameter
2006-03-06 PMR: added cellParameter child
XML Instance Representation
<crystal
z=" xsd:nonNegativeInteger [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..1]
<scalar> ... </scalar> [6..6]
<cellParameter> ... </cellParameter> [1..2]
End Choice
<symmetry> ... </symmetry> [0..1]
</crystal>
Schema Component Representation
<xsd:element name="crystal" id="el.crystal">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element ref=" scalar " minOccurs="6" maxOccurs="6"/>
<xsd:element ref=" cellParameter " minOccurs="1" maxOccurs="2"/>
</xsd:choice>
<xsd:element ref=" symmetry " minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref=" z "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: definition

Name definition
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The definition for an entry.
The definition should be a short nounal phrase defining the subject of the entry. Definitions should not include commentary, implementations, equations or formulae (unless the subject is one of these) or examples.

The definition can be in any markup language, but normally XHTML will be used, perhaps with links to other XML namespaces such as CML for chemistry.

From the IUPAC Dictionary of Medicinal Chemistry
XML Instance Representation
<definition>
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</definition>
Schema Component Representation
<xsd:element name="definition" id="el.definition">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
top

Element: description

Name description
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Descriptive information.
This can occur in objects which require textual comment such as entry.

Entries should have at least one separate definitions. description is then used for most of the other information, including examples. The class attribute has an uncontrolled vocabulary and can be used to clarify the purposes of the description elements.

XML Instance Representation
<description
convention=" refType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
objectClass=" xsd:string [0..1] ?">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</description>
Schema Component Representation
<xsd:element name="description" id="el.description">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" objectClass "/>
</xsd:complexType>
</xsd:element>
top

Element: dictionary

Name dictionary
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A dictionary.
A dictionary is a container for _entry_ elements. Dictionaries can also contain unit-related information. The dictRef attribute on a dictionary element sets a namespace-like prefix allowing the dictionary to be referenced from within the document. In general dictionaries are referenced from an element using the __dictRef__ attribute.
2005-12-15. PMR. added namespace and dictionaryPrefix.
XML Instance Representation
<dictionary
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
href=" xsd:anyURI [0..1] ?"
namespace=" namespaceType [0..1] ?"
dictionaryPrefix=" dictionaryPrefixType [0..1] ?">
<unitList> ... </unitList> [0..*]
<annotation> ... </annotation> [0..*]
<description> ... </description> [0..*]
<entry> ... </entry> [0..*]
</dictionary>
Schema Component Representation
<xsd:element name="dictionary" id="el.dictionary">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" unitList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" annotation " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" description " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" entry " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" href "/>
<xsd:attributeGroup ref=" namespace "/>
<xsd:attributeGroup ref=" dictionaryPrefix "/>
</xsd:complexType>
</xsd:element>
top

Element: dimension

Name dimension
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A dimension supporting scientific unit.
This will be primarily used within the definition of units. Two dimensions are of the same type if their 'name' attributes are (case-sensitive) identical. Dimensions of the same typecan be algebraically combined using the 'power' attributes. Normally dimensions will be aggregated and cancelled algebraically, but the 'preserve' attribute can be used to prevent this. Thus a velocity gradient over length can be defined as:
              <unitType id="a1" preserve="true"> 
                <dimension name="length" power="1"/>
                <dimension name="time" power="-1"/>
                <dimension name="length" power="-1"/>
              </unitType>
            
whereas cancelling the dimensions would give:
              <unitType id="a1" preserve="true"> 
                <dimension name="time" power="-1"/>
              </unitType>
            
XML Instance Representation
<dimension
dimensionBasis=" dimensionType [0..1] ?"
id=" idType [0..1] ?"
name=" xsd:string [0..1] ?"
power=" xsd:double [0..1] ?"
preserve=" xsd:boolean [0..1] ?"/>
Schema Component Representation
<xsd:element name="dimension" id="el.dimension">
<xsd:complexType>
<xsd:sequence/>
<xsd:attributeGroup ref=" dimensionBasis "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" power "/>
<xsd:attributeGroup ref=" preserve "/>
</xsd:complexType>
</xsd:element>
top

Element: documentation

Name documentation
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Documentation in the annotation of an entry.

A container similar to documentation in XML Schema. This is NOT part of the textual content of an entry but is designed to support the transformation of dictionary entrys into schemas for validation. This is experimental and should only be used for dictionaries, units, etc. One approach is to convert these into XML Schemas when the documentation and appinfo children will emerge in their correct position in the derived schema.

Do NOT confuse documentation with the description or the definition which are part of the content of the dictionary

If will probably only be used when there is significant appinfo in the entry or where the entry defines an XSD-like datatype of an element in the document.

XML Instance Representation
<documentation
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</documentation>
Schema Component Representation
<xsd:element name="documentation" id="el.documentation">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
</xsd:complexType>
</xsd:element>
top

Element: eigen

Name eigen
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An element to hold eigenstuff.
Holds an array of eigenvalues and a matrix of eigenvectors.
XML Instance Representation
<eigen
units=" unitsType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
type=" xsd:string [0..1] ?"
orientation=" eigenOrientationType [0..1] ?">
<array> ... </array> [0..1]
<matrix> ... </matrix> [0..1]
</eigen>
Schema Component Representation
<xsd:element name="eigen" id="el.eigen">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" array " minOccurs="0"/>
<xsd:element ref=" matrix " minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" type "/>
<xsd:attributeGroup ref=" eigenOrientation "/>
</xsd:complexType>
</xsd:element>
top

Element: electron

Name electron
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An electron.
Since there is very little use of electrons in current chemical information this is a fluid concept. I expect it to be used for electron counting, input and output of theochem operations, descriptions of orbitals, spin states, oxidation states, etc. Electrons can be associated with atoms, bonds and combinations of these. At present there is no hardcoded semantics. However, _atomRef_ and similar attributes can be used to associate electrons with atoms or bond.
XML Instance Representation
<electron
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
atomRef=" atomRefType [0..1] ?"
atomRefs=" atomRefArrayType [0..1] ?"
bondRef=" bondRefType [0..1] ?"
bondRefs=" bondRefArrayType [0..1] ?"
count=" positiveNumberType [0..1] ?"
ref=" refType [0..1] ?"/>
Schema Component Representation
<xsd:element name="electron" id="el.electron">
<xsd:complexType>
<xsd:sequence/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" atomRef "/>
<xsd:attributeGroup ref=" atomRefs "/>
<xsd:attributeGroup ref=" bondRef "/>
<xsd:attributeGroup ref=" bondRefs "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: entry

Name entry
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A dictionary entry.
The original design for validation with attribute-based constraints is ponderous and fragile. In future constraints will be added through appinfo in annotation. We shall develop this further in the near future.
2003-03-30: added metadataList to content mode.
XML Instance Representation
<entry
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dataType=" dataTypeType [0..1] ?"
rows=" sizeType [0..1] ?"
columns=" sizeType [0..1] ?"
unitType=" xsd:string [0..1] ?"
minExclusive=" xsd:double [0..1] ?"
minInclusive=" xsd:double [0..1] ?"
maxExclusive=" xsd:double [0..1] ?"
maxInclusive=" xsd:double [0..1] ?"
totalDigits=" xsd:positiveInteger [0..1] ?"
fractionDigits=" xsd:nonNegativeInteger [0..1] ?"
length=" xsd:nonNegativeInteger [0..1] ?"
minLength=" xsd:nonNegativeInteger [0..1] ?"
maxLength=" xsd:positiveInteger [0..1] ?"
units=" unitsType [0..1] ?"
whiteSpace=" xsd:string [0..1] ?"
pattern=" xsd:string [0..1] ?"
term=" xsd:string [1] ?">
Start Choice [0..*]
<metadataList> ... </metadataList> [1]
<alternative> ... </alternative> [1]
<annotation> ... </annotation> [1]
<definition> ... </definition> [1]
<description> ... </description> [1]
<enumeration> ... </enumeration> [1]
<relatedEntry> ... </relatedEntry> [1]
End Choice
</entry>
Schema Component Representation
<xsd:element name="entry" id="el.entry">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" metadataList "/>
<xsd:element ref=" alternative "/>
<xsd:element ref=" annotation "/>
<xsd:element ref=" definition "/>
<xsd:element ref=" description "/>
<xsd:element ref=" enumeration "/>
<xsd:element ref=" relatedEntry "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dataType "/>
<xsd:attributeGroup ref=" rows "/>
<xsd:attributeGroup ref=" columns "/>
<xsd:attributeGroup ref=" unitType "/>
<xsd:attributeGroup ref=" minExclusive "/>
<xsd:attributeGroup ref=" minInclusive "/>
<xsd:attributeGroup ref=" maxExclusive "/>
<xsd:attributeGroup ref=" maxInclusive "/>
<xsd:attributeGroup ref=" totalDigits "/>
<xsd:attributeGroup ref=" fractionDigits "/>
<xsd:attributeGroup ref=" length "/>
<xsd:attributeGroup ref=" minLength "/>
<xsd:attributeGroup ref=" maxLength "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" whiteSpace "/>
<xsd:attributeGroup ref=" pattern "/>
<xsd:attributeGroup ref=" term "/>
</xsd:complexType>
</xsd:element>
top

Element: enumeration

Name enumeration
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An enumeration of value.
An enumeration of string values. Used where a dictionary entry constrains the possible values in a document instance. The dataTypes (if any) must all be identical and are defined by the dataType of the containing element.
XML Instance Representation
<enumeration
value=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
default=" xsd:string [0..1] ?">
<annotation> ... </annotation> [0..1]
</enumeration>
Schema Component Representation
<xsd:element name="enumeration" id="el.enumeration">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" annotation " minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref=" value "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" default "/>
</xsd:complexType>
</xsd:element>
top

Element: expression

Name expression
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An expression that can be evaluated.
Experimental. This is essentially a mathematical function, expressed currently in reverse Polish notation but we expect to move to MathML.
XML Instance Representation
<expression
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
dataType=" dataTypeType [0..1] ?">
Start Choice [0..*]
<parameter> ... </parameter> [1]
<operator> ... </operator> [1]
End Choice
</expression>
Schema Component Representation
<xsd:element name="expression" id="el.expression">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" parameter "/>
<xsd:element ref=" operator "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" dataType "/>
</xsd:complexType>
</xsd:element>
top

Element: float

Name float
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
CML-1 dataType DEPRECATED.
XML Instance Representation
<float
builtin=" xsd:string [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
units=" unitsType [0..1] ?"
unitsRef=" xsd:string [0..1] ?">
xsd:double
</float>
Schema Component Representation
<xsd:element name="float" id="el.float">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:double ">
<xsd:attributeGroup ref=" builtin "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" unitsRef "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: floatArray

Name floatArray
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
CML-1 dataType DEPRECATED.
XML Instance Representation
<floatArray
builtin=" xsd:string [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
size=" sizeType [0..1] ?"
units=" unitsType [0..1] ?"
unitsRef=" xsd:string [0..1] ?">
xsd:string
</floatArray>
Schema Component Representation
<xsd:element name="floatArray" id="el.floatArray">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" builtin "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" size "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" unitsRef "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: for

Name for
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Iterates through a list or list of values
Experimental.
2006-06-09: PMR. Created
XML Instance Representation
<for
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
name=" xsd:string [0..1] ?"
start=" xsd:string [0..1] ?"
end=" xsd:string [0..1] ?"
step=" xsd:string [0..1] ?"
list=" xsd:string [0..1] ?">
Start Choice [0..*]
Allow any elements from any namespace (lax validation). [1]
End Choice
</for>
Schema Component Representation
<xsd:element name="for" id="el.for">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" start "/>
<xsd:attributeGroup ref=" end "/>
<xsd:attributeGroup ref=" step "/>
<xsd:attributeGroup ref=" list "/>
</xsd:complexType>
</xsd:element>
top

Element: formula

Name formula
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A molecular formula.

It is defined by atomArrays each with a list of elementTypes and their counts (or default=1). All other information in the atomArray is ignored. formula are nestable so that aggregates (e.g. hydrates, salts, etc.) can be described. CML does not require that formula information is consistent with (say) crystallographic information; this allows for experimental variance.

An alternative briefer representation is also available through the concise. This must include whitespace round all elements and their counts, which must be explicit.

2005-10-16. The semantics are now the following. A formula must have one or both:

  • A concise attribute
  • A single atomArray child, using array format.
it must also have a formalCharge attribute if atomArray is used and the charge is non-zero.

The concise, formalCharge and atomArrary information must always be consistent and software should throw an error if not.

Until now there was no way of holding inline formula other than concise (although JUMBO5.0 is capable of reading them). We now extend formula.xsd to incorporate this through the attribute "inline" which requires the use of the "convention" attribute. The contents of inline are purely textual. It can be used with or without atomArray or concise but there is no guarantee that it can be interpreted as a meaningful chemical formula or that there is consistency. In some cases a document supplies several formula representations (e.g. the IUCr's CIF). In this case a molecule (or crystal) element might contain several formula children. The semantics of which to use are application dependent.

XML Instance Representation
<formula
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
count=" positiveNumberType [0..1] ?"
formalCharge=" formalChargeType [0..1] ?"
concise=" formulaType [0..1] ?"
inline=" xsd:string [0..1] ?">
Start Choice [1]
Start Choice [0..*]
<formula> ... </formula> [1]
<atomArray> ... </atomArray> [1]
End Choice
End Choice
</formula>
Schema Component Representation
<xsd:element name="formula" id="el.formula">
<xsd:complexType>
<xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" formula "/>
<xsd:element ref=" atomArray "/>
</xsd:choice>
</xsd:choice>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" formalCharge "/>
<xsd:attributeGroup ref=" concise "/>
<xsd:attributeGroup ref=" inline "/>
</xsd:complexType>
</xsd:element>
top

Element: gradient

Name gradient
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A gradient.
A container for a quantity or quantities representing the gradient of other quantities. At present just takes a scalar child.
XML Instance Representation
<gradient
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<scalar> ... </scalar> [1]
<array> ... </array> [1]
<matrix> ... </matrix> [1]
<property> ... </property> [1]
End Choice
</gradient>
Schema Component Representation
<xsd:element name="gradient" id="el.gradient">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" scalar "/>
<xsd:element ref=" array "/>
<xsd:element ref=" matrix "/>
<xsd:element ref=" property "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: identifier

Name identifier
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A structured identifier.

Supports compund identifiers such as IChI. At present uses the V0.9 IChI XML representation verbatim but will almost certainly change with future IChIs.

The inclusion of elements from other namespaces causes problems with validation. The content model is deliberately LAX but the actual elements in IChI will fail the validation as they are not declared in CML.

For simple scalar values the value attribute can be used with empty content. Where an identifier has several components a series of label elements can be used.
2003-07-10: Fixed count on identifier children..
2003-03-12: Added isotopic and atoms..
XML Instance Representation
<identifier
value=" xsd:string [0..1] ?"
version=" xsd:string [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
tautomeric=" xsd:string [0..1] ?">
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</identifier>
Schema Component Representation
<xsd:element name="identifier" id="el.identifier">
<xsd:complexType>
<-- to avoid problems as IChI structure is updated -->
<xsd:sequence maxOccurs="unbounded" minOccurs="0">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" value "/>
<xsd:attributeGroup ref=" version "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" tautomeric "/>
</xsd:complexType>
</xsd:element>
top

Element: if

Name if
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Conditional
Experimental. omit content if test not true
2006-06-09: PMR. Created
XML Instance Representation
<if
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
test=" xsd:string [0..1] ?">
Start Choice [0..*]
Allow any elements from any namespace (lax validation). [1]
End Choice
</if>
Schema Component Representation
<xsd:element name="if" id="el.if">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" test "/>
</xsd:complexType>
</xsd:element>
top

Element: integer

Name integer
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
CML-1 dataType DEPRECATED.
XML Instance Representation
<integer
builtin=" xsd:string [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
units=" unitsType [0..1] ?"
unitsRef=" xsd:string [0..1] ?">
xsd:integer
</integer>
Schema Component Representation
<xsd:element name="integer" id="el.integer">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:integer ">
<xsd:attributeGroup ref=" builtin "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" unitsRef "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: integerArray

Name integerArray
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
CML-1 dataType DEPRECATED.
XML Instance Representation
<integerArray
builtin=" xsd:string [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
size=" sizeType [0..1] ?"
units=" unitsType [0..1] ?"
unitsRef=" xsd:string [0..1] ?">
xsd:string
</integerArray>
Schema Component Representation
<xsd:element name="integerArray" id="el.integerArray">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" builtin "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" size "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" unitsRef "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: isotope

Name isotope
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A specific isotope.
Defines an isotope in terms of exact mass and spin. Differentiate from isotopeList which defines a mixture of isotope.
XML Instance Representation
<isotope
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
number=" xsd:nonNegativeInteger [0..1] ?"
spin=" isotopicSpinType [0..1] ?"
elementType=" elementTypeType [0..1] ?"
ref=" refType [0..1] ?">
<abundance> ... </abundance> [0..1]
</isotope>
Schema Component Representation
<xsd:element name="isotope" id="el.isotope">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" abundance " minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" number "/>
<xsd:attributeGroup ref=" spin "/>
<xsd:attributeGroup ref=" elementType "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: isotopeList

Name isotopeList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more isotopes.
Can contain several isotopes. These may be related in several ways. This allows the definition of natural abundance and averged enrichment.
XML Instance Representation
<isotopeList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?">
<isotope> ... </isotope> [0..*]
</isotopeList>
Schema Component Representation
<xsd:element name="isotopeList" id="el.isotopeList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" isotope " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: join

Name join
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Command to join two groups.
EXPERIMENTAL. join will normally use atomRefs2 to identify 2 R atoms (i.e. elementType="R" that should be joined. The atoms to which the R atoms are attached are then joined by a new bond and the R groups are then deleted. It is currently an error if these atoms already have a connecting bond.
2006-05-20: PMR added.
XML Instance Representation
<join
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
repeat=" repeatType [0..1] ?"
atomRefs2=" atomRefs2Type [0..1] ?"
order=" orderType [0..1] ?"
linkOnParent=" xsd:string [0..1] ?"
left=" xsd:string [0..1] ?"
right=" xsd:string [0..1] ?">
Allow any elements from any namespace (strict validation). [0..*]
</join>
Schema Component Representation
<xsd:element name="join" id="el.join">
<xsd:complexType>
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" repeat "/>
<xsd:attributeGroup ref=" atomRefs2 "/>
<xsd:attributeGroup ref=" order "/>
<xsd:attributeGroup ref=" linkOnParent "/>
<xsd:attributeGroup ref=" left "/>
<xsd:attributeGroup ref=" right "/>
</xsd:complexType>
</xsd:element>
top

Element: kpoint

Name kpoint
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A kpoint.
Not yet finalised.
2006-01-21: PMR. Created
XML Instance Representation
<kpoint
weight=" xsd:double [0..1] ?"
label=" xsd:string [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
vector3Type
</kpoint>
Schema Component Representation
<xsd:element name="kpoint" id="el.kpoint">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" vector3Type ">
<xsd:attributeGroup ref=" weight "/>
<xsd:attributeGroup ref=" label "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: kpointList

Name kpointList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for kpoints.
Experimental.
XML Instance Representation
<kpointList
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<kpoint> ... </kpoint> [1]
End Choice
</kpointList>
Schema Component Representation
<xsd:element name="kpointList" id="el.kpointList">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" kpoint "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: label

Name label
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A text string qualifying an object.
A label can be used to identify or distinguish elements, add keywords or classifications and similar processes. It is usually interpretable by domain-aware humans (e.g. C3'-endo, but not a34561). It is usually either built in a semantically rich fashion (e.g. C2'-alpha-H) or belongs to a controlled vocabulary. It is possibly accessed by software in a domain-specific manner. It differs from description which is free text. The distinction between titles, names and labels is fuzzy, but we think this is worth making. Labels may be necesssary to identify objects within programs, while names are more likely to be reserved for database searches. Titles are likely to be freer text and not recommended for precise object retrieval.
Labels should not contain whitespace. Punctuation marks are often necessary, but should not be gratuitously used. Punctuation clashing with XML character entities should be avoided; if this is not possible it should be escaped.
From IUPAC Dictionary of Medicinal Chemistry
XML Instance Representation
<label
id=" idType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
value=" xsd:string [0..1] ?"
objectClass=" xsd:string [0..1] ?">
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</label>
Schema Component Representation
<xsd:element name="label" id="el.label">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" value "/>
<xsd:attributeGroup ref=" objectClass "/>
</xsd:complexType>
</xsd:element>
top

Element: lattice

Name lattice
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A lattice of dimension 3 or less.
Lattice is a general approach to describing periodic systems. It can have variable dimensionality or periodicity, and could be finite.
_lattice_ is more general than _crystal_ in cmlCore which is used primarily for reporting crystallographic experiments.`A lattice can be described by latticeVectors, cell axes and angles, or metric tensors, etc. (only axes/angles are allowed under crystal). The dimensionality is enforced through a _system_ parent element.
XML Instance Representation
<lattice
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
latticeType=" latticeType [0..1] ?"
spaceType=" spaceType [0..1] ?">
Start Choice [1]
<scalar> ... </scalar> [3..6] ?
<latticeVector> ... </latticeVector> [1..3]
<matrix> ... </matrix> [1]
End Choice
<symmetry> ... </symmetry> [0..1]
</lattice>
Schema Component Representation
<xsd:element name="lattice" id="el.lattice">
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<xsd:element ref=" scalar " minOccurs="3" maxOccurs="6"/>
<xsd:element ref=" latticeVector " minOccurs="1" maxOccurs="3">
<-- <h:div class="summary">A number of lattice vectors equal to the dimensionality. Note that some vectors may give rise to periodicty while others do not. Thus a surface can be described by two vector in the plane of the surface and one perpendicular to them.</h:div> -->
</xsd:element>
<xsd:element ref=" matrix " minOccurs="1" maxOccurs="1">
<-- <h:div class="summary">The metric tensor (normally for 3 dimensions).</h:div> -->
</xsd:element>
</xsd:choice>
<xsd:element ref=" symmetry " minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" latticeType "/>
<xsd:attributeGroup ref=" spaceType "/>
</xsd:complexType>
</xsd:element>
top

Element: latticeVector

Name latticeVector
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A vector3 representing a lattice axis.
a lattice can be represented by 1-3 non-linearly dependent latticeVectors. If the dimensionality is less than 3 latticeVectors are the preferred method. Similarly, if the axes show a mixture of periodicity and non-periodicity latticeVectors can support this. The number of periodic vectors must correspond with the periodicity attribute on a system element.

The vector must not be zero and units must be given. (Zero vectors must not be used to reduce dimensionality).

A lattice vector defaults to periodic.

.
Any or all of the axes may be periodic or aperiodic. An example could be a surface where 2 periodic axes (not necessarily orthogonal) are used to describe the coordinates in the surface, perhaps representing lattice vectors of a 3D crystal or 2D layer. The third vector is orthogonal and represents coordinates normal to the surface. In this case only the direction, not the magnitude of the vector is important.
XML Instance Representation
<latticeVector
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?"
periodic=" xsd:boolean [0..1] ?">
vector3Type
</latticeVector>
Schema Component Representation
<xsd:element name="latticeVector" id="el.latticeVector">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" vector3Type ">
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" periodic "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: length

Name length
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A length between two atoms.
This is either an experimental measurement or used to build up internal coordinates (as in a z-matrix) (only one allowed). We expect to move length as a child of _molecule_ and remove it from here.
XML Instance Representation
<length
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
atomRefs2=" atomRefs2Type [0..1] ?"
units=" unitsType [0..1] ?"
errorValue=" errorValueType [0..1] ?"
errorBasis=" errorBasisType [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
ref=" refType [0..1] ?">
xsd:double
</length>
Schema Component Representation
<xsd:element name="length" id="el.length">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:double ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" atomRefs2 "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" errorValue "/>
<xsd:attributeGroup ref=" errorBasis "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: line3

Name line3
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A line in 3-space.
A line characterised by one or two endpoints.
2006-01-02: the 6-number content has caused much confusion and will be obsoleted in favour of the point3 and vector3 attributes
XML Instance Representation
<line3
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?"
point3=" point3Type [0..1] ?"
vector3=" vector3Type [0..1] ?">
line3Type
</line3>
Schema Component Representation
<xsd:element name="line3" id="el.line3">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" line3Type ">
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" point3 "/>
<xsd:attributeGroup ref=" vector3 "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: link

Name link
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An internal or external link to other objects.

Semantics are similar to XLink, but simpler and only a subset is implemented. This is intended to make the instances easy to create and read, and software relatively easy to implement. The architecture is:

  • A single element (link) used for all linking purposes.
  • The link types are determined by the type attribute and can be:.
    • locator. This points to a single target and must carry either a ref or href attribute. locator links are usually children of an extended link.
    • arc. This is a 1:1 link with both ends (from and to) defined.
    • extended. This is usually a parent of several locator links and serves to create a grouping of link ends (i.e. a list of references in documents).
    • Many-many links can be built up from arcs linking extended elements

    All links can have optional role attributes. The semantics of this are not defined; you are encouraged to use a URI as described in the XLink specification.

    There are two address spaces:

    • The href attribute on locators behaves in the same way as href in HTML and is of type xsd:anyURI. Its primary use is to use XPointer to reference elements outside the document.
    • The ref attribute on locators and the from and to attributes on arcs refer to IDs (without the '#' syntax).

    Note: several other specific linking mechanisms are defined elsewhere in STM. relatedEntry should be used in dictionaries, and dictRef should be used to link to dictionaries. There are no required uses of link in STMML but we have used it to map atoms, electrons and bonds in reactions in CML

Relation to XLink. At present (2002) we are not aware of generic XLink processors from which we would benefit, so the complete implementation brings little extra value. Among the simplifications from Xlink are:

  • type supports only extended, locator and arc
  • label is not supported and ids are used as targets of links.
  • show and actuate are not supported.
  • xlink:title is not supported (all STM elements can have a title attribute).
  • xlink:role supports any string (i.e. does not have to be a namespaced resource). This mechanism can, of course, still be used and we shall promote it where STM benefits from it
  • The to and from attributes point to IDs rather than labels
  • The xlink namespace is not used
  • It is not intended to create independent linkbases, although some collections of links may have this property and stand outside the documents they link to
XML Instance Representation
Schema Component Representation
top

Element: list

Name list
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A generic container with no implied semantics.
A generic container with no implied semantics. It just contains things and can have attributes which bind conventions to it. It could often act as the root element in an STM document.
XML Instance Representation
<list
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
type=" xsd:string [0..1] ?">
Allow any elements from any namespace (lax validation). [0..*]
</list>
Schema Component Representation
<xsd:element name="list" id="el.list">
<xsd:complexType>
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" type "/>
</xsd:complexType>
</xsd:element>
top

Element: map

Name map
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for links

Usage is now standardized with map as the container and link as the individual links. The links are often effectively typed pointers to other parts of the document. The type can be set for all links by the 'fromType' and 'toType' attributes, either in the map, which then applied to all links by default, or in individual links, when it overrides the map setting. Since ids may not be unique within a document the refs can be given context with the 'fromRef' and 'toRef' attributes in the map element. If more than one context is used it may be better to use multiple maps. The role of map, and its relationship to RDF is still being developed.

Currently (2005) map has primarily been used to map atoms between reactants and products, but we also expect shortly to extend it to peak assignments and several otherr areas. A map consists of a number of links, which can be directional, relating two elements through their ids. Reference is through the mandatory 'to' and 'from' attributes which must point to existing id attributes on elements. The type of the dereferenced element can be specified in 'toType' and 'fromType' which, while redundant, is an aid to software and acts as a check on referential type integrity.

In principle any element can be linked to any other, with 1:1, 1:n, and n:m topology. We expect maps to be used for precise chemical concepts such as reactions, peak assignments, electron management, molecular superpositions, etc. and that these are supported by bespoke code. For other links, especially with complex topology, users should consider whether RDF may be more appropriate.

In some cases partial mapping is known (e.g. one set of atoms maps to another set), but the precise links are unknown. (This is not the same as n:m mapping where n*m precise links would be expected). In some cases there may be objects such as atomSets or peakGroups which could be linked to support this. Alternatively the 'fromSet' and 'toSet' attributes can be used to hold a list of ids. Thus from='a1 a2' to='b3 b4' might imply that there were two precise links (either {a1=>b3, a2=>b4} or {a1=>b4, a2=>b3}). This is most likely to be used in intermediate documents where more precise semantics can be added later. The ids must all refer to elements of the same type. Note that a 'to' link referencing a single atomSet (toType='atomSet') is not the same as a 'toSet' of toType='atom' with multiple atomIds. The first would require an 'atomSet' element in the document; the second would not. The precise semantics such as the order of ids are application-dependent. If the order is known in both the toSet and fromSet then individual links should be used rather than adding the burden of deconstruction on the implementer.

2005-06-18: added typing and role and updated docs.
2006-08-05: added ref attribute.
XML Instance Representation
<map
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
ref=" refType [0..1] ?"
fromType=" xmlElementType [0..1] ?"
toType=" xmlElementType [0..1] ?"
fromContext=" idType [0..1] ?"
toContext=" idType [0..1] ?"
role=" xsd:string [0..1] ?">
Start Sequence [0..*]
<link> ... </link> [1]
End Sequence
</map>
Schema Component Representation
<xsd:element name="map" id="el.map">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" link "/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" fromType "/>
<xsd:attributeGroup ref=" toType "/>
<xsd:attributeGroup ref=" fromContext "/>
<xsd:attributeGroup ref=" toContext "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: matrix

Name matrix
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A rectangular matrix of any quantities.

By default matrix represents a rectangular matrix of any quantities representable as XSD or STMML dataTypes. It consists of rows*columns elements, where columns is the fasting moving index. Assuming the elements are counted from 1 they are ordered V[1,1],V[1,2],...V[1,columns],V[2,1],V[2,2],...V[2,columns], ...V[rows,1],V[rows,2],...V[rows,columns]

By default whitespace is used to separate matrix elements; see array for details. There are NO characters or markup delimiting the end of rows; authors must be careful!. The columns and rows attributes have no default values; a row vector requires a rows attribute of 1.

matrix also supports many types of square matrix, but at present we require all elements to be given, even if the matrix is symmetric, antisymmetric or banded diagonal. The matrixType attribute allows software to validate and process the type of matrix.

XML Instance Representation
<matrix
dataType=" dataTypeType [0..1] ?"
delimiter=" delimiterType [0..1] ?"
rows=" sizeType [0..1] ?"
columns=" sizeType [0..1] ?"
units=" unitsType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
matrixType=" matrixType [0..1] ?"
errorValueArray=" errorValueArrayType [0..1] ?"
errorBasis=" errorBasisType [0..1] ?"
minValueArray=" floatArrayType [0..1] ?"
maxValueArray=" floatArrayType [0..1] ?">
xsd:string
</matrix>
Schema Component Representation
<xsd:element name="matrix" id="el.matrix">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" dataType "/>
<xsd:attributeGroup ref=" delimiter "/>
<xsd:attributeGroup ref=" rows "/>
<xsd:attributeGroup ref=" columns "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" matrixType "/>
<xsd:attributeGroup ref=" errorValueArray "/>
<xsd:attributeGroup ref=" errorBasis "/>
<xsd:attributeGroup ref=" minValueArray "/>
<xsd:attributeGroup ref=" maxValueArray "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: mechanism

Name mechanism
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The mechanism of a reaction.

In some cases this may be a simple textual description or reference within a controlled vocabulary. In others it may describe the complete progress of the reaction, including topological or cartesian movement of atoms, bonds and electrons and annotation with varying quantities (e.g. energies).

For named reaction mechanisms ("Diels-Alder", "ping-pong", "Claisen rearrangement", etc.) the name element should be used. For classification (e.g. "hydrolysis"), the label may be more appropriate.

In more detailed cases the mechanism refers to components of the reaction element. Thus bond23 might be cleaved while bond19 is transformed (mapped) to bond99. The mechanismComponent can be used to refer to components and add annotation. This is still experimental.

IUPAC Compendium of Chemical Terminology 2nd Edition (1997) describes a mechanism as:

A detailed description of the process leading from the reactants to the products of a reaction, including a characterization as complete as possible of the composition, structure, energy and other properties of reaction intermediates, products and transition states. An acceptable mechanism of a specified reaction (and there may be a number of such alternative mechanisms not excluded by the evidence) must be consistent with the reaction stoichiometry, the rate law and with all other available experimental data, such as the stereochemical course of the reaction. Inferences concerning the electronic motions which dynamically interconvert successive species along the reaction path (as represented by curved arrows, for example) are often included in the description of a mechanism. It should be noted that for many reactions all this information is not available and the suggested mechanism is based on incomplete experimental data. It is not appropriate to use the term mechanism to describe a statement of the probable sequence in a set of stepwise reactions. That should be referred to as a reaction sequence, and not a mechanism.

CMLReact provides reactionScheme and annotions to describe the reaction sequence and both it and mechanism could co-occur within a reactionScheme container.

2006-02-28 PMR: changed content model to choice.
XML Instance Representation
<mechanism
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<name> ... </name> [1]
<label> ... </label> [1]
<description> ... </description> [1]
<mechanismComponent> ... </mechanismComponent> [1]
End Choice
</mechanism>
Schema Component Representation
<xsd:element name="mechanism" id="el.mechanism">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" name "/>
<xsd:element ref=" label "/>
<xsd:element ref=" description "/>
<xsd:element ref=" mechanismComponent "/>
</xsd:choice>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: mechanismComponent

Name mechanismComponent
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An information component within a reaction mechanism.

Information components can represent both physical constituents of the reaction or abstract concepts (types of bond cleavage, thermodynamics, etc.). There are several ways that components of the reaction can be annotated and/or quantified. One approach will be to refer to specific bonds and atoms through their ids and use mechanismComponent to describe their role, properties, etc. Another is to use mechanismComponent to identify types of bond formed/broken without reference to actual atoms and bonds (initially through the name element). Yet another will be to include information on the reaction profile.

This is still experimental.

XML Instance Representation
<mechanismComponent
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Allow any elements from any namespace (lax validation). [0..*]
</mechanismComponent>
Schema Component Representation
<xsd:element name="mechanismComponent" id="el.mechanismComponent">
<xsd:complexType>
<xsd:sequence>
<xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: metadata

Name metadata
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A general container for metadata.

A general container for metadata, including at least Dublin Core (DC) and CML-specific metadata

In its simple form each element provides a name and content in a similar fashion to the meta element in HTML. metadata may have simpleContent (i.e. a string for adding further information - this is not controlled).

XML Instance Representation
<metadata
content=" xsd:string [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
name=" metadataType [0..1] ?"
title=" xsd:string [0..1] ?">
xsd:string
</metadata>
Schema Component Representation
<xsd:element name="metadata" id="el.metadata">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" content "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<-- this creates an attribute of name "name" -->
<xsd:attributeGroup ref=" metadataType "/>
<xsd:attributeGroup ref=" title "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: metadataList

Name metadataList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A general container for metadata elements.
MetadataLists can have local roles (e.g. a bibliographic reference could be a single meteadatList with, say, 3-6 components). The role attribute is used in an uncontrolled manner for this. MetadataLists can also be nested, but metadata and metadataList children should not occur on the same level of the hierarchy.
XML Instance Representation
<metadataList
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
name=" xsd:string [0..1] ?"
role=" xsd:string [0..1] ?">
Start Choice [0..*]
<metadataList> ... </metadataList> [1]
<metadata> ... </metadata> [1]
End Choice
</metadataList>
Schema Component Representation
<xsd:element name="metadataList" id="el.metadataList">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" metadataList "/>
<xsd:element ref=" metadata "/>
</xsd:choice>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: module

Name module
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A module in a calculation.

Many programs are based on discrete modules which produce chunks of output. There are also conceptual chunks such as initialisation, calculation and summary/final which often have finer submodules such as cycle, iteration, snapshot, etc. There is no controlled vocabulary but a typical structure is shown in the example. One of the challenges of CCML is to find communality between different programs and to use agreed abstractions for the modules.

XML Instance Representation
<module
serial=" xsd:string [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
role=" xsd:string [0..1] ?">
Allow any elements from any namespace (lax validation). [0..*]
</module>
Schema Component Representation
<xsd:element name="module" id="el.module">
<xsd:complexType>
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" serial "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: molecule

Name molecule
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for atoms, bonds and submolecules.

molecule is a container for atoms, bonds and submolecules along with properties such as crystal and non-builtin properties. It should either contain molecule or *Array for atoms and bonds. A molecule can be empty (e.g. we just know its name, id, etc.)

"Molecule" need not represent a chemically meaningful molecule. It can contain atoms with bonds (as in the solid-sate) and it could simply carry a name (e.g. "taxol") without formal representation of the structure. It can contain "sub molecules", which are often discrete subcomponents (e.g. guest-host).

Molecule can contain a <list> element to contain data related to the molecule. Within this can be string/float/integer and other nested lists

Revised content model to allow any order of lengths, angles, torsions 2003-01-01..
Added role attribute 2003-03-19..
2006-05-21. PMR changed content model to (A|B|C...)*
XML Instance Representation
<molecule
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
idgen=" xsd:string [0..1] ?"
process=" xsd:string [0..1] ?"
formula=" formulaType [0..1] ?"
count=" positiveNumberType [0..1] ?"
chirality=" chiralityType [0..1] ?"
formalCharge=" formalChargeType [0..1] ?"
spinMultiplicity=" xsd:positiveInteger [0..1] ?"
symmetryOriented=" xsd:boolean [0..1] ?"
role=" xsd:string [0..1] ?"
head=" headType [0..1] ?"
tail=" tailType [0..1] ?"
repeat=" repeatType [0..1] ?"
countExpression=" xsd:string [0..1] ?">
Start Choice [0..*]
<angle> ... </angle> [1]
<arg> ... </arg> [1]
<array> ... </array> [1]
<atomArray> ... </atomArray> [1]
<bondArray> ... </bondArray> [1]
<crystal> ... </crystal> [1]
<electron> ... </electron> [1]
<formula> ... </formula> [1]
<identifier> ... </identifier> [1]
<join> ... </join> [1]
<label> ... </label> [1]
<length> ... </length> [1]
<list> ... </list> [1]
<matrix> ... </matrix> [1]
<metadataList> ... </metadataList> [1]
<molecule> ... </molecule> [1]
<name> ... </name> [1]
<propertyList> ... </propertyList> [1]
<scalar> ... </scalar> [1]
<symmetry> ... </symmetry> [1]
<torsion> ... </torsion> [1]
<zMatrix> ... </zMatrix> [1]
End Choice
</molecule>
Schema Component Representation
<xsd:element name="molecule" id="el.molecule">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" angle "/>
<xsd:element ref=" arg "/>
<xsd:element ref=" array "/>
<xsd:element ref=" atomArray "/>
<xsd:element ref=" bondArray "/>
<xsd:element ref=" crystal "/>
<xsd:element ref=" electron "/>
<xsd:element ref=" formula "/>
<xsd:element ref=" identifier "/>
<xsd:element ref=" join "/>
<xsd:element ref=" label "/>
<xsd:element ref=" length "/>
<xsd:element ref=" list "/>
<xsd:element ref=" matrix "/>
<xsd:element ref=" metadataList "/>
<xsd:element ref=" molecule "/>
<xsd:element ref=" name "/>
<xsd:element ref=" propertyList "/>
<xsd:element ref=" scalar "/>
<xsd:element ref=" symmetry "/>
<xsd:element ref=" torsion "/>
<xsd:element ref=" zMatrix "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" idgen "/>
<xsd:attributeGroup ref=" process "/>
<xsd:attributeGroup ref=" formula "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" chirality "/>
<xsd:attributeGroup ref=" formalCharge "/>
<xsd:attributeGroup ref=" spinMultiplicity "/>
<xsd:attributeGroup ref=" symmetryOriented "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" head "/>
<xsd:attributeGroup ref=" tail "/>
<xsd:attributeGroup ref=" repeat "/>
<xsd:attributeGroup ref=" countExpression "/>
</xsd:complexType>
</xsd:element>
top

Element: moleculeList

Name moleculeList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more molecules.

moleculeList can contain several molecules. These may be related in many ways and there is are controlled semantics. However it should not be used for a molecule consisting of descendant molecules for which molecule should be used. A moleculeList can contain nested moleculeLists.

2006-07-20: PMR Added
XML Instance Representation
<moleculeList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<list> ... </list> [0..*]
Start Choice [1]
<moleculeList> ... </moleculeList> [0..*]
<molecule> ... </molecule> [0..*]
End Choice
</moleculeList>
Schema Component Representation
<xsd:element name="moleculeList" id="el.moleculeList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" list " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice>
<xsd:element ref=" moleculeList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" molecule " minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: name

Name name
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A string identifying a object.
name is used for chemical names (formal and trivial) for molecules and also for identifiers such as CAS registry and RTECS. It can also be used for labelling atoms. It should be used in preference to the title attribute because it is repeatable and can be linked to a dictionary.

Constraining patterns can be described in the dictionary and used to validate names.

XML Instance Representation
<name
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
xsd:string
</name>
Schema Component Representation
<xsd:element name="name" id="el.name">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: object

Name object
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An object which might occur in scientific data or narrative.
Deliberately vague. Thus an instrument might be built from sub component objects, or a program could be composed of smaller modules (objects). object could be used to encapsulate graphical primitives (e.g. in reaction schemes, drawings of apparatus, etc.). Unrestricted content model.
XML Instance Representation
<object
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
name=" xsd:string [0..1] ?"
type=" xsd:string [0..1] ?"
count=" positiveNumberType [0..1] ?">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</object>
Schema Component Representation
<xsd:element name="object" id="el.object">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" type "/>
<xsd:attributeGroup ref=" count "/>
</xsd:complexType>
</xsd:element>
top

Element: observation

Name observation
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An observation or occurrence.
A container for any events that need to be recorded, whether planned or not. They can include notes, measurements, conditions that may be referenced elsewhere, etc. There are no controlled semantics.
XML Instance Representation
<observation
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
type=" xsd:string [0..1] ?"
count=" positiveNumberType [0..1] ?">
<!-- Mixed content -->
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</observation>
Schema Component Representation
<xsd:element name="observation" id="el.observation">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" type "/>
<xsd:attributeGroup ref=" count "/>
</xsd:complexType>
</xsd:element>
top

Element: operator

Name operator
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An operator within an expression.
Experimental. An operator acts on one or more arguments (at present the number is fixed by the type). The formulation is reverse Polish so the result (with its dataType) is put on a stack for further use.
XML Instance Representation
<operator
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
type=" xsd:string [0..1] ?">
Start Choice [0..*]
End Choice
</operator>
Schema Component Representation
<xsd:element name="operator" id="el.operator">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" type "/>
</xsd:complexType>
</xsd:element>
top

Element: parameter

Name parameter
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A parameter describing the computation.

A parameter is a broad concept and can describe numeric quantities, objects, keywords, etc. The distinction between keywords and parameters is often fuzzy. ("MINIM" might mean "minimize", while "MINIM=3" might require three iterations to be run. It may help to think of control keywords as boolean parameters.

Numeric parameters can describe values in molecules, forcefields or other objects. Often the parameters will be refined or otherwise varied during the calculation. Some parameters may be fixed at particular values or relaxed at different stages in the calculation. Parameters can have errors, gradients and other indications of uncertainty.

String/character parameters are often abbreviated in program input, and this is supported through the regex and ignoreCase attributes. ?????

Parameters will usually be defined separately from the objects and use the ref attribute to reference them.

Parameters can be used to describe additional constraints. This will probably require the development of a microlanguage and until then may use program-specific mechanisms. A common approach will be to use an array of values (or objects) to represent different input values for (parts of) the calculation. Thus a conformational change could be specified by an array of several torsion angles.

A parameter will frequently have a dictRef pointing to a dictionary which may have more information about how the parameter is to be used or the values it can take.

The allowable content of parameters may be shown by a "template" in the appinfo; this is stil experimental.

XML Instance Representation
<parameter
ref=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
value=" xsd:string [0..1] ?"
constraint=" xsd:string [0..1] ?"
name=" xsd:string [0..1] ?"
role=" xsd:string [0..1] ?">
Start Choice [0..*]
<scalar> ... </scalar> [1]
<array> ... </array> [1]
<matrix> ... </matrix> [1]
<property> ... </property> [1]
<expression> ... </expression> [1]
End Choice
Start Choice [0..1]
<gradient> ... </gradient> [1]
End Choice
</parameter>
Schema Component Representation
<xsd:element name="parameter" id="el.parameter">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" scalar "/>
<xsd:element ref=" array "/>
<xsd:element ref=" matrix "/>
<xsd:element ref=" property "/>
<xsd:element ref=" expression "/>
</xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element ref=" gradient "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" value "/>
<xsd:attributeGroup ref=" constraint "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: parameterList

Name parameterList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more parameters.
parameterList can contain several parameters.
2006-02-16:PMR. Added parameterList as child
XML Instance Representation
<parameterList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..*]
Start Choice [0..*]
<parameter> ... </parameter> [1]
<parameterList> ... </parameterList> [1]
End Choice
</parameterList>
Schema Component Representation
<xsd:element name="parameterList" id="el.parameterList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" parameter "/>
<xsd:element ref=" parameterList "/>
<-- I don't know how to include this... <xsd:any processContents="lax"/> -->
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: particle

Name particle
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An object in space carrying a set of properties.
particles have many of the characteristics of atoms but without an atomic nucleus. It does not have an elementType and cannot be involved in bonding, etc. It has coordinates, may carry charge and might have a mass. It represents some aspect of a computational model and should not be used for purely geometrical concepts such as centroid. Examples of particles are "shells" (e.g. in GULP) which are linked to atoms for modelling polarizability or lonepairs and approximations to multipoles. Properties such as charge, mass should be scalar/array/matrix children.
XML Instance Representation
<particle
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
type=" xsd:string [0..1] ?"
x3=" xsd:double [0..1] ?"
y3=" xsd:double [0..1] ?"
z3=" xsd:double [0..1] ?">
Allow any elements from any namespace (lax validation). [0..*]
</particle>
Schema Component Representation
<xsd:element name="particle" id="el.particle">
<xsd:complexType>
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" type "/>
<xsd:attributeGroup ref=" x3 "/>
<xsd:attributeGroup ref=" y3 "/>
<xsd:attributeGroup ref=" z3 "/>
</xsd:complexType>
</xsd:element>
top

Element: peak

Name peak
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A peak; annotated by human or machine.

A peak can describe:

  • A single point in a spectrum. Usually a maximum but could be a shoulder, inflexion or indeed any point of interest.
  • A continuous range of values within a spectrum, defined by maximum and minimum values on either/both axes

The finer structure of the peak can be given with one or more peakStructure children
The units should always be given. (The raw spectral data may unfortunately use different units and no assumptions should be made).
The content model includes atom, bond, molecule, but these are deprecated and should be replaced by atomRefs, etc.
2005-11-22: PMR. Added moleculeRefs
XML Instance Representation
<peak
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
peakHeight=" xsd:double [0..1] ?"
peakMultiplicity=" peakMultiplicityType [0..1] ?"
peakShape=" peakShapeType [0..1] ?"
integral=" xsd:string [0..1] ?"
peakUnits=" unitsType [0..1] ?"
xMin=" xsd:double [0..1] ?"
xMax=" xsd:double [0..1] ?"
xValue=" xsd:double [0..1] ?"
xWidth=" xsd:double [0..1] ?"
xUnits=" unitsType [0..1] ?"
yMin=" xsd:double [0..1] ?"
yMax=" xsd:double [0..1] ?"
yValue=" xsd:double [0..1] ?"
yWidth=" xsd:double [0..1] ?"
yUnits=" unitsType [0..1] ?"
atomRefs=" atomRefArrayType [0..1] ?"
bondRefs=" bondRefArrayType [0..1] ?"
moleculeRefs=" moleculeRefArrayType [0..1] ?">
<metadataList> ... </metadataList> [0..1] ?
Start Choice [0..*]
<atom> ... </atom> [1] ?
<bond> ... </bond> [1] ?
<molecule> ... </molecule> [1] ?
<peakStructure> ... </peakStructure> [1] ?
End Choice
</peak>
Schema Component Representation
<xsd:element name="peak" id="el.peak">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" atom "/>
<xsd:element ref=" bond "/>
<xsd:element ref=" molecule "/>
<xsd:element ref=" peakStructure "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" peakHeight "/>
<xsd:attributeGroup ref=" peakMultiplicity "/>
<xsd:attributeGroup ref=" peakShape "/>
<xsd:attributeGroup ref=" integral "/>
<xsd:attributeGroup ref=" peakUnits "/>
<xsd:attributeGroup ref=" xMin "/>
<xsd:attributeGroup ref=" xMax "/>
<xsd:attributeGroup ref=" xValue "/>
<xsd:attributeGroup ref=" xWidth "/>
<xsd:attributeGroup ref=" xUnits "/>
<xsd:attributeGroup ref=" yMin "/>
<xsd:attributeGroup ref=" yMax "/>
<xsd:attributeGroup ref=" yValue "/>
<xsd:attributeGroup ref=" yWidth "/>
<xsd:attributeGroup ref=" yUnits "/>
<xsd:attributeGroup ref=" atomRefs "/>
<xsd:attributeGroup ref=" bondRefs "/>
<xsd:attributeGroup ref=" moleculeRefs "/>
</xsd:complexType>
</xsd:element>
top

Element: peakGroup

Name peakGroup
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A list of closely related peaks or peakGroups.
Distinguish between peakList (primarily a navigational container) and peakGroup where the peaks (or groups) have some close relation not shared by all peaks. All descendants must use consistent units.
2005-11-22. added atomRefs, bondRefs and moleculeRefs and deprecated atom, bond, molecule children
XML Instance Representation
<peakGroup
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
peakHeight=" xsd:double [0..1] ?"
peakMultiplicity=" peakMultiplicityType [0..1] ?"
peakShape=" peakShapeType [0..1] ?"
integral=" xsd:string [0..1] ?"
peakUnits=" unitsType [0..1] ?"
xMin=" xsd:double [0..1] ?"
xMax=" xsd:double [0..1] ?"
xValue=" xsd:double [0..1] ?"
xWidth=" xsd:double [0..1] ?"
xUnits=" unitsType [0..1] ?"
yMin=" xsd:double [0..1] ?"
yMax=" xsd:double [0..1] ?"
yValue=" xsd:double [0..1] ?"
yWidth=" xsd:double [0..1] ?"
yUnits=" unitsType [0..1] ?"
atomRefs=" atomRefArrayType [0..1] ?"
bondRefs=" bondRefArrayType [0..1] ?"
moleculeRefs=" moleculeRefArrayType [0..1] ?">
<metadataList> ... </metadataList> [0..1] ?
Start Choice [0..*]
<peak> ... </peak> [1]
<peakGroup> ... </peakGroup> [1]
<atom> ... </atom> [1] ?
<bond> ... </bond> [1] ?
<molecule> ... </molecule> [1] ?
End Choice
</peakGroup>
Schema Component Representation
<xsd:element name="peakGroup" id="el.peakGroup">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" peak "/>
<xsd:element ref=" peakGroup "/>
<xsd:element ref=" atom "/>
<xsd:element ref=" bond "/>
<xsd:element ref=" molecule "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" peakHeight "/>
<xsd:attributeGroup ref=" peakMultiplicity "/>
<xsd:attributeGroup ref=" peakShape "/>
<xsd:attributeGroup ref=" integral "/>
<xsd:attributeGroup ref=" peakUnits "/>
<xsd:attributeGroup ref=" xMin "/>
<xsd:attributeGroup ref=" xMax "/>
<xsd:attributeGroup ref=" xValue "/>
<xsd:attributeGroup ref=" xWidth "/>
<xsd:attributeGroup ref=" xUnits "/>
<xsd:attributeGroup ref=" yMin "/>
<xsd:attributeGroup ref=" yMax "/>
<xsd:attributeGroup ref=" yValue "/>
<xsd:attributeGroup ref=" yWidth "/>
<xsd:attributeGroup ref=" yUnits "/>
<xsd:attributeGroup ref=" atomRefs "/>
<xsd:attributeGroup ref=" bondRefs "/>
<xsd:attributeGroup ref=" moleculeRefs "/>
</xsd:complexType>
</xsd:element>
top

Element: peakList

Name peakList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A list of peaks or peakGroups.
Distinguish between peakList (primarily a navigational container) and peakGroup where the peaks (or groups) have some close relation not shared by all peaks. All peaks and peakGroups should use the same units.
XML Instance Representation
<peakList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?">
<metadataList> ... </metadataList> [0..1] ?
Start Choice [0..*]
<peak> ... </peak> [1]
<peakGroup> ... </peakGroup> [1]
End Choice
</peakList>
Schema Component Representation
<xsd:element name="peakList" id="el.peakList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" peak "/>
<xsd:element ref=" peakGroup "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: peakStructure

Name peakStructure
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The structure of a peak.
Primarily to record couplings and other fine structure. At present we have tested this on HNMR spectra, C13 NMR and simple IR. We believe that other types of spectroscopy (ESR, NQR, etc) can be represented to some extent, but there may be systems beyond the current expressive power.
For molecules without symmetry we believe that most of the important types of NMR coupling can be represented. Thus an atom which gives rise to two couplings can have two child PeakStructures, and this is shown in example1.
<cml xmlns="http://www.xml-cml.org/schema">
    <!- Ha ... Hb ... Hc1, Hc2 ->
    <molecule id="m1">
      <atomArray>
        <atom id="a1" elementType="H">
          <label value="Ha"/>
        </atom>
        <atom id="a2" elementType="H">
          <label value="Hb"/>
        </atom>
        <atom id="a3" elementType="H">
          <label value="Hc1"/>
        </atom>
        <atom id="a4" elementType="H">
          <label value="Hc2"/>
        </atom>
      </atomArray>
    </molecule>
	<spectrum id="spectrum2" title="test peaks">
	    <peakList>
		    <peak id="p1" title="Ha" atomRefs="a1"
		        peakShape="sharp" xUnits="unit:ppm" xValue="6.0">
		        <peakStructure type="coupling" peakMultiplicity="doublet11" 
		           value="12" units="unit:hertz" atomRefs="a2"/> 
			</peak>            
		    <peak id="p2" title="Hb" atomRefs="a2" 
		        peakShape="sharp" xUnits="unit:ppm" xValue="7.0">
		        <peakStructure type="coupling" peakMultiplicity="doublet11" 
		           value="12" units="unit:hertz" atomRefs="a1"/> 
		        <peakStructure type="coupling" peakMultiplicity="triplet121" 
		           value="15" units="unit:hertz" atomRefs="a3 a4"/> 
			</peak>            
		    <peak id="p3" title="Hc" atomRefs="a3 a4"
		        peakShape="sharp" xUnits="unit:ppm" xValue="8.0">
		        <peakStructure type="coupling" peakMultiplicity="doublet11" 
		           value="15" units="unit:hertz" atomRefs="a2"/> 
			</peak>            
	    </peakList>
	</spectrum>
</cml>
            
Where a peak is due to symmetry-related atoms there are different couplings to symmetrical atoms. Thus in an AA'BB' system there can be two couplings to the A atoms and we need nested peakStructures to represent these. In this case the order of the atoms in the peak@atomRefs maps to the order of the grandchildren. See example2.
                <!- AA'BB' where there are 2 Ha and 2 Hb with two couplings
    J1 Ha ... Hb and Ha' ... Hb'
    J2 Ha ... Hb' and Ha' ... Hb
    ->
    <molecule id="m1">
      <atomArray>
        <atom id="a1" elementType="H">
          <label value="Ha"/>
        </atom>
        <atom id="a2" elementType="H">
          <label value="Ha'"/>
        </atom>
        <atom id="a3" elementType="H">
          <label value="Hb"/>
        </atom>
        <atom id="a4" elementType="H">
          <label value="Hb'"/>
        </atom>
      </atomArray>
    </molecule>
	<spectrum id="spectrum2" title="test peaks">
	    <peakList>
	        <!- the ORDER of a1 and a2 is linked to the ORDER of the
	        grandchildren elements, i.e. a1 couples to atoms in ps11 and ps21 
	        while a2 relates to atoms is ps21 and ps22
	        -> 
		    <peak id="p1" title="Ha" atomRefs="a1, a2"
		        peakShape="sharp" xUnits="unit:ppm" xValue="6.0">
		        <peakStructure id="ps1" type="coupling" peakMultiplicity="doublet" 
		           value="10" units="unit:hertz">
		           <peakStructure id="ps11" atomRefs="a3"/> 
		           <peakStructure id="ps12" atomRefs="a4"/> 
		        </peakStructure>		        
		        <peakStructure id="ps2" type="coupling" peakMultiplicity="doublet" 
		           value="2" units="unit:hertz">
		           <peakStructure id="ps21" atomRefs="a4"/> 
		           <peakStructure id="ps22" atomRefs="a3"/> 
		        </peakStructure>		        
			</peak>            
	    </peakList>
	</spectrum>
</cml>
XML Instance Representation
<peakStructure
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
peakMultiplicity=" peakMultiplicityType [0..1] ?"
type=" peakStructureTypeType [0..1] ?"
peakShape=" peakShapeType [0..1] ?"
value=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?"
atomRefs=" atomRefArrayType [0..1] ?"
bondRefs=" bondRefArrayType [0..1] ?">
<metadataList> ... </metadataList> [0..*] ?
<peakStructure> ... </peakStructure> [0..*] ?
</peakStructure>
Schema Component Representation
<xsd:element name="peakStructure" id="el.peakStructure">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" peakStructure " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" peakMultiplicity "/>
<xsd:attributeGroup ref=" peakStructureType "/>
<xsd:attributeGroup ref=" peakShape "/>
<xsd:attributeGroup ref=" value "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" atomRefs "/>
<xsd:attributeGroup ref=" bondRefs "/>
</xsd:complexType>
</xsd:element>
top

Element: plane3

Name plane3
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A plane in 3-space.
An oriented plane of indefinite extent.
XML Instance Representation
<plane3
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?">
plane3Type
</plane3>
Schema Component Representation
<xsd:element name="plane3" id="el.plane3">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" plane3Type ">
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" units "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: point3

Name point3
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A point in 3-space.
XML Instance Representation
<point3
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?">
point3Type
</point3>
Schema Component Representation
<xsd:element name="point3" id="el.point3">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" point3Type ">
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" units "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: potential

Name potential
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An explicit potential.
This represents the actual function for the potential (i.e. with explicit values) rather than the functional form, which will normally be referenced from this.
XML Instance Representation
<potential
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
form=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<arg> ... </arg> [1]
End Choice
</potential>
Schema Component Representation
<xsd:element name="potential" id="el.potential">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" arg "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" form "/>
</xsd:complexType>
</xsd:element>
top

Element: potentialForm

Name potentialForm
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The functional form of a potential.
This has generic arguments and parameters rather than explicit ones. It is essentially a mathematical function, expressed currently in reverse Polish notation.
XML Instance Representation
<potentialForm
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
name=" xsd:string [0..1] ?">
Start Choice [0..*]
<arg> ... </arg> [1]
End Choice
Start Choice [0..*]
<parameter> ... </parameter> [1]
End Choice
Start Choice [0..1]
<expression> ... </expression> [1]
End Choice
</potentialForm>
Schema Component Representation
<xsd:element name="potentialForm" id="el.potentialForm">
<xsd:complexType>
<xsd:sequence>
<-- <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="annotation"/> </xsd:choice> -->
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" arg "/>
</xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" parameter "/>
</xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="1">
<xsd:element ref=" expression "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" name "/>
</xsd:complexType>
</xsd:element>
top

Element: potentialList

Name potentialList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for explicit potentials.
Experimental.
XML Instance Representation
<potentialList
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<potential> ... </potential> [1]
End Choice
</potentialList>
Schema Component Representation
<xsd:element name="potentialList" id="el.potentialList">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" potential "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: product

Name product
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A product within a productList.
product describes a product species which is produced in a reaction. See reactant for discussion of catalysis and solvents.
XML Instance Representation
<product
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?"
count=" positiveNumberType [0..1] ?"
state=" stateType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
Start Choice [0..*]
<identifier> ... </identifier> [0..1]
<label> ... </label> [0..1]
<name> ... </name> [0..1]
End Choice
<molecule> ... </molecule> [0..1]
<electron> ... </electron> [0..1]
<substance> ... </substance> [0..1]
<substanceList> ... </substanceList> [0..1]
<formula> ... </formula> [0..1]
<amount> ... </amount> [0..*]
</product>
Schema Component Representation
<xsd:element name="product" id="el.product">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" identifier " minOccurs="0"/>
<xsd:element ref=" label " minOccurs="0"/>
<xsd:element ref=" name " minOccurs="0"/>
</xsd:choice>
<xsd:element ref=" molecule " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" electron " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" substance " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" substanceList " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" formula " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" amount " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" state "/>
</xsd:complexType>
</xsd:element>
top

Element: productList

Name productList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more products.

productList can contain several products. These may be related in several ways, including

  • single list of products
  • grouping of products of parallel reactions
. A productList can contain nested productLists. The semantics of this are currently undefined.

XML Instance Representation
<productList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?"
count=" positiveNumberType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..*]
Start Choice [0..*]
<productList> ... </productList> [1]
<product> ... </product> [1]
End Choice
</productList>
Schema Component Representation
<xsd:element name="productList" id="el.productList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" productList "/>
<xsd:element ref=" product "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" count "/>
</xsd:complexType>
</xsd:element>
top

Element: property

Name property
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for a property.
property can contain one or more children, usually scalar, array or matrix. The dictRef attribute is required, even if there is a single scalar child with the same dictRef. The property may have a different dictRef from the child, thus providing an extension mechanism.

Properties may have a state attribute to distinguish the state of matter

XML Instance Representation
<property
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?"
state=" stateType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..*]
Start Choice [0..*]
<scalar> ... </scalar> [1]
<array> ... </array> [1]
<matrix> ... </matrix> [1]
End Choice
</property>
Schema Component Representation
<xsd:element name="property" id="el.property">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" scalar "/>
<xsd:element ref=" array "/>
<xsd:element ref=" matrix "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" state "/>
</xsd:complexType>
</xsd:element>
top

Element: propertyList

Name propertyList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more properties.
propertyList can contain several properties. These include (but are not limited to) observations, or numeric quantities.
XML Instance Representation
<propertyList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..*]
Start Choice [0..*]
<property> ... </property> [1]
<propertyList> ... </propertyList> [1]
<observation> ... </observation> [1]
End Choice
</propertyList>
Schema Component Representation
<xsd:element name="propertyList" id="el.propertyList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" property "/>
<xsd:element ref=" propertyList "/>
<xsd:element ref=" observation "/>
</xsd:choice>
<-- <xsd:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>-->
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: reactant

Name reactant
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A reactant within a reactantList.
reactant describes a reactant species which takes part in a reaction. Catalysts and supports are not normally classified as reactants, but this is subjective. Enzymes (or parts of enzymes) may well be reactants, as could be substances which underwent chemical change but were restored to their original state. reactant is a powerful concept as it can support stoichiometry (atom and molecule counting), mapping (for mechanisms), etc. Solvents are best contained within substanceList.
XML Instance Representation
<reactant
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?"
count=" positiveNumberType [0..1] ?"
state=" stateType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
Start Choice [0..*]
<identifier> ... </identifier> [1]
<label> ... </label> [1]
<name> ... </name> [1]
End Choice
<molecule> ... </molecule> [0..1]
<electron> ... </electron> [0..1]
<substance> ... </substance> [0..1]
<substanceList> ... </substanceList> [0..1]
<formula> ... </formula> [0..1]
<amount> ... </amount> [0..*]
</reactant>
Schema Component Representation
<xsd:element name="reactant" id="el.reactant">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" identifier "/>
<xsd:element ref=" label "/>
<xsd:element ref=" name "/>
</xsd:choice>
<xsd:element ref=" molecule " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" electron " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" substance " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" substanceList " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" formula " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" amount " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" state "/>
</xsd:complexType>
</xsd:element>
top

Element: reactantList

Name reactantList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more reactants.

reactantList can contain several reactants. These may be related in several ways, including

  • lists of related reactants
  • reactant schemes
  • multi-step reactants
  • parallel and/or coupled reactants
. A reactantList can contain nested reactantLists. The semantics of this are currently undefined.

XML Instance Representation
<reactantList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" xsd:string [0..1] ?"
count=" positiveNumberType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<name> ... </name> [0..1]
Start Choice [0..*]
<reactantList> ... </reactantList> [1]
<reactant> ... </reactant> [1]
End Choice
</reactantList>
Schema Component Representation
<xsd:element name="reactantList" id="el.reactantList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="1"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" reactantList "/>
<xsd:element ref=" reactant "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" count "/>
</xsd:complexType>
</xsd:element>
top

Element: reaction

Name reaction
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A chemical reaction or reaction step.

reaction is a container for reactants, products, conditions, properties and possibly other information relating to the reaction, often within a reactionList. Partial semantics exist:

  • name the name(s) of the reaction
  • reactantList (normally only one) the grouped reactants
  • spectatorList substances with well-defined chemistry which are involved in the reaction but do not change. Examples are side groups in proteins, cofactors, etc. The division between specattor and substance is subjective.
  • substance or substanceList substances present in the reaction but not classified as reactants. Examples might be enzymes, catalysts, solvents, supports, workup, etc.
  • condition conditions of the reaction. These may be text strings, but ideally will have clearer semantics such as scalars for temperature, etc.
  • productList the grouped products. This allows for parallel reactions or other semantics.
  • property properties (often physical) associated with the reaction. Examples might be heat of formation, kinetics or equilibrium constant.

Reaction normally refers to an overall reaction or a step within a reactionList. For a complex "reaction", such as in enzymes or chain reactions, it may be best to use reactionScheme to hold the overall reaction and a reactionList of the individual reaction steps.

XML Instance Representation
<reaction
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
format=" reactionFormatType [0..1] ?"
ref=" refType [0..1] ?"
role=" reactionRoleType [0..1] ?"
type=" reactionTypeType [0..1] ?"
state=" stateType [0..1] ?"
atomMap=" idType [0..1] ?"
electronMap=" idType [0..1] ?"
bondMap=" xsd:QName [0..1] ?"
yield=" occupancyType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<label> ... </label> [0..*]
Start Choice [0..*]
<name> ... </name> [0..*]
<identifier> ... </identifier> [0..*]
End Choice
Start Sequence [0..*]
<reactiveCentre> ... </reactiveCentre> [0..*]
<mechanism> ... </mechanism> [0..*]
<reactantList> ... </reactantList> [0..*]
<spectatorList> ... </spectatorList> [0..*]
<substanceList> ... </substanceList> [0..*]
<conditionList> ... </conditionList> [0..*]
<transitionState> ... </transitionState> [0..*]
<productList> ... </productList> [0..*]
<propertyList> ... </propertyList> [0..*]
<map> ... </map> [0..*]
<object> ... </object> [0..*] ?
End Sequence
</reaction>
Schema Component Representation
<xsd:element name="reaction" id="el.reaction">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" label " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" identifier " minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" reactiveCentre " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" mechanism " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" reactantList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" spectatorList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" substanceList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" conditionList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" transitionState " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" productList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" propertyList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" map " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" object " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" reactionFormat "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" reactionRole "/>
<xsd:attributeGroup ref=" reactionType "/>
<xsd:attributeGroup ref=" state "/>
<xsd:attributeGroup ref=" atomMap "/>
<xsd:attributeGroup ref=" electronMap "/>
<xsd:attributeGroup ref=" bondMap "/>
<xsd:attributeGroup ref=" yield "/>
</xsd:complexType>
</xsd:element>
top

Element: reactionList

Name reactionList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more reactions or reactionSchemes with no interrelations.
A reactionList aggregates reactions and reactionSchemes but implies no semantics. The most common uses are to create small collections of reactions (e.g. databases or publications).
XML Instance Representation
<reactionList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
name=" xsd:string [0..1] ?"
ref=" refType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
Start Choice [1]
<reactionScheme> ... </reactionScheme> [0..*]
<reaction> ... </reaction> [0..*]
End Choice
</reactionList>
Schema Component Representation
<xsd:element name="reactionList" id="el.reactionList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice>
<xsd:element ref=" reactionScheme " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" reaction " minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: reactionScheme

Name reactionScheme
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for two or more related reactions and their relationships.
Where reactions are closely related (and often formally dependent on each other) they should be contained within the reactionStepList of a reactionScheme. The semantics which have informed this design include:
  • Steps within an organic synthesis.
  • Two or more individual (primitive) steps provding the detailed mechanism for an overall reaction.
  • Coupled or sequential reactions within biochemical pathways.

This design is general because "reaction" is used in several ways. A biochemical pathway (e.g. oxidation of glucose to CO2 and water) involves many coupled enzyme reactions proceeding both in parallel and in sequence. Each of these steps ("reactions" in their own right) is itself complex and can include several mechanistics steps which are themselves reactions with products, reactants, etc. reactionScheme can therefore include reactionStepLists (with more reactionScheme children) which provide a more detailed view of the individual components.

Where a set of reactions are primitives...

XML Instance Representation
<reactionScheme
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
role=" reactionRoleType [0..1] ?"
type=" reactionTypeType [0..1] ?"
state=" stateType [0..1] ?"
format=" reactionFormatType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
Start Choice [0..*]
<label> ... </label> [1]
<name> ... </name> [1]
<identifier> ... </identifier> [1]
End Choice
Start Choice [0..*]
<reaction> ... </reaction> [1]
<reactionStepList> ... </reactionStepList> [1]
<reactionScheme> ... </reactionScheme> [1]
End Choice
</reactionScheme>
Schema Component Representation
<xsd:element name="reactionScheme" id="el.reactionScheme">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" label "/>
<xsd:element ref=" name "/>
<xsd:element ref=" identifier "/>
</xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" reaction "/>
<xsd:element ref=" reactionStepList "/>
<xsd:element ref=" reactionScheme "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" reactionRole "/>
<xsd:attributeGroup ref=" reactionType "/>
<xsd:attributeGroup ref=" state "/>
<xsd:attributeGroup ref=" reactionFormat "/>
</xsd:complexType>
</xsd:element>
top

Element: reactionStep

Name reactionStep
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A child of reactionStepList and a container for reaction or reactionScheme.

reactionStep is always contained within reactionStepList and is designed to manage "sub-reactions" which have close relationships. These will often involve reactions which, taken together, describe a higher level reaction or reaction type. Examples are:

  • biochemical pathways
  • synthetic reaction schemes
  • multi-step reactions
  • parallel and/or coupled reactions
. A reactionStep normally contains a single reaction or reactionScheme. It can have attributes such as yield and ratio which can be used by the parent reactionStepList.

XML Instance Representation
<reactionStep
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
yield=" occupancyType [0..1] ?"
ratio=" occupancyType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
Start Choice [0..*]
<name> ... </name> [1]
<label> ... </label> [1]
End Choice
Start Choice [0..*]
<reactionScheme> ... </reactionScheme> [1]
<reaction> ... </reaction> [1]
End Choice
</reactionStep>
Schema Component Representation
<xsd:element name="reactionStep" id="el.reactionStep">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" name "/>
<xsd:element ref=" label "/>
</xsd:choice>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" reactionScheme "/>
<xsd:element ref=" reaction "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" yield "/>
<xsd:attributeGroup ref=" ratio "/>
</xsd:complexType>
</xsd:element>
top

Element: reactionStepList

Name reactionStepList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more related reactionSteps.

reactionStepList is always contained within reactionScheme and is designed to manage "sub-reactions" which have close relationships. These will often involve reactions which, taken together, describe a higher level reaction or reaction type. Examples are:

  • biochemical pathways
  • synthetic reaction schemes
  • multi-step reactions
  • parallel and/or coupled reactions
. A reactionStepList contains reactionSteps (each of which contains reactions and/or reactionSchemes (e.g. where part of the process is known in greater detail)). It may not directly contain child reactionStepLists.

The child reactionSteps can have attributes such as yield and ratio which describe the relationship of the component steps.

Guidance on use:

  • reactionScheme describes a complex of reactions with metadata, one (or more) overall reactions and a reactionStepList with the overall component reactions.
  • reactionStepList aggregates and structures the individual subreactions.
  • reactionList is a container for reactions and reactionSchemes with no semantics (e.g. a book or database of selected reactions).

XML Instance Representation
<reactionStepList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
type=" xsd:string [0..1] ?"
format=" reactionFormatType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
Start Choice [0..*]
<name> ... </name> [1]
<label> ... </label> [1]
End Choice
Start Sequence [0..*]
<reactionStep> ... </reactionStep> [1]
End Sequence
</reactionStepList>
Schema Component Representation
<xsd:element name="reactionStepList" id="el.reactionStepList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" name "/>
<xsd:element ref=" label "/>
</xsd:choice>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" reactionStep "/>
</xsd:sequence>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" type "/>
<xsd:attributeGroup ref=" reactionFormat "/>
</xsd:complexType>
</xsd:element>
top

Element: reactiveCentre

Name reactiveCentre
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The reactiveCentre in a reaction.
This describes the set(s) of bonds and atoms involved in the reaction. The semantics are flexible, but a common usage would be to create atomSet(s) and bondSet(s) mapping to groups which undergo changes.
XML Instance Representation
<reactiveCentre
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
<description> ... </description> [0..1]
Start Choice [0..*]
<atomTypeList> ... </atomTypeList> [1]
<bondTypeList> ... </bondTypeList> [1]
<atomSet> ... </atomSet> [1]
<bondSet> ... </bondSet> [1]
End Choice
</reactiveCentre>
Schema Component Representation
<xsd:element name="reactiveCentre" id="el.reactiveCentre">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" description " minOccurs="0"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" atomTypeList "/>
<xsd:element ref=" bondTypeList "/>
<xsd:element ref=" atomSet "/>
<xsd:element ref=" bondSet "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: region

Name region
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A region of the system.
Under development. A subdivision of the system to which special protocols or properties may be attached. Typical regions could be defined by the presence of atoms belonging to an atomSet or geometrical boundaries.
A region element will not always contain other elements, but may have references from other elements. It may create a protocol, e.g. atoms within a region might be replaced by a continuum model or be subject to a field. Semantics yet to be determined.
Regions can be created by the unions of two or more regions. This allows a region to be built from a series of (say) spheres or boxes filling space.
XML Instance Representation
<region
sphere3=" sphere3Type [0..1] ?"
box3=" box3Type [0..1] ?"
atomSetRef=" refType [0..1] ?"
regionRefs=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"/>
Schema Component Representation
<xsd:element name="region" id="el.region">
<xsd:complexType>
<xsd:sequence/>
<xsd:attributeGroup ref=" sphere3 "/>
<xsd:attributeGroup ref=" box3 "/>
<xsd:attributeGroup ref=" atomSetRef "/>
<xsd:attributeGroup ref=" regionRefs "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: relatedEntry

Name relatedEntry
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An entry related in some way to a dictionary entry.
The range of relationships is not restricted but should include parents, aggregation, seeAlso and so on. DataCategories from ISO12620 can be referenced through the namespaced mechanism.
XML Instance Representation
<relatedEntry
type=" relatedEntryTypeType [0..1] ?"
href=" xsd:anyURI [0..1] ?"/>
Schema Component Representation
<xsd:element name="relatedEntry" id="el.relatedEntry">
<xsd:complexType mixed="true">
<xsd:attributeGroup ref=" relatedEntryType "/>
<xsd:attributeGroup ref=" href "/>
</xsd:complexType>
</xsd:element>
top

Element: sample

Name sample
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An analytical or spectral sample.
The sample should contain information on what things were in the sample and their roles. It can include molecule, substance and substanceList. Typical rolos include solvent, mulling agents, salt disks, molecular supports, etc. but should not cover apparatus or conditions.
XML Instance Representation
<sample
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
state=" stateType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
Start Choice [0..*]
<molecule> ... </molecule> [1] ?
<substance> ... </substance> [1] ?
<substanceList> ... </substanceList> [1] ?
End Choice
</sample>
Schema Component Representation
<xsd:element name="sample" id="el.sample">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" molecule "/>
<xsd:element ref=" substance "/>
<xsd:element ref=" substanceList "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" state "/>
</xsd:complexType>
</xsd:element>
top

Element: scalar

Name scalar
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An element to hold scalar data.
scalar holds scalar data under a single generic container. The semantics are usually resolved by linking to a dictionary. scalar defaults to a scalar string but has attributes which affect the type.

scalar does not necessarily reflect a physical object (for which object should be used). It may reflect a property of an object such as temperature, size, etc.

Note that normal Schema validation tools cannot validate the data type of scalar (it is defined as string), but that a temporary schema can be constructed from the type and used for validation. Also the type can be contained in a dictionary and software could decide to retrieve this and use it for validation.

XML Instance Representation
<scalar
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
dataType=" dataTypeType [0..1] ?"
errorValue=" errorValueType [0..1] ?"
errorBasis=" errorBasisType [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
ref=" refType [0..1] ?"
units=" unitsType [0..1] ?"
constantToSI=" xsd:double [0..1] ?"
multiplierToSI=" xsd:double [0..1] ?"
unitType=" xsd:string [0..1] ?">
xsd:string
</scalar>
Schema Component Representation
<xsd:element name="scalar" id="el.scalar">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" dataType "/>
<xsd:attributeGroup ref=" errorValue "/>
<xsd:attributeGroup ref=" errorBasis "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" constantToSI "/>
<xsd:attributeGroup ref=" multiplierToSI "/>
<xsd:attributeGroup ref=" unitType "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: spectator

Name spectator
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A spectator object in a reaction.
Objects are often present during a reaction which are not formally involved in bond breaking/formation and which are not modified during the reaction. They may be catalysts, but may also be objects which in some way constrain or help the reaction to take place (surfaces, micelles, groups in enzyme active sites, etc.). In some cases molecules present in a reaction mixture may act as spectators in steps in which they are not transformed.
XML Instance Representation
<spectator
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
role=" xsd:string [0..1] ?">
<metadataList> ... </metadataList> [0..*]
Start Choice [0..*]
<label> ... </label> [1]
<molecule> ... </molecule> [1]
<object> ... </object> [1]
End Choice
</spectator>
Schema Component Representation
<xsd:element name="spectator" id="el.spectator">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" label "/>
<xsd:element ref=" molecule "/>
<xsd:element ref=" object "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" role "/>
</xsd:complexType>
</xsd:element>
top

Element: spectatorList

Name spectatorList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for spectators in a reaction.
XML Instance Representation
<spectatorList
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Sequence [1..*]
<spectator> ... </spectator> [1]
End Sequence
</spectatorList>
Schema Component Representation
<xsd:element name="spectatorList" id="el.spectatorList">
<xsd:complexType>
<xsd:sequence maxOccurs="unbounded">
<xsd:element ref=" spectator "/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: spectrum

Name spectrum
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A spectrum and relevant data or metadata.
The spectrum construct can hold metadataList, sample (which can contain molecule), conditionList (mainly for physical/chemical conditions, not instrumental), spectrumData for the actual data and instrumental settings/procedure and peakList for the assigned peaks. This approach puts the spectrum as the primary object of interest. It could also be possible to make spectrum a child of molecule (although a reference using ref might be preferable).
XML Instance Representation
<spectrum
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
moleculeRef=" moleculeRefType [0..1] ?"
type=" spectrumTypeType [0..1] ?"
format=" formatType [0..1] ?"
measurement=" measurementType [0..1] ?"
ft=" ftType [0..1] ?"
state=" stateType [0..1] ?">
Start Choice [0..*]
<metadataList> ... </metadataList> [0..*]
<sample> ... </sample> [0..*] ?
<parameterList> ... </parameterList> [0..*]
<substanceList> ... </substanceList> [0..*]
<conditionList> ... </conditionList> [0..*] ?
<spectrumData> ... </spectrumData> [0..*]
<peakList> ... </peakList> [0..*] ?
End Choice
</spectrum>
Schema Component Representation
<xsd:element name="spectrum" id="el.spectrum">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" sample " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" parameterList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" substanceList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" conditionList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" spectrumData " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" peakList " minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" moleculeRef "/>
<xsd:attributeGroup ref=" spectrumType "/>
<xsd:attributeGroup ref=" format "/>
<xsd:attributeGroup ref=" measurement "/>
<xsd:attributeGroup ref=" ft "/>
<xsd:attributeGroup ref=" state "/>
</xsd:complexType>
</xsd:element>
top

Element: spectrumData

Name spectrumData
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Data for the spectrum.
This is primarily to record the data in interchangeable format and machine and manufacturers settings and can include other MLs in this area (AniML, SpectroML, etc.). We recommend ASCII representations of data and this is the only format that CMLSpect implementers have to support, but we also allow for the carriage of JCAMP and other data (in ML wrappers such as AniML). All numeric data should carry units and dictionary references if possible to allow for semantic interoperability.
XML Instance Representation
<spectrumData
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?">
Start Sequence [0..1]
<xaxis> ... </xaxis> [1] ?
<yaxis> ... </yaxis> [1..*] ?
End Sequence
</spectrumData>
Schema Component Representation
<xsd:element name="spectrumData" id="el.spectrumData">
<xsd:complexType>
<xsd:sequence>
<xsd:sequence minOccurs="0" maxOccurs="1">
<xsd:element ref=" xaxis "/>
<xsd:element ref=" yaxis " maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: spectrumList

Name spectrumList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for one or more spectra.

spectrumList can contain several spectra. These may be related in several ways, including

  • lists of related spectra
  • bundle of common analytical spectra (NMR, IR, UV...)
  • repeat measurements
. A spectrumList can contain nested spectrumLists.

XML Instance Representation
<spectrumList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
moleculeRef=" moleculeRefType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<list> ... </list> [0..*]
Start Choice [1]
<spectrumList> ... </spectrumList> [0..*]
<spectrum> ... </spectrum> [0..*]
End Choice
</spectrumList>
Schema Component Representation
<xsd:element name="spectrumList" id="el.spectrumList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" list " minOccurs="0" maxOccurs="unbounded"/>
<xsd:choice>
<xsd:element ref=" spectrumList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" spectrum " minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" moleculeRef "/>
</xsd:complexType>
</xsd:element>
top

Element: sphere3

Name sphere3
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A sphere in 3-space.
XML Instance Representation
<sphere3
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?">
sphere3Type
</sphere3>
Schema Component Representation
<xsd:element name="sphere3" id="el.sphere3">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" sphere3Type ">
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" units "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: stmml

Name stmml
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
An element to hold stmml data.
stmml holds stmml data under a single generic container. Other namespaces may be present as children. No semantics implied.
XML Instance Representation
<stmml
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Sequence [0..*]
Allow any elements from any namespace (lax validation). [1]
End Sequence
</stmml>
Schema Component Representation
<xsd:element name="stmml" id="el.stmml">
<xsd:complexType>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:any processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: string

Name string
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
CML-1 dataType (DEPRECATED).
XML Instance Representation
<string
builtin=" xsd:string [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?">
xsd:string
</string>
Schema Component Representation
<xsd:element name="string" id="el.string">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" builtin "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: stringArray

Name stringArray
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
CML-1 dataType DEPRECATED.
XML Instance Representation
<stringArray
builtin=" xsd:string [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
size=" sizeType [0..1] ?"
delimiter=" delimiterType [0..1] ?">
xsd:string
</stringArray>
Schema Component Representation
<xsd:element name="stringArray" id="el.stringArray">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" builtin "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" size "/>
<xsd:attributeGroup ref=" delimiter "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: substance

Name substance
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A chemical substance.
substance represents a chemical substance which is deliberately very general. It can represent things that may or may not be molecules, can and cannot be stored in bottles and may or may not be microscopic. Solutions and mixtures can be described by _substanceList_s of substances. The type attribute can be used to give qualitative information characterising the substance ("granular", "90%", etc.) and _role_ to describe the role in process ("desiccant", "support", etc.). There is currently no controlled vocabulary. Note that reaction is likely to have more precise semantics. The amount of a substance is controlled by the optional _amount_ child.


Added property as a child 2002-12-29

XML Instance Representation
<substance
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
type=" xsd:string [0..1] ?"
role=" xsd:string [0..1] ?"
ref=" refType [0..1] ?"
count=" positiveNumberType [0..1] ?"
state=" stateType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<amount> ... </amount> [0..1]
Start Choice [1]
<molecule> ... </molecule> [0..*]
<name> ... </name> [0..*]
<property> ... </property> [0..*]
End Choice
</substance>
Schema Component Representation
<xsd:element name="substance" id="el.substance">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" amount " minOccurs="0"/>
<xsd:choice>
<xsd:element ref=" molecule " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" name " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" property " minOccurs="0" maxOccurs="unbounded"/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" type "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" count "/>
<xsd:attributeGroup ref=" state "/>
</xsd:complexType>
</xsd:element>
top

Element: substanceList

Name substanceList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A list of chemical substances.
Deliberately very general - see substance. substanceList is designed to manage solutions, mixtures, etc. and there is a small enumerated controlled vocabulary, but this can be extended through dictionaries.

substanceList can have an amount child. This can indicate the amount of a solution or mixture; this example describes 100 ml of 0.1M NaOH(aq). Although apparently longwinded it is precise and fully machine-interpretable

Added role attribute, 2003-03-12.
XML Instance Representation
<substanceList
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
type=" substanceListTypeType [0..1] ?"
role=" xsd:string [0..1] ?"
ref=" refType [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<amount> ... </amount> [0..1]
<substance> ... </substance> [0..*]
<propertyList> ... </propertyList> [0..1]
</substanceList>
Schema Component Representation
<xsd:element name="substanceList" id="el.substanceList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" amount " minOccurs="0"/>
<-- <xsd:choice>-->
<xsd:element ref=" substance " minOccurs="0" maxOccurs="unbounded"/>
<-- PMR 2003-01-26 <xsd:sequence> <xsd:element ref="scalar" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="array" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="matrix" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="list" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> -->
<xsd:element ref=" propertyList " minOccurs="0"/>
<-- </xsd:choice>-->
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" substanceListType "/>
<xsd:attributeGroup ref=" role "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:complexType>
</xsd:element>
top

Element: symmetry

Name symmetry
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Molecular, crystallographic or other symmetry.

symmetry provides a label and/or symmetry operations for molecules or crystals. Point and spacegroups can be specified by strings, though these are not enumerated, because of variability in syntax (spaces, case-sensitivity, etc.), potential high symmetries (e.g. TMV disk is D17) and non-standard spacegroup settings. Provision is made for explicit symmetry operations through <matrix> child elements.

By default the axes of symmetry are defined by the symbol - thus C2v requires z to be the unique axis, while P21/c requires b/y. Spacegroups imply the semantics defined in International Tables for Crystallography, (Int Union for Cryst., Munksgaard). Point groups are also defined therein.

The element may also be used to give a label for the symmetry species (irreducible representation) such as "A1u" for a vibration or orbital.

The matrices should be 3x3 for point group operators and 3x4 for spacegroup operators. The use of crystallographic notation ("x,1/2+y,-z") is not supported - this would be <matrix>1 0 0 0.0 0 1 0 0.5 0 0 1 0.0<matrix>.

The default convention for point group symmetry is Schoenflies and for spacegroups is "H-M". Other conventions (e.g. "Hall") must be specfied through the convention attribute.

This element implies that the Cartesians or fractional coordinates in a molecule are oriented appropriately. In some cases it may be useful to specify the symmetry of an arbitarily oriented molecule and the <molecule> element has the attribute symmetryOriented for this purpose.

It may be better to use transform3 to hold the symmetry as they have fixed shape and have better defined mathematical operators.

2005-11-03 PMR. Added transform3 as children.
XML Instance Representation
<symmetry
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
pointGroup=" xsd:string [0..1] ?"
spaceGroup=" xsd:string [0..1] ?"
irreducibleRepresentation=" xsd:string [0..1] ?"
number=" xsd:nonNegativeInteger [0..1] ?">
<matrix> ... </matrix> [0..*]
<transform3> ... </transform3> [0..*]
</symmetry>
Schema Component Representation
<xsd:element name="symmetry" id="el.symmetry">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" matrix " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" transform3 " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" pointGroup "/>
<xsd:attributeGroup ref=" spaceGroup "/>
<xsd:attributeGroup ref=" irreducibleRepresentation "/>
<xsd:attributeGroup ref=" number "/>
</xsd:complexType>
</xsd:element>
top

Element: system

Name system
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The complete system of components in a calculation.
There is no controlled vocabulary.
XML Instance Representation
<system
dimensionality=" xsd:positiveInteger [0..1] ?"
periodicity=" xsd:positiveInteger [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Allow any elements from any namespace (lax validation). [0..*]
</system>
Schema Component Representation
<xsd:element name="system" id="el.system">
<xsd:complexType>
<xsd:sequence>
<xsd:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dimensionality "/>
<xsd:attributeGroup ref=" periodicity "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: table

Name table
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A rectangular table of any quantities.

By default table represents a rectangular table of any simple quantities representable as XSD or CML dataTypes. There are three layouts, columnwise, rowwise and without markup. In all cases it is essential that the columns, whether explicit or otherwise, are homogeneous within the column. Also the metadata for each column must be given explicitly <ul> <li> columns: For the first columns columns, where each column is a (homogeneous) array of size rows data. This is the "normal" orientation of data tables but the table display could be transposed by XSLT transformation if required. Access is to columns, and thence to the data within them. DataTyping, delimiters, etc are delegated to the arrays, which must all be of the same size. </li> <li> rows: with explicit <tt> row</tt>s. The metadata is carried in a <tt> header</tt> element. Within each row the data are whitespace (or delimiter) separated.</li> <li> content: with a single <tt> content</tt> with columns moving fastest. The metadata is carried in a <tt> header</tt> element. Within the content the data are whitespace (or delimiter) separated.</li> </ul> For verification it is recommended that tables carry rows and columns attributes.

XML Instance Representation
<table
rows=" sizeType [0..1] ?"
columns=" sizeType [0..1] ?"
units=" unitsType [0..1] ?"
dataType=" dataTypeType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [1]
<array> ... </array> [0..*]
<tableHeader> ... </tableHeader> [1]
Start Choice [1]
<trow> ... </trow> [0..*]
<tableContent> ... </tableContent> [0..1]
End Choice
End Choice
</table>
Schema Component Representation
<xsd:element name="table" id="el.table">
<xsd:complexType>
<xsd:sequence>
<xsd:choice>
<-- columnwise arrays -->
<xsd:element ref=" array " minOccurs="0" maxOccurs="unbounded"/>
<-- OR header, followed by rows or content -->
<xsd:sequence>
<xsd:element ref=" tableHeader " minOccurs="1" maxOccurs="1"/>
<xsd:choice>
<-- rowwise rows -->
<xsd:element ref=" trow " minOccurs="0" maxOccurs="unbounded"/>
<-- unmarked content -->
<xsd:element ref=" tableContent " minOccurs="0" maxOccurs="1"/>
</xsd:choice>
</xsd:sequence>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" rows "/>
<xsd:attributeGroup ref=" columns "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" dataType "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: tableContent

Name tableContent
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Unmarked content of a table.

Metadata for rows must be defined in tableHeader. The elements of the table are ASCII strings in this content. They can be separated by whitespace or by a defined single character delimiter (see array for more information).

XML Instance Representation
<tableContent
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
delimiter=" delimiterType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
xsd:string
</tableContent>
Schema Component Representation
<xsd:element name="tableContent" id="el.tableContent">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" delimiter "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: tableHeader

Name tableHeader
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Header for a table.

Used when the table has trow children or tableContent child. Contains the metadata as trows.

XML Instance Representation
<tableHeader
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
<trow> ... </trow> [0..*]
</tableHeader>
Schema Component Representation
<xsd:element name="tableHeader" id="el.tableHeader">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" trow " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: tableRow

Name tableRow
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
Explicit row of a table.

Metadata for rows must be defined in tableHeader.

XML Instance Representation
<tableRow
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
delimiter=" delimiterType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
xsd:string
</tableRow>
Schema Component Representation
<xsd:element name="tableRow" id="el.tableRow">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" xsd:string ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" delimiter "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: tcell

Name tcell
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A cell in a row of a table.
tcell may either carry the header information for a column OR be a dat container of the table. Normally it contains simpleContent, but may also contain a single child element. It should NOT contain multiple children of any sort.
XML Instance Representation
<tcell
units=" unitsType [0..1] ?"
dataType=" dataTypeType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
<!-- Mixed content -->
Allow any elements from any namespace (lax validation). [0..1]
</tcell>
Schema Component Representation
<xsd:element name="tcell" id="el.tcell">
<xsd:complexType mixed="true">
<xsd:sequence minOccurs="1">
<xsd:any processContents="lax" minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" dataType "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: torsion

Name torsion
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A torsion angle ("dihedral") between 4 distinct atoms.

The atoms need not be formally bonded. It can be used for:

  • Recording experimentally determined torsion angles (e.g. in a crystallographic paper).
  • Providing the torsion component for internal coordinates (e.g. z-matrix).

Note that the order of atoms is important.

2006-02-07: PMR. Fixed torsionAngleUnits
XML Instance Representation
<torsion
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
atomRefs4=" atomRefs4Type [0..1] ?"
units=" angleUnitsType [0..1] ?"
errorValue=" errorValueType [0..1] ?"
errorBasis=" errorBasisType [0..1] ?"
min=" minType [0..1] ?"
max=" maxType [0..1] ?"
ref=" refType [0..1] ?">
torsionAngleType
</torsion>
Schema Component Representation
<xsd:element name="torsion" id="el.torsion">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" torsionAngleType ">
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" atomRefs4 "/>
<xsd:attributeGroup ref=" angleUnits "/>
<xsd:attributeGroup ref=" errorValue "/>
<xsd:attributeGroup ref=" errorBasis "/>
<xsd:attributeGroup ref=" min "/>
<xsd:attributeGroup ref=" max "/>
<xsd:attributeGroup ref=" ref "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: transform3

Name transform3
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A transform in 3-space.
A 3-D transform. Conventionally a 4x4 matrix.
XML Instance Representation
<transform3
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?">
matrix44Type
</transform3>
Schema Component Representation
<xsd:element name="transform3" id="el.transform3">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" matrix44Type ">
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: transitionState

Name transitionState
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The transition state in a reaction.

This will normally contain a molecule which in its 2D representation will have partial bonds. These are yet to be formalized for the molecule element.

Although spectators may stabilise or otherwise interact with the transitionState they are not contained within it.

A propertyList is provided to capture transitionState properties.

Still experimental.

XML Instance Representation
<transitionState
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
<molecule> ... </molecule> [1]
<propertyList> ... </propertyList> [0..1]
</transitionState>
Schema Component Representation
<xsd:element name="transitionState" id="el.transitionState">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" molecule "/>
<xsd:element ref=" propertyList " minOccurs="0"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: trow

Name trow
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A row in a table.
trow may either carry all the header information, OR be a row of the table. In both cases it must contain tcells.
XML Instance Representation
<trow
dataType=" dataTypeType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
<tcell> ... </tcell> [0..*]
</trow>
Schema Component Representation
<xsd:element name="trow" id="el.trow">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" tcell " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" dataType "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Element: unit

Name unit
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A scientific unit.

A scientific unit. Units are of the following types:

  • SI Units. These may be one of the seven fundamental types (e.g. meter) or may be derived (e.g. joule). An SI unit is identifiable because it has no parentSI attribute and will have a unitType attribute. 2005-122-17 - this may be obsolete; PMR
  • nonSI Units. These will normally have a parent SI unit (e.g. calorie has joule as an SI parent).
  • Constructed units. These use a syntax of the form:
    		                  <unit id="g.s-1" name="gram per second" 
    		                    unitType="myUnitType:massPerTime">
    		                    <unit units="units:g" power="1"/>
    		                    <unit units="siUnits:s" power="-1"/>
    		                  </unit>
    		                
    This defines a new unit (g.s-1) which is composed from two existing units (units:g and siUnits:s) to create a new unit. The conversion to SI is computed from the two child units and may be added as a 'multiplierToSI' attribute. Only siUnits or units with 'multiplierToSI' can be used as child units; 'constantToSI cannot be used yet. If the new unit points to a unitType then the dimension can be checked. Thus if the published dimension of massPerTime does not agree with mass.length-1 an error is throwable. Alternatively a new unitType can be added as a child.

The relationship of a unit to its SI parent is potentially complex and inconsistencies may arise. The following are available:

  • parentSI. This points to the ID of a parent SI unit. If this ID is the same as the current unit the implication is that this is an SI unit.
  • isSI. a boolean indicating whether the current unit is SI.
  • multiplierToSI and constantToSI. If these are 1.0 and 0.0 (or missing) the implication is that this unit is SI. However this is fragile as units can be defined without these attributes and a unit could coincidentally have no numeric differences but not be an SI unit.

2003:04-09 Description or parentSI attribute enhanced.
2006:03-21 Added metadata and metadataList to content.
Application Data
XML Instance Representation
<unit
id=" idType [0..1] ?"
units=" unitsType [0..1] ?"
title=" xsd:string [0..1] ?"
abbreviation=" xsd:string [0..1] ?"
symbol=" xsd:string [0..1] ?"
name=" xsd:string [0..1] ?"
parentSI=" namespaceRefType [0..1] ?"
isSI=" xsd:boolean [0..1] ?"
unitType=" xsd:string [0..1] ?"
multiplierToData=" xsd:double [0..1] ?"
multiplierToSI=" xsd:double [0..1] ?"
constantToSI=" xsd:double [0..1] ?"
power=" xsd:double [0..1] ?">
Start Choice [0..*]
<metadata> ... </metadata> [1]
<metadataList> ... </metadataList> [1]
<description> ... </description> [1]
<annotation> ... </annotation> [1]
<definition> ... </definition> [0..1]
<unit> ... </unit> [0..*] ?
<unitType> ... </unitType> [0..1] ?
Allow any elements from a namespace other than this schema's namespace (lax validation). [1]
End Choice
</unit>
Schema Component Representation
<xsd:element name="unit" id="el.unit">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" metadata "/>
<xsd:element ref=" metadataList "/>
<xsd:element ref=" description "/>
<xsd:element ref=" annotation "/>
<xsd:element ref=" definition " minOccurs="0" maxOccurs="1"/>
<xsd:element ref=" unit " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" unitType " minOccurs="0" maxOccurs="1"/>
<xsd:any namespace="##other" processContents="lax"/>
</xsd:choice>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" units "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" abbreviation "/>
<xsd:attributeGroup ref=" symbol "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" parentSI "/>
<xsd:attributeGroup ref=" isSI "/>
<xsd:attributeGroup ref=" unitType "/>
<xsd:attributeGroup ref=" multiplierToData "/>
<xsd:attributeGroup ref=" multiplierToSI "/>
<xsd:attributeGroup ref=" constantToSI "/>
<xsd:attributeGroup ref=" power "/>
</xsd:complexType>
</xsd:element>
top

Element: unitList

Name unitList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for several unit entries.
Usually forms the complete units dictionary (along with metadata). Note: this used to hold both units and unitTypes (though in separate files). This was unwieldy and unitTypeList has been created to hold unitTypes. Implementers are recommended to change any unitList/unitType to unitTypeList/unitType
2005-12-15. PMR. added namespace and dictionaryPrefix.
2005-12-17. PMR. added siNamespace .
2006-01-28. PMR. deprecated use for holding unitType.
XML Instance Representation
<unitList
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
type=" unitListTypeType [0..1] ?"
namespace=" namespaceType [0..1] ?"
siNamespace=" namespaceType [0..1] ?"
dictionaryPrefix=" dictionaryPrefixType [0..1] ?"
href=" xsd:anyURI [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<unitType> ... </unitType> [0..*] ?
<unit> ... </unit> [0..*]
</unitList>
Schema Component Representation
<xsd:element name="unitList" id="el.unitList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" unitType " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" unit " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" unitListType "/>
<xsd:attributeGroup ref=" namespace "/>
<xsd:attributeGroup ref=" siNamespace "/>
<xsd:attributeGroup ref=" dictionaryPrefix "/>
<xsd:attributeGroup ref=" href "/>
</xsd:complexType>
</xsd:element>
top

Element: unitType

Name unitType
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The type of a scientific unit.

Mandatory for SI Units, optional for nonSI units since they should be able to obtain this from their parent. For complex derived units without parents it may be useful.

Used within a unitList

Distinguish carefully from unitsType which is primarily used for attributes describing the units that elements carry

2006-02-06: PMR. Added preserve and symbol attributes.
XML Instance Representation
<unitType
id=" idType [0..1] ?"
name=" xsd:string [0..1] ?"
title=" xsd:string [0..1] ?"
parentSI=" namespaceRefType [0..1] ?"
abbreviation=" xsd:string [0..1] ?"
preserve=" xsd:boolean [0..1] ?"
symbol=" xsd:string [0..1] ?">
Start Choice [0..*]
<annotation> ... </annotation> [1]
<dimension> ... </dimension> [0..*]
<description> ... </description> [0..*]
<definition> ... </definition> [0..1]
End Choice
</unitType>
Schema Component Representation
<xsd:element name="unitType" id="el.unitType">
<xsd:complexType>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" annotation "/>
<xsd:element ref=" dimension " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" description " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" definition " minOccurs="0" maxOccurs="1"/>
</xsd:choice>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" name "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" parentSI "/>
<xsd:attributeGroup ref=" abbreviation "/>
<xsd:attributeGroup ref=" preserve "/>
<xsd:attributeGroup ref=" symbol "/>
</xsd:complexType>
</xsd:element>
top

Element: unitTypeList

Name unitTypeList
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A container for several unitType entries.
Usually forms the complete unitTypes dictionary (along with metadata). Note: unitTypes used to be held under unitList, but this was complicated to implement and unitTypeList makes a clean separation.
2006-01-28. PMR. created.
XML Instance Representation
<unitTypeList
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
namespace=" namespaceType [0..1] ?"
siNamespace=" namespaceType [0..1] ?"
dictionaryPrefix=" dictionaryPrefixType [0..1] ?"
href=" xsd:anyURI [0..1] ?">
<metadataList> ... </metadataList> [0..*]
<unitType> ... </unitType> [0..*]
</unitTypeList>
Schema Component Representation
<xsd:element name="unitTypeList" id="el.unitTypeList">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" metadataList " minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref=" unitType " minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" namespace "/>
<xsd:attributeGroup ref=" siNamespace "/>
<xsd:attributeGroup ref=" dictionaryPrefix "/>
<xsd:attributeGroup ref=" href "/>
</xsd:complexType>
</xsd:element>
top

Element: vector3

Name vector3
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A vector in 3-space.
The vector may have magnitude but is not rooted on any points (use line3).
XML Instance Representation
<vector3
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?"
id=" idType [0..1] ?"
title=" xsd:string [0..1] ?"
units=" unitsType [0..1] ?">
vector3Type
</vector3>
Schema Component Representation
<xsd:element name="vector3" id="el.vector3">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base=" vector3Type ">
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" units "/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
top

Element: xaxis

Name xaxis
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The x-axis.
A container for all information relating to the x-axis (including scales, offsets, etc.) and the data themselves (in an array). Note: AniML uses "xValues" so avoid confusion with this.
XML Instance Representation
<xaxis
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
multiplierToData=" xsd:double [0..1] ?"
constantToData=" xsd:double [0..1] ?">
<array> ... </array> [1] ?
</xaxis>
Schema Component Representation
<xsd:element name="xaxis" id="el.xaxis">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" array "/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" multiplierToData "/>
<xsd:attributeGroup ref=" constantToData "/>
</xsd:complexType>
</xsd:element>
top

Element: yaxis

Name yaxis
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
The y-axis.
A container for all information relating to the y-axis (including scales, offsets, etc.) and the data themselves (in an array).
XML Instance Representation
<yaxis
dictRef=" namespaceRefType [0..1] ?"
convention=" refType [0..1] ?"
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
ref=" refType [0..1] ?"
multiplierToData=" xsd:double [0..1] ?"
constantToData=" xsd:double [0..1] ?">
<array> ... </array> [1] ?
</yaxis>
Schema Component Representation
<xsd:element name="yaxis" id="el.yaxis">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref=" array "/>
</xsd:sequence>
<xsd:attributeGroup ref=" dictRef "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" ref "/>
<xsd:attributeGroup ref=" multiplierToData "/>
<xsd:attributeGroup ref=" constantToData "/>
</xsd:complexType>
</xsd:element>
top

Element: zMatrix

Name zMatrix
Type Locally-defined complex type
Nillable no
Abstract no
Documentation
A zMatrix.
A container for length, angle and torsion, which must be arranged in the conventional zMatrix format.
XML Instance Representation
<zMatrix
title=" xsd:string [0..1] ?"
id=" idType [0..1] ?"
convention=" refType [0..1] ?"
dictRef=" namespaceRefType [0..1] ?">
Start Choice [0..*]
<length> ... </length> [1]
<angle> ... </angle> [1]
<torsion> ... </torsion> [1]
End Choice
</zMatrix>
Schema Component Representation
<xsd:element name="zMatrix" id="el.zMatrix">
<xsd:complexType>
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref=" length "/>
<xsd:element ref=" angle "/>
<xsd:element ref=" torsion "/>
</xsd:choice>
</xsd:sequence>
<xsd:attributeGroup ref=" title "/>
<xsd:attributeGroup ref=" id "/>
<xsd:attributeGroup ref=" convention "/>
<xsd:attributeGroup ref=" dictRef "/>
</xsd:complexType>
</xsd:element>
top

Global Definitions

Attribute Group: abbreviation

Name abbreviation
XML Instance Representation
abbreviation=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="abbreviation" id="attGp.abbreviation">
<xsd:attribute name="abbreviation" type=" xsd:string " id="att.abbreviation"/>
</xsd:attributeGroup>
top

Attribute Group: actionOrder

Name actionOrder
XML Instance Representation
order=" actionOrderType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="actionOrder" id="attGp.actionOrder">
<xsd:attribute name="order" type=" actionOrderType " id="att.actionOrder"/>
</xsd:attributeGroup>
top

Attribute Group: alternativeType

Name alternativeType
XML Instance Representation
type=" alternativeTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="alternativeType" id="attGp.alternativeType">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="type" type=" alternativeTypeType " id="att.alternativeType"/>
</xsd:attributeGroup>
top

Attribute Group: angleUnits

Name angleUnits
XML Instance Representation
units=" angleUnitsType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="angleUnits" id="attGp.angleUnits">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="units" type=" angleUnitsType " id="att.angleUnits"/>
</xsd:attributeGroup>
top

Attribute Group: atomIDArray

Name atomIDArray
XML Instance Representation
atomID=" atomRefArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomIDArray" id="attGp.atomIDArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="atomID" type=" atomRefArrayType " id="att.atomIDArray"/>
</xsd:attributeGroup>
top

Attribute Group: atomMap

Name atomMap
XML Instance Representation
atomMap=" idType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomMap" id="attGp.atomMap">
<xsd:attribute name="atomMap" type=" idType " id="att.atomMap"/>
</xsd:attributeGroup>
top

Attribute Group: atomRef

Name atomRef
XML Instance Representation
atomRef=" atomRefType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomRef" id="attGp.atomRef">
<xsd:attribute name="atomRef" type=" atomRefType " id="att.atomRef"/>
</xsd:attributeGroup>
top

Attribute Group: atomRef1Array

Name atomRef1Array
XML Instance Representation
atomRef1=" atomRefArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomRef1Array" id="attGp.atomRef1Array">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="atomRef1" type=" atomRefArrayType " id="att.atomRef1Array"/>
</xsd:attributeGroup>
top

Attribute Group: atomRef2Array

Name atomRef2Array
XML Instance Representation
atomRef2=" atomRefArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomRef2Array" id="attGp.atomRef2Array">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="atomRef2" type=" atomRefArrayType " id="att.atomRef2Array"/>
</xsd:attributeGroup>
top

Attribute Group: atomRefArray

Name atomRefArray
XML Instance Representation
atomRefArray=" atomRefArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomRefArray" id="attGp.atomRefArray">
<xsd:attribute name="atomRefArray" type=" atomRefArrayType " id="att.atomRefArray"/>
</xsd:attributeGroup>
top

Attribute Group: atomRefGroup

Name atomRefGroup
XML Instance Representation
atomRefGroup=" atomIDType [0..1]"
Schema Component Representation
<xsd:attributeGroup name="atomRefGroup" id="attGp.atomRefGroup">
<xsd:attribute name="atomRefGroup" type=" atomIDType " id="att.atomRefGroup"/>
</xsd:attributeGroup>
top

Attribute Group: atomRefs

Name atomRefs
XML Instance Representation
atomRefs=" atomRefArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomRefs" id="attGp.atomRefs">
<xsd:attribute name="atomRefs" type=" atomRefArrayType " id="att.atomRefs"/>
</xsd:attributeGroup>
top

Attribute Group: atomRefs2

Name atomRefs2
XML Instance Representation
atomRefs2=" atomRefs2Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomRefs2" id="attGp.atomRefs2">
<xsd:attribute name="atomRefs2" type=" atomRefs2Type " id="att.atomRefs2"/>
</xsd:attributeGroup>
top

Attribute Group: atomRefs3

Name atomRefs3
XML Instance Representation
atomRefs3=" atomRefs3Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomRefs3" id="attGp.atomRefs3">
<xsd:attribute name="atomRefs3" type=" atomRefs3Type " id="att.atomRefs3"/>
</xsd:attributeGroup>
top

Attribute Group: atomRefs4

Name atomRefs4
XML Instance Representation
atomRefs4=" atomRefs4Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomRefs4" id="attGp.atomRefs4">
<xsd:attribute name="atomRefs4" type=" atomRefs4Type " id="att.atomRefs4"/>
</xsd:attributeGroup>
top

Attribute Group: atomSetRef

Name atomSetRef
XML Instance Representation
atomSetRef=" refType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="atomSetRef" id="attGp.atomSetRef">
<xsd:attribute name="atomSetRef" type=" refType " id="att.atomSetRef"/>
</xsd:attributeGroup>
top

Attribute Group: bondIDArray

Name bondIDArray
XML Instance Representation
bondID=" bondRefArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="bondIDArray" id="attGp.bondIDArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="bondID" type=" bondRefArrayType " id="att.bondIDArray"/>
</xsd:attributeGroup>
top

Attribute Group: bondMap

Name bondMap
XML Instance Representation
bondMap=" xsd:QName [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="bondMap" id="attGp.bondMap">
<xsd:attribute name="bondMap" type=" xsd:QName " id="att.bondMap"/>
</xsd:attributeGroup>
top

Attribute Group: bondRef

Name bondRef
XML Instance Representation
bondRef=" bondRefType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="bondRef" id="attGp.bondRef">
<xsd:attribute name="bondRef" type=" bondRefType " id="att.bondRef"/>
</xsd:attributeGroup>
top

Attribute Group: bondRefs

Name bondRefs
XML Instance Representation
bondRefs=" bondRefArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="bondRefs" id="attGp.bondRefs">
<xsd:attribute name="bondRefs" type=" bondRefArrayType " id="att.bondRefs"/>
</xsd:attributeGroup>
top

Attribute Group: box3

Name box3
XML Instance Representation
box3=" box3Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="box3" id="attGp.box3">
<xsd:attribute name="box3" type=" box3Type " id="att.box3"/>
</xsd:attributeGroup>
top

Attribute Group: builtin

Name builtin
XML Instance Representation
builtin=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="builtin" id="attGp.builtin">
<xsd:attribute name="builtin" type=" xsd:string " id="att.builtin"/>
</xsd:attributeGroup>
top

Attribute Group: cellParameterError

Name cellParameterError
XML Instance Representation
error=" vector3Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="cellParameterError" id="attGp.cellParameterError">
<-- Note: name differs from attributeGroup name-->
<xsd:attribute name="error" type=" vector3Type " id="att.cellParameterError"/>
</xsd:attributeGroup>
top

Attribute Group: cellParameterType

Name cellParameterType
XML Instance Representation
type=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="cellParameterType" id="attGp.cellParameterType">
<-- Note: name differs from attributeGroup name-->
<xsd:attribute name="type" type=" xsd:string " id="att.cellParameterType"/>
</xsd:attributeGroup>
top

Attribute Group: chirality

Name chirality
XML Instance Representation
chirality=" chiralityType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="chirality" id="attGp.chirality">
<xsd:attribute name="chirality" type=" chiralityType " id="att.chirality"/>
</xsd:attributeGroup>
top

Attribute Group: columns

Name columns
XML Instance Representation
columns=" sizeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="columns" id="attGp.columns">
<xsd:attribute name="columns" type=" sizeType " id="att.columns"/>
</xsd:attributeGroup>
top

Attribute Group: concise

Name concise
XML Instance Representation
concise=" formulaType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="concise" id="attGp.concise">
<xsd:attribute name="concise" type=" formulaType " id="att.concise"/>
</xsd:attributeGroup>
top

Attribute Group: constantToData

Name constantToData
XML Instance Representation
constantToData=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="constantToData" id="attGp.constantToData">
<xsd:attribute name="constantToData" type=" xsd:double " id="att.constantToData" default="0.0"/>
</xsd:attributeGroup>
top

Attribute Group: constantToSI

Name constantToSI
XML Instance Representation
constantToSI=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="constantToSI" id="attGp.constantToSI">
<xsd:attribute name="constantToSI" type=" xsd:double " id="att.constantToSI"/>
</xsd:attributeGroup>
top

Attribute Group: constraint

Name constraint
XML Instance Representation
constraint=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="constraint" id="attGp.constraint">
<xsd:attribute name="constraint" type=" xsd:string " id="att.constraint"/>
</xsd:attributeGroup>
top

Attribute Group: content

Name content
XML Instance Representation
content=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="content" id="attGp.content">
<xsd:attribute name="content" type=" xsd:string " id="att.content"/>
</xsd:attributeGroup>
top

Attribute Group: convention

Name convention
XML Instance Representation
convention=" refType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="convention" id="attGp.convention">
<xsd:attribute name="convention" type=" refType " id="att.convention"/>
</xsd:attributeGroup>
top

Attribute Group: conventionValue

Name conventionValue
XML Instance Representation
conventionValue=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="conventionValue" id="attGp.conventionValue">
<xsd:attribute name="conventionValue" type=" xsd:string " id="att.conventionValue"/>
</xsd:attributeGroup>
top

Attribute Group: count

Name count
XML Instance Representation
count=" positiveNumberType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="count" id="attGp.count">
<xsd:attribute name="count" type=" positiveNumberType " id="att.count"/>
</xsd:attributeGroup>
top

Attribute Group: countArray

Name countArray
XML Instance Representation
count=" countArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="countArray" id="attGp.countArray">
<xsd:attribute name="count" type=" countArrayType " id="att.countArray"/>
</xsd:attributeGroup>
top

Attribute Group: countExpression

Name countExpression
XML Instance Representation
countExpression=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="countExpression" id="attGp.countExpression">
<xsd:attribute name="countExpression" type=" xsd:string " id="att.countExpression"/>
</xsd:attributeGroup>
top

Attribute Group: dataType

Name dataType
XML Instance Representation
dataType=" dataTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="dataType" id="attGp.dataType">
<xsd:attribute name="dataType" type=" dataTypeType " id="att.dataType"/>
</xsd:attributeGroup>
top

Attribute Group: default

Name default
XML Instance Representation
default=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="default" id="attGp.default">
<xsd:attribute name="default" type=" xsd:string " id="att.default"/>
</xsd:attributeGroup>
top

Attribute Group: delete

Name delete
XML Instance Representation
delete=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="delete" id="attGp.delete">
<xsd:attribute name="delete" type=" xsd:string " id="att.delete"/>
</xsd:attributeGroup>
top

Attribute Group: delimiter

Name delimiter
XML Instance Representation
delimiter=" delimiterType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="delimiter" id="attGp.delimiter">
<xsd:attribute name="delimiter" type=" delimiterType " id="att.delimiter"/>
</xsd:attributeGroup>
top

Attribute Group: dictRef

Name dictRef
XML Instance Representation
dictRef=" namespaceRefType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="dictRef" id="attGp.dictRef">
<xsd:attribute name="dictRef" type=" namespaceRefType " id="att.dictRef"/>
</xsd:attributeGroup>
top

Attribute Group: dictionaryPrefix

Name dictionaryPrefix
XML Instance Representation
dictionaryPrefix=" dictionaryPrefixType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="dictionaryPrefix" id="attGp.dictionaryPrefix">
<xsd:attribute name="dictionaryPrefix" type=" dictionaryPrefixType " id="att.dictionaryPrefix"/>
</xsd:attributeGroup>
top

Attribute Group: dimensionBasis

Name dimensionBasis
XML Instance Representation
dimensionBasis=" dimensionType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="dimensionBasis" id="attGp.dimensionBasis">
<xsd:attribute name="dimensionBasis" type=" dimensionType " id="att.dimensionBasis"/>
</xsd:attributeGroup>
top

Attribute Group: dimensionality

Name dimensionality
XML Instance Representation
dimensionality=" xsd:positiveInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="dimensionality" id="attGp.dimensionality">
<xsd:attribute name="dimensionality" type=" xsd:positiveInteger " id="att.dimensionality"/>
</xsd:attributeGroup>
top

Attribute Group: duration

Name duration
XML Instance Representation
duration=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="duration" id="attGp.duration">
<xsd:attribute name="duration" type=" xsd:string " id="att.duration"/>
</xsd:attributeGroup>
top

Attribute Group: eigenOrientation

Name eigenOrientation
XML Instance Representation
orientation=" eigenOrientationType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="eigenOrientation" id="attGp.eigenOrientation">
<-- Note: name differs from attributeGroup name-->
<xsd:attribute name="orientation" type=" eigenOrientationType " id="att.eigenOrientation"/>
</xsd:attributeGroup>
top

Attribute Group: electronMap

Name electronMap
XML Instance Representation
electronMap=" idType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="electronMap" id="attGp.electronMap">
<xsd:attribute name="electronMap" type=" idType " id="att.electronMap"/>
</xsd:attributeGroup>
top

Attribute Group: elementType

Name elementType
XML Instance Representation
elementType=" elementTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="elementType" id="attGp.elementType">
<xsd:attribute name="elementType" type=" elementTypeType " id="att.elementType"/>
</xsd:attributeGroup>
top

Attribute Group: elementTypeArray

Name elementTypeArray
XML Instance Representation
elementType=" elementTypeArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="elementTypeArray" id="attGp.elementTypeArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="elementType" type=" elementTypeArrayType " id="att.elementTypeArray"/>
</xsd:attributeGroup>
top

Attribute Group: end

Name end
XML Instance Representation
end=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="end" id="attGp.end">
<xsd:attribute name="end" type=" xsd:string " id="att.end"/>
</xsd:attributeGroup>
top

Attribute Group: endCondition

Name endCondition
XML Instance Representation
endCondition=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="endCondition" id="attGp.endCondition">
<xsd:attribute name="endCondition" type=" xsd:string " id="att.endCondition"/>
</xsd:attributeGroup>
top

Attribute Group: errorBasis

Name errorBasis
XML Instance Representation
errorBasis=" errorBasisType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="errorBasis" id="attGp.errorBasis">
<xsd:attribute name="errorBasis" type=" errorBasisType " id="att.errorBasis"/>
</xsd:attributeGroup>
top

Attribute Group: errorValue

Name errorValue
XML Instance Representation
errorValue=" errorValueType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="errorValue" id="attGp.errorValue">
<xsd:attribute name="errorValue" type=" errorValueType " id="att.errorValue"/>
</xsd:attributeGroup>
top

Attribute Group: errorValueArray

Name errorValueArray
XML Instance Representation
errorValueArray=" errorValueArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="errorValueArray" id="attGp.errorValueArray">
<xsd:attribute name="errorValueArray" type=" errorValueArrayType " id="att.errorValueArray"/>
</xsd:attributeGroup>
top

Attribute Group: eval

Name eval
XML Instance Representation
eval=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="eval" id="attGp.eval">
<xsd:attribute name="eval" type=" xsd:string " id="att.eval"/>
</xsd:attributeGroup>
top

Attribute Group: fileId

Name fileId
XML Instance Representation
fileId=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="fileId" id="attGp.fileId">
<xsd:attribute name="fileId" type=" xsd:string " id="att.fileId"/>
</xsd:attributeGroup>
top

Attribute Group: form

Name form
XML Instance Representation
form=" namespaceRefType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="form" id="attGp.form">
<xsd:attribute name="form" type=" namespaceRefType " id="att.form"/>
</xsd:attributeGroup>
top

Attribute Group: formalCharge

Name formalCharge
XML Instance Representation
formalCharge=" formalChargeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="formalCharge" id="attGp.formalCharge">
<xsd:attribute name="formalCharge" type=" formalChargeType " id="att.formalCharge"/>
</xsd:attributeGroup>
top

Attribute Group: formalChargeArray

Name formalChargeArray
XML Instance Representation
formalCharge=" formalChargeArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="formalChargeArray" id="attGp.formalChargeArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="formalCharge" type=" formalChargeArrayType " id="att.formalChargeArray"/>
</xsd:attributeGroup>
top

Attribute Group: format

Name format
XML Instance Representation
format=" formatType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="format" id="attGp.format">
<xsd:attribute name="format" type=" formatType " id="att.format"/>
</xsd:attributeGroup>
top

Attribute Group: formula

Name formula
XML Instance Representation
formula=" formulaType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="formula" id="attGp.formula">
<xsd:attribute name="formula" type=" formulaType " id="att.formula"/>
</xsd:attributeGroup>
top

Attribute Group: fractionDigits

Name fractionDigits
XML Instance Representation
fractionDigits=" xsd:nonNegativeInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="fractionDigits" id="attGp.fractionDigits">
<xsd:attribute name="fractionDigits" type=" xsd:nonNegativeInteger " id="att.fractionDigits"/>
</xsd:attributeGroup>
top

Attribute Group: from

Name from
XML Instance Representation
from=" refType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="from" id="attGp.from">
<xsd:attribute name="from" type=" refType " id="att.from"/>
</xsd:attributeGroup>
top

Attribute Group: fromContext

Name fromContext
XML Instance Representation
fromContext=" idType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="fromContext" id="attGp.fromContext">
<xsd:attribute name="fromContext" type=" idType " id="att.fromContext"/>
</xsd:attributeGroup>
top

Attribute Group: fromSet

Name fromSet
XML Instance Representation
fromSet=" idArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="fromSet" id="attGp.fromSet">
<xsd:attribute name="fromSet" type=" idArrayType " id="att.fromSet"/>
</xsd:attributeGroup>
top

Attribute Group: fromType

Name fromType
XML Instance Representation
fromType=" xmlElementType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="fromType" id="attGp.fromType">
<xsd:attribute name="fromType" type=" xmlElementType " id="att.fromType"/>
</xsd:attributeGroup>
top

Attribute Group: ft

Name ft
XML Instance Representation
ft=" ftType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="ft" id="attGp.ft">
<xsd:attribute name="ft" type=" ftType " id="att.ft" default="none"/>
</xsd:attributeGroup>
top

Attribute Group: head

Name head
XML Instance Representation
head=" headType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="head" id="attGp.head">
<xsd:attribute name="head" type=" headType " id="att.head"/>
</xsd:attributeGroup>
top

Attribute Group: href

Name href
XML Instance Representation
href=" xsd:anyURI [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="href" id="attGp.href">
<xsd:attribute name="href" type=" xsd:anyURI " id="att.href"/>
</xsd:attributeGroup>
top

Attribute Group: hydrogenCount

Name hydrogenCount
XML Instance Representation
hydrogenCount=" hydrogenCountType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="hydrogenCount" id="attGp.hydrogenCount">
<xsd:attribute name="hydrogenCount" type=" hydrogenCountType " id="att.hydrogenCount"/>
</xsd:attributeGroup>
top

Attribute Group: hydrogenCountArray

Name hydrogenCountArray
XML Instance Representation
hydrogenCount=" hydrogenCountArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="hydrogenCountArray" id="attGp.hydrogenCountArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="hydrogenCount" type=" hydrogenCountArrayType " id="att.hydrogenCountArray"/>
</xsd:attributeGroup>
top

Attribute Group: id

Name id
XML Instance Representation
id=" idType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="id" id="attGp.id">
<xsd:attribute name="id" type=" idType " id="att.id"/>
</xsd:attributeGroup>
top

Attribute Group: idgen

Name idgen
XML Instance Representation
idgen=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="idgen" id="attGp.idgen">
<xsd:attribute name="idgen" type=" xsd:string " id="att.idgen"/>
</xsd:attributeGroup>
top

Attribute Group: inherit

Name inherit
XML Instance Representation
inherit=" inheritType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="inherit" id="attGp.inherit">
<xsd:attribute name="inherit" type=" inheritType " id="att.inherit"/>
</xsd:attributeGroup>
top

Attribute Group: inline

Name inline
XML Instance Representation
inline=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="inline" id="attGp.inline">
<xsd:attribute name="inline" type=" xsd:string " id="att.inline"/>
</xsd:attributeGroup>
top

Attribute Group: integral

Name integral
XML Instance Representation
integral=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="integral" id="attGp.integral">
<xsd:attribute name="integral" type=" xsd:string " id="att.integral"/>
</xsd:attributeGroup>
top

Attribute Group: irreducibleRepresentation

Name irreducibleRepresentation
XML Instance Representation
irreducibleRepresentation=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="irreducibleRepresentation" id="attGp.irreducibleRepresentation">
<xsd:attribute name="irreducibleRepresentation" type=" xsd:string " id="att.irreducibleRepresentation"/>
</xsd:attributeGroup>
top

Attribute Group: isSI

Name isSI
XML Instance Representation
isSI=" xsd:boolean [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="isSI" id="attGp.isSI">
<xsd:attribute name="isSI" type=" xsd:boolean " id="att.isSI"/>
</xsd:attributeGroup>
top

Attribute Group: isotope

Name isotope
XML Instance Representation
isotope=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="isotope" id="attGp.isotope">
<xsd:attribute name="isotope" type=" xsd:double " id="att.isotope"/>
</xsd:attributeGroup>
top

Attribute Group: isotopeListRef

Name isotopeListRef
XML Instance Representation
isotopeListRef=" idType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="isotopeListRef" id="attGp.isotopeListRef">
<xsd:attribute name="isotopeListRef" type=" idType " id="att.isotopeListRef"/>
</xsd:attributeGroup>
top

Attribute Group: isotopeNumber

Name isotopeNumber
XML Instance Representation
isotopeNumber=" xsd:positiveInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="isotopeNumber" id="attGp.isotopeNumber">
<xsd:attribute name="isotopeNumber" type=" xsd:positiveInteger " id="att.isotopeNumber"/>
</xsd:attributeGroup>
top

Attribute Group: isotopeRef

Name isotopeRef
XML Instance Representation
isotopeRef=" refType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="isotopeRef" id="attGp.isotopeRef">
<xsd:attribute name="isotopeRef" type=" refType " id="att.isotopeRef"/>
</xsd:attributeGroup>
top

Attribute Group: kpoint

Name kpoint
XML Instance Representation
kpoint=" vector3Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="kpoint" id="attGp.kpoint">
<xsd:attribute name="kpoint" type=" vector3Type " id="att.kpoint"/>
</xsd:attributeGroup>
top

Attribute Group: kpointRef

Name kpointRef
XML Instance Representation
kpointRef=" refType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="kpointRef" id="attGp.kpointRef">
<xsd:attribute name="kpointRef" type=" refType " id="att.kpointRef"/>
</xsd:attributeGroup>
top

Attribute Group: l

Name l
XML Instance Representation
l=" xsd:nonNegativeInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="l" id="attGp.l">
<xsd:attribute name="l" type=" xsd:nonNegativeInteger " id="att.l"/>
</xsd:attributeGroup>
top

Attribute Group: label

Name label
XML Instance Representation
label=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="label" id="attGp.label">
<xsd:attribute name="label" type=" xsd:string " id="att.label"/>
</xsd:attributeGroup>
top

Attribute Group: latticeType

Name latticeType
XML Instance Representation
latticeType=" latticeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="latticeType" id="attGp.latticeType">
<xsd:attribute name="latticeType" type=" latticeType " id="att.latticeType"/>
</xsd:attributeGroup>
top

Attribute Group: left

Name left
XML Instance Representation
left=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="left" id="attGp.left">
<xsd:attribute name="left" type=" xsd:string " id="att.left"/>
</xsd:attributeGroup>
top

Attribute Group: length

Name length
XML Instance Representation
length=" xsd:nonNegativeInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="length" id="attGp.length">
<xsd:attribute name="length" type=" xsd:nonNegativeInteger " id="att.length"/>
</xsd:attributeGroup>
top

Attribute Group: linkOnParent

Name linkOnParent
XML Instance Representation
linkOnParent=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="linkOnParent" id="attGp.linkOnParent">
<xsd:attribute name="linkOnParent" type=" xsd:string " id="att.linkOnParent"/>
</xsd:attributeGroup>
top

Attribute Group: linkType

Name linkType
XML Instance Representation
linkType=" linkTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="linkType" id="attGp.linkType">
<xsd:attribute name="linkType" type=" linkTypeType " id="att.linkType"/>
</xsd:attributeGroup>
top

Attribute Group: list

Name list
XML Instance Representation
list=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="list" id="attGp.list">
<xsd:attribute name="list" type=" xsd:string " id="att.list"/>
</xsd:attributeGroup>
top

Attribute Group: lm

Name lm
XML Instance Representation
lm=" lmType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="lm" id="attGp.lm">
<xsd:attribute name="lm" type=" lmType " id="att.lm"/>
</xsd:attributeGroup>
top

Attribute Group: m

Name m
XML Instance Representation
m=" xsd:integer [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="m" id="attGp.m">
<xsd:attribute name="m" type=" xsd:integer " id="att.m"/>
</xsd:attributeGroup>
top

Attribute Group: mandatoryId

Name mandatoryId
XML Instance Representation
id=" idType [1] ?"
Schema Component Representation
<xsd:attributeGroup name="mandatoryId" id="attGp.mandatoryId">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="id" type=" idType " id="att.mandatoryId" use="required"/>
</xsd:attributeGroup>
top

Attribute Group: matrixType

Name matrixType
XML Instance Representation
matrixType=" matrixType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="matrixType" id="attGp.matrixType">
<xsd:attribute name="matrixType" type=" matrixType " id="att.matrixType"/>
</xsd:attributeGroup>
top

Attribute Group: max

Name max
XML Instance Representation
max=" maxType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="max" id="attGp.max">
<xsd:attribute name="max" type=" maxType " id="att.max"/>
</xsd:attributeGroup>
top

Attribute Group: maxExclusive

Name maxExclusive
XML Instance Representation
maxExclusive=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="maxExclusive" id="attGp.maxExclusive">
<xsd:attribute name="maxExclusive" type=" xsd:double " id="att.maxExclusive"/>
</xsd:attributeGroup>
top

Attribute Group: maxInclusive

Name maxInclusive
XML Instance Representation
maxInclusive=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="maxInclusive" id="attGp.maxInclusive">
<xsd:attribute name="maxInclusive" type=" xsd:double " id="att.maxInclusive"/>
</xsd:attributeGroup>
top

Attribute Group: maxLength

Name maxLength
XML Instance Representation
maxLength=" xsd:positiveInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="maxLength" id="attGp.maxLength">
<xsd:attribute name="maxLength" type=" xsd:positiveInteger " id="att.maxLength"/>
</xsd:attributeGroup>
top

Attribute Group: maxValueArray

Name maxValueArray
XML Instance Representation
maxValueArray=" floatArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="maxValueArray" id="attGp.maxValueArray">
<xsd:attribute name="maxValueArray" type=" floatArrayType " id="att.maxValueArray"/>
</xsd:attributeGroup>
top

Attribute Group: measurement

Name measurement
XML Instance Representation
measurement=" measurementType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="measurement" id="attGp.measurement">
<xsd:attribute name="measurement" type=" measurementType " id="att.measurement"/>
</xsd:attributeGroup>
top

Attribute Group: metadataType

Name metadataType
XML Instance Representation
name=" metadataType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="metadataType" id="attGp.metadataType">
<-- Note: name differs from attributeGroup name-->
<xsd:attribute name="name" type=" metadataType " id="att.metadataType"/>
</xsd:attributeGroup>
top

Attribute Group: min

Name min
XML Instance Representation
min=" minType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="min" id="attGp.min">
<xsd:attribute name="min" type=" minType " id="att.min"/>
</xsd:attributeGroup>
top

Attribute Group: minExclusive

Name minExclusive
XML Instance Representation
minExclusive=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="minExclusive" id="attGp.minExclusive">
<xsd:attribute name="minExclusive" type=" xsd:double " id="att.minExclusive"/>
</xsd:attributeGroup>
top

Attribute Group: minInclusive

Name minInclusive
XML Instance Representation
minInclusive=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="minInclusive" id="attGp.minInclusive">
<xsd:attribute name="minInclusive" type=" xsd:double " id="att.minInclusive"/>
</xsd:attributeGroup>
top

Attribute Group: minLength

Name minLength
XML Instance Representation
minLength=" xsd:nonNegativeInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="minLength" id="attGp.minLength">
<xsd:attribute name="minLength" type=" xsd:nonNegativeInteger " id="att.minLength"/>
</xsd:attributeGroup>
top

Attribute Group: minValueArray

Name minValueArray
XML Instance Representation
minValueArray=" floatArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="minValueArray" id="attGp.minValueArray">
<xsd:attribute name="minValueArray" type=" floatArrayType " id="att.minValueArray"/>
</xsd:attributeGroup>
top

Attribute Group: moleculeRef

Name moleculeRef
XML Instance Representation
moleculeRef=" moleculeRefType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="moleculeRef" id="attGp.moleculeRef">
<xsd:attribute name="moleculeRef" type=" moleculeRefType " id="att.moleculeRef"/>
</xsd:attributeGroup>
top

Attribute Group: moleculeRefs

Name moleculeRefs
XML Instance Representation
moleculeRefs=" moleculeRefArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="moleculeRefs" id="attGp.moleculeRefs">
<xsd:attribute name="moleculeRefs" type=" moleculeRefArrayType " id="att.moleculeRefs"/>
</xsd:attributeGroup>
top

Attribute Group: multiplierToData

Name multiplierToData
XML Instance Representation
multiplierToData=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="multiplierToData" id="attGp.multiplierToData">
<xsd:attribute name="multiplierToData" type=" xsd:double " id="att.multiplierToData" default="1.0"/>
</xsd:attributeGroup>
top

Attribute Group: multiplierToSI

Name multiplierToSI
XML Instance Representation
multiplierToSI=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="multiplierToSI" id="attGp.multiplierToSI">
<xsd:attribute name="multiplierToSI" type=" xsd:double " id="att.multiplierToSI"/>
</xsd:attributeGroup>
top

Attribute Group: n

Name n
XML Instance Representation
n=" xsd:nonNegativeInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="n" id="attGp.n">
<xsd:attribute name="n" type=" xsd:nonNegativeInteger " id="att.n"/>
</xsd:attributeGroup>
top

Attribute Group: name

Name name
XML Instance Representation
name=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="name" id="attGp.name">
<xsd:attribute name="name" type=" xsd:string " id="att.name"/>
</xsd:attributeGroup>
top

Attribute Group: namespace

Name namespace
XML Instance Representation
namespace=" namespaceType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="namespace" id="attGp.namespace">
<xsd:attribute name="namespace" type=" namespaceType " id="att.namespace"/>
</xsd:attributeGroup>
top

Attribute Group: number

Name number
XML Instance Representation
number=" xsd:nonNegativeInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="number" id="attGp.number">
<xsd:attribute name="number" type=" xsd:nonNegativeInteger " id="att.number"/>
</xsd:attributeGroup>
top

Attribute Group: objectClass

Name objectClass
XML Instance Representation
objectClass=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="objectClass" id="attGp.objectClass">
<xsd:attribute name="objectClass" type=" xsd:string " id="att.objectClass"/>
</xsd:attributeGroup>
top

Attribute Group: occupancy

Name occupancy
XML Instance Representation
occupancy=" occupancyType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="occupancy" id="attGp.occupancy">
<xsd:attribute name="occupancy" type=" occupancyType " id="att.occupancy"/>
</xsd:attributeGroup>
top

Attribute Group: occupancyArray

Name occupancyArray
XML Instance Representation
occupancy=" occupancyArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="occupancyArray" id="attGp.occupancyArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="occupancy" type=" occupancyArrayType " id="att.occupancyArray"/>
</xsd:attributeGroup>
top

Attribute Group: order

Name order
XML Instance Representation
order=" orderType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="order" id="attGp.order">
<xsd:attribute name="order" type=" orderType " id="att.order"/>
</xsd:attributeGroup>
top

Attribute Group: orderArray

Name orderArray
XML Instance Representation
order=" orderArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="orderArray" id="attGp.orderArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="order" type=" orderArrayType " id="att.orderArray"/>
</xsd:attributeGroup>
top

Attribute Group: parameterName

Name parameterName
XML Instance Representation
parameterName=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="parameterName" id="attGp.parameterName">
<xsd:attribute name="parameterName" type=" xsd:string " id="att.parameterName"/>
</xsd:attributeGroup>
top

Attribute Group: parentAttribute

Name parentAttribute
XML Instance Representation
parentAttribute=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="parentAttribute" id="attGp.parentAttribute">
<xsd:attribute name="parentAttribute" type=" xsd:string " id="att.parentAttribute"/>
</xsd:attributeGroup>
top

Attribute Group: parentSI

Name parentSI
XML Instance Representation
parentSI=" namespaceRefType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="parentSI" id="attGp.parentSI">
<xsd:attribute name="parentSI" type=" namespaceRefType " id="att.parentSI"/>
</xsd:attributeGroup>
top

Attribute Group: pattern

Name pattern
XML Instance Representation
pattern=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="pattern" id="attGp.pattern">
<xsd:attribute name="pattern" type=" xsd:string " id="att.pattern"/>
</xsd:attributeGroup>
top

Attribute Group: peakHeight

Name peakHeight
XML Instance Representation
peakHeight=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="peakHeight" id="attGp.peakHeight">
<xsd:attribute name="peakHeight" type=" xsd:double " id="att.peakHeight"/>
</xsd:attributeGroup>
top

Attribute Group: peakMultiplicity

Name peakMultiplicity
XML Instance Representation
peakMultiplicity=" peakMultiplicityType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="peakMultiplicity" id="attGp.peakMultiplicity">
<xsd:attribute name="peakMultiplicity" type=" peakMultiplicityType " id="att.peakMultiplicity"/>
</xsd:attributeGroup>
top

Attribute Group: peakShape

Name peakShape
XML Instance Representation
peakShape=" peakShapeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="peakShape" id="attGp.peakShape">
<xsd:attribute name="peakShape" type=" peakShapeType " id="att.peakShape"/>
</xsd:attributeGroup>
top

Attribute Group: peakStructureType

Name peakStructureType
XML Instance Representation
type=" peakStructureTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="peakStructureType" id="attGp.peakStructureType">
<xsd:attribute name="type" type=" peakStructureTypeType " id="att.peakStructureType"/>
</xsd:attributeGroup>
top

Attribute Group: peakUnits

Name peakUnits
XML Instance Representation
peakUnits=" unitsType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="peakUnits" id="attGp.peakUnits">
<xsd:attribute name="peakUnits" type=" unitsType " id="att.peakUnits"/>
</xsd:attributeGroup>
top

Attribute Group: periodic

Name periodic
XML Instance Representation
periodic=" xsd:boolean [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="periodic" id="attGp.periodic">
<xsd:attribute name="periodic" type=" xsd:boolean " id="att.periodic" default="true"/>
</xsd:attributeGroup>
top

Attribute Group: periodicity

Name periodicity
XML Instance Representation
periodicity=" xsd:positiveInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="periodicity" id="attGp.periodicity">
<xsd:attribute name="periodicity" type=" xsd:positiveInteger " id="att.periodicity"/>
</xsd:attributeGroup>
top

Attribute Group: point3

Name point3
XML Instance Representation
point3=" point3Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="point3" id="attGp.point3">
<xsd:attribute name="point3" type=" point3Type " id="att.point3"/>
</xsd:attributeGroup>
top

Attribute Group: pointGroup

Name pointGroup
XML Instance Representation
pointGroup=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="pointGroup" id="attGp.pointGroup">
<xsd:attribute name="pointGroup" type=" xsd:string " id="att.pointGroup"/>
</xsd:attributeGroup>
top

Attribute Group: pointGroupMultiplicity

Name pointGroupMultiplicity
XML Instance Representation
pointGroupMultiplicity=" xsd:positiveInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="pointGroupMultiplicity" id="attGp.pointGroupMultiplicity">
<xsd:attribute name="pointGroupMultiplicity" type=" xsd:positiveInteger " id="att.pointGroupMultiplicity"/>
</xsd:attributeGroup>
top

Attribute Group: power

Name power
XML Instance Representation
power=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="power" id="attGp.power">
<xsd:attribute name="power" type=" xsd:double " id="att.power"/>
</xsd:attributeGroup>
top

Attribute Group: powerRequired

Name powerRequired
XML Instance Representation
power=" xsd:double [1] ?"
Schema Component Representation
<xsd:attributeGroup name="powerRequired" id="attGp.powerRequired">
<-- this is awful - but I can't find how to add required otherwise -->
<xsd:attribute name="power" type=" xsd:double " use="required" id="att.powerRequired"/>
</xsd:attributeGroup>
top

Attribute Group: preserve

Name preserve
XML Instance Representation
preserve=" xsd:boolean [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="preserve" id="attGp.preserve">
<xsd:attribute name="preserve" type=" xsd:boolean " id="att.preserve"/>
</xsd:attributeGroup>
top

Attribute Group: process

Name process
XML Instance Representation
process=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="process" id="attGp.process">
<xsd:attribute name="process" type=" xsd:string " id="att.process"/>
</xsd:attributeGroup>
top

Attribute Group: ratio

Name ratio
XML Instance Representation
ratio=" occupancyType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="ratio" id="attGp.ratio">
<xsd:attribute name="ratio" type=" occupancyType " id="att.ratio"/>
</xsd:attributeGroup>
top

Attribute Group: reactionFormat

Name reactionFormat
XML Instance Representation
format=" reactionFormatType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="reactionFormat" id="attGp.reactionFormat">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="format" type=" reactionFormatType " id="att.reactionFormat"/>
</xsd:attributeGroup>
top

Attribute Group: reactionRole

Name reactionRole
XML Instance Representation
role=" reactionRoleType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="reactionRole" id="attGp.reactionRole">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="role" type=" reactionRoleType " id="att.reactionRole"/>
</xsd:attributeGroup>
top

Attribute Group: reactionStepListType

Name reactionStepListType
XML Instance Representation
type=" reactionStepListTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="reactionStepListType" id="attGp.reactionStepListType">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="type" type=" reactionStepListTypeType " id="att.reactionStepListType" default="consecutive"/>
</xsd:attributeGroup>
top

Attribute Group: reactionType

Name reactionType
XML Instance Representation
type=" reactionTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="reactionType" id="attGp.reactionType">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="type" type=" reactionTypeType " id="att.reactionType"/>
</xsd:attributeGroup>
top

Attribute Group: recommendedUnits

Name recommendedUnits
XML Instance Representation
recommendedUnits=" unitsType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="recommendedUnits" id="attGp.recommendedUnits">
<xsd:attribute name="recommendedUnits" type=" unitsType " id="att.recommendedUnits"/>
</xsd:attributeGroup>
top

Attribute Group: ref

Name ref
XML Instance Representation
ref=" refType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="ref" id="attGp.ref">
<xsd:attribute name="ref" type=" refType " id="att.ref"/>
</xsd:attributeGroup>
top

Attribute Group: regionRefs

Name regionRefs
XML Instance Representation
regionRefs=" refType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="regionRefs" id="attGp.regionRefs">
<xsd:attribute name="regionRefs" type=" refType " id="att.regionRefs"/>
</xsd:attributeGroup>
top

Attribute Group: relatedEntryType

Name relatedEntryType
XML Instance Representation
type=" relatedEntryTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="relatedEntryType" id="attGp.relatedEntryType">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="type" type=" relatedEntryTypeType " id="att.relatedEntryType"/>
</xsd:attributeGroup>
top

Attribute Group: repeat

Name repeat
XML Instance Representation
repeat=" repeatType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="repeat" id="attGp.repeat">
<xsd:attribute name="repeat" type=" repeatType " id="att.repeat"/>
</xsd:attributeGroup>
top

Attribute Group: right

Name right
XML Instance Representation
right=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="right" id="attGp.right">
<xsd:attribute name="right" type=" xsd:string " id="att.right"/>
</xsd:attributeGroup>
top

Attribute Group: role

Name role
XML Instance Representation
role=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="role" id="attGp.role">
<xsd:attribute name="role" type=" xsd:string " id="att.role"/>
</xsd:attributeGroup>
top

Attribute Group: rows

Name rows
XML Instance Representation
rows=" sizeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="rows" id="attGp.rows">
<xsd:attribute name="rows" type=" sizeType " id="att.rows"/>
</xsd:attributeGroup>
top

Attribute Group: scheme

Name scheme
XML Instance Representation
scheme=" schemeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="scheme" id="attGp.scheme">
<xsd:attribute name="scheme" type=" schemeType " id="att.reactionStepList.scheme" default="sequence"/>
</xsd:attributeGroup>
top

Attribute Group: serial

Name serial
XML Instance Representation
serial=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="serial" id="attGp.serial">
<xsd:attribute name="serial" type=" xsd:string " id="att.serial"/>
</xsd:attributeGroup>
top

Attribute Group: siNamespace

Name siNamespace
XML Instance Representation
siNamespace=" namespaceType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="siNamespace" id="attGp.siNamespace">
<xsd:attribute name="siNamespace" type=" namespaceType " id="att.siNamespace"/>
</xsd:attributeGroup>
top

Attribute Group: siNamespaceArray

Name siNamespaceArray
XML Instance Representation
siNamespaceArray=" namespaceArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="siNamespaceArray" id="attGp.siNamespaceArray">
<xsd:attribute name="siNamespaceArray" type=" namespaceArrayType " id="att.siNamespaceArray"/>
</xsd:attributeGroup>
top

Attribute Group: size

Name size
XML Instance Representation
size=" sizeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="size" id="attGp.size">
<xsd:attribute name="size" type=" sizeType " id="att.size"/>
</xsd:attributeGroup>
top

Attribute Group: spaceGroup

Name spaceGroup
XML Instance Representation
spaceGroup=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="spaceGroup" id="attGp.spaceGroup">
<xsd:attribute name="spaceGroup" type=" xsd:string " id="att.spaceGroup"/>
</xsd:attributeGroup>
top

Attribute Group: spaceGroupMultiplicity

Name spaceGroupMultiplicity
XML Instance Representation
spaceGroupMultiplicity=" xsd:positiveInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="spaceGroupMultiplicity" id="attGp.spaceGroupMultiplicity">
<xsd:attribute name="spaceGroupMultiplicity" type=" xsd:positiveInteger " id="att.spaceGroupMultiplicity"/>
</xsd:attributeGroup>
top

Attribute Group: spaceType

Name spaceType
XML Instance Representation
spaceType=" spaceType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="spaceType" id="attGp.spaceType">
<xsd:attribute name="spaceType" type=" spaceType " id="att.spaceType"/>
</xsd:attributeGroup>
top

Attribute Group: spectrumType

Name spectrumType
XML Instance Representation
type=" spectrumTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="spectrumType" id="attGp.spectrumType">
<xsd:attribute name="type" type=" spectrumTypeType " id="att.spectrumType"/>
</xsd:attributeGroup>
top

Attribute Group: sphere3

Name sphere3
XML Instance Representation
sphere3=" sphere3Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="sphere3" id="attGp.sphere3">
<xsd:attribute name="sphere3" type=" sphere3Type " id="att.sphere3"/>
</xsd:attributeGroup>
top

Attribute Group: spin

Name spin
XML Instance Representation
spin=" isotopicSpinType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="spin" id="attGp.spin">
<xsd:attribute name="spin" type=" isotopicSpinType " id="att.spin"/>
</xsd:attributeGroup>
top

Attribute Group: spinMultiplicity

Name spinMultiplicity
XML Instance Representation
spinMultiplicity=" xsd:positiveInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="spinMultiplicity" id="attGp.spinMultiplicity">
<xsd:attribute name="spinMultiplicity" type=" xsd:positiveInteger " id="att.spinMultiplicity"/>
</xsd:attributeGroup>
top

Attribute Group: start

Name start
XML Instance Representation
start=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="start" id="attGp.start">
<xsd:attribute name="start" type=" xsd:string " id="att.start"/>
</xsd:attributeGroup>
top

Attribute Group: startCondition

Name startCondition
XML Instance Representation
startCondition=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="startCondition" id="attGp.startCondition">
<xsd:attribute name="startCondition" type=" xsd:string " id="att.startCondition"/>
</xsd:attributeGroup>
top

Attribute Group: state

Name state
XML Instance Representation
state=" stateType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="state" id="attGp.state">
<xsd:attribute name="state" type=" stateType " id="att.state"/>
</xsd:attributeGroup>
top

Attribute Group: step

Name step
XML Instance Representation
step=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="step" id="attGp.step">
<xsd:attribute name="step" type=" xsd:string " id="att.step"/>
</xsd:attributeGroup>
top

Attribute Group: substanceListType

Name substanceListType
XML Instance Representation
type=" substanceListTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="substanceListType" id="attGp.substanceListType">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="type" type=" substanceListTypeType " id="att.substanceListType"/>
</xsd:attributeGroup>
top

Attribute Group: substitute

Name substitute
XML Instance Representation
substitute=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="substitute" id="attGp.substitute">
<xsd:attribute name="substitute" type=" xsd:string " id="att.substitute"/>
</xsd:attributeGroup>
top

Attribute Group: symbol

Name symbol
XML Instance Representation
symbol=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="symbol" id="attGp.symbol">
<xsd:attribute name="symbol" type=" xsd:string " id="att.symbol"/>
</xsd:attributeGroup>
top

Attribute Group: symmetryOriented

Name symmetryOriented
XML Instance Representation
symmetryOriented=" xsd:boolean [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="symmetryOriented" id="attGp.symmetryOriented">
<xsd:attribute name="symmetryOriented" type=" xsd:boolean " id="att.symmetryOriented"/>
</xsd:attributeGroup>
top

Attribute Group: tail

Name tail
XML Instance Representation
tail=" tailType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="tail" id="attGp.tail">
<xsd:attribute name="tail" type=" tailType " id="att.tail"/>
</xsd:attributeGroup>
top

Attribute Group: tautomeric

Name tautomeric
XML Instance Representation
tautomeric=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="tautomeric" id="attGp.tautomeric">
<xsd:attribute name="tautomeric" type=" xsd:string " id="att.tautomeric"/>
</xsd:attributeGroup>
top

Attribute Group: term

Name term
XML Instance Representation
term=" xsd:string [1] ?"
Schema Component Representation
<xsd:attributeGroup name="term" id="attGp.term">
<xsd:attribute name="term" type=" xsd:string " id="att.term" use="required"/>
</xsd:attributeGroup>
top

Attribute Group: test

Name test
XML Instance Representation
test=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="test" id="attGp.test">
<xsd:attribute name="test" type=" xsd:string " id="att.test"/>
</xsd:attributeGroup>
top

Attribute Group: title

Name title
XML Instance Representation
title=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="title" id="attGp.title">
<xsd:attribute name="title" type=" xsd:string " id="att.title"/>
</xsd:attributeGroup>
top

Attribute Group: to

Name to
XML Instance Representation
to=" refType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="to" id="attGp.to">
<xsd:attribute name="to" type=" refType " id="att.to"/>
</xsd:attributeGroup>
top

Attribute Group: toContext

Name toContext
XML Instance Representation
toContext=" idType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="toContext" id="attGp.toContext">
<xsd:attribute name="toContext" type=" idType " id="att.toContext"/>
</xsd:attributeGroup>
top

Attribute Group: toSet

Name toSet
XML Instance Representation
toSet=" idArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="toSet" id="attGp.toSet">
<xsd:attribute name="toSet" type=" idArrayType " id="att.toSet"/>
</xsd:attributeGroup>
top

Attribute Group: toType

Name toType
XML Instance Representation
toType=" xmlElementType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="toType" id="attGp.toType">
<xsd:attribute name="toType" type=" xmlElementType " id="att.toType"/>
</xsd:attributeGroup>
top

Attribute Group: totalDigits

Name totalDigits
XML Instance Representation
totalDigits=" xsd:positiveInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="totalDigits" id="attGp.totalDigits">
<xsd:attribute name="totalDigits" type=" xsd:positiveInteger " id="att.totalDigits"/>
</xsd:attributeGroup>
top

Attribute Group: type

Name type
XML Instance Representation
type=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="type" id="attGp.type">
<xsd:attribute name="type" type=" xsd:string " id="att.type"/>
</xsd:attributeGroup>
top

Attribute Group: unitListType

Name unitListType
XML Instance Representation
type=" unitListTypeType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="unitListType" id="attGp.unitListType">
<xsd:attribute name="type" type=" unitListTypeType " id="att.unitListType"/>
</xsd:attributeGroup>
top

Attribute Group: unitType

Name unitType
XML Instance Representation
unitType=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="unitType" id="attGp.unitType">
<xsd:attribute name="unitType" type=" xsd:string " id="att.unitType"/>
</xsd:attributeGroup>
top

Attribute Group: units

Name units
XML Instance Representation
units=" unitsType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="units" id="attGp.units">
<xsd:attribute name="units" type=" unitsType " id="att.units"/>
</xsd:attributeGroup>
top

Attribute Group: unitsRef

Name unitsRef
XML Instance Representation
unitsRef=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="unitsRef" id="attGp.unitsRef">
<xsd:attribute name="unitsRef" type=" xsd:string " id="att.unitsRef"/>
</xsd:attributeGroup>
top

Attribute Group: value

Name value
XML Instance Representation
value=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="value" id="attGp.value">
<xsd:attribute name="value" type=" xsd:string " id="att.value"/>
</xsd:attributeGroup>
top

Attribute Group: vector3

Name vector3
XML Instance Representation
vector3=" vector3Type [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="vector3" id="attGp.vector3">
<xsd:attribute name="vector3" type=" vector3Type " id="att.vector3"/>
</xsd:attributeGroup>
top

Attribute Group: version

Name version
XML Instance Representation
version=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="version" id="attGp.version">
<xsd:attribute name="version" type=" xsd:string " id="att.version"/>
</xsd:attributeGroup>
top

Attribute Group: weight

Name weight
XML Instance Representation
weight=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="weight" id="attGp.weight">
<xsd:attribute name="weight" type=" xsd:double " id="att.weight"/>
</xsd:attributeGroup>
top

Attribute Group: whiteSpace

Name whiteSpace
XML Instance Representation
whiteSpace=" xsd:string [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="whiteSpace" id="attGp.whiteSpace">
<xsd:attribute name="whiteSpace" type=" xsd:string " id="att.whiteSpace"/>
</xsd:attributeGroup>
top

Attribute Group: x2

Name x2
XML Instance Representation
x2=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="x2" id="attGp.x2">
<xsd:attribute name="x2" type=" xsd:double " id="att.x2"/>
</xsd:attributeGroup>
top

Attribute Group: x2Array

Name x2Array
XML Instance Representation
x2=" coordinateComponentArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="x2Array" id="attGp.x2Array">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="x2" type=" coordinateComponentArrayType " id="att.x2Array"/>
</xsd:attributeGroup>
top

Attribute Group: x3

Name x3
XML Instance Representation
x3=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="x3" id="attGp.x3">
<xsd:attribute name="x3" type=" xsd:double " id="att.x3"/>
</xsd:attributeGroup>
top

Attribute Group: x3Array

Name x3Array
XML Instance Representation
x3=" coordinateComponentArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="x3Array" id="attGp.x3Array">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="x3" type=" coordinateComponentArrayType " id="att.x3Array"/>
</xsd:attributeGroup>
top

Attribute Group: xFract

Name xFract
XML Instance Representation
xFract=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="xFract" id="attGp.xFract">
<xsd:attribute name="xFract" type=" xsd:double " id="att.xFract"/>
</xsd:attributeGroup>
top

Attribute Group: xFractArray

Name xFractArray
XML Instance Representation
xFract=" coordinateComponentArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="xFractArray" id="attGp.xFractArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="xFract" type=" coordinateComponentArrayType " id="att.xFractArray"/>
</xsd:attributeGroup>
top

Attribute Group: xMax

Name xMax
XML Instance Representation
xMax=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="xMax" id="attGp.xMax">
<xsd:attribute name="xMax" type=" xsd:double " id="att.xMax"/>
</xsd:attributeGroup>
top

Attribute Group: xMin

Name xMin
XML Instance Representation
xMin=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="xMin" id="attGp.xMin">
<xsd:attribute name="xMin" type=" xsd:double " id="att.xMin"/>
</xsd:attributeGroup>
top

Attribute Group: xUnits

Name xUnits
XML Instance Representation
xUnits=" unitsType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="xUnits" id="attGp.xUnits">
<xsd:attribute name="xUnits" type=" unitsType " id="att.xUnits"/>
</xsd:attributeGroup>
top

Attribute Group: xValue

Name xValue
XML Instance Representation
xValue=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="xValue" id="attGp.xValue">
<xsd:attribute name="xValue" type=" xsd:double " id="att.xValue"/>
</xsd:attributeGroup>
top

Attribute Group: xWidth

Name xWidth
XML Instance Representation
xWidth=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="xWidth" id="attGp.xWidth">
<xsd:attribute name="xWidth" type=" xsd:double " id="att.xWidth"/>
</xsd:attributeGroup>
top

Attribute Group: y2

Name y2
XML Instance Representation
y2=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="y2" id="attGp.y2">
<xsd:attribute name="y2" type=" xsd:double " id="att.y2"/>
</xsd:attributeGroup>
top

Attribute Group: y2Array

Name y2Array
XML Instance Representation
y2=" coordinateComponentArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="y2Array" id="attGp.y2Array">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="y2" type=" coordinateComponentArrayType " id="att.y2Array"/>
</xsd:attributeGroup>
top

Attribute Group: y3

Name y3
XML Instance Representation
y3=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="y3" id="attGp.y3">
<xsd:attribute name="y3" type=" xsd:double " id="att.y3"/>
</xsd:attributeGroup>
top

Attribute Group: y3Array

Name y3Array
XML Instance Representation
y3=" coordinateComponentArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="y3Array" id="attGp.y3Array">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="y3" type=" coordinateComponentArrayType " id="att.y3Array"/>
</xsd:attributeGroup>
top

Attribute Group: yFract

Name yFract
XML Instance Representation
yFract=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="yFract" id="attGp.yFract">
<xsd:attribute name="yFract" type=" xsd:double " id="att.yFract"/>
</xsd:attributeGroup>
top

Attribute Group: yFractArray

Name yFractArray
XML Instance Representation
yFract=" coordinateComponentArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="yFractArray" id="attGp.yFractArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="yFract" type=" coordinateComponentArrayType " id="att.yFractArray"/>
</xsd:attributeGroup>
top

Attribute Group: yMax

Name yMax
XML Instance Representation
yMax=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="yMax" id="attGp.yMax">
<xsd:attribute name="yMax" type=" xsd:double " id="att.yMax"/>
</xsd:attributeGroup>
top

Attribute Group: yMin

Name yMin
XML Instance Representation
yMin=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="yMin" id="attGp.yMin">
<xsd:attribute name="yMin" type=" xsd:double " id="att.yMin"/>
</xsd:attributeGroup>
top

Attribute Group: yUnits

Name yUnits
XML Instance Representation
yUnits=" unitsType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="yUnits" id="attGp.yUnits">
<xsd:attribute name="yUnits" type=" unitsType " id="att.yUnits"/>
</xsd:attributeGroup>
top

Attribute Group: yValue

Name yValue
XML Instance Representation
yValue=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="yValue" id="attGp.yValue">
<xsd:attribute name="yValue" type=" xsd:double " id="att.yValue"/>
</xsd:attributeGroup>
top

Attribute Group: yWidth

Name yWidth
XML Instance Representation
yWidth=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="yWidth" id="attGp.yWidth">
<xsd:attribute name="yWidth" type=" xsd:double " id="att.yWidth"/>
</xsd:attributeGroup>
top

Attribute Group: yield

Name yield
XML Instance Representation
yield=" occupancyType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="yield" id="attGp.yield">
<xsd:attribute name="yield" type=" occupancyType " id="att.yield"/>
</xsd:attributeGroup>
top

Attribute Group: z

Name z
XML Instance Representation
z=" xsd:nonNegativeInteger [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="z" id="attGp.z">
<xsd:attribute name="z" type=" xsd:nonNegativeInteger " id="att.z"/>
</xsd:attributeGroup>
top

Attribute Group: z3

Name z3
XML Instance Representation
z3=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="z3" id="attGp.z3">
<xsd:attribute name="z3" type=" xsd:double " id="att.z3"/>
</xsd:attributeGroup>
top

Attribute Group: z3Array

Name z3Array
XML Instance Representation
z3=" coordinateComponentArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="z3Array" id="attGp.z3Array">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="z3" type=" coordinateComponentArrayType " id="att.z3Array"/>
</xsd:attributeGroup>
top

Attribute Group: zFract

Name zFract
XML Instance Representation
zFract=" xsd:double [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="zFract" id="attGp.zFract">
<xsd:attribute name="zFract" type=" xsd:double " id="att.zFract"/>
</xsd:attributeGroup>
top

Attribute Group: zFractArray

Name zFractArray
XML Instance Representation
zFract=" coordinateComponentArrayType [0..1] ?"
Schema Component Representation
<xsd:attributeGroup name="zFractArray" id="attGp.zFractArray">
<-- Note: name differs from attributeGroup name -->
<xsd:attribute name="zFract" type=" coordinateComponentArrayType " id="att.zFractArray"/>
</xsd:attributeGroup>
top

Simple Type: actionOrderType

Super-types: xsd:string < actionOrderType (by restriction)
Sub-types: None
Name actionOrderType
Content
  • Base XSD Type: string
  • value comes from list: {'sequential'|'parallel'}
Documentation
Describes whether child elements are sequential or parallel.
There is no default.
Schema Component Representation
<xsd:simpleType name="actionOrderType" id="st.actionOrderType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="sequential"/>
<xsd:enumeration value="parallel"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: alternativeTypeType

Super-types: None
Sub-types: None
Name alternativeTypeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'synonym'|'quasi-synonym'|'acronym'|'abbreviation'|'homonym'|'identifier'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The type of an alternative.
This adds semantics to an _alternative_ and might be used by an RDF or related engine.
Schema Component Representation
<xsd:simpleType name="alternativeTypeType" id="st.alternativeTypeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="synonym"/>
<xsd:enumeration value="quasi-synonym"/>
<xsd:enumeration value="acronym"/>
<xsd:enumeration value="abbreviation"/>
<xsd:enumeration value="homonym"/>
<xsd:enumeration value="identifier"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: angleUnitsType

Super-types: xsd:string < angleUnitsType (by restriction)
Sub-types: None
Name angleUnitsType
Content
  • Base XSD Type: string
  • value comes from list: {'degrees'|'radians'}
Documentation
An enumeration of allowed angle units.
May be obsolete.
Schema Component Representation
<xsd:simpleType name="angleUnitsType" id="st.angleUnitsType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="degrees"/>
<xsd:enumeration value="radians"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: atomIDType

Super-types: xsd:string < atomIDType (by restriction)
Sub-types:
Name atomIDType
Content
  • Base XSD Type: string
  • pattern = [A-Za-z_][A-Za-z0-9_\-]*(:[A-Za-z0-9_\-]+)?
Documentation
An identifier for an atom.

Of the form prefix:suffix where prefix and suffix are purely alphanumeric (with _ and -) and prefix is optional. This is similar to XML IDs (and we promote this as good practice for atomIDs. Other punctuation and whitespace is forbidden, so IDs from (say) PDB files are not satisfactory.

The prefix is intended to form a pseudo-namespace so that atom IDs in different molecules may have identical suffixes. It is also useful if the prefix is the ID for the molecule (though this clearly has its limitation). Atom IDs should not be typed as XML IDs since they may not validate.

Application Data
Schema Component Representation
<xsd:simpleType name="atomIDType" id="st.atomIDType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-Za-z_][A-Za-z0-9_\-]*(:[A-Za-z0-9_\-]+)?"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: atomRefArrayType

Super-types: None
Sub-types: None
Name atomRefArrayType
Content
Documentation
An array of atomRefs.
The atomRefs cannot be schema- or schematron-validated. Instances of this type will be used in array-style representation of bonds and atomParitys. It can also be used for arrays of atomIDTypes such as in complex stereochemistry, geometrical definitions, atom groupings, etc.
Application Data
Schema Component Representation
<xsd:simpleType name="atomRefArrayType" id="st.atomRefArrayType">
<xsd:list itemType=" atomIDType "/>
</xsd:simpleType>
top

Simple Type: atomRefType

Super-types: xsd:string < atomIDType (by restriction) < atomRefType (by restriction)
Sub-types: None
Name atomRefType
Content
  • Base XSD Type: string
  • pattern = [A-Za-z_][A-Za-z0-9_\-]*(:[A-Za-z0-9_\-]+)?
Documentation
A reference to an existing atom.
Schema Component Representation
<xsd:simpleType name="atomRefType" id="st.atomRefType">
<xsd:restriction base=" atomIDType "/>
</xsd:simpleType>
top

Simple Type: atomRefs2Type

Super-types: Local type definition < atomRefs2Type (by restriction)
Sub-types: None
Name atomRefs2Type
Content
  • length = 2
Documentation
A reference to two distinct existing atoms in order.
Schema Component Representation
<xsd:simpleType name="atomRefs2Type" id="st.atomRefs2Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" atomIDType "/>
</xsd:simpleType>
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: atomRefs3Type

Super-types: Local type definition < atomRefs3Type (by restriction)
Sub-types: None
Name atomRefs3Type
Content
  • length = 3
Documentation
A reference to three distinct existing atoms in order.
Schema Component Representation
<xsd:simpleType name="atomRefs3Type" id="st.atomRefs3Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" atomIDType "/>
</xsd:simpleType>
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: atomRefs4Type

Super-types: Local type definition < atomRefs4Type (by restriction)
Sub-types: None
Name atomRefs4Type
Content
  • length = 4
Documentation
A reference to four distinct existing atoms in order.
Schema Component Representation
<xsd:simpleType name="atomRefs4Type" id="st.atomRefs4Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" atomIDType "/>
</xsd:simpleType>
<xsd:length value="4"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: bondRefArrayType

Super-types: None
Sub-types: None
Name bondRefArrayType
Content
Documentation
An array of references to bonds.
The references cannot (yet) cannot be schema- or schematron-validated. Instances of this type will be used in array-style representation of electron counts, etc. It can also be used for arrays of bondIDTypes such as in complex stereochemistry, geometrical definitions, bond groupings, etc.
Application Data
Schema Component Representation
<xsd:simpleType name="bondRefArrayType" id="st.bondRefArrayType">
<xsd:list itemType=" bondRefType "/>
</xsd:simpleType>
top

Simple Type: bondRefType

Super-types: xsd:string < bondRefType (by restriction)
Sub-types: None
Name bondRefType
Content
  • Base XSD Type: string
  • pattern = [A-Za-z0-9_\-]+(:[A-Za-z0-9_\-]+)?
Documentation
A reference to an existing bond.
A reference to a bond may be made by atoms (e.g. for multicentre or pi-bonds), electrons (for annotating reactions or describing electronic properties) or possibly other bonds (no examples yet). The semantics are relatively flexible.
Schema Component Representation
<xsd:simpleType name="bondRefType" id="st.bondRefType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-Za-z0-9_\-]+(:[A-Za-z0-9_\-]+)?"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: box3Type

Super-types: Local type definition < box3Type (by restriction)
Sub-types: None
Name box3Type
Content
  • List of: xsd:double
  • length = 6
Documentation
A box in 3-space.
Defined by 6 real numbers (x1 y1 z1 x2 y2 z2). By default these are Cartesian coordinates (with units specified elsewhere - responsibility of schema creator.) If there is a means of specifying oblique axes (e.g. crystallographic cell) the box may be a parallelipiped. The components are grouped in threes ans separated by a semicolon to avoid problems of guessing the convention.
Schema Component Representation
<xsd:simpleType name="box3Type" id="st.box3Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="6"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: cellParameterType

Super-types: xsd:string < cellParameterType (by restriction)
Sub-types: None
Name cellParameterType
Content
  • Base XSD Type: string
  • value comes from list: {'length'|'angle'}
Documentation
enumerated type of cellParameter
Schema Component Representation
<xsd:simpleType name="cellParameterType" id="st.cellParameterType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="length"/>
<xsd:enumeration value="angle"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: chiralityType

Super-types: xsd:string < chiralityType (by restriction)
Sub-types: None
Name chiralityType
Content
  • Base XSD Type: string
  • value comes from list: {'enantiomer'|'racemate'|'unknown'|'other'}
Documentation
The chirality of a system or molecule.
This is being actively investigated by a IUPAC committee (2002) so the convention is likely to change. No formal default.
Schema Component Representation
<xsd:simpleType name="chiralityType" id="st.chiralityType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="enantiomer"/>
<xsd:enumeration value="racemate"/>
<xsd:enumeration value="unknown"/>
<xsd:enumeration value="other"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: complexType

Super-types: Local type definition < complexType (by restriction)
Sub-types: None
Name complexType
Content
  • List of: xsd:double
  • length = 2
Documentation
A pair of floats representing a complex number.

This example is schema-invalid as it has three floats

Schema Component Representation
<xsd:simpleType name="complexType" id="st.complexType">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: coordinate2Type

Super-types: Local type definition < coordinate2Type (by restriction)
Sub-types: None
Name coordinate2Type
Content
  • List of: xsd:double
  • length = 2
Documentation
An x/y coordinate pair.
An x/y coordinate pair consisting of two real numbers, separated by whitespace or a comma. In arrays and matrices, it may be useful to set a separate delimiter
Schema Component Representation
<xsd:simpleType name="coordinate2Type" id="st.coordinate2Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="2"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: coordinate3Type

Super-types: Local type definition < coordinate3Type (by restriction)
Sub-types: None
Name coordinate3Type
Content
  • List of: xsd:double
  • length = 3
Documentation
An x/y/z coordinate triple.
An x/y/z coordinate triple consisting of three real numbers, separated by whitespace or commas. In arrays and matrices, it may be useful to set a separate delimiter.
Schema Component Representation
<xsd:simpleType name="coordinate3Type" id="st.coordinate3Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: coordinateComponentArrayType

Super-types: None
Sub-types: None
Name coordinateComponentArrayType
Content
  • List of: xsd:double
Documentation
An array of coordinateComponents for a single coordinate.
An array of coordinateComponents for a single coordinate where these all refer to an X-coordinate (NOT x,y,z).Instances of this type will be used in array-style representation of 2-D or 3-D coordinates. Currently no machine validation. Currently not used in STMML, but re-used by CML (see example).
Schema Component Representation
<xsd:simpleType name="coordinateComponentArrayType" id="st.coordinateComponentArrayType">
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
top

Simple Type: countArrayType

Super-types: None
Sub-types: None
Name countArrayType
Content
  • List of: xsd:double
Documentation
Array of counts.
Normally, but not always, integers. can be used with a number of elements
2005-11-01: PMR the combination of dataType and list does not work with JUMBO5.0 - so for the meantime we have removed the restriction
Schema Component Representation
<xsd:simpleType name="countArrayType" id="st.countArrayType">
<-- <xsd:list itemType="countType"/> this is correct but my software doesn't process it-->
<xsd:list itemType=" xsd:double "/>
<-- removed by PMR <xsd:restriction base="xsd:double"> <xsd:minExclusive value="0.0"/> <xsd:maxInclusive value="1.0E+99"/> </xsd:restriction> -->
</xsd:simpleType>
top

Simple Type: countType

Super-types: xsd:double < positiveNumberType (by restriction) < countType (by restriction)
Sub-types: None
Name countType
Content
  • Base XSD Type: double
  • 0.0 < value <= 1.0E+99
Documentation
A count multiplier for an object.
Many elements represent objects which can occur an arbitrary number of times in a scientific context. Examples are action, object or molecules.
2005-10-16. Changed to positiveNumerType.
Schema Component Representation
<xsd:simpleType name="countType" id="st.countType">
<xsd:restriction base=" positiveNumberType "/>
</xsd:simpleType>
top

Simple Type: dataTypeType

Super-types: None
Sub-types: None
Name dataTypeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'xsd:string'|'xsd:boolean'|'xsd:float'|'xsd:double'|'xsd:decimal'|'xsd:duration'|'xsd:dateTime'|'xsd:time'|'xsd:date'|'xsd:gYearMonth'|'xsd:gYear'|'xsd:gMonthDay'|'xsd:gDay'|'xsd:gMonth'|'xsd:hexBinary'|'xsd:base64Binary'|'xsd:anyURI'|'xsd:QName'|'xsd:NOTATION'|'xsd:normalizedString'|'xsd:token'|'xsd:language'|'xsd:IDREFS'|'xsd:ENTITIES'|'xsd:NMTOKEN'|'xsd:NMTOKENS'|'xsd:Name'|'xsd:NCName'|'xsd:ID'|'xsd:IDREF'|'xsd:ENTITY'|'xsd:integer'|'xsd:nonPositiveInteger'|'xsd:negativeInteger'|'xsd:long'|'xsd:int'|'xsd:short'|'xsd:byte'|'xsd:nonNegativeInteger'|'xsd:unsignedLong'|'xsd:unsignedInt'|'xsd:unsignedShort'|'xsd:unsignedByte'|'xsd:positiveInteger'|'dataTypeType'|'namespaceRefType'|'unitsType'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
an enumerated type for all dataTypes in STM.

dataTypeType represents an enumeration of allowed dataTypes (at present identical with those in XML-Schemas (Part2- datatypes). This means that implementers should be able to use standard XMLSchema-based tools for validation without major implementation problems.

It will often be used an an attribute on scalar, array or matrix elements.

Note: the attribute xsi:type might be used to enforce the type-checking but I haven't worked this through yet.
Schema Component Representation
<xsd:simpleType name="dataTypeType" id="st.dataTypeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="xsd:string"/>
<xsd:enumeration value="xsd:boolean"/>
<xsd:enumeration value="xsd:float"/>
<xsd:enumeration value="xsd:double"/>
<xsd:enumeration value="xsd:decimal"/>
<xsd:enumeration value="xsd:duration"/>
<xsd:enumeration value="xsd:dateTime"/>
<xsd:enumeration value="xsd:time"/>
<xsd:enumeration value="xsd:date"/>
<xsd:enumeration value="xsd:gYearMonth"/>
<xsd:enumeration value="xsd:gYear"/>
<xsd:enumeration value="xsd:gMonthDay"/>
<xsd:enumeration value="xsd:gDay"/>
<xsd:enumeration value="xsd:gMonth"/>
<xsd:enumeration value="xsd:hexBinary"/>
<xsd:enumeration value="xsd:base64Binary"/>
<xsd:enumeration value="xsd:anyURI"/>
<xsd:enumeration value="xsd:QName"/>
<xsd:enumeration value="xsd:NOTATION"/>
<xsd:enumeration value="xsd:normalizedString"/>
<xsd:enumeration value="xsd:token"/>
<xsd:enumeration value="xsd:language"/>
<xsd:enumeration value="xsd:IDREFS"/>
<xsd:enumeration value="xsd:ENTITIES"/>
<xsd:enumeration value="xsd:NMTOKEN"/>
<xsd:enumeration value="xsd:NMTOKENS"/>
<xsd:enumeration value="xsd:Name"/>
<xsd:enumeration value="xsd:NCName"/>
<xsd:enumeration value="xsd:ID"/>
<xsd:enumeration value="xsd:IDREF"/>
<xsd:enumeration value="xsd:ENTITY"/>
<xsd:enumeration value="xsd:integer"/>
<xsd:enumeration value="xsd:nonPositiveInteger"/>
<xsd:enumeration value="xsd:negativeInteger"/>
<xsd:enumeration value="xsd:long"/>
<xsd:enumeration value="xsd:int"/>
<xsd:enumeration value="xsd:short"/>
<xsd:enumeration value="xsd:byte"/>
<xsd:enumeration value="xsd:nonNegativeInteger"/>
<xsd:enumeration value="xsd:unsignedLong"/>
<xsd:enumeration value="xsd:unsignedInt"/>
<xsd:enumeration value="xsd:unsignedShort"/>
<xsd:enumeration value="xsd:unsignedByte"/>
<xsd:enumeration value="xsd:positiveInteger"/>
<-- CML types -->
<xsd:enumeration value="dataTypeType"/>
<xsd:enumeration value="namespaceRefType"/>
<xsd:enumeration value="unitsType"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: delimiterType

Super-types: xsd:string < delimiterType (by restriction)
Sub-types: None
Name delimiterType
Content
  • Base XSD Type: string
  • pattern = [!%\^\*@~;#,|/]
Documentation
A single non-whitespace character to separate components in arrays.

Some STMML elements (such as array) have content representing concatenated values. The default separator is whitespace (which can be normalised) and this should be used whenever possible. However in some cases the values are empty, or contain whitespace or other problematic punctuation, and a delimiter is required.

Note that the content string MUST start and end with the delimiter so there is no ambiguity as to what the components are. Only printable characters from the ASCII character set should be used, and character entities should be avoided.

When delimiters are used to separate precise whitespace this should always consist of spaces and not the other allowed whitespace characters (newline, tabs, etc.). If the latter are important it is probably best to redesign the application.

At present there is a controlled pattern of characters selected so as not to collide with common usage in XML document

The values in the array are "A", "B12", "" (empty string) and "D and E" note the spaces
Schema Component Representation
<xsd:simpleType name="delimiterType" id="st.delimiterType">
<xsd:restriction base=" xsd:string ">
<--<xsd:pattern value="[\!\$\%\^\*\@\~\;\#\,/\|]"/>-->
<xsd:pattern value="[!%\^\*@~;#,|/]"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: dictionaryPrefixType

Super-types: xsd:string < dictionaryPrefixType (by restriction)
Sub-types: None
Name dictionaryPrefixType
Content
  • Base XSD Type: string
  • pattern = [A-Za-z][A-Za-z0-9_\.\-]*
Documentation
A dictionaryPrefix

used to identify a dictionary, units, convention or other metadata.

2005-12-12: PMR. Added for use with dictionary
Schema Component Representation
<xsd:simpleType name="dictionaryPrefixType" id="st.dictionaryPrefixType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-Za-z][A-Za-z0-9_\.\-]*"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: dimensionType

Super-types: xsd:string < dimensionType (by restriction)
Sub-types: None
Name dimensionType
Content
  • Base XSD Type: string
  • value comes from list: {'mass'|'length'|'time'|'current'|'amount'|'luminosity'|'temperature'|'dimensionless'|'angle'}
Documentation
Allowed values for dimension Types in quantities.

These are the 7 types prescribed by the SI system, together with the "dimensionless" type. We intend to be somewhat uncoventional and explore enhanced values of "dimensionless", such as "angle". This may be heretical, but we find the present system impossible to implement in many cases.

Used for constructing entries in a dictionary of units

Schema Component Representation
<xsd:simpleType name="dimensionType" id="st.dimensionType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="mass"/>
<xsd:enumeration value="length"/>
<xsd:enumeration value="time"/>
<xsd:enumeration value="current"/>
<xsd:enumeration value="amount"/>
<xsd:enumeration value="luminosity"/>
<xsd:enumeration value="temperature"/>
<xsd:enumeration value="dimensionless"/>
<xsd:enumeration value="angle"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: eigenOrientationType

Super-types: None
Sub-types: None
Name eigenOrientationType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'columnVectors'|'rowVectors'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Orientation of the eigenvector matrix.

Specifies whether the rows or columns of the (square) matrix correspond to the eigenvectors. For example, in molecular orbitals the vectors are normally represented as columns, and each column would correspond to a different eigenvalue

2006-01-13: PMR. Created.
Schema Component Representation
<xsd:simpleType name="eigenOrientationType" id="st.eigenOrientationType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="columnVectors"/>
<xsd:enumeration value="rowVectors"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: elementTypeArrayType

Super-types: None
Sub-types: None
Name elementTypeArrayType
Content
Documentation
An array of elementTypes.
Instances of this type will be used in array-style representation of atoms.
Schema Component Representation
<xsd:simpleType name="elementTypeArrayType" id="st.elementTypeArrayType">
<xsd:list itemType=" elementTypeType "/>
</xsd:simpleType>
top

Simple Type: elementTypeType

Super-types: None
Sub-types: None
Name elementTypeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'Ac'|'Al'|'Ag'|'Am'|'Ar'|'As'|'At'|'Au'|'B'|'Ba'|'Bh'|'Bi'|'Be'|'Bk'|'Br'|'C'|'Ca'|'Cd'|'Ce'|'Cf'|'Cl'|'Cm'|'Co'|'Cr'|'Cs'|'Cu'|'Db'|'Dy'|'Er'|'Es'|'Eu'|'F'|'Fe'|'Fm'|'Fr'|'Ga'|'Gd'|'Ge'|'H'|'He'|'Hf'|'Hg'|'Ho'|'Hs'|'I'|'In'|'Ir'|'K'|'Kr'|'La'|'Li'|'Lr'|'Lu'|'Md'|'Mg'|'Mn'|'Mo'|'Mt'|'N'|'Na'|'Nb'|'Nd'|'Ne'|'Ni'|'No'|'Np'|'O'|'Os'|'P'|'Pa'|'Pb'|'Pd'|'Pm'|'Po'|'Pr'|'Pt'|'Pu'|'Ra'|'Rb'|'Re'|'Rf'|'Rh'|'Rn'|'Ru'|'S'|'Sb'|'Sc'|'Se'|'Sg'|'Si'|'Sm'|'Sn'|'Sr'|'Ta'|'Tb'|'Tc'|'Te'|'Th'|'Ti'|'Tl'|'Tm'|'U'|'Uun'|'Uuu'|'Uub'|'Uut'|'Uuq'|'Uup'|'Uuh'|'Uus'|'Uuo'|'V'|'W'|'Xe'|'Y'|'Yb'|'Zn'|'Zr'|'Dummy'|'Du'|'R'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z]+:[A-Za-z][A-Za-z0-9\-]+
Documentation
Allowed elementType values.

The periodic table (up to element number 118. In addition the following strings are allowed:

  • Du. ("dummy") This does not correspond to a "real" atom and can support a point in space or within a chemical graph.
  • R. ("R-group") This indicates that an atom or group of atoms could be attached at this point.

Schema Component Representation
<xsd:simpleType name="elementTypeType" id="st.elementTypeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="Ac"/>
<xsd:enumeration value="Al"/>
<xsd:enumeration value="Ag"/>
<xsd:enumeration value="Am"/>
<xsd:enumeration value="Ar"/>
<xsd:enumeration value="As"/>
<xsd:enumeration value="At"/>
<xsd:enumeration value="Au"/>
<xsd:enumeration value="B"/>
<xsd:enumeration value="Ba"/>
<xsd:enumeration value="Bh"/>
<xsd:enumeration value="Bi"/>
<xsd:enumeration value="Be"/>
<xsd:enumeration value="Bk"/>
<xsd:enumeration value="Br"/>
<xsd:enumeration value="C"/>
<xsd:enumeration value="Ca"/>
<xsd:enumeration value="Cd"/>
<xsd:enumeration value="Ce"/>
<xsd:enumeration value="Cf"/>
<xsd:enumeration value="Cl"/>
<xsd:enumeration value="Cm"/>
<xsd:enumeration value="Co"/>
<xsd:enumeration value="Cr"/>
<xsd:enumeration value="Cs"/>
<xsd:enumeration value="Cu"/>
<xsd:enumeration value="Db"/>
<xsd:enumeration value="Dy"/>
<xsd:enumeration value="Er"/>
<xsd:enumeration value="Es"/>
<xsd:enumeration value="Eu"/>
<xsd:enumeration value="F"/>
<xsd:enumeration value="Fe"/>
<xsd:enumeration value="Fm"/>
<xsd:enumeration value="Fr"/>
<xsd:enumeration value="Ga"/>
<xsd:enumeration value="Gd"/>
<xsd:enumeration value="Ge"/>
<xsd:enumeration value="H"/>
<xsd:enumeration value="He"/>
<xsd:enumeration value="Hf"/>
<xsd:enumeration value="Hg"/>
<xsd:enumeration value="Ho"/>
<xsd:enumeration value="Hs"/>
<xsd:enumeration value="I"/>
<xsd:enumeration value="In"/>
<xsd:enumeration value="Ir"/>
<xsd:enumeration value="K"/>
<xsd:enumeration value="Kr"/>
<xsd:enumeration value="La"/>
<xsd:enumeration value="Li"/>
<xsd:enumeration value="Lr"/>
<xsd:enumeration value="Lu"/>
<xsd:enumeration value="Md"/>
<xsd:enumeration value="Mg"/>
<xsd:enumeration value="Mn"/>
<xsd:enumeration value="Mo"/>
<xsd:enumeration value="Mt"/>
<xsd:enumeration value="N"/>
<xsd:enumeration value="Na"/>
<xsd:enumeration value="Nb"/>
<xsd:enumeration value="Nd"/>
<xsd:enumeration value="Ne"/>
<xsd:enumeration value="Ni"/>
<xsd:enumeration value="No"/>
<xsd:enumeration value="Np"/>
<xsd:enumeration value="O"/>
<xsd:enumeration value="Os"/>
<xsd:enumeration value="P"/>
<xsd:enumeration value="Pa"/>
<xsd:enumeration value="Pb"/>
<xsd:enumeration value="Pd"/>
<xsd:enumeration value="Pm"/>
<xsd:enumeration value="Po"/>
<xsd:enumeration value="Pr"/>
<xsd:enumeration value="Pt"/>
<xsd:enumeration value="Pu"/>
<xsd:enumeration value="Ra"/>
<xsd:enumeration value="Rb"/>
<xsd:enumeration value="Re"/>
<xsd:enumeration value="Rf"/>
<xsd:enumeration value="Rh"/>
<xsd:enumeration value="Rn"/>
<xsd:enumeration value="Ru"/>
<xsd:enumeration value="S"/>
<xsd:enumeration value="Sb"/>
<xsd:enumeration value="Sc"/>
<xsd:enumeration value="Se"/>
<xsd:enumeration value="Sg"/>
<xsd:enumeration value="Si"/>
<xsd:enumeration value="Sm"/>
<xsd:enumeration value="Sn"/>
<xsd:enumeration value="Sr"/>
<xsd:enumeration value="Ta"/>
<xsd:enumeration value="Tb"/>
<xsd:enumeration value="Tc"/>
<xsd:enumeration value="Te"/>
<xsd:enumeration value="Th"/>
<xsd:enumeration value="Ti"/>
<xsd:enumeration value="Tl"/>
<xsd:enumeration value="Tm"/>
<xsd:enumeration value="U"/>
<xsd:enumeration value="Uun"/>
<xsd:enumeration value="Uuu"/>
<xsd:enumeration value="Uub"/>
<xsd:enumeration value="Uut"/>
<xsd:enumeration value="Uuq"/>
<xsd:enumeration value="Uup"/>
<xsd:enumeration value="Uuh"/>
<xsd:enumeration value="Uus"/>
<xsd:enumeration value="Uuo"/>
<xsd:enumeration value="V"/>
<xsd:enumeration value="W"/>
<xsd:enumeration value="Xe"/>
<xsd:enumeration value="Y"/>
<xsd:enumeration value="Yb"/>
<xsd:enumeration value="Zn"/>
<xsd:enumeration value="Zr"/>
<xsd:enumeration value="Dummy"/>
<xsd:enumeration value="Du"/>
<xsd:enumeration value="R"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-Za-z]+:[A-Za-z][A-Za-z0-9\-]+"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: errorBasisType

Super-types: None
Sub-types: None
Name errorBasisType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'observedRange'|'observedStandardDeviation'|'observedStandardError'|'estimatedStandardDeviation'|'estimatedStandardError'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The basis of an error value.
Errors in values can be of several types and this simpleType provides a small controlled vocabulary.
Schema Component Representation
<xsd:simpleType name="errorBasisType" id="st.errorBasisType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="observedRange"/>
<xsd:enumeration value="observedStandardDeviation"/>
<xsd:enumeration value="observedStandardError"/>
<xsd:enumeration value="estimatedStandardDeviation"/>
<xsd:enumeration value="estimatedStandardError"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: errorValueArrayType

Super-types: None
Sub-types: None
Name errorValueArrayType
Content
Documentation
Array of error estimate values.
An observed or calculated estimate of the error in the value of a numeric quantity. It should be ignored for dataTypes such as URL, date or string. The statistical basis of the errorValueType is not defined - it could be a range, an estimated standard deviation, an observed standard error, etc. This information can be added through _errorBasisType_.
Schema Component Representation
<xsd:simpleType name="errorValueArrayType" id="st.errorValueArrayType">
<xsd:list itemType=" errorValueType "/>
</xsd:simpleType>
top

Simple Type: errorValueType

Super-types: xsd:double < errorValueType (by restriction)
Sub-types: None
Name errorValueType
Content
  • Base XSD Type: double
Documentation
An estimate of the error in the value of a quantity.
An observed or calculated estimate of the error in the value of a numeric quantity. It should be ignored for dataTypes such as URL, date or string. The statistical basis of the errorValueType is not defined - it could be a range, an estimated standard deviation, an observed standard error, etc. This information can be added through _errorBasisType_.
Schema Component Representation
<xsd:simpleType name="errorValueType" id="st.errorValueType">
<xsd:restriction base=" xsd:double "/>
</xsd:simpleType>
top

Simple Type: floatArrayType

Super-types: None
Sub-types: None
Name floatArrayType
Content
  • List of: xsd:double
Documentation
OBSOLETE An array of floats.
An array of floats or other real numbers. Not used in STM Schema, but re-used by CML and other languages.
Schema Component Representation
<xsd:simpleType name="floatArrayType" id="st.floatArrayType">
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
top

Simple Type: formalChargeArrayType

Super-types: None
Sub-types: None
Name formalChargeArrayType
Content
Documentation
Array of formalCharges.
Used for electron-bookeeping. This has no relation to its calculated (fractional) charge or oxidation state.
Schema Component Representation
<xsd:simpleType name="formalChargeArrayType" id="st.formalChargeArrayType">
<xsd:list itemType=" formalChargeType "/>
</xsd:simpleType>
top

Simple Type: formalChargeType

Super-types: xsd:integer < formalChargeType (by restriction)
Sub-types: None
Name formalChargeType
Content
  • Base XSD Type: integer
Documentation
The formal charge on an object.
Used for electron-bookeeping. This has no relation to its calculated (fractional) charge or oxidation state.
Schema Component Representation
<xsd:simpleType name="formalChargeType" id="st.formalChargeType">
<xsd:restriction base=" xsd:integer "/>
</xsd:simpleType>
top

Simple Type: formatType

Super-types: None
Sub-types: None
Name formatType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'1D'|'2Dsymm'|'2Dasymm'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Format of a spectrum.
The data structure of the spectrum. (Not the format of the data). This describes how the data structure is to be interpreted.
Schema Component Representation
<xsd:simpleType name="formatType" id="st.formatType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="1D"/>
<xsd:enumeration value="2Dsymm"/>
<xsd:enumeration value="2Dasymm"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: formulaType

Super-types: xsd:string < formulaType (by restriction)
Sub-types: None
Name formulaType
Content
  • Base XSD Type: string
  • pattern = \s*([A-Z][a-z]?\s+(([0-9]+(\.[0-9]*)?)|(\.[0-9]*))?\s*)+(\s+[\-|+]?[0-9]+)?\s*
Documentation
A concise representation for a molecular formula.
This MUST adhere to a whitespaced syntax so that it is trivially machine-parsable. Each element is followed by its count (which may be decimal), and the string is optionally ended by a formal charge (of form d or -d, i.e. no '+') NO brackets or other nesting is allowed.
2005-08-30: allowed decimal points
Application Data
Schema Component Representation
<xsd:simpleType name="formulaType" id="st.formulaType">
<xsd:restriction base=" xsd:string ">
<-- obsoleted <xsd:pattern value="\s*([A-Z][a-z]?\s+([1-9][0-9]*(\.[0-9]*)?\s*))+(\s+[-|+]?[0-9]+)?\s*"/>-->
<-- failed to support charge <xsd:pattern value="\s*([A-Z][a-z]?\s+(([0-9]+(\.[0-9]*)?)|(\.[0-9]*))?\s*)+"/>-->
<xsd:pattern value="\s*([A-Z][a-z]?\s+(([0-9]+(\.[0-9]*)?)|(\.[0-9]*))?\s*)+(\s+[\-|+]?[0-9]+)?\s*"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: ftType

Super-types: None
Sub-types: None
Name ftType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'raw'|'transformed'|'none'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Domain of an FT spectrum.
Indicates whether a spectrum is raw FID or has been transforme.
Schema Component Representation
<xsd:simpleType name="ftType" id="st.ftType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="raw"/>
<xsd:enumeration value="transformed"/>
<xsd:enumeration value="none"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: headType

Super-types: xsd:string < headType (by restriction)
Sub-types: None
Name headType
Content
  • Base XSD Type: string
  • pattern = [A-z][A-z0-9_]*
Documentation
The head linker in a polymeric repeat unit

A polymeric chain may be described by liniing the head of one repeat unit to the tail or head of another. The head attribute indicates the atom id (normally on an atom of elementType="R") which acts as the head

2006-05-20: PMR added
Schema Component Representation
<xsd:simpleType name="headType" id="st.headType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-z][A-z0-9_]*"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: hydrogenCountArrayType

Super-types: None
Sub-types: None
Name hydrogenCountArrayType
Content
Documentation
Array of hydrogenCounts.
The total number of hydrogen atoms bonded to an atom or contained in a molecule, whether explicitly included as atoms or not. It is an error to have hydrogen count less than the explicit hydrogen count. There is no default value and no assumptions about hydrogen Count can be made if it is not given. If hydrogenCount is given on every atom, then the values can be summed to give the total hydrogenCount for the (sub)molecule. Because of this hydrogenCount should not be used where hydrogen atoms bridge 2 or more atoms.
Schema Component Representation
<xsd:simpleType name="hydrogenCountArrayType" id="st.hydrogenCountArrayType">
<xsd:list itemType=" hydrogenCountType "/>
</xsd:simpleType>
top

Simple Type: hydrogenCountType

Super-types: xsd:nonNegativeInteger < hydrogenCountType (by restriction)
Sub-types: None
Name hydrogenCountType
Content
  • Base XSD Type: nonNegativeInteger
Documentation
The total number of hydrogen atoms bonded to an object.
The total number of hydrogen atoms bonded to an atom or contained in a molecule, whether explicitly included as atoms or not. It is an error to have hydrogen count less than the explicit hydrogen count. There is no default value and no assumptions about hydrogen Count can be made if it is not given. If hydrogenCount is given on every atom, then the values can be summed to give the total hydrogenCount for the (sub)molecule. Because of this hydrogenCount should not be used where hydrogen atoms bridge 2 or more atoms.
Schema Component Representation
<xsd:simpleType name="hydrogenCountType" id="st.hydrogenCountType">
<xsd:restriction base=" xsd:nonNegativeInteger "/>
</xsd:simpleType>
top

Simple Type: idArrayType

Super-types: None
Sub-types: None
Name idArrayType
Content
Documentation
An array of ids or idRefs.
See idType.
Schema Component Representation
<xsd:simpleType name="idArrayType" id="st.idArrayType">
<xsd:list itemType=" idType "/>
</xsd:simpleType>
top

Simple Type: idType

Super-types: xsd:string < idType (by restriction)
Sub-types:
Name idType
Content
  • Base XSD Type: string
  • pattern = [A-Za-z][A-Za-z0-9\.\-_]*
Documentation
A unique ID for an element.

This is not formally of type ID (an XML NAME which must start with a letter and contain only letters, digits and .-_:). It is recommended that IDs start with a letter, and contain no punctuation or whitespace. The function in XSLT will generate semantically void unique IDs.

It is difficult to ensure uniqueness when documents are merged. We suggest namespacing IDs, perhaps using the containing elements as the base. Thus mol3:a1 could be a useful unique ID. However this is still experimental.

Schema Component Representation
<xsd:simpleType name="idType" id="st.idType">
<-- <xsd:restriction base="xsd:QName"/>-->
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-Za-z][A-Za-z0-9\.\-_]*"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: inheritType

Super-types: xsd:string < inheritType (by restriction)
Sub-types: None
Name inheritType
Content
  • Base XSD Type: string
  • value comes from list: {'merge'|'replace'|'delete'}
Documentation
Inheritance mechanism.

A reference to an existing element can be used to supplement values such as coordinates. The inheritance attribute determines whether the values are supplemented, overwritten or deleted. In the example:

<molecule id="m1" view="initial">
  <atomArray>
    <atom id="a1" x3="0.1"/>
  </atomArray>
</molecule>
<!- this adds more information ->
<molecule ref="m1" view="initial" inherit="supplement">
  <atomArray>
    <atom id="a1" hydrogenCount="1"/>
  </atomArray>
</molecule>
<!- this will overwrite the previous values ->
<molecule ref="m1" inherit="overwrite" view="final"
    id="m2">
  <atomArray>
    <atom id="a1" x3="0.1"/>
  </atomArray>
</molecule>
<!- this will delete the previous values ->
<molecule ref="m1" inherit="delete" view="restart">
  <atomArray>
    <atom id="a1" hydrogenCount=""/>
  </atomArray>
</molecule>

The first molecule/@ref adds complementary information, the second changes the values. Software is allowed to generate two independent copies of the molecule and reference them by different IDs (m1 and m2).

This mechanism is necessary to manage the implied inheritance of partial information during minimisations and dynamics. It requires careful software implementation.

Schema Component Representation
<xsd:simpleType name="inheritType" id="st.inheritType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="merge"/>
<xsd:enumeration value="replace"/>
<xsd:enumeration value="delete"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: integerArrayType

Super-types: None
Sub-types: None
Name integerArrayType
Content
  • List of: xsd:integer
Documentation
An array of integers.
An array of integers; for re-use by other schemas. Not machine-validatable.
Schema Component Representation
<xsd:simpleType name="integerArrayType" id="st.integerArrayType">
<xsd:list itemType=" xsd:integer "/>
</xsd:simpleType>
top

Simple Type: isotopeType

Super-types: xsd:double < isotopeType (by restriction)
Sub-types: None
Name isotopeType
Content
  • Base XSD Type: double
  • 0.0 <= value <= 99999999999.0
Documentation
The numeric representation of an isotope.

In core CML this represents a single number; either the combined proton/neutron count or a more accurate estimate of the nuclear mass. This is admittedly fuzzy, and requires a more complex object (which can manage conventions, lists of isotopic masses, etc.) See isotope.

The default is "natural abundance" - whatever that can be interpreted as.

Delta values (i.e. deviations from the most abundant istopic mass) are never allowed.

Schema Component Representation
<xsd:simpleType name="isotopeType" id="st.isotopeType">
<xsd:restriction base=" xsd:double ">
<xsd:minInclusive value="0.0"/>
<xsd:maxInclusive value="99999999999.0"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: isotopicSpinType

Super-types: xsd:string < isotopicSpinType (by restriction)
Sub-types: None
Name isotopicSpinType
Content
  • Base XSD Type: string
  • pattern = \d{1,}(/\d)?
Documentation
A fractional representation of the spin of the nucleus.
Schema Component Representation
<xsd:simpleType name="isotopicSpinType" id="st.isotopicSpinType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="\d{1,}(/\d)?"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: latticeType

Super-types: None
Sub-types: None
Name latticeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'primitive'|'full'|'aCentred'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Allowed lattice types.
Schema Component Representation
<xsd:simpleType name="latticeType" id="st.latticeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="primitive"/>
<xsd:enumeration value="full"/>
<xsd:enumeration value="aCentred"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: line3Type

Super-types: Local type definition < line3Type (by restriction)
Sub-types: None
Name line3Type
Content
  • List of: xsd:double
  • length = 6
Documentation
An unbounded line in 3-space.
Defined by 6 real numbers, conventionally an arbitrary point on the line and a vector3. There is no significance to the point (i.e. it is not the "end of the line") and there are an infinite number of ways of representing the line. DANGER. Line3 now uses the point3 and vector3 attributes and the line3Type may be OBSOLETED.
Schema Component Representation
<xsd:simpleType name="line3Type" id="st.line3Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="6"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: linkTypeType

Super-types: xsd:string < linkTypeType (by restriction)
Sub-types: None
Name linkTypeType
Content
  • Base XSD Type: string
  • value comes from list: {'extended'|'locator'|'arc'}
Documentation
The type of the link.
Schema Component Representation
<xsd:simpleType name="linkTypeType" id="st.linkTypeType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="extended"/>
<xsd:enumeration value="locator"/>
<xsd:enumeration value="arc"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: lmType

Super-types: xsd:string < lmType (by restriction)
Sub-types: None
Name lmType
Content
  • Base XSD Type: string
  • value comes from list: {'s'|'p'|'px'|'py'|'pz'|'d'|'dxy'|'dyz'|'dxz'|'dx2y2'|'dz2'|'f'|'g'}
Documentation
symbolic represention of l amd m.
takes avlues of s, p, px, dxy, dx2y2, f, etc.
Schema Component Representation
<xsd:simpleType name="lmType" id="st.lmType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="s"/>
<xsd:enumeration value="p"/>
<xsd:enumeration value="px"/>
<xsd:enumeration value="py"/>
<xsd:enumeration value="pz"/>
<xsd:enumeration value="d"/>
<xsd:enumeration value="dxy"/>
<xsd:enumeration value="dyz"/>
<xsd:enumeration value="dxz"/>
<xsd:enumeration value="dx2y2"/>
<xsd:enumeration value="dz2"/>
<xsd:enumeration value="f"/>
<xsd:enumeration value="g"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: matrix44Type

Super-types: Local type definition < matrix44Type (by restriction)
Sub-types: None
Name matrix44Type
Content
  • List of: xsd:double
  • length = 16
Documentation
A 4x4 transformation matrix
This is the base for extending the transform3 element.
Schema Component Representation
<xsd:simpleType name="matrix44Type" id="st.matrix44Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="16"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: matrixType

Super-types: None
Sub-types: None
Name matrixType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'rectangular'|'square'|'squareSymmetric'|'squareSymmetricLT'|'squareSymmetricUT'|'squareAntisymmetric'|'squareAntisymmetricLT'|'squareAntisymmetricUT'|'diagonal'|'upperTriangular'|'upperTriangularUT'|'lowerTriangular'|'lowerTriangularLT'|'unit'|'unitary'|'rowEigenvectors'|'rotation22'|'rotationTranslation32'|'homogeneous33'|'rotation33'|'rotationTranslation43'|'homogeneous44'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Allowed matrix types.

Many are square matrices. By default all elements must be included. For symmetric, antisymmetric and diagonal matrices some compression is possible by not reporting the identical or forced zero elements. These have their own subtypes, usually with UT or LT appended. Use these with caution as there is chance of confusion and you cannot rely on standard software to read these.

The matrix type fixes the order and semantics of the elements in the XML element but does not mandate any local syntax. Thus an application may insert newline characters after each row or use a <row> element.

Schema Component Representation
<xsd:simpleType name="matrixType" id="st.matrixType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="rectangular"/>
<xsd:enumeration value="square"/>
<xsd:enumeration value="squareSymmetric"/>
<xsd:enumeration value="squareSymmetricLT"/>
<xsd:enumeration value="squareSymmetricUT"/>
<xsd:enumeration value="squareAntisymmetric"/>
<xsd:enumeration value="squareAntisymmetricLT"/>
<xsd:enumeration value="squareAntisymmetricUT"/>
<xsd:enumeration value="diagonal"/>
<xsd:enumeration value="upperTriangular"/>
<xsd:enumeration value="upperTriangularUT"/>
<xsd:enumeration value="lowerTriangular"/>
<xsd:enumeration value="lowerTriangularLT"/>
<xsd:enumeration value="unit"/>
<xsd:enumeration value="unitary"/>
<xsd:enumeration value="rowEigenvectors"/>
<xsd:enumeration value="rotation22"/>
<xsd:enumeration value="rotationTranslation32"/>
<xsd:enumeration value="homogeneous33"/>
<xsd:enumeration value="rotation33"/>
<xsd:enumeration value="rotationTranslation43"/>
<xsd:enumeration value="homogeneous44"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: maxType

Super-types: xsd:string < maxType (by restriction)
Sub-types: None
Name maxType
Content
  • Base XSD Type: string
Documentation
The maximum INCLUSIVE value of a quantity.

The maximum INCLUSIVE value of a sortable quantity such as numeric, date or string. It should be ignored for dataTypes such as URL. The use of min and max attributes can be used to give a range for the quantity. The statistical basis of this range is not defined. The value of max is usually an observed quantity (or calculated from observations). To restrict a value, the maxExclusive type in a dictionary should be used.

The type of the maximum is the same as the quantity to which it refers - numeric, date and string are currently allowed

Schema Component Representation
<xsd:simpleType name="maxType" id="st.maxType">
<xsd:restriction base=" xsd:string "/>
</xsd:simpleType>
top

Simple Type: measurementType

Super-types: None
Sub-types: None
Name measurementType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'transmittance'|'absorbance'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Type of spectral measurement.
The nature of the measured data. This is not an exhaustive list and should only be used if it affects the storage or immediate processing.
Schema Component Representation
<xsd:simpleType name="measurementType" id="st.measurementType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="transmittance"/>
<xsd:enumeration value="absorbance"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: metadataType

Super-types: None
Sub-types: None
Name metadataType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'dc:coverage'|'dc:description'|'dc:identifier'|'dc:format'|'dc:relation'|'dc:rights'|'dc:subject'|'dc:title'|'dc:type'|'dc:contributor'|'dc:creator'|'dc:publisher'|'dc:source'|'dc:language'|'dc:date'|'cmlm:safety'|'cmlm:insilico'|'cmlm:structure'|'cmlm:reaction'|'cmlm:identifier'|'other'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The name of the metadata.
Metadata consists of name-value pairs (value is in the "content" attribute). The names are from a semi-restricted vocabulary, mainly Dublin Core. The content is unrestricted. The order of metadata has no implied semantics at present. Users can create their own metadata names using the namespaced prefix syntax (e.g. foo:institution). Ideally these names should be defined in an STMML dictionary.
2003-03-05: Added UNION to manage non-controlled name.
Schema Component Representation
<xsd:simpleType name="metadataType" id="st.metadataType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="dc:coverage"/>
<xsd:enumeration value="dc:description"/>
<xsd:enumeration value="dc:identifier"/>
<xsd:enumeration value="dc:format"/>
<xsd:enumeration value="dc:relation"/>
<xsd:enumeration value="dc:rights"/>
<xsd:enumeration value="dc:subject"/>
<xsd:enumeration value="dc:title"/>
<xsd:enumeration value="dc:type"/>
<xsd:enumeration value="dc:contributor"/>
<xsd:enumeration value="dc:creator"/>
<xsd:enumeration value="dc:publisher"/>
<xsd:enumeration value="dc:source"/>
<xsd:enumeration value="dc:language"/>
<xsd:enumeration value="dc:date"/>
<xsd:enumeration value="cmlm:safety"/>
<xsd:enumeration value="cmlm:insilico"/>
<xsd:enumeration value="cmlm:structure"/>
<xsd:enumeration value="cmlm:reaction"/>
<xsd:enumeration value="cmlm:identifier"/>
<xsd:enumeration value="other"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: minType

Super-types: xsd:string < minType (by restriction)
Sub-types: None
Name minType
Content
  • Base XSD Type: string
Documentation
The minimum INCLUSIVE value of a quantity.

The minimum INCLUSIVE value of a sortable quantity such as numeric, date or string. It should be ignored for dataTypes such as URL. The use of min and min attributes can be used to give a range for the quantity. The statistical basis of this range is not defined. The value of min is usually an observed quantity (or calculated from observations). To restrict a value, the minExclusive type in a dictionary should be used.

The type of the minimum is the same as the quantity to which it refers - numeric, date and string are currently allowed

Schema Component Representation
<xsd:simpleType name="minType" id="st.minType">
<xsd:restriction base=" xsd:string "/>
</xsd:simpleType>
top

Simple Type: moleculeRefArrayType

Super-types: None
Sub-types: None
Name moleculeRefArrayType
Content
Documentation
An array of moleculeRefs.
Typical applications are the annotation of peaks in chromatograms and mapping reactions. The context of the id resolution is the childOrSibling concept.
Application Data
Schema Component Representation
<xsd:simpleType name="moleculeRefArrayType" id="st.moleculeRefArrayType">
<xsd:list itemType=" moleculeRefType "/>
</xsd:simpleType>
top

Simple Type: moleculeRefType

Super-types: xsd:string < idType (by restriction) < moleculeRefType (by restriction)
Sub-types: None
Name moleculeRefType
Content
  • Base XSD Type: string
  • pattern = [A-Za-z][A-Za-z0-9\.\-_]*
Documentation
A reference to an existing molecule.
Schema Component Representation
<xsd:simpleType name="moleculeRefType" id="st.moleculeRefType">
<xsd:restriction base=" idType "/>
</xsd:simpleType>
top

Simple Type: namespaceArrayType

Super-types: None
Sub-types: None
Name namespaceArrayType
Content
Documentation
An array of namespaceURIs with required protocol.

used to identify dictionaries, units, conventions or other metadata.

2005-12-17: PMR. Added for use with unitList
Schema Component Representation
<xsd:simpleType name="namespaceArrayType" id="st.namespaceArrayType">
<xsd:list itemType=" namespaceType "/>
</xsd:simpleType>
top

Simple Type: namespaceRefType

Super-types: xsd:string < namespaceRefType (by restriction)
Sub-types:
Name namespaceRefType
Content
  • Base XSD Type: string
  • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
An XML QName with required prefix.

A string referencing a dictionary, units, convention or other metadata.

The purpose is to allow authors to extend the vocabulary through their own namespaces without altering the schema. The prefix is mandatory. This convention is only used within CML and related languages; it is NOT a generic URI.

Schema Component Representation
<xsd:simpleType name="namespaceRefType" id="st.namespaceRefType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: namespaceType

Super-types: xsd:string < namespaceType (by restriction)
Sub-types: None
Name namespaceType
Content
  • Base XSD Type: string
  • pattern = http://[A-Za-z][A-Za-z0-9_\.\-]*(/[A-Za-z0-9_\.\-]+)+
Documentation
A namespaceURI with required protocol.

used to identify a dictionary, units, convention or other metadata. Not yet confirmant with XSD

2005-12-10: PMR. Added for use with dictionary
Schema Component Representation
<xsd:simpleType name="namespaceType" id="st.namespaceType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="http://[A-Za-z][A-Za-z0-9_\.\-]*(/[A-Za-z0-9_\.\-]+)+"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: nonHydrogenCountType

Super-types: xsd:nonNegativeInteger < nonHydrogenCountType (by restriction)
Sub-types: None
Name nonHydrogenCountType
Content
  • Base XSD Type: nonNegativeInteger
Documentation
The number of non-hydrogen atoms attached to an atom.
Obsolete in core CML. Only useful in CML queries.
Schema Component Representation
<xsd:simpleType name="nonHydrogenCountType" id="st.nonHydrogenCountType">
<xsd:restriction base=" xsd:nonNegativeInteger "/>
</xsd:simpleType>
top

Simple Type: nonNegativeAngleType

Super-types: xsd:double < nonNegativeAngleType (by restriction)
Sub-types: None
Name nonNegativeAngleType
Content
  • Base XSD Type: double
  • 0.0 <= value <= 180.0
Documentation
A non-signed angle.
Re-used by _angle_. Note that we also provide positiveAngleType (e.g. for cell angles) and torsionAngleType for _torsion_.
Schema Component Representation
<xsd:simpleType name="nonNegativeAngleType" id="st.nonNegativeAngleType">
<xsd:restriction base=" xsd:double ">
<xsd:minInclusive value="0.0"/>
<xsd:maxInclusive value="180.0"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: nonNegativeNumberType

Super-types: xsd:double < nonNegativeNumberType (by restriction)
Sub-types: None
Name nonNegativeNumberType
Content
  • Base XSD Type: double
  • 0.0 <= value <= 1.0E+99
Documentation
A nonNegative number.
Note that we also provide positiveNumber to avoid inclusive zero. The maximum number is 1.0E+999 since 'unbounded' is more difficult to implement. This is greater than Eddington's estimate of the number of particles in the universe so it should work for most people.
Schema Component Representation
<xsd:simpleType name="nonNegativeNumberType" id="st.nonNegativeNumberType">
<xsd:restriction base=" xsd:double ">
<xsd:minInclusive value="0.0"/>
<xsd:maxInclusive value="1.0E+99"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: occupancyArrayType

Super-types: None
Sub-types: None
Name occupancyArrayType
Content
Documentation
Array of atomic occupancies.
Primarily for crystallography. Values outside 0-1 are not allowed.
Schema Component Representation
<xsd:simpleType name="occupancyArrayType" id="st.occupancyArrayType">
<xsd:list itemType=" occupancyType "/>
</xsd:simpleType>
top

Simple Type: occupancyType

Super-types: xsd:double < occupancyType (by restriction)
Sub-types: None
Name occupancyType
Content
  • Base XSD Type: double
  • 0 <= value <= 1
Documentation
A floating point number between 0 and 1 inclusive
Originally for crystallographic occupancy but re-usable for fractional yield, etc.
Schema Component Representation
<xsd:simpleType name="occupancyType" id="st.occupancyType">
<xsd:restriction base=" xsd:double ">
<xsd:minInclusive value="0"/>
<xsd:maxInclusive value="1"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: orderArrayType

Super-types: None
Sub-types: None
Name orderArrayType
Content
Documentation
An array of bond orders.
See order.
Schema Component Representation
<xsd:simpleType name="orderArrayType" id="st.orderArrayType">
<xsd:list itemType=" orderType "/>
</xsd:simpleType>
top

Simple Type: orderType

Super-types: None
Sub-types: None
Name orderType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'hbond'|'partial01'|'S'|'1'|'partial12'|'D'|'2'|'partial23'|'T'|'3'|'A'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Bond order.

This is purely conventional and used for bond/electron counting. There is no default value. The emptyString attribute can be used to indicate a bond of unknown or unspecified type. The interpretation of this is outside the scope of CML-based algorithms. It may be accompanied by a convention attribute on the bond which links to a dictionary. Example: <bond convention="ccdc:9" atomRefs2="a1 a2"/> could represent a delocalised bond in the CCDC convention.

Schema Component Representation
<xsd:simpleType name="orderType" id="st.orderType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="hbond"/>
<xsd:enumeration value="partial01"/>
<xsd:enumeration value="S"/>
<xsd:enumeration value="1"/>
<xsd:enumeration value="partial12"/>
<xsd:enumeration value="D"/>
<xsd:enumeration value="2"/>
<xsd:enumeration value="partial23"/>
<xsd:enumeration value="T"/>
<xsd:enumeration value="3"/>
<xsd:enumeration value="A"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: peakMultiplicityType

Super-types: None
Sub-types: None
Name peakMultiplicityType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'singlet'|'doublet'|'triplet'|'quartet'|'quintet'|'sextuplet'|'multiplet'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Multiplicity of a peak.
Uses a semi-controlled vocabulary.
Schema Component Representation
<xsd:simpleType name="peakMultiplicityType" id="st.peakMultiplicityType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="singlet"/>
<xsd:enumeration value="doublet"/>
<xsd:enumeration value="triplet"/>
<xsd:enumeration value="quartet"/>
<xsd:enumeration value="quintet"/>
<xsd:enumeration value="sextuplet"/>
<xsd:enumeration value="multiplet"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: peakShapeType

Super-types: None
Sub-types: None
Name peakShapeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'sharp'|'broad'|'shoulder'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Shape of a peak.
Semi-controlled vocabulary such as broad or sharp.
Schema Component Representation
<xsd:simpleType name="peakShapeType" id="st.peakShapeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="sharp"/>
<xsd:enumeration value="broad"/>
<xsd:enumeration value="shoulder"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: peakStructureTypeType

Super-types: None
Sub-types: None
Name peakStructureTypeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'coupling'|'splitting'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
type of a peakStructure.
Semi-controlled vocabulary such as coupling or splitting.
Schema Component Representation
<xsd:simpleType name="peakStructureTypeType" id="st.peakStructureTypeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="coupling"/>
<xsd:enumeration value="splitting"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: peakWidthType

Super-types: xsd:double < peakWidthType (by restriction)
Sub-types: None
Name peakWidthType
Content
  • Base XSD Type: double
  • 0.0 <= value <= 1.0E+99
Documentation
The width of a peak.
At present we allow a peakWidth to be positive or exactly zero (to signal that the peak should not be integrated).
Schema Component Representation
<xsd:simpleType name="peakWidthType" id="st.peakWidthType">
<xsd:restriction base=" xsd:double ">
<xsd:minInclusive value="0.0"/>
<xsd:maxInclusive value="1.0E+99"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: plane3Type

Super-types: Local type definition < plane3Type (by restriction)
Sub-types: None
Name plane3Type
Content
  • List of: xsd:double
  • length = 4
Documentation
An unbounded plane in 3-space.
Defined by 4 real numbers, conventionally a vector3 normal to the plane and a signed scalar representing the distance to the origin. The vector must not be of zero length (and need not be normalized.

The first three numbers are the vector, followed by the distance

Schema Component Representation
<xsd:simpleType name="plane3Type" id="st.plane3Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="4"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: point3Type

Super-types: Local type definition < point3Type (by restriction)
Sub-types: None
Name point3Type
Content
  • List of: xsd:double
  • length = 3
Documentation
A point in 3-space.
The 3 components can have any signed value.
Schema Component Representation
<xsd:simpleType name="point3Type" id="st.point3Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: positiveAngleType

Super-types: xsd:double < positiveAngleType (by restriction)
Sub-types: None
Name positiveAngleType
Content
  • Base XSD Type: double
  • 0.0 < value <= 180.0
Documentation
A non-signed angle such as a cell angle.
Re-used by _crystal_. Note that we also provide nonNegativeAngleType (e.g. for bond angles).
Schema Component Representation
<xsd:simpleType name="positiveAngleType" id="st.positiveAngleType">
<xsd:restriction base=" xsd:double ">
<xsd:minExclusive value="0.0"/>
<xsd:maxInclusive value="180.0"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: positiveNumberType

Super-types: xsd:double < positiveNumberType (by restriction)
Sub-types:
Name positiveNumberType
Content
  • Base XSD Type: double
  • 0.0 < value <= 1.0E+99
Documentation
A positive number.
Note that we also provide nonNegativeNumber with inclusive zero. The maximum number is (quite large) since 'unbounded' is more difficult to implement.
Schema Component Representation
<xsd:simpleType name="positiveNumberType" id="st.positiveNumberType">
<xsd:restriction base=" xsd:double ">
<xsd:minExclusive value="0.0"/>
<xsd:maxInclusive value="1.0E+99"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: reactionFormatType

Super-types: None
Sub-types: None
Name reactionFormatType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'reactantProduct'|'cmlSnap'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The format of the reaction.

This is provided for machine-understanding of the format of the reaction steps and components.

Semantics are semi-controlled.

Schema Component Representation
<xsd:simpleType name="reactionFormatType" id="st.reactionFormatType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="reactantProduct"/>
<xsd:enumeration value="cmlSnap"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: reactionRoleType

Super-types: None
Sub-types: None
Name reactionRoleType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'complete'|'overall'|'rateDeterminingStep'|'step'|'steps'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The role of the reaction within a reactionList.
Semantics are semi-controlled.
Schema Component Representation
<xsd:simpleType name="reactionRoleType" id="st.reactionRoleType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="complete"/>
<xsd:enumeration value="overall"/>
<xsd:enumeration value="rateDeterminingStep"/>
<xsd:enumeration value="step"/>
<xsd:enumeration value="steps"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: reactionStepListTypeType

Super-types: None
Sub-types: None
Name reactionStepListTypeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'unknown'|'consecutive'|'choice'|'simultaneous'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The sequence of steps in a reactionStepList.
By default the reactions in a reactionStepList are assumed to take place in sequence (e.g. one or more products of reaction n are used in reaction n+1 or later. However there are cases where it is known that reactions take place in parallel (e.g. if there is no overlap of molecular identities). Alternatively there are points at which there are two or more competing reactions which may depend on conditions or concentrations. A small semi-controlled vocabulary is suggested.
The semantic of these are not fully explored, but we suggest that consecutive and simultaneous should be the first to be supported
Schema Component Representation
<xsd:simpleType name="reactionStepListTypeType" id="st.reactionStepListTypeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="unknown"/>
<xsd:enumeration value="consecutive"/>
<xsd:enumeration value="choice"/>
<xsd:enumeration value="simultaneous"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: reactionTypeType

Super-types: None
Sub-types: None
Name reactionTypeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'chainReaction'|'initiation'|'termination'|'reversible'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The semantic type of the reaction.

This is provided for machine-understanding of the topology or logic of the reaction steps and components (i.e. not for a general classification for which label is more appropriate.)

Semantics are semi-controlled. Some terms are appropriate to multistep reactions, and can be used with or without explicit steps.

Schema Component Representation
<xsd:simpleType name="reactionTypeType" id="st.reactionTypeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="chainReaction"/>
<xsd:enumeration value="initiation"/>
<xsd:enumeration value="termination"/>
<xsd:enumeration value="reversible"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: refType

Super-types: xsd:string < refType (by restriction)
Sub-types:
Name refType
Content
  • Base XSD Type: string
  • pattern = ([A-Za-z_][A-Za-z0-9_\.\-]*:)?[A-Za-z_][A-Za-z0-9_\.\-]*
Documentation
A reference to an existing object.
A reference to an existing element in the document. The target of the ref attribute must exist. The test for validity will normally occur in the element's _appinfo_. Any DOM Node created from this element will normally be a reference to another Node, so that if the target node is modified a the dereferenced content is modified. At present there are no deep copy semantics hardcoded into the schema.
The semantic of reference are normally identical to an idType (e.g. "a123b"). Howevere there are some cases where compound references are required, such as "a123b:pq456". It is likely that this will be superseded at by RDF or Xpointer, but as long as we have non-uniqueIds this is a problem
Schema Component Representation
<xsd:simpleType name="refType" id="st.refType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="([A-Za-z_][A-Za-z0-9_\.\-]*:)?[A-Za-z_][A-Za-z0-9_\.\-]*"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: relatedEntryTypeType

Super-types: None
Sub-types: None
Name relatedEntryTypeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'parent'|'partitiveParent'|'child'|'partitiveChild'|'related'|'synonym'|'quasi-synonym'|'antonym'|'homonym'|'see'|'seeAlso'|'abbreviation'|'acronym'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Type of relatedEntry.
Type represents a the type of relationship in a relatedEntry element.
Schema Component Representation
<xsd:simpleType name="relatedEntryTypeType" id="st.relatedEntryTypeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="parent"/>
<xsd:enumeration value="partitiveParent"/>
<xsd:enumeration value="child"/>
<xsd:enumeration value="partitiveChild"/>
<xsd:enumeration value="related"/>
<xsd:enumeration value="synonym"/>
<xsd:enumeration value="quasi-synonym"/>
<xsd:enumeration value="antonym"/>
<xsd:enumeration value="homonym"/>
<xsd:enumeration value="see"/>
<xsd:enumeration value="seeAlso"/>
<xsd:enumeration value="abbreviation"/>
<xsd:enumeration value="acronym"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: repeatType

Super-types: xsd:string < repeatType (by restriction)
Sub-types: None
Name repeatType
Content
  • Base XSD Type: string
  • pattern = [A-z]+ [A-z0-9_\-\+]+ [A-z0-9_\-\+]+
Documentation
instruction to create repeat of the object.
The attribute contains an index, its start value (normally 1) and its end value as in "i 3 10" which would make 8 repeat of the object. In selected attribute values the string _i_ acts as a macro and would be replaced by the value of i. EXPERIMENTAL. It can also have variables as the values.
2006-05-20: PMR added.
Schema Component Representation
<xsd:simpleType name="repeatType" id="st.repeatType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-z]+ [A-z0-9_\-\+]+ [A-z0-9_\-\+]+"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: schemeType

Super-types: None
Sub-types: None
Name schemeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'unknown'|'sequence'|'choice'|'and'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The sequence of steps in a reactionList.
By default the reactions in a reactionStepList are assumed to take place in sequence (e.g. one or more products of reaction n are used in reaction n+1 or later. However there are cases where it is known that reactions take place in parallel (e.g. if there is no overlap of molecular identities). Alternatively there are points at which there are two or more competing reactions which may depend on conditions or concentrations. A small semi-controlled vocabulary is suggested.
Schema Component Representation
<xsd:simpleType name="schemeType" id="st.schemeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="unknown"/>
<xsd:enumeration value="sequence"/>
<xsd:enumeration value="choice"/>
<xsd:enumeration value="and"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: sizeType

Super-types: xsd:nonNegativeInteger < sizeType (by restriction)
Sub-types: None
Name sizeType
Content
  • Base XSD Type: nonNegativeInteger
Documentation
The size of an array.
The size of an array. Redundant, but serves as a check for processing software (useful if delimiters are used).
Schema Component Representation
<xsd:simpleType name="sizeType" id="st.sizeType">
<xsd:restriction base=" xsd:nonNegativeInteger "/>
</xsd:simpleType>
top

Simple Type: spaceType

Super-types: None
Sub-types: None
Name spaceType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'real'|'k-space'|'Fourier'|'reciprocal'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Signifies real or reciprocal space.
Likely to be used on types such as lattice, plane, point.
Schema Component Representation
<xsd:simpleType name="spaceType" id="st.spaceType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="real"/>
<xsd:enumeration value="k-space"/>
<xsd:enumeration value="Fourier"/>
<xsd:enumeration value="reciprocal"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: spectrumTypeType

Super-types: None
Sub-types: None
Name spectrumTypeType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'infrared'|'massSpectrum'|'NMR'|'UV/VIS'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
The type of the spectrum.
Schema Component Representation
<xsd:simpleType name="spectrumTypeType" id="st.spectrumTypeType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="infrared"/>
<xsd:enumeration value="massSpectrum"/>
<xsd:enumeration value="NMR"/>
<xsd:enumeration value="UV/VIS"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: sphere3Type

Super-types: Local type definition < sphere3Type (by restriction)
Sub-types: None
Name sphere3Type
Content
  • List of: xsd:double
  • length = 4
Documentation
A sphere in 3-space.
Defined by 4 real numbers, conventionally a point3 at the centre of the sphere and a nonNegative scalar for the radius.
Schema Component Representation
<xsd:simpleType name="sphere3Type" id="st.sphere3Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:double "/>
</xsd:simpleType>
<xsd:length value="4"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: stateType

Super-types: None
Sub-types: None
Name stateType
Content
  • Union of following types:
    • Locally defined type:
      • Base XSD Type: string
      • value comes from list: {'aqueous'|'gas'|'glass'|'liquid'|'nematic'|'smectic'|'solid'|'solidSolution'|'solution'}
    • Locally defined type:
      • Base XSD Type: string
      • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
State of a substance or property.
The state(s) of matter appropriate to a substance or property. It follows a partially controlled vocabulary. It can be extended through namespace codes to dictionaries.
Schema Component Representation
<xsd:simpleType name="stateType" id="st.stateType">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base=" xsd:string ">
<-- should be union with user-supplied -->
<xsd:enumeration value="aqueous"/>
<xsd:enumeration value="gas"/>
<xsd:enumeration value="glass"/>
<xsd:enumeration value="liquid"/>
<xsd:enumeration value="nematic"/>
<xsd:enumeration value="smectic"/>
<xsd:enumeration value="solid"/>
<xsd:enumeration value="solidSolution"/>
<xsd:enumeration value="solution"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
top

Simple Type: stereoType

Super-types: xsd:string < stereoType (by restriction)
Sub-types: None
Name stereoType
Content
  • Base XSD Type: string
  • value comes from list: {'C'|'T'|'W'|'H'|''}
Documentation
Bond stereochemistry as a string.
This is purely conventional. There is no default value. The emptyString attribute can be used to indicate a bond of unknown or unspecified type. The interpretation of this is outside the scope of CML-based algorithms. It may be accompanied by a convention attribute which links to a dictionary.
Schema Component Representation
<xsd:simpleType name="stereoType" id="st.stereoType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="C"/>
<xsd:enumeration value="T"/>
<xsd:enumeration value="W"/>
<xsd:enumeration value="H"/>
<xsd:enumeration value=""/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: stringArrayType

Super-types: None
Sub-types: None
Name stringArrayType
Content
  • List of: xsd:string
Documentation
An array of strings, separated by whitespace.
An array of strings, separated by whitespace. If the strings have embedded whitespace or may be empty (zero-length), a non-whitespace single-character delimiter must be used. At present no machine validation
Schema Component Representation
<xsd:simpleType name="stringArrayType" id="st.stringArrayType">
<xsd:list itemType=" xsd:string "/>
</xsd:simpleType>
top

Simple Type: substanceListTypeType

Super-types: xsd:string < substanceListTypeType (by restriction)
Sub-types: None
Name substanceListTypeType
Content
  • Base XSD Type: string
  • value comes from list: {'solution'|'mixture'|'other'}
Documentation
Type of the substanceList.
Extension is allowed through the "other" value.
Schema Component Representation
<xsd:simpleType name="substanceListTypeType" id="st.substanceListTypeType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="solution"/>
<xsd:enumeration value="mixture"/>
<xsd:enumeration value="other"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: tailType

Super-types: xsd:string < tailType (by restriction)
Sub-types: None
Name tailType
Content
  • Base XSD Type: string
  • pattern = [A-z][A-z0-9_]*
Documentation
The tail linker in a polymeric repeat unit

A polymeric chain may be described by liniing the tail of one repeat unit to the head or tail of another. The tail attribute indicates the atom id (normally on an atom of elementType="R") which acts as the tail

2006-05-20: PMR added
Schema Component Representation
<xsd:simpleType name="tailType" id="st.tailType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[A-z][A-z0-9_]*"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: torsionAngleType

Super-types: xsd:double < torsionAngleType (by restriction)
Sub-types: None
Name torsionAngleType
Content
  • Base XSD Type: double
  • -360.0 <= value <= 360.0
Documentation
The type of a torsion angle.
Schema Component Representation
<xsd:simpleType name="torsionAngleType" id="st.torsionAngleType">
<xsd:restriction base=" xsd:double ">
<xsd:minInclusive value="-360.0"/>
<xsd:maxInclusive value="360.0"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: unitListTypeType

Super-types: xsd:string < unitListTypeType (by restriction)
Sub-types: None
Name unitListTypeType
Content
  • Base XSD Type: string
  • value comes from list: {'unit'|'unitType'}
Documentation
Type of unitList.
Required to differentiate between the two types of unitList (units and unitTypes)
Schema Component Representation
<xsd:simpleType name="unitListTypeType" id="st.unitListTypeType">
<xsd:restriction base=" xsd:string ">
<xsd:enumeration value="unit"/>
<xsd:enumeration value="unitType"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: unitsType

Super-types: xsd:string < namespaceRefType (by restriction) < unitsType (by restriction)
Sub-types: None
Name unitsType
Content
  • Base XSD Type: string
  • pattern = [A-Za-z][A-Za-z0-9_]*:[A-Za-z][A-Za-z0-9_\.\-]*
Documentation
Scientific units.
These will be linked to dictionaries of units with conversion information, using namespaced references (e.g. si:m). Distinguish carefully from _unitType_ which is an element describing a type of a unit in a _unitList_.
Schema Component Representation
<xsd:simpleType name="unitsType" id="st.unitsType">
<xsd:restriction base=" namespaceRefType "/>
</xsd:simpleType>
top

Simple Type: vector3Type

Super-types: Local type definition < vector3Type (by restriction)
Sub-types: None
Name vector3Type
Content
  • List of: xsd:float
  • length = 3
Documentation
A vector in 3-space.
No constraints on magnitude (i.e. could be zero.
Schema Component Representation
<xsd:simpleType name="vector3Type" id="st.vector3Type">
<xsd:restriction>
<xsd:simpleType>
<xsd:list itemType=" xsd:float "/>
</xsd:simpleType>
<xsd:length value="3"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: versionType

Super-types: xsd:string < versionType (by restriction)
Sub-types: None
Name versionType
Content
  • Base XSD Type: string
  • pattern = [0-9]+(\.[0-9]+[A-Za-z0-9\.\-_]*)*
Documentation
Version of a document or code.
Forms include 1, 0.9, 1.1.3, 1.2alpha, etc.
Schema Component Representation
<xsd:simpleType name="versionType" id="st.versionType">
<xsd:restriction base=" xsd:string ">
<xsd:pattern value="[0-9]+(\.[0-9]+[A-Za-z0-9\.\-_]*)*"/>
</xsd:restriction>
</xsd:simpleType>
top

Simple Type: xmlElementType

Super-types: xsd:string < refType (by restriction) < xmlElementType (by restriction)
Sub-types: None
Name xmlElementType
Content
  • Base XSD Type: string
  • pattern = ([A-Za-z_][A-Za-z0-9_\.\-]*:)?[A-Za-z_][A-Za-z0-9_\.\-]*
Documentation
The name of an XMLElement.

(Distinguish from a chemical element as in elementTypeType). Currently used for assigning XMLElement types to references (e.g. to='a1' toType='atom'). Semantics are not controlled and in principle elements outside the CML tagSet could be used. Implementers cannot assume that namespace prefixes can be resolved and default usage is probably the local name.

Schema Component Representation
<xsd:simpleType name="xmlElementType" id="st.xmlElementType">
<xsd:restriction base=" refType "/>
</xsd:simpleType>
top

Legend

Complex Type:

Schema Component Type

AusAddress

Schema Component Name
Super-types: Address < AusAddress (by extension)
Sub-types:
  • QLDAddress (by restriction)
If this schema component is a type definition, its type hierarchy is shown in a gray-bordered box.
Name AusAddress
Abstract no
The table above displays the properties of this schema component.
XML Instance Representation
<... country="Australia" >
<unitNo> string </unitNo> [0..1]
<houseNo> string </houseNo> [1]
<street> string </street> [1]
Start Choice [1]
<city> string </city> [1]
<town> string </town> [1]
End Choice
<state> AusStates </state> [1]
<postcode> string <<pattern = [1-9][0-9]{3}>> </postcode> [1] ?
</...>

The XML Instance Representation table above shows the schema component's content as an XML instance.

Schema Component Representation
<complexType name="AusAddress">
<complexContent>
<extension base=" Address ">
<sequence>
<element name="state" type=" AusStates "/>
<element name="postcode">
<simpleType>
<restriction base=" string ">
<pattern value="[1-9][0-9]{3}"/>
</restriction>
</simpleType>
</element>
</sequence>
<attribute name="country" type=" string " fixed="Australia"/>
</extension>
</complexContent>
</complexType>
The Schema Component Representation table above displays the underlying XML representation of the schema component. (Annotations are not shown.)
top

Glossary

Abstract (Applies to complex type definitions and element declarations). An abstract element or complex type cannot used to validate an element instance. If there is a reference to an abstract element, only element declarations that can substitute the abstract element can be used to validate the instance. For references to abstract type definitions, only derived types can be used.

All Model Group Child elements can be provided in any order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-all.

Choice Model Group Only one from the list of child elements and model groups can be provided in instances. See: http://www.w3.org/TR/xmlschema-1/#element-choice.

Collapse Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32). Then, collapse contiguous sequences of space characters into single space character, and remove leading and trailing space characters.

Disallowed Substitutions (Applies to element declarations). If substitution is specified, then substitution group members cannot be used in place of the given element declaration to validate element instances. If derivation methods, e.g. extension, restriction, are specified, then the given element declaration will not validate element instances that have types derived from the element declaration's type using the specified derivation methods. Normally, element instances can override their declaration's type by specifying an xsi:type attribute.

Key Constraint Like Uniqueness Constraint, but additionally requires that the specified value(s) must be provided. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Key Reference Constraint Ensures that the specified value(s) must match value(s) from a Key Constraint or Uniqueness Constraint. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

Model Group Groups together element content, specifying the order in which the element content can occur and the number of times the group of element content may be repeated. See: http://www.w3.org/TR/xmlschema-1/#Model_Groups.

Nillable (Applies to element declarations). If an element declaration is nillable, instances can use the xsi:nil attribute. The xsi:nil attribute is the boolean attribute, nil, from the http://www.w3.org/2001/XMLSchema-instance namespace. If an element instance has an xsi:nil attribute set to true, it can be left empty, even though its element declaration may have required content.

Notation A notation is used to identify the format of a piece of data. Values of elements and attributes that are of type, NOTATION, must come from the names of declared notations. See: http://www.w3.org/TR/xmlschema-1/#cNotation_Declarations.

Preserve Whitespace Policy Preserve whitespaces exactly as they appear in instances.

Prohibited Derivations (Applies to type definitions). Derivation methods that cannot be used to create sub-types from a given type definition.

Prohibited Substitutions (Applies to complex type definitions). Prevents sub-types that have been derived using the specified derivation methods from validating element instances in place of the given type definition.

Replace Whitespace Policy Replace tab, line feed, and carriage return characters with space character (Unicode character 32).

Sequence Model Group Child elements and model groups must be provided in the specified order in instances. See: http://www.w3.org/TR/xmlschema-1/#element-sequence.

Substitution Group Elements that are members of a substitution group can be used wherever the head element of the substitution group is referenced.

Substitution Group Exclusions (Applies to element declarations). Prohibits element declarations from nominating themselves as being able to substitute a given element declaration, if they have types that are derived from the original element's type using the specified derivation methods.

Target Namespace The target namespace identifies the namespace that components in this schema belongs to. If no target namespace is provided, then the schema components do not belong to any namespace.

Uniqueness Constraint Ensures uniqueness of an element/attribute value, or a combination of values, within a specified scope. See: http://www.w3.org/TR/xmlschema-1/#cIdentity-constraint_Definitions.

top