atom

<h:div class="summary">An atom.</h:div>
<h:div documentation="general">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.</h:div>
<h:div class="example" href="atom1.xml"/>
<h:div class="curation">2006-01-12: PMR. Added vector3 child to support accelerations, velocities, dipole, etc.</h:div>
<h:div class="curation">2006-06-01: PMR. Added documentation.</h:div>

Element Information

Model

anyCml | ANY element from ANY namespace OTHER than 'http://www.xml-cml.org/schema' | ANY element from LOCAL namespace 'No Namespace'
Children: anyCml

Attributes

QName Type Fixed Default Use Inheritable Annotation
convention namespaceRefType optional
<h:div class="summary">A reference to a convention.</h:div>
<h:div class="description">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
  <h:tt>molecule</h:tt>would by default extend to its
  <h:tt>bond</h:tt>and
  <h:tt>atom</h:tt>children. This can be overwritten if necessary by an explicit
  <h:tt>convention</h:tt>.
  <h:p>It may be useful to create conventions with namespaces (e.g.
    <h:tt>iupac:name</h:tt>). Use of
    <h:tt>convention</h:tt>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.</h:p>
  <h:p>There is no default, but the conventions of STMML or the related language (e.g. CML) will be assumed.</h:p>
</h:div>
<h:div class="example" id="ex" href="convGroup1.xml"/>
count positiveNumberType optional
<h:div class="summary">The count of the object.</h:div>
<h:div class="description">No fixed semantics or default, normally integers. It is presumed that the element can be multiplied by the count value.</h:div>
dictRef namespaceRefType optional
<h:div class="summary">A reference to a dictionary entry.</h:div>
<h:div class="description">Elements in data instances such as _scalar_ may have a
  <h:tt>dictRef</h:tt>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 doc containing _entry_ elements and validated against STMML Schema.
  <h:p>Where there is concern about the dictionary becoming separated from the doc the dictionary entries can be physically included as part of the data instance and the normal XPointer addressing mechanism can be used.</h:p>
  <h:p>This attribute can also be used on _dictionary_ elements to define the namespace prefix</h:p>
</h:div>
<h:div class="example" href="dictRefGroup1.xml"/>
elementType elementTypeType optional
<h:div class="summary">The identity of a chemical element.</h:div>
<h:div class="description">Normally mandatory on _atom_, _isotope_, etc.</h:div>
formalCharge formalChargeType optional
<h:div class="summary">The formalCharge on the object.</h:div>
<h:div class="description">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.</h:div>
hydrogenCount hydrogenCountType optional
<h:div class="summary">Number of hydrogens.</h:div>
<h:div class="description">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.</h:div>
id idType optional
<h:div class="summary">A unique ID for an element.</h:div>
<h:div class="description">Id is used for machine identification of elements and in general should not have application semantics. It is similar to the XML ID type as containing only alphanumerics, '_', ',' and '-' and and must start with an alphabetic character. Ids are case sensitive. Ids should be unique within local scope, thus all atoms within a molecule should have unique ids, but separated molecules within a doc (such as a published article) might have identical ids. Software should be able to search local scope (e.g. all atoms within a molecule). However this is under constant review.</h:div>
isotopeListRef idType optional
<h:div class="summary">Reference to a description of the isotopic composition of an atom.</h:div>
<h:div class="description">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..</h:div>
<h:div class="example" href="isotope1.xml"/>
isotopeNumber xsd:positiveInteger optional
<h:div class="summary">The integer number for an isotope.</h:div>
<h:div class="description">The number representing the isotope. By default it does not point to a fuller description of the isotope (use isotopeRef).</h:div>
isotopeRef refType optional
<h:div class="summary">Reference to a fuller description of the isotope.</h:div>
<h:div class="general">The description may be found in an external collection (e.g. IUPAC) or within the current doc.</h:div>
<h:div class="example" href="isotope2.xml"/>
occupancy occupancyType optional
<h:div class="summary">Occupancy for an atom.</h:div>
<h:div class="description">Normally only found in crystallography. Defaults to 1.0. The occupancy is required to calculate the molecular formaula from the atoms.</h:div>
pointGroupMultiplicity xsd:positiveInteger optional
<h:div class="summary">SpaceGroup multiplicity.</h:div>
<h:div class="description">Normally for an atom. This attribute gives the pointGroup 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 60 (for icosahedral). It represents the number of symmetry operations (without any translations) that transform the atom into itself. Thus an atom on a centre of symmetry can have a pointGroupMultiplicity of 2. The pointGroupMultiplicity can be deduced from a knowledge of the coordinates and the pointGroup operators and so is formally redundant but this is a useful convenience operator. Distinguish carefully from occupancy which represents incomplete occupation of a site.</h:div>
ref refType optional
<h:div class="summary">A reference to an element of given type.</h:div>
<h:div class="description">
  <h:tt>ref</h:tt>modifies an element into a reference to an existing element of that type within the doc. 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.
  <br xmlns=""/>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</h:div>
<h:div class="example" href="refGroup1.xml"/>
role xsd:string optional
<h:div class="summary">Role of the object.</h:div>
<h:div class="description">How the object functions or its position in the architecture. No controlled vocabulary.</h:div>
spaceGroupMultiplicity xsd:positiveInteger optional
<h:div class="summary">SpaceGroup multiplicity.</h:div>
<h:div class="description">Normally for an atom. This attribute gives the spaceGroup 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 192. It represents the number of symmetry operations (without cell translations) that transform the atom into itself. Thus an atom on a centre of symmetry can have a spaceGroupMultiplicity of 2. The spaceGroupMultiplicity can be deduced from a knowledge of the coordinates and the spaceGroup operators and so is formally redundant but this is a useful convenience operator. Some crystallographic experiments report this attribute as, for example, the IUCr CIF item 'atom_site_symmetry_multiplicity'. Distinguish carefully from occupancy which represents incomplete occupation of a site.</h:div>
spinMultiplicity xsd:positiveInteger optional
<h:div class="summary">Spin multiplicity.</h:div>
<h:div class="description">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.</h:div>
title xsd:string optional
<h:div class="summary">A title on an element.</h:div>
<h:div class="description">No controlled value.</h:div>
<h:div class="example" href="title1.xml"/>
x2 xsd:double optional
<h:div class="summary">x2 coordinate for an object.</h:div>
<h:div class="description">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.</h:div>
x3 xsd:double optional
<h:div class="summary">The x coordinate of a 3 dimensional object.</h:div>
<h:div class="description">The default units are Angstrom. (The provision for other units is weak at present.) Objects are always described with a right-handed coordinate system.</h:div>
xFract xsd:double optional
<h:div class="summary">Fractional x coordinate.</h:div>
<h:div class="description">normally xFract, yFract and zFract should all be present or absent. If present a _crystal_ element should also occur.</h:div>
y2 xsd:double optional
<h:div class="summary">y2 coordinate for an object.</h:div>
<h:div class="description">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.</h:div>
y3 xsd:double optional
<h:div class="summary">The y coordinate of a 3 dimensional object.</h:div>
<h:div class="description">The default units are Angstrom. (The provision for other units is weak at present.) Objects are always described with a right-handed coordinate system.</h:div>
yFract xsd:double optional
<h:div class="summary">Fractional y coordinate.</h:div>
<h:div class="description">normally xFract, yFract and zFract should all be present or absent. If present a _crystal_ element should also occur.</h:div>
z3 xsd:double optional
<h:div class="summary">The z coordinate of a 3 dimensional object.</h:div>
<h:div class="description">The default units are Angstrom. (The provision for other units is weak at present.) Objects are always described with a right-handed coordinate system.</h:div>
zFract xsd:double optional
<h:div class="summary">Fractional y coordinate.</h:div>
<h:div class="description">normally xFract, yFract and zFract should all be present or absent. If present a _crystal_ element should also occur.</h:div>
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.xml-cml.org/schema'

Source

<xsd:element name="atom" id="el.atom" substitutionGroup="anyCml">
  <xsd:annotation>
    <xsd:documentation>
      <h:div class="summary">An atom.</h:div>
      <h:div documentation="general">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.</h:div>
      <h:div class="example" href="atom1.xml"/>
      <h:div class="curation">2006-01-12: PMR. Added vector3 child to support accelerations, velocities, dipole, etc.</h:div>
      <h:div class="curation">2006-06-01: PMR. Added documentation.</h:div>
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:annotation>
        <xsd:documentation>
          <h:div class="general">
            <h:p>The main content model of the atom.</h:p>
            <h:ul>
              <h:li>
                <h:b>name</h:b>can be used for atom labels, etc. More than one name can be used if required.</h:li>
              <h:li>
                <h:b>scalar</h:b>contains any scalar properties of the atom (examples are chemical shift, B-value, etc.) linked through
                <h:tt>dictRef</h:tt>(CmlDictRefType).</h:li>
              <h:li>
                <h:b>array</h:b>contains any properties of the atom describable by a homogeneous array linked through
                <h:tt>dictRef</h:tt>(CmlDictRefType).</h:li>
              <h:li>
                <h:b>matrix</h:b>contains any properties of the atom describable by a homogeneous matrix linked through
                <h:tt>dictRef</h:tt>(CmlDictRefType). An example is the polarizability tensor</h:li>
              <h:li>
                <h:b>atomParity</h:b>(CmlAtomParityElement) the required way of defining atom-based chirality</h:li>
              <h:li>
                <h:b>electron</h:b>a away of associating electron(s) with the atom</h:li>
            </h:ul>
          </h:div>
        </xsd:documentation>
      </xsd:annotation>
      <xsd:element ref="anyCml"/>
      <xsd:any namespace="##other" processContents="lax"/>
      <xsd:any namespace="##local" processContents="lax"/>
    </xsd:choice>
    <xsd:attributeGroup ref="id"/>
    <xsd:attributeGroup ref="convention"/>
    <xsd:attributeGroup ref="dictRef"/>
    <xsd:attributeGroup ref="ref"/>
    <xsd:attributeGroup ref="count">
      <xsd:annotation>
        <xsd:documentation>
          <h:div class="specific">Most useful in _formula_ but possibly useful in _atomArray_ where coordinates and connectivity is not defined. No formal default, but assumed to be 1.</h:div>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attributeGroup>
    <xsd:attributeGroup ref="elementType"/>
    <xsd:attributeGroup ref="formalCharge"/>
    <xsd:attributeGroup ref="hydrogenCount"/>
    <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:annotation>
        <xsd:documentation>
          <h:div class="specific">This can be used to describe the purpose of atoms whose _elementType_s are __dummy__ or __locant__. Vocabulary not controlled.</h:div>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attributeGroup>
    <xsd:attributeGroup ref="spaceGroupMultiplicity">
      <xsd:annotation>
        <xsd:documentation>
          <h:div class="curation">2005-11-27: Added PMR</h:div>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attributeGroup>
    <xsd:attributeGroup ref="pointGroupMultiplicity">
      <xsd:annotation>
        <xsd:documentation>
          <h:div class="curation">2005-11-27: Added PMR</h:div>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attributeGroup>
    <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
</xsd:element>

Sample

< cml xmlns = "http://www.xml-cml.org/schema" xmlns:dc = "http://purl.org/dc/elements/1.1/" convention = "conventions:molecular" >

< dc:title>

test file for http://www.xml-cml.org/conventions/molecular convention

</ dc:title>

< dc:description>

valid molecular - atom has a child but it is not from the CML namespace

</ dc:description>

< dc:author>

J A Townsend

</ dc:author>

< dc:rights>

Copyright J A Townsend jat45@cantab.net 2009.

</ dc:rights>

< dc:date>

2009-01-21

</ dc:date>

< molecule id = "m1" >

< atomArray>

< atom id = "a1" elementType = "H" >

< dc:description>

a non CML element child of atom

</ dc:description>

</ atom>

</ atomArray>

</ molecule>

</ cml>