<xs:complexType name="elementType">
<xs:choice maxOccurs="unbounded">
<xs:element ref="dx:name">
<xs:annotation>
<xs:documentation>Used to provide the name of the corresponding element or attribute The name may be used in other items such as usage, constraints...</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="dx:summary" minOccurs="0"/>
<xs:element ref="dx:type" minOccurs="0"/>
<xs:element ref="dx:occurance">
<xs:annotation>
<xs:documentation>cardinality is mandatory for the generic usage. It may be present more than once in case it changes for different usages, implementations or targets</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="composition" minOccurs="0">
<xs:annotation>
<xs:documentation>to express the fact that the element is in fact a group of elements linked with the composition expressed in the is</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="is">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="all"/>
<xs:enumeration value="choice"/>
<xs:enumeration value="interleave"/>
<xs:enumeration value="sequence"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="name" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element ref="dx:introduction"/>
<xs:element ref="dx:body" minOccurs="0">
<xs:annotation>
<xs:documentation>cardinality is mandatory for the generic usage. It may be present more than once in case it changes for different usages, implementations or targets</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="dx:description" minOccurs="0">
<xs:annotation>
<xs:documentation>Complete element description, split by html elements, translated from wiki textile syntax and possibly limited to certain usage, target or implementation</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="dx:usage" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Usage is used to restrict the parent information to a specific usage</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="dx:priority" minOccurs="0"/>
<xs:element ref="dx:element" minOccurs="0"/>
<xs:element ref="dx:constraint" minOccurs="0"/>
</xs:choice>
<xs:attribute name="mixed" type="xs:boolean">
<xs:annotation>
<xs:documentation>to express whether the element can have mixed cotnent or not (element, attribute and text or just elements and attributes)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" use="required">
<xs:annotation>
<xs:documentation>The actual element tag name</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute ref="dx:href" use="optional">
<xs:annotation>
<xs:documentation>To provide a link to the element definition in case the information is coming from an external file. The link would correpsond to a xlink.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute ref="dx:sinceVersion" use="optional"/>
<xs:attribute name="class" type="xs:string" use="optional">
<xs:annotation>
<xs:appinfo source="§Todo">§todo+xxxdf: possibly link with all the classes from XFT (list generated from schema)</xs:appinfo>
<xs:documentation xml:lang="en">defines what is the parent class used to validate the content of this element. Additional information may be used to limit the scope of the element, like actual values</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" type="dx:element_typeType" use="required">
<xs:annotation>
<xs:documentation xml:lang="en">the type of element can be element, attribute or value at present. In case of value, the dx:name element would correspond to the actual value</xs:documentation>
<xs:appinfo source="§Todo">§Todo+xxx: validate the assumption that dx:name would contain the value or add another item</xs:appinfo>
</xs:annotation>
</xs:attribute>
</xs:complexType> |