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. 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. 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. 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 STMML and related languages; it is NOT a generic URI. The namespace prefix must start with an alpha character and can only contain alphanumeric and '_'. The suffix can have characters from the XML ID specification (alphanumeric, '_', '.' and '-' 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 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 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_. 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. 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. A reference to three distinct existing atoms in order. An enumeration of allowed angle units. May be obsolete. 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_. The basis of an error value. Errors in values can be of several types and this simpleType provides a small controlled vocabulary. 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. 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_. 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. 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 The size of an array. The size of an array. Redundant, but serves as a check for processing software (useful if delimiters are used). 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. Any isotope of hydrogen. There are no special element symbols for D and T which should use the isotope attribute. A point or object with no chemical semantics. Examples can be centroids, bond-midpoints, orienting "atoms" in small z-matrices. Note "Dummy" has the same semantics but is now deprecated. A point at which an atom or group might be attached. Examples are abbreviated organic functional groups, Markush representations, polymers, unknown atoms, etc. Semantics may be determined by the role attribute on the atom. The formal charge on an object. Used for electron-bookeeping. This has no relation to its calculated (fractional) charge or oxidation state. 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. A floating point number between 0 and 1 inclusive Originally for crystallographic occupancy but re-usable for fractinal yield, etc. An array of elementTypes. Instances of this type will be used in array-style representation of atoms. Array of counts. Array of formalCharges. Used for electron-bookeeping. This has no relation to its calculated (fractional) charge or oxidation state. 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. Array of atomic occupancies. Primarily for crystallography. Values outside 0-1 are not allowed. 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). 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 setereochemistry, geometrical definitions, atom groupings, etc. A reference to an existing atom. A reference to four distinct existing atoms in order. A vector in 3-space. No constraints on magnitude (i.e. could be zero. A reference to two distinct existing atoms in order. 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. 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. Hydrogen bond. Carries no semantics but will normally be between a hydrogen atom and an element with lone pairs. Partial bond. Can be used for a partial bond in a transition state, intermolecular interaction, etc. There is no numeric value associated and the bond order could be anywhere between 0 and single. Single bond. synonymous with "1. Single bond. Intermediate between 1 and . Could be used for a transition state or a delocalised system. Double bond. Double bond. Intermediate between 2 and . Could be used for a transition state or a delocalised system. Triple bond. Triple bond. Aromatic bond. An array of bond orders. See order. 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 An angl. (formally dimensionless, but useful to have units). 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. 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, and the string is optionally ended by a formal charge. NO brackets or other nesting is allowed. A fractional representation of the spin of the nucleus. Allowed lattice types. lattice with A centering. A lattice which uses the translation operator {0, 0.5, 0.5}. User-defined lattice-type. This definition must be by reference to a namespaced dictionary entry. Signifies real or reciprocal space. Likely to be used on types such as lattice, plane, point. A synonym for reciprocal. A synonym for reciprocal. User-defined space-type. No obvious possibilities, but who know. 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. Rectangular with no semantic constraints and ordered rowwise (i.e. the column index runs fastest). 1 2 3 4 0 3 5 6 Square with no semantic constraints. 1 2 78 3 4 -1 -34 2 7 Square symmetric with all elements explicit. 1 2 3 2 7 1 3 1 9 Square symmetric with the diagonal and lower triangle explicit and the upper triangle omitted. Rows are of length 1, 2, 3... 1 2 7 3 1 9 is equivalent to 1 2 3 2 7 1 3 1 9 Square symmetric with the diagonal and upper triangle explicit. Rows are of length n, n-1, ... 2, 1 1 7 9 2 -1 34 is equivalent to 1 7 9 7 2 -1 9 -1 34 Square antisymmetric with all elements explicit. The diagonal is necessarily zero. 0 -2 3 2 0 1 -3 -1 0 Square symmetric with the lower triangle explicit and diagonal and upper triangle omitted. Rows are of length 1, 2,... n-1. -7 -9 1 is equivalent to 0 7 9 -7 0 -1 -9 1 0 Square symmetric with the upper triangle explicit and diagonal and lower triangle omitted. Rows are of length n-1, n-2,... 2,1. 7 9 -1 is equivalent to 0 7 9 -7 0 -1 -9 1 0 Symmetric. Elements are zero except on the diagonal. No compressed representation available (use array element). 1 0 0 0 3 0 0 0 4 Square. Elements are zero below the diagonal 1 2 3 4 0 3 5 6 0 0 4 8 0 0 0 2 Square. Elements below the diagonal are zero and omitted, and rows are of length n, n-1, ... , 2, 1. 1 2 3 4 3 5 6 4 8 2 is equivalent to 1 2 3 4 0 3 5 6 0 0 4 8 0 0 0 2 Square. Elements are zero above the diagonal 1 0 0 7 3 0 9 2 4 Square. Elements above the diagonal are zero and omitted, and rows are of length 1, 2, ...n. 1 3 7 9 2 3 is equivalent to 1 0 0 3 7 0 9 2 3 Square. Diagonal elements are 1 and off-diagonal are zero. 1 0 0 0 1 0 0 0 1 Square. When multiplied by its transpose gives the unit matrix. 0 -1 0 1 0 0 0 0 1 Square. Each row corresponds to an eigenvector of a square matrix. Elements are real. The length of the eigenvectors is undefined, i.e. they are not required to be normalised to 1. 0 -1 0 1 0 0 0 0 1 The rotation is defined by the matrix premultiplyin a column vector (x, y) . 0 -1 1 0 produces (-y, x), i.e. a rotation of -90 degrees. A third column defining the translation is added to a rotation22. 0 -1 22 1 0 33 produces (-y + 22, x + 33), i.e. a rotation of -90 degrees followed by a translation of (22, 33). User-defined matrix-type. This definition must be by reference to a namespaced dictionary entry. 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. The extent or scope of the content of the resource. Coverage will typically include spatial location (a place name or geographic coordinates), temporal period (a period label, date, or date range) or jurisdiction (such as a named administrative entity). Recommended best practice is to select a value from a controlled vocabulary (for example, the Thesaurus of Geographic Names [TGN]) and that, where appropriate, named places or time periods be used in preference to numeric identifiers such as sets of coordinates or date ranges. An account of the content of the resource. Description may include but is not limited to: an abstract, table of contents, reference to a graphical representation of content or a free-text account of the content. An unambiguous reference to the resource within a given context. Recommended best practice is to identify the resource by means of a string or number conforming to a formal identification system. Example formal identification systems include the Uniform Resource Identifier (URI) (including the Uniform Resource Locator (URL)), the Digital Object Identifier (DOI) and the International Standard Book Number (ISBN). The physical or digital manifestation of the resource. Typically, Format may include the media-type or dimensions of the resource. Format may be used to determine the software, hardware or other equipment needed to display or operate the resource. Examples of dimensions include size and duration. Recommended best practice is to select a value from a controlled vocabulary (for example, the list of Internet Media Types [MIME] defining computer media formats). A reference to a related resource. Recommended best practice is to reference the resource by means of a string or number conforming to a formal identification system. Information about rights held in and over the resource. Typically, a Rights element will contain a rights management statement for the resource, or reference a service providing such information. Rights information often encompasses Intellectual Property Rights (IPR), Copyright, and various Property Rights. If the Rights element is absent, no assumptions can be made about the status of these and other rights with respect to the resource. The topic of the content of the resource. Typically, a Subject will be expressed as keywords, key phrases or classification codes that describe a topic of the resource. Recommended best practice is to select a value from a controlled vocabulary or formal classification scheme. A name given to the resource. Typically, a Title will be a name by which the resource is formally known. The nature or genre of the content of the resource. Type includes terms describing general categories, functions, genres, or aggregation levels for content. Recommended best practice is to select a value from a controlled vocabulary (for example, the working draft list of Dublin Core Types [DCT1]). To describe the physical or digital manifestation of the resource, use the FORMAT element. An entity responsible for making contributions to the content of the resource. Examples of a Contributor include a person, an organisation, or a service. Typically, the name of a Contributor should be used to indicate the entity. An entity primarily responsible for making the content of the resource. Examples of a Creator include a person, an organisation, or a service. Typically, the name of a Creator should be used to indicate the entity. An entity responsible for making the resource available. Examples of a Publisher include a person, an organisation, or a service. Typically, the name of a Publisher should be used to indicate the entity. A Reference to a resource from which the present resource is derived. The present resource may be derived from the Source resource in whole or in part. Recommended best practice is to reference the resource by means of a string or number conforming to a formal identification system. A language of the intellectual content of the resource. Recommended best practice for the values of the Language element is defined by RFC 1766 [RFC1766] which includes a two-letter Language Code (taken from the ISO 639 standard [ISO639]), followed optionally, by a two-letter Country Code (taken from the ISO 3166 standard [ISO3166]). For example, 'en' for English, 'fr' for French, or 'en-uk' for English used in the United Kingdom. A date associated with an event in the life cycle of the resource. Typically, Date will be associated with the creation or availability of the resource. Recommended best practice for encoding the date value is defined in a profile of ISO 8601 [W3CDTF] and follows the YYYY-MM-DD format. Entry contains information relating to chemical safety. Typically the content will be a reference to a handbook, MSDS, threshhold or other human-readable strin. Part or whole of the information was computer-generated. Typically the content will be the name of a method or a progra. 3D structure included. details include. 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. 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. An aqueous solutio. Gas or vapor. The default state for computation on isolated molecule. A glassy stat. Normally pure liquid (use solution where appropriate. The nematic phas. The smectic phas. A soli. A solid solutio. A (liquid) solutio. The format of the reaction. This is provided for machine-understanding of the format of the reaction steps and components. Semantics are semi-controlled. The commonest representation with reactantList and productList. A list of molecules representing snap shots on a reaction pathway. The role of the reaction within a reactionList. Semantics are semi-controlled. On reactionList signifies that the children are the complete description of the reaction. The overall reaction in a multi-step reaction. Normally this would be the first reaction in a reactionList and the individual steps are held in a following sibling reactionList. The rate-determining step in a multi-step reaction. This implies also that the reaction has a role of step. A step in a multi-step reaction. This reaction will normally be a child of reactionList. a reactionList containing steps Examples could be "myDict:step1", "foo:chainPropagation", etc. 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. A reaction in which one or more reactive reaction intermediates (frequently radicals) are continuously regenerated, usually through a repetitive cycle of elementary steps (the 'propagation step') (IUPAC GoldBook). A reaction or process generating free radicals (or some other reactive reaction intermediates) which then induce a chain reaction. For example, in the chlorination of alkanes by a radical mechanism the initiation step is the dissociation of molecular chlorine. IUPAC Compendium of Chemical Terminology 2nd Edition (1997). The steps in a chain reaction in which reactive intermediates are destroyed or rendered inactive, thus ending the chain. IUPAC Compendium of Chemical Terminology 2nd Edition (1997) . A reaction which can proceed in the forward direction as readily as in the reverse direction (IUPAC GoldBook). 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. 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. A reference to an existing molecule. A non-signed angle. Re-used by _angle_. Note that we also provide positiveAngleType (e.g. for cell angles) and torsionAngleType for _torsion_. 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. A cis bond. A trans bond. A wedge bond. A hatch bond. empty or missing. 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. 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 A point in 3-space. The 3 components can have any signed value. The type of a torsion angle. A 4x4 transformation matrix ... A title on an element. No controlled value. An attribute providing a unique ID for an element. A reference to a convention. There is no controlled vocabulary for conventions, but the author must ensure that the semantics are openly available and that there are mechanisms for implementation. The convention is inherited by all the subelements, so that a convention for molecule would by default extend to its bond and atom children. This can be overwritten if necessary by an explicit convention. It may be useful to create conventions with namespaces (e.g. iupac:name). Use of convention will normally require non-STMML semantics, and should be used with caution. We would expect that conventions prefixed with "ISO" would be useful, such as ISO8601 for dateTimes. There is no default, but the conventions of STMML or the related language (e.g. CML) will be assumed. A reference to a dictionary entry. Elements in data instances such as _scalar_ may have a dictRef attribute to point to an entry in a dictionary. To avoid excessive use of (mutable) filenames and URIs we recommend a namespace prefix, mapped to a namespace URI in the normal manner. In this case, of course, the namespace URI must point to a real XML document containing _entry_ elements and validated against STMML Schema. Where there is concern about the dictionary becoming separated from the document the dictionary entries can be physically included as part of the data instance and the normal XPointer addressing mechanism can be used. This attribute can also be used on _dictionary_ elements to define the namespace prefix The minimum value allowed for an element or attribute. Maximum value allowed for an element or attribute. Scientific units on an element. These must be taken from a dictionary of units. There should be some mechanism for validating the type of the units against the possible values of the element. The start time. The start time in any allowable XSD representation of date, time or dateTime. This will normally be a clock time or date. The start condition. This can describe the condition(s) that has to be met before an action can begin, such as in a recipe. Semantics are unexplored but could be used to control robotic operations. The duration of the action. Semantics undefined. The end time. The start time in any allowable XSD representation of date, time or dateTime. This will normally be a clock time or date. The end condition. At present a human-readable string describing some condition when the ac tion should end. As XML develops it may be possible to add machine-processable semantics in this field. Type of the object. A qualifier which may affect the semantics of the object. Describes whether child elements are sequential or parallel. There is no default. The count of the object. No fixed semantics or default, normally integral. It is presumed that the element can be multiplied by the count value. A reference to an element of given type. ref modifies an element into a reference to an existing element of that type within the document. This is similar to a pointer and it can be thought of a strongly typed hyperlink. It may also be used for "subclassing" or "overriding" elements.
When referring to an element most of the "data" such as attribute values and element content will be on the full instantiated element. Therefore ref (and possibly id) will normally be the only attributes on the pointing element. However there may be some attributes (title, count, etc.) which have useful semantics, but these are element-specific
The type of an alternative. This adds semantics to an _alternative_ and might be used by an RDF or related engine. A list of three references to atoms. Typically used for defining angles, but could also be used to define a three-centre bond. Restricts units to radians or degrees. Value of the error. Reports the author's estimate of the error in a scalar value. Only meaningful for dataTypes mapping to real number. Basis of the error estimate. Role of the object. How the object functions or its position in the architecture. No controlled vocabulary. Name of the object. A string by which the object is known. Often a required attribute. The may or may not be a semi-controlled vocabulary. The data type of the object. Normally applied to scalar/array objects but may extend to more complex one. Array of error values. Reports the author's estimate of the error in an array of values. Only meaningful for dataTypes mapping to real number. Minimum values for numeric _matrix_ or _array. A whitespace-separated lists of the same length as the array in the parent element. Maximum values for numeric _matrix_ or _array. A whitespace-separated list of the same length as the array in the parent element. A delimiter character for arrays and matrices. By default array components ('elements' in the non-XML sense) are whitespace-separated. This fails for components with embedded whitespace or missing completely: Example: In the protein database ' CA' and 'CA' are different atom types, and and array could be: <array delimiter="/" dictRef="pdb:atomTypes">/ N/ CA/CA/ N/</array> Note that the array starts and ends with the delimiter, which must be chosen to avoid accidental use. There is currently no syntax for escaping delimiters. The size of an array or matrix. The identity of a chemical element. Normally mandatory on _atom_, _isotope_, etc. The formalCharge on the object. NOT the calculated charge or oxidation state. No formal default, but assumed to be zero if omitted. It may become good practice to include it. Number of hydrogens. The total number of hydrogens bonded to the atom or molecule. It is preferable to include hydrogens explicitly, and where this is done their count represents the minimum (and may thus override this attribute). It is dangerous to use this attribute for electron-deficient molecules (e.g. diborane) or hydrogen bonds. There is NO DEFAULT and the absence of this attribute must not be given any meaning. The isotope for an element. A real number describing the isotope. Probably obsolet. The integer number for an isotope. The number representing the isotope. By default it does not point to a fuller description of the isotope (use isotopeRef). Reference to a fuller description of the isotope. The description may be found in an external collection (e.g. IUPAC) or within the current document. Reference to a description of the isotopic composition of an atom. Used when more than one atom shares the same isotopic composition (e.g. when H/D have been scrambled over some or all of the atoms in a molecule.. Occupancy for an atom. Normally only found in crystallography. Defaults to 1.0. The occupancy is required to calculate the molecular formaula from the atoms. Spin multiplicity. Normally for a molecule. This attribute gives the spin multiplicity of the molecule and is independent of any atomic information. No default, and it may take any positive integer value (though values are normally between 1 and 5. x2 coordinate for an object. Used for displaying the object in 2 dimensions. Unrelated to the 3-D coordinates for the object. The orientation of the axes matters as it can affect the chirality of object. y2 coordinate for an object. Used for displaying the object in 2 dimensions. Unrelated to the 3-D coordinates for the object. The orientation of the axes matters as it can affect the chirality of object. The x coordinate of a 3 dimensional object. The default units are Angstrom. (The provision for other units is weak at present.) Objects are always described with a right-handed coordinate system. The y coordinate of a 3 dimensional object. The default units are Angstrom. (The provision for other units is weak at present.) Objects are always described with a right-handed coordinate system. The z coordinate of a 3 dimensional object. The default units are Angstrom. (The provision for other units is weak at present.) Objects are always described with a right-handed coordinate system. Fractional x coordinate. normally xFract, yFract and zFract should all be present or absent. If present a _crystal_ element should also occur. Fractional y coordinate. normally xFract, yFract and zFract should all be present or absent. If present a _crystal_ element should also occur. Fractional y coordinate. normally xFract, yFract and zFract should all be present or absent. If present a _crystal_ element should also occur. The identity of a chemical element. Normally mandatory on _atom_, _isotope_, etc. Array of object counts. No fixed semantics or default, normally integral. It is presumed that the element can be multiplied by the count value. An array of formalCharges. Used in CML2 Array mode. NOT the calculated charge or oxidation state. No formal defaults, but assumed to be zero if omitted. It may become good practice to include it. Array of hydrogenCounts. Normally used in CML2 array mode. The total number of hydrogens bonded to the atom or molecule. It is preferable to include hydrogens explicitly, and where this is done their count represents the minimum (and may thus override this attribute). It is dangerous to use this attribute for electron-deficient molecules (e.g. diborane) or hydrogen bonds. There is NO DEFAULT and the absence of this attribute must not be given any meaning. Array of occupancies. Normally only found in crystallography. Defaults to 1.0. The occupancy is required to calculate the molecular formula from the atoms. array of x2 coordinate. Normally used in CML2 array mode. Used for displaying the object in 2 dimensions. Unrelated to the 3-D coordinates for the object. The orientation of the axes matters as it can affect the chirality of object. array of y2 coordinate. Normally used in CML2 array mode. Used for displaying the object in 2 dimensions. Unrelated to the 3-D coordinates for the object. The orientation of the axes matters as it can affect the chirality of object. An array of x3 coordinate. Normally used in CML2 array mode. An array of y3 coordinate. Normally used in CML2 array mode. An array of z3 coordinate.