B.3. XML Schema

Table B.3.  Table 3.2, Section 3.2

<xs:schema targetNameSpace="URI">
    xs:import* {xs:simpleType | xs:complexType | xs:element | xs:group}*
</xs:schema>
<xs:import nameSpace="URI"
    schemaLocation="URI"/>
<xs:simpleType name="NCName">
    xs:restriction
</xs:simpleType>
<xs:complexType name="NCName"
    mixed="true">
    {xs:choice | xs:sequence | xs:group}? xs:attribute*
</xs:complexType>
<xs:element name="QName"
    type="TName"/>
<xs:element name="QName"
    ref="EName"/>
<xs:element name="QName">
    {xs:simpleType | xs:complexType}?
    {xs:unique | xs:key | xs:keyref}*
</xs:element>
<xs:sequence {min|max}occurs="nonNegativeInteger|unbounded">
    {xs:element | xs:choice | xs:sequence | xs:group}*
</xs:sequence>
<xs:choice {min|max}occurs="nonNegativeInteger|unbounded">
    {xs:element | xs:choice | xs:sequence | xs:group}*
</xs:choice>
<xs:group name="NCName">
    {xs:choice | xs:sequence}*
</xs:group>
<xs:attribute name="NCName"
    type="TName"
    use="required"/>
<xs:restriction base="TName">
    <xs:{max|min}{in|ex}clusive value="anySimpleType"/>
    | <xs:{max|min}length value ="nonNegativeInteger"
    | <pattern value = "regExp"
    | <enumeration value = "anyValue"
</xs:restriction>
<xs:{unique|key} name="NCName">
    xs:selector xs:field+
</xs:{unique|key}>
<xs:keyref name="NCName"
    refer="NCName">
    xs:selector xs:field+
</xs:keyref>
<xs:{selector|field} xpath="XPathExpr"/>