element bond

element {http://www.xml-cml.org/schema/cml2/core}bond

Abstractfalse (This can be used in an instance)
Nillablefalse (Instance values cannot use xsi:nil)
Target Namespacehttp://www.xml-cml.org/schema/cml2/core
Declared Namespacesxmlns:val=http://www.w3.org/1999/XSL/TransformX
xmlns:stm=http://www.xml-cml.org/schema/stmml
xmlns:xsd=http://www.w3.org/2001/XMLSchema
xmlns:xlink=http://www.w3.org/1999/xlink
xmlns:cml=http://www.xml-cml.org/schema/cml2/core
xmlns=http://www.xml-cml.org/schema/cml2/core


Source

<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.bondStereo">bondStereo</a>
elements.
</p>
            </
div>
            <
div class="example">
                <
pre>
<cml title="bondArray example">
<bondArray>
<bond id="b1" atomRefs2="a3 a8" order="D">
<electron bondRef="b1"/>
<bondStereo>C</bondStereo>
</bond>
<bond id="b2" atomRefs2="a3 a8" order="S">
<bondStereo convention="MDL" conventionValue="6"/>
</bond>
</bondArray>
</cml>
                
</pre>
            </
div>
            <
div class="example">
                <
pre>
<cml title="metal-bond example">
<!-- 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>
</cml>
                
</pre>
            </
div>
        </
xsd:documentation>
        <
xsd:documentation>
            <
div class="validation">
                <
pre>
<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),' ')"/>
<val:comment>Do both atoms exist in current molecule context?</val:comment>
<val:if test="not(key('atoms', $at1))">
<val:call-template name="error">
<val:with-param name="error">BOND (<val:value-of select="@id"/>): ATOMREF not found: <val:value-of select="$at1"/></val:with-param>
</val:call-template>
</val:if>
</val:template>
                
</pre>
            </
div>
        </
xsd:documentation>
        <
xsd:appinfo>
            <
val:comment>Validate Bonds</val:comment>
            <
val:template match="bond" id="val-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),' ')"/>
                <
val:comment>Are atoms distinct?</val:comment>
                <
val:if test="$at1 = $at2">
                    <
val:call-template name="error">
                        <
val:with-param name="error">BOND (
                            
<val:value-of select="@id"/>
): ATOMS not distinct:
                            
<val:value-of select="$at1"/>
                        </
val:with-param>
                    </
val:call-template>
                </
val:if>
                <
val:comment>Do both atoms exist in current molecule context?</val:comment>
                <
val:if test="not(key('atoms', $at1))">
                    <
val:call-template name="error">
                        <
val:with-param name="error">BOND (
                            
<val:value-of select="@id"/>
): ATOMREF not found:
                            
<val:value-of select="$at1"/>
                        </
val:with-param>
                    </
val:call-template>
                </
val:if>
                <
val:if test="not(key('atoms', $at2))">
                    <
val:call-template name="error">
                        <
val:with-param name="error">BOND (
                            
<val:value-of select="@id"/>
): ATOMREF not found:
                            
<val:value-of select="$at2"/>
                        </
val:with-param>
                    </
val:call-template>
                </
val:if>
            </
val:template>
        </
xsd:appinfo>
    </
xsd:annotation>
    <
xsd:complexType>
        <
xsd:choice>
            <
xsd:choice minOccurs="0" maxOccurs="unbounded">
                <
xsd:element ref="electron">
                    <
xsd:annotation>
                        <
xsd:documentation>
                            <
div class="summary">One or more electrons associated with the bond.</div>
                            <
div class="general">
                                <
p>. The
                                    
<a href="st.bondRefType">bondRef</a>
on the
                                    
<tt>electron</tt>
should
point to the id on the bond. We may relax this later and allow
reference by context.(We
                                
</p>
                            </
div>
                        </
xsd:documentation>
                    </
xsd:annotation>
                </
xsd:element>
                <
xsd:element ref="bondStereo">
                    <
xsd:annotation>
                        <
xsd:documentation>
                            <
div class="summary">The stereo convention for the bond.</div>
                            <
div class="general">
                                <
p>only one convention allowed</p>
                            </
div>
                        </
xsd:documentation>
                    </
xsd:annotation>
                </
xsd:element>
                <
xsd:element ref="length">
<!--
<xsd:annotation>
<xsd:documentation>
<div class="summary">the length between the atoms. </div>
<div class="general"><p>This is either an experimental measurement
or used to build up internal coordinates (as in a z-matrix) (only one allowed)</p>
<p>We expect to move length as a child of <a href="el.molecule">molecule</a> and
remove it from here</p>
</div>
</xsd:documentation>
</xsd:annotation>
-->
                </
xsd:element>
            </
xsd:choice>
<!--
CML-1 (deprecated)-->
            <
xsd:choice minOccurs="0" maxOccurs="unbounded">
                <
xsd:element ref="float" minOccurs="0" maxOccurs="unbounded"/>
                <
xsd:element ref="integer" minOccurs="0" maxOccurs="unbounded"/>
                <
xsd:element ref="string" minOccurs="0" maxOccurs="unbounded"/>
            </
xsd:choice>
        </
xsd:choice>
        <
xsd:attributeGroup ref="tit_id_conv_dictGroup"/>
        <
xsd:attributeGroup ref="ref"/>
        <
xsd:attribute name="atomRefs2" type="atomRefs2Type">
            <
xsd:annotation>
                <
xsd:documentation>
                    <
div class="summary">The two atoms in the bond.</div>
                    <
div class="general">
                        <
p>
. This will be the normal reference attribute on the bond element. The order of atoms is preserved and may
matter for some conventions (e.g. wedge/hatch or donor bonds)
                        
</p>
                    </
div>
                </
xsd:documentation>
            </
xsd:annotation>
        </
xsd:attribute>
        <
xsd:attribute name="atomRefs" type="atomRefArrayType">
            <
xsd:annotation>
                <
xsd:documentation>
                    <
div class="summary">The atoms in the bond.</div>
                    <
div class="general">
                        <
p>. This is designed for multicentre bonds (as in delocalised systems or electron-deficient centres. The semantics are experimental at this stage. As an example, a B-H-B bond might be described as
                            
<tt><bond atomRefs="b1 h2 b2"/></tt>
                        </
p>
                    </
div>
                </
xsd:documentation>
            </
xsd:annotation>
        </
xsd:attribute>
        <
xsd:attribute name="bondRefs" type="bondRefArrayType">
            <
xsd:annotation>
                <
xsd:documentation>
                    <
div class="summary">Bonds involved in the bond.</div>
                    <
div class="general">
                        <
p>. This is designed for pi-bonds and other systems where formal valence bonds are not drawn to atoms. The semantics are experimental at this stage. As an example, a Pt-|| bond (as the Pt-ethene bond in Zeise's salt) might be described as
                            
<tt><bond atomRefs="pt1" bondRefs="b32"/></tt>
                        </
p>
                    </
div>
                </
xsd:documentation>
            </
xsd:annotation>
        </
xsd:attribute>
        <
xsd:attribute name="order" type="orderType">
            <
xsd:annotation>
                <
xsd:documentation>
                    <
div class="summary">The order of the bond.</div>
                    <
div class="general">
                        <
p>
There is NO default. This order is for
bookkeeping only and is not related to length, QM calculations
or other experimental or theoretical calculations.
see
                            
<a href="st.orderType">
                                <
tt>orderType</tt>
                            </
a>
                        </
p>
                    </
div>
                </
xsd:documentation>
            </
xsd:annotation>
        </
xsd:attribute>
<!--
attribute extensions to core CML-->
<!--
atom.atts.extensions-->
<!--
this is reserved for extending core CML through attributes to bonds-->
    </
xsd:complexType>
</
xsd:element>


Documentation

A bond between atoms, or between atoms and bonds.

bond is a child of bondArray and contains bond information. Bond must refer to at least two atoms (using atomRefs2) but may also refer to more for multicentre bonds. Bond is often EMPTY but may contain electron, length or bondStereo elements.

<cml title="bondArray example">
  <bondArray>
    <bond id="b1" atomRefs2="a3 a8" order="D">
      <electron bondRef="b1"/>
      <bondStereo>C</bondStereo>
    </bond>
    <bond id="b2" atomRefs2="a3 a8" order="S">
      <bondStereo convention="MDL" conventionValue="6"/>
    </bond>
  </bondArray>
</cml>
       
<cml title="metal-bond example">
<!-- 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>
</cml>
       
<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),' ')"/>
  <val:comment>Do both atoms exist in current molecule context?</val:comment>
  <val:if test="not(key('atoms', $at1))">
    <val:call-template name="error">
      <val:with-param name="error">BOND (<val:value-of select="@id"/>): ATOMREF not found: <val:value-of select="$at1"/></val:with-param>
    </val:call-template>
  </val:if>
</val:template>
     


element bond


Stylus Studio XML Schema Library Home
Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio®, a product from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2006 All Rights Reserved.