<xsd:simpleType id="st.inheritType" name="inheritType">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary" xmlns:h="http://www.w3.org/1999/xhtml">Inheritance mechanism.</h:div>
<h:div class="description" xmlns:h="http://www.w3.org/1999/xhtml">
<h:p>A reference to an existing element can be used to supplement values such as coordinates. The <h:tt>inheritance</h:tt> attribute determines whether the values are supplemented, overwritten or deleted. In the example:</h:p>
<h:pre>
<molecule id="m1" view="initial">
<atomArray>
<atom id="a1" x3="0.1"/>
</atomArray>
</molecule>
<!-- this adds more information -->
<molecule ref="m1" view="initial" inherit="supplement">
<atomArray>
<atom id="a1" hydrogenCount="1"/>
</atomArray>
</molecule>
<!-- this will overwrite the previous values -->
<molecule ref="m1" inherit="overwrite" view="final"
id="m2">
<atomArray>
<atom id="a1" x3="0.1"/>
</atomArray>
</molecule>
<!-- this will delete the previous values -->
<molecule ref="m1" inherit="delete" view="restart">
<atomArray>
<atom id="a1" hydrogenCount=""/>
</atomArray>
</molecule>
</h:pre>
<h:p>
The first <h:tt>molecule/@ref</h:tt> adds complementary information, the second
changes the values. Software is allowed to generate two independent copies of the molecule and reference them by different IDs (<h:tt>m1</h:tt> and <h:tt>m2</h:tt>).
</h:p>
<h:p>This mechanism is necessary to manage the implied inheritance of partial information during minimisations and dynamics. It requires careful software implementation.
</h:p>
</h:div>
</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="merge">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary" xmlns:h="http://www.w3.org/1999/xhtml">Values from this element will be merged.</h:div>
<h:div class="description" xmlns:h="http://www.w3.org/1999/xhtml">The merging is element-specific with the intention that information from the current element will not conflict with the existing information. It is an error if there is a conflict.</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="replace">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary" xmlns:h="http://www.w3.org/1999/xhtml">Values from this element will replace existing information.</h:div>
<h:div class="description" xmlns:h="http://www.w3.org/1999/xhtml">The merging is element-specific with the intention that information from the current element will replace the existing information.</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="delete">
<xsd:annotation>
<xsd:documentation>
<h:div class="summary" xmlns:h="http://www.w3.org/1999/xhtml">Components of this element will de deleted if they exist.</h:div>
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
|