dimension

<h:div class="summary">A dimension supporting scientific unit.</h:div>
<h:div class="description">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 type can 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:
  <h:pre>
    <unitType id="a1" preserve="true" xmlns="">
      <dimension name="length" power="1"/>
      <dimension name="time" power="-1"/>
      <dimension name="length" power="-1"/>
    </unitType>
  </h:pre>whereas cancelling the dimensions would give:
  <h:pre>
    <unitType id="a1" preserve="true" xmlns="">
      <dimension name="time" power="-1"/>
    </unitType>
  </h:pre>
</h:div>
<h:div class="example" href="dimension1.xml"/>
<h:div class="example" href="dimension2.xml"/>

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
dimensionBasis dimensionType optional
<h:div class="summary">The basis of the dimension.</h:div>
<h:div class="description">Normally taken from the seven SI types but possibly expandable.</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>
name xsd:string optional
<h:div class="summary">Name of the object.</h:div>
<h:div class="description">A string by which the object is known. Often a required attribute. The may or may not be a semi-controlled vocabulary.</h:div>
power xsd:double optional
<h:div class="summary">The power to which a dimension should be raised.</h:div>
<h:div class="description">Normally an integer. Must be included, even if unity.</h:div>
preserve xsd:boolean optional
<h:div class="summary">Is the dimension preserved during algebra.</h:div>
<h:div class="dimension">Experimental. The idea is to support concepts like volume/volume where algebraically these cancel out. preserve="yes" is intending to support preservation during derivation of new unitTypes.</h:div>
unitType xsd:string optional
<h:div class="summary">A reference to the type of a unit.</h:div>
<h:div class="description">Used in defining the unit and doing symbolic algebra on the dimensionality.</h:div>
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.xml-cml.org/schema'

Source

<xsd:element name="dimension" id="el.dimension" substitutionGroup="anyCml">
  <xsd:annotation>
    <xsd:documentation>
      <h:div class="summary">A dimension supporting scientific unit.</h:div>
      <h:div class="description">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 type can 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:
        <h:pre>
          <unitType id="a1" preserve="true" xmlns="">
            <dimension name="length" power="1"/>
            <dimension name="time" power="-1"/>
            <dimension name="length" power="-1"/>
          </unitType>
        </h:pre>whereas cancelling the dimensions would give:
        <h:pre>
          <unitType id="a1" preserve="true" xmlns="">
            <dimension name="time" power="-1"/>
          </unitType>
        </h:pre>
      </h:div>
      <h:div class="example" href="dimension1.xml"/>
      <h:div class="example" href="dimension2.xml"/>
    </xsd:documentation>
  </xsd:annotation>
  <xsd:complexType>
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element ref="anyCml"/>
      <xsd:any namespace="##other" processContents="lax"/>
      <xsd:any namespace="##local" processContents="lax"/>
    </xsd:choice>
    <xsd:attributeGroup ref="dimensionBasis"/>
    <xsd:attributeGroup ref="id"/>
    <xsd:attributeGroup ref="name"/>
    <xsd:attributeGroup ref="power"/>
    <xsd:attributeGroup ref="preserve"/>
    <xsd:attributeGroup ref="unitType"/>
    <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
</xsd:element>

Sample