📄 cmlcore.xsd
字号:
</xsd:attribute> <xsd:attribute id="el.atom.zFract" name="zFract" type="xsd:decimal"> <xsd:annotation> <xsd:documentation> <div class="general"><p>The fractional x coordinate in a crystal structure. xFract, yFract and zFract coordinates must be all present or all absent. A <tt>crystal</tt> element is required</p> </div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attributeGroup ref="title"/> <xsd:attributeGroup ref="convention"/> <xsd:attributeGroup ref="dictRef"/> <xsd:attributeGroup ref="ref"/> </xsd:complexType> </xsd:element> <xsd:element name="atomArray" id="el.atomArray"> <xsd:annotation> <xsd:documentation> <div class="summary">A container for a list of atoms</div> <div class="description">A child of <a href="el.molecule">molecule</a> and contains <tt>atom</tt> information. There are two strategies: <ul> <li>Create individual <a href="el.atom">atom</a> elements under <a href="el.atomArray">atomArray</a> (in any order). This gives the greatest flexibility but is the most verbose.</li> <li>Create <tt>*Array</tt> attributes (e.g. of <a href="st.elementTypeArrayType">elementTypeArrayType</a> under <a href="el.atomArray">atomArray</a>. 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 <a href="el.atomParity">atomParity</a> or composite types such as <tt>xy2</tt>. It also cannot be checked as easily by schema- and schematron validation. The <tt>atomIDArray</tt> attribute is mandatory. It is allowed (though not yet recommended) to add <tt>*Array</tt> children such as <a href="el.floatArray">floatArray</a> </li> </ul> <p>The attributes are directly related to the scalar attributes under <a href="el.atom">atom</a> which should be consulted for more info.</p> <p>NOTE: The CML-1 specifications are also supported but are deprecated</p> </div> <div class="example"> <p>Example - these are exactly equivalent representations</p> <pre><stm:list xmlns:stm="http://www.xml-cml.org/schema/stmml"> <atomArray> <atom id="a1" elementType="O" hydrogenCount="1"/> <atom id="a2" elementType="N" hydrogenCount="1"/> <atom id="a3" elementType="C" hydrogenCount="3"/> </atomArray><!-- is equivalent to --> <atomArray atomID="a1 a2 a3" elementType="O N C" hydrogenCount="1 1 3"/></stm:list> </pre> </div> </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:choice> <xsd:element ref="atom" maxOccurs="unbounded"/> <xsd:element ref="array" minOccurs="0" maxOccurs="unbounded"/><!-- CML-1 (deprecated) --> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="floatArray" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="integerArray" minOccurs="0" maxOccurs="unbounded"/> <xsd:element ref="stringArray" minOccurs="0" maxOccurs="unbounded"/> </xsd:choice> </xsd:choice> <xsd:attributeGroup ref="tit_id_conv_dictGroup"/> <xsd:attribute name="elementType" type="elementTypeArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">Almost mandatory. see <a href="el.atom.elementType">elementType</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="count" type="integerArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.count">count</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="formalCharge" type="integerArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.formalCharge">formalCharge</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="hydrogenCount" type="integerArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.hydrogenCount">hydrogenCount</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="nonHydrogenCount" type="integerArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.nonHydrogenCount">nonHydrogenCount</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="isotope" type="floatArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.isotope">isotope</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="occupancy" type="floatArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.occupancy">occupancy</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="x2" type="coordinateComponentArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.x2">x2</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="x3" type="coordinateComponentArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.x3">x3</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="xFract" type="coordinateComponentArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.xFract">xFract</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="y2" type="coordinateComponentArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.y2">y2</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="y3" type="coordinateComponentArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.y3">y3</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="yFract" type="coordinateComponentArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.yFract">yFract</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="z3" type="coordinateComponentArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.z3">z3</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="zFract" type="coordinateComponentArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.zFract">zFract</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attribute name="atomID" type="atomRefArrayType"> <xsd:annotation> <xsd:documentation> <div class="summary">See <a href="el.atom.id">atomID</a></div> </xsd:documentation> </xsd:annotation> </xsd:attribute> <xsd:attributeGroup ref="ref"> <xsd:annotation> <xsd:documentation> <div class="summary">Available for subclassing to provide alternative collections for atoms.</div> </xsd:documentation> </xsd:annotation> </xsd:attributeGroup> </xsd:complexType> </xsd:element> <xsd:element name="atomParity" id="el.atomParity"> <xsd:annotation> <xsd:documentation> <div class="summary">The stereochemistry round an atom centre. </div> <div class="description"> <p>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. </p> <p>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):</p> <pre> | 1 1 1 1 | | x1 x2 x3 x4 | | y1 y2 y3 y4 | | z1 z2 z3 z4 | </pre> <p>Note that <tt>atomParity</tt> cannot be used with the *Array syntax for atoms.</p> </div> <div class="example"> <pre><atom id="a1"> <atomParity atomRefs4="a3 a5 a2 a9">1</atomParity></atom> </pre> </div> </xsd:documentation> <xsd:appinfo> <sch:pattern xmlns="http://www.ascc.net/xml/schematron" name="atomParity"> <sch:rule context="atomParity"> </sch:rule> </sch:pattern> </xsd:appinfo> </xsd:annotation> <xsd:complexType> <xsd:simpleContent> <xsd:extension base="xsd:decimal"> <xsd:attributeGroup ref="tit_id_conv_dictGroup"/> <xsd:attributeGroup ref="atomRefs4"/> </xsd:extension> </xsd:simpleContent> </xsd:complexType></xsd:element> <xsd:element name="bond" id="el.bond"> <xsd:annotation> <xsd:documentation> <div class="summary">A bond between <a href="el.atom">atom</a>s, or between atoms and bonds</div> <div class="general"><p> <tt>bond</tt> is a child of <tt>bondArray</tt> and contains bond information. Bond must refer to at least two atoms (using <a href="st.atomRefs2Type">atomRefs2</a>) but may also refer to more for multicentre bonds. Bond is often EMPTY but may contain <a href="el.electron">electron</a>, <a href="el.length">length</a> or <a href="el.stereo">stereo</a> elements.</p></div> <div class="example"> <pre><bondArray> <bond id="b1" atomRefs2="a3 a8" order="D"> <electron bondRef="b1"/> <stereo>C</stereo> </bond> <bond id="b2" atomRefs2="a3 a8" order="S"> <stereo convention="MDL" conventionValue="6"/> </bond></bondArray> </pre> </div> <div class="example"> <pre><!-- Zeise's salt: Cl3Pt(CH2=CH2)--><atomArray> <atom id="pt1" elementType="Pt"/> <atom id="cl1" elementType="Cl"/> <atom id="cl2" elementType="Cl"/> <atom id="cl3" elementType="Cl"/> <atom id="c1" elementType="C" hydrogenCount="2"/> <atom id="c2" elementType="C" hydrogenCount="2"/></atomArray><bondArray> <bond id="b1" atomRefs2="c1 c2" order="D"/> <bond id="b2" atomRefs2="pt1 cl1" order="S"/> <bond id="b3" atomRefs2="pt1 cl2" order="S"/> <bond id="b4" atomRefs2="pt1 cl3" order="S"/> <bond id="b5" atomRefs="pt1" bondRefs="b1"/></bondArray> </pre> </div> </xsd:documentation> <xsd:appinfo> <sch:pattern xmlns="http://www.ascc.net/xml/schematron" name="bond"> <sch:rule context="bond"> <sch:report test="../@atomRef1Array">cannot mix <tt>bond</tt> and array approaches </sch:report> </sch:rule> </sch:pattern> <sch:pattern xmlns="http://www.ascc.net/xml/schematron" name="stereo"> <sch:rule context="bond"> <sch:report test="length[2]"> bond cannot have more than one <tt>length</tt> child</sch:report> </sch:rule> </sch:pattern> <sch:pattern xmlns="http://www.ascc.net/xml/schematron" name="stereo"> <sch:rule context="bond"> <sch:report test="stereo[2]">bond cannot have more than one <tt>stereo</tt> child</sch:report> </sch:rule> </sch:pattern> </xsd:appinfo> <xsd:appinfo> <val:comment>Validate Bonds</val:comment> <val:template match="bond"> <val:comment>Atom Refs for 2-atom bond</val:comment> <val:variable name="at1" select="substring-before(normalize-space(@atomRefs2),' ')"/> <val:variable name="at2" select="substring-after(normalize-space(@atomRefs2),' ')"/>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -