<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://purl.org/NET/prime/"
  targetNamespace="http://purl.org/NET/prime/"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  elementFormDefault="qualified">
  <xsd:import namespace="http://purl.org/dc/elements/1.1/"
    schemaLocation="http://dublincore.org/schemas/xmls/qdc/2003/04/02/dc.xsd"/>
  <xsd:element name="chemicalElement">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="atomicNumber">
          <xsd:simpleType>
            <xsd:restriction base="xsd:positiveInteger">
              <xsd:maxInclusive value="116"/>
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>
        <xsd:element name="atomicSymbol" type="AtomSymbol"/>
        <xsd:element name="atomicName" type="xsd:string"/>
        <xsd:element name="casRegistryNumber" type="xsd:string" minOccurs="0"/>
        <xsd:element name="referenceElement" type="ReferenceElementType" minOccurs="0"/>
        <xsd:element name="standardAtomicWeight" type="AtomicWeightType"/>
        <xsd:element name="isotope" type="IsotopeType" minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element ref="dc:format" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="ReferenceElementType">
    <xsd:sequence>
      <xsd:element name="referenceElementName" type="xsd:string"/>
      <xsd:element ref="referenceElementID"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="referenceElementID">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:string">
          <xsd:attribute name="type" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="temperature">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:decimal">
          <xsd:attribute name="units" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="pressure">
    <xsd:complexType>
      <xsd:simpleContent>
        <xsd:extension base="xsd:decimal">
          <xsd:attribute name="units" type="xsd:string"/>
        </xsd:extension>
      </xsd:simpleContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="AtomicWeightType">
    <xsd:sequence>
      <xsd:element name="numericalValue" type="positiveDecimal"/>
      <xsd:element name="uncertainty" type="positiveDecimal" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="units" type="xsd:string" fixed="u" use="optional"/>
  </xsd:complexType>
  <xsd:complexType name="IsotopeType">
    <xsd:sequence>
      <xsd:element name="massNumber">
        <xsd:simpleType>
          <xsd:restriction base="xsd:positiveInteger">
            <xsd:maxInclusive value="292"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name="relativeAtomicMass" type="relativeAtomicMassType" minOccurs="0"/>
      <xsd:choice>
        <xsd:element name="isotopicAbundance" type="percentQuantity" minOccurs="0" maxOccurs="1"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="relativeAtomicMassType">
    <xsd:sequence>
      <xsd:element name="numericalValue" type="positiveDecimal"/>
      <xsd:element name="uncertainty" type="nonNegativeDecimal" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="units" type="xsd:string" fixed="unitless" use="optional"/>
  </xsd:complexType>
  <xsd:complexType name="percentQuantity">
    <xsd:sequence>
      <xsd:element name="numericalValue" type="percentDecimal"/>
      <xsd:element name="uncertainty" type="percentDecimal" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="units" type="xsd:string" fixed="percent" use="required"/>
  </xsd:complexType>
  <xsd:complexType name="fractionQuantity">
    <xsd:sequence>
      <xsd:element name="numericalValue" type="fractionDecimal"/>
      <xsd:element name="uncertainty" type="fractionDecimal" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="units" type="xsd:string" fixed="fraction" use="required"/>
  </xsd:complexType>
  <xsd:simpleType name="positiveDecimal">
    <xsd:restriction base="xsd:decimal">
      <xsd:minExclusive value="0.0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="nonNegativeDecimal">
    <xsd:restriction base="xsd:decimal">
      <xsd:minInclusive value="0.0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="percentDecimal">
    <xsd:restriction base="xsd:decimal">
      <xsd:minInclusive value="0.0"/>
      <xsd:maxInclusive value="100.0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="fractionDecimal">
    <xsd:restriction base="xsd:decimal">
      <xsd:minInclusive value="0.0"/>
      <xsd:maxInclusive value="1.0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="AtomSymbol">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="Ac"/>
      <xsd:enumeration value="Ag"/>
      <xsd:enumeration value="Al"/>
      <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="Be"/>
      <xsd:enumeration value="Bh"/>
      <xsd:enumeration value="Bi"/>
      <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="Uub"/>
      <xsd:enumeration value="Uuh"/>
      <xsd:enumeration value="Uun"/>
      <xsd:enumeration value="Uuq"/>
      <xsd:enumeration value="Uuu"/>
      <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:restriction>
  </xsd:simpleType>
</xsd:schema>
