<xs:annotation>
<xs:documentation>
Part 1 version: structures.xsd (rec-20120405)
Part 2 version: datatypes.xsd (rec-20120405)
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation source="../structures/structures.html">
The schema corresponding to this document is normative,
with respect to the syntactic constraints it expresses in the
XML Schema Definition Language. The documentation (within 'documentation' elements)
below, is not normative, but rather highlights important aspects of
the W3C Recommendation of which this is a part.
See below (at the bottom of this document) for information about
the revision and namespace-versioning policy governing this
schema document.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
The simpleType element and all of its members are defined
towards the end of this schema document.
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
Get access to the xml: attribute groups for xml:lang
as declared on 'schema' and 'documentation' below
</xs:documentation>
</xs:annotation>
</xs:import>
<xs:annotation>
<xs:documentation>
This type is extended by almost all schema types
to allow attributes from other namespaces to be
added to user schemas.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="xs:anyType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation>
This type is extended by all types which allow annotation
other than <schema> itself
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:openAttrs">
<xs:sequence>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:group>
<xs:annotation>
<xs:documentation>
This group is for the
elements which occur freely at the top level of schemas.
All of their types are based on the "annotated" type by extension.
</xs:documentation>
</xs:annotation>
</xs:choice>
</xs:group>
<xs:annotation>
<xs:documentation>
This group is for the
elements which can self-redefine (see <redefine> below).
</xs:documentation>
</xs:annotation>
</xs:choice>
</xs:group>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="qualified"/>
<xs:enumeration value="unqualified"/>
</xs:restriction>
</xs:simpleType>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:enumeration value="extension"/>
<xs:enumeration value="restriction"/>
</xs:restriction>
</xs:simpleType>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
#all or (possibly empty) subset of {extension, restriction}
</xs:documentation>
</xs:annotation>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#all"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:enumeration value="extension"/>
<xs:enumeration value="restriction"/>
<xs:enumeration value="list"/>
<xs:enumeration value="union"/>
</xs:restriction>
</xs:simpleType>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
#all or (possibly empty) subset of {extension, restriction, list, union}
</xs:documentation>
</xs:annotation>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#all"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:element id="schema" name="schema">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-schema"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:openAttrs">
<xs:sequence>
<xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:composition"/>
<xs:sequence minOccurs="0">
</xs:sequence>
<xs:sequence maxOccurs="unbounded" minOccurs="0">
</xs:sequence>
</xs:sequence>
<xs:attribute name="version" type="xs:token"/>
<xs:attribute name="id" type="xs:ID"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:key name="element">
<xs:selector xpath="xs:element"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:key name="attribute">
<xs:selector xpath="xs:attribute"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:key name="type">
<xs:selector xpath="xs:complexType|xs:simpleType"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:key name="group">
<xs:selector xpath="xs:group"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:key name="attributeGroup">
<xs:selector xpath="xs:attributeGroup"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:key name="notation">
<xs:selector xpath="xs:notation"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:key name="identityConstraint">
<xs:selector xpath=".//xs:key|.//xs:unique|.//xs:keyref"/>
<xs:field xpath="@name"/>
</xs:key>
</xs:element>
<xs:annotation>
<xs:documentation>
for maxOccurs
</xs:documentation>
</xs:annotation>
<xs:union memberTypes="xs:nonNegativeInteger">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="unbounded"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:attributeGroup name="occurs">
<xs:annotation>
<xs:documentation>
for all particles
</xs:documentation>
</xs:annotation>
<xs:attribute default="1" name="minOccurs" type="xs:nonNegativeInteger" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="defRef">
<xs:annotation>
<xs:documentation>
for element, group and attributeGroup,
which both define and reference
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" type="xs:NCName"/>
<xs:attribute name="ref" type="xs:QName"/>
</xs:attributeGroup>
<xs:annotation>
<xs:documentation>
'complexType' uses this
</xs:documentation>
</xs:annotation>
</xs:choice>
</xs:group>
</xs:group>
</xs:group>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence>
</xs:sequence>
<xs:attribute name="type" type="xs:QName"/>
<xs:attribute default="optional" name="use" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="prohibited"/>
<xs:enumeration value="optional"/>
<xs:enumeration value="required"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="default" type="xs:string"/>
<xs:attribute name="fixed" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:attribute">
<xs:sequence>
</xs:sequence>
<xs:attribute name="ref" use="prohibited"/>
<xs:attribute name="form" use="prohibited"/>
<xs:attribute name="use" use="prohibited"/>
<xs:attribute name="name" type="xs:NCName" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:sequence>
<xs:choice maxOccurs="unbounded" minOccurs="0">
</xs:choice>
</xs:sequence>
</xs:group>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-anyAttribute"/>
</xs:annotation>
<xs:complexContent>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:sequence>
</xs:sequence>
</xs:group>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:attribute name="test" type="xs:string"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:choice>
<xs:element ref="xs:simpleContent"/>
<xs:annotation>
<xs:documentation>
This branch is short for
<complexContent>
<restriction base="xs:anyType">
...
</restriction>
</complexContent>
</xs:documentation>
</xs:annotation>
</xs:sequence>
</xs:choice>
</xs:group>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:group ref="xs:complexTypeModel"/>
<xs:attribute name="name" type="xs:NCName">
<xs:annotation>
<xs:documentation>
Will be restricted to required or prohibited
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="mixed" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>
Not allowed if simpleContent child is chosen.
May be overridden by setting on complexContent child.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute default="false" name="abstract" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:complexType">
<xs:sequence>
</xs:sequence>
<xs:attribute name="name" type="xs:NCName" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:complexType">
<xs:sequence>
</xs:sequence>
<xs:attribute name="name" use="prohibited"/>
<xs:attribute name="abstract" use="prohibited"/>
<xs:attribute name="final" use="prohibited"/>
<xs:attribute name="block" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence>
<xs:choice minOccurs="0">
<xs:sequence>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:attribute name="base" type="xs:QName" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:restrictionType">
<xs:sequence>
<xs:element minOccurs="0" ref="xs:annotation"/>
<xs:choice minOccurs="0">
<xs:annotation>
<xs:documentation>
This choice is added simply to
make this a valid restriction per the REC
</xs:documentation>
</xs:annotation>
</xs:sequence>
</xs:choice>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence>
</xs:sequence>
<xs:attribute name="base" type="xs:QName" use="required"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-complexContent"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:choice>
</xs:choice>
<xs:attribute name="mixed" type="xs:boolean">
<xs:annotation>
<xs:documentation>
Overrides any setting on complexType parent.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-openContent"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence>
</xs:sequence>
<xs:attribute default="interleave" name="mode" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="none"/>
<xs:enumeration value="interleave"/>
<xs:enumeration value="suffix"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-defaultOpenContent"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence>
</xs:sequence>
<xs:attribute default="false" name="appliesToEmpty" type="xs:boolean" use="optional"/>
<xs:attribute default="interleave" name="mode" use="optional">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="interleave"/>
<xs:enumeration value="suffix"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexContent>
<xs:restriction base="xs:restrictionType">
<xs:sequence>
<xs:element minOccurs="0" ref="xs:annotation"/>
<xs:choice minOccurs="0">
<xs:annotation>
<xs:documentation>
This choice is added simply to
make this a valid restriction per the REC
</xs:documentation>
</xs:annotation>
</xs:choice>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:extensionType">
<xs:sequence>
<xs:annotation>
<xs:documentation>
No typeDefParticle group reference
</xs:documentation>
</xs:annotation>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-simpleContent"/>
</xs:annotation>
<xs:complexContent>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-complexType"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
#all or (possibly empty) subset of {substitution, extension,
restriction}
</xs:documentation>
</xs:annotation>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#all"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:derivationControl">
<xs:enumeration value="extension"/>
<xs:enumeration value="restriction"/>
<xs:enumeration value="substitution"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:complexType abstract="true" name="element">
<xs:annotation>
<xs:documentation>
The element element can be used either
at the top level to define an element-type binding globally,
or within a content model to either reference a globally-defined
element or type or declare an element-type binding locally.
The ref form is not allowed at the top level.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence>
<xs:choice minOccurs="0">
</xs:choice>
</xs:sequence>
<xs:attribute name="type" type="xs:QName"/>
<xs:simpleType>
<xs:list itemType="xs:QName"/>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="default" type="xs:string"/>
<xs:attribute name="fixed" type="xs:string"/>
<xs:attribute name="nillable" type="xs:boolean" use="optional"/>
<xs:attribute default="false" name="abstract" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:element">
<xs:sequence>
<xs:element minOccurs="0" ref="xs:annotation"/>
<xs:choice minOccurs="0">
</xs:choice>
</xs:sequence>
<xs:attribute name="ref" use="prohibited"/>
<xs:attribute name="form" use="prohibited"/>
<xs:attribute name="minOccurs" use="prohibited"/>
<xs:attribute name="maxOccurs" use="prohibited"/>
<xs:attribute name="name" type="xs:NCName" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:element">
<xs:sequence>
<xs:element minOccurs="0" ref="xs:annotation"/>
<xs:choice minOccurs="0">
</xs:choice>
</xs:sequence>
<xs:attribute name="final" use="prohibited"/>
<xs:attribute name="abstract" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-element"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation>
This type is used for 'alternative' elements.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:choice minOccurs="0">
</xs:choice>
<xs:attribute name="test" type="xs:string" use="optional"/>
<xs:attribute name="type" type="xs:QName" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType abstract="true" name="group">
<xs:annotation>
<xs:documentation>
group type for explicit groups, named top-level groups and
group references
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:particle"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:group">
<xs:sequence>
<xs:element minOccurs="0" ref="xs:annotation"/>
<xs:choice maxOccurs="1" minOccurs="0">
</xs:choice>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:realGroup">
<xs:sequence>
<xs:element minOccurs="0" ref="xs:annotation"/>
<xs:choice maxOccurs="1" minOccurs="1">
<xs:element name="all">
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:all">
<xs:group ref="xs:allModel"/>
<xs:attribute name="minOccurs" use="prohibited"/>
<xs:attribute name="maxOccurs" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:NCName" use="required"/>
<xs:attribute name="ref" use="prohibited"/>
<xs:attribute name="minOccurs" use="prohibited"/>
<xs:attribute name="maxOccurs" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:realGroup">
<xs:sequence>
</xs:sequence>
<xs:attribute name="ref" type="xs:QName" use="required"/>
<xs:attribute name="name" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation>
group type for the three kinds of group
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="xs:group">
<xs:sequence>
</xs:sequence>
<xs:attribute name="name" use="prohibited"/>
<xs:attribute name="ref" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:explicitGroup">
<xs:sequence>
</xs:sequence>
<xs:attribute name="minOccurs" use="prohibited"/>
<xs:attribute name="maxOccurs" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" ref="xs:annotation"/>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:annotation>
<xs:documentation>
This choice with min/max is here to
avoid a pblm with the Elt:All/Choice/Seq
Particle derivation constraint
</xs:documentation>
</xs:annotation>
<xs:element name="group">
<xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:groupRef">
<xs:sequence>
</xs:sequence>
<xs:attribute fixed="1" name="minOccurs" type="xs:nonNegativeInteger"/>
<xs:attribute fixed="1" name="maxOccurs" type="xs:nonNegativeInteger"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:group>
<xs:complexType name="all">
<xs:annotation>
<xs:documentation>
Only elements allowed inside
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="xs:explicitGroup">
<xs:group ref="xs:allModel"/>
<xs:attribute default="1" name="minOccurs" use="optional">
<xs:simpleType>
<xs:restriction base="xs:nonNegativeInteger">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute default="1" name="maxOccurs" use="optional">
<xs:simpleType>
<xs:restriction base="xs:allNNI">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:element id="all" name="all" type="xs:all">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-all"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-choice"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-sequence"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-group"/>
</xs:annotation>
</xs:element>
<xs:attribute name="namespace" type="xs:namespaceList" use="optional"/>
<xs:simpleType>
</xs:simpleType>
</xs:attribute>
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="skip"/>
<xs:enumeration value="lax"/>
<xs:enumeration value="strict"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:complexContent>
</xs:complexContent>
</xs:complexType>
<xs:element id="any" name="any">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-any"/>
</xs:annotation>
<xs:complexContent>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation>
simple type for the value of the 'namespace' attr of
'any' and 'anyAttribute'
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
Value is
##any - - any non-conflicting WFXML/attribute at all
##other - - any non-conflicting WFXML/attribute from
namespace other than targetNS
##local - - any unqualified non-conflicting WFXML/attribute
one or - - any non-conflicting WFXML/attribute from
more URI the listed namespaces
references
(space separated)
##targetNamespace or ##local may appear in the above list, to
refer to the targetNamespace of the enclosing
schema or an absent targetNamespace respectively
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
</xs:simpleType>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:list>
<xs:simpleType>
<xs:union memberTypes="xs:anyURI">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="##targetNamespace"/>
<xs:enumeration value="##local"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="##any"/>
<xs:enumeration value="##other"/>
</xs:restriction>
</xs:simpleType>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:list>
<xs:simpleType>
<xs:union memberTypes="xs:QName">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="##defined"/>
<xs:enumeration value="##definedSibling"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:list>
<xs:simpleType>
<xs:union memberTypes="xs:QName">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="##defined"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
</xs:list>
</xs:simpleType>
<xs:union memberTypes="xs:anyURI">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="##defaultNamespace"/>
<xs:enumeration value="##targetNamespace"/>
<xs:enumeration value="##local"/>
</xs:restriction>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-attribute"/>
</xs:annotation>
</xs:element>
<xs:complexContent>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:attributeGroup">
<xs:sequence>
</xs:sequence>
<xs:attribute name="name" type="xs:NCName" use="required"/>
<xs:attribute name="ref" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:attributeGroup">
<xs:sequence>
</xs:sequence>
<xs:attribute name="ref" type="xs:QName" use="required"/>
<xs:attribute name="name" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-attributeGroup"/>
</xs:annotation>
</xs:element>
<xs:element id="include" name="include">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-include"/>
</xs:annotation>
<xs:complexContent>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element id="redefine" name="redefine">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-redefine"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:openAttrs">
<xs:choice maxOccurs="unbounded" minOccurs="0">
</xs:choice>
<xs:attribute name="id" type="xs:ID"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element id="override" name="override">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-override"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:openAttrs">
<xs:sequence>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element id="import" name="import">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-import"/>
</xs:annotation>
<xs:complexContent>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element id="selector" name="selector">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-selector"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:attribute name="xpath" use="required">
<xs:simpleType>
<xs:annotation>
<xs:documentation>
A subset of XPath expressions for use
in selectors
</xs:documentation>
A utility type, not for public
use
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token"/>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element id="field" name="field">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-field"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:attribute name="xpath" use="required">
<xs:simpleType>
<xs:annotation>
<xs:documentation>
A subset of XPath expressions for use
in fields
</xs:documentation>
A utility type, not for public
use
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token"/>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence minOccurs="0">
<xs:element ref="xs:selector"/>
<xs:element maxOccurs="unbounded" minOccurs="1" ref="xs:field"/>
</xs:sequence>
<xs:attribute name="name" type="xs:NCName"/>
<xs:attribute name="ref" type="xs:QName"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation>
The three kinds of identity constraints, all with
type of or derived from 'keybase'.
</xs:documentation>
</xs:annotation>
</xs:choice>
</xs:group>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-unique"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-key"/>
</xs:annotation>
</xs:element>
<xs:element id="keyref" name="keyref">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-keyref"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:keybase">
<xs:attribute name="refer" type="xs:QName"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element id="notation" name="notation">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-notation"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:attribute name="name" type="xs:NCName" use="required"/>
<xs:attribute name="system" type="xs:anyURI"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
A public identifier, per ISO 8879
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token"/>
</xs:simpleType>
<xs:element id="appinfo" name="appinfo">
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-appinfo"/>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:any processContents="lax"/>
</xs:sequence>
<xs:attribute name="source" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-documentation"/>
</xs:annotation>
<xs:complexType mixed="true">
<xs:sequence maxOccurs="unbounded" minOccurs="0">
<xs:any processContents="lax"/>
</xs:sequence>
<xs:attribute name="source" type="xs:anyURI"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation source="../structures/structures.html#element-annotation"/>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:openAttrs">
<xs:choice maxOccurs="unbounded" minOccurs="0">
</xs:choice>
<xs:attribute name="id" type="xs:ID"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation>
notations for use within schema documents
</xs:documentation>
</xs:annotation>
<xs:notation name="XMLSchemaStructures" public="structures" system="http://www.w3.org/2000/08/XMLSchema.xsd"/>
<xs:notation name="XML" public="REC-xml-19980210" system="http://www.w3.org/TR/1998/REC-xml-19980210"/>
<xs:complexType mixed="true" name="anyType">
<xs:annotation>
<xs:documentation>
Not the real urType, but as close an approximation as we can
get in the XML representation
</xs:documentation>
</xs:annotation>
<xs:any maxOccurs="unbounded" minOccurs="0" processContents="lax"/>
</xs:sequence>
<xs:anyAttribute processContents="lax"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>
In keeping with the XML Schema WG's standard versioning policy,
the material in this schema document will persist at the URI
http://www.w3.org/2012/04/XMLSchema.xsd.
At the date of issue it can also be found at the URI
http://www.w3.org/2009/XMLSchema/XMLSchema.xsd.
The schema document at that URI may however change in the future,
in order to remain compatible with the latest version of XSD
and its namespace. In other words, if XSD or the XML Schema
namespace change, the version of this document at
http://www.w3.org/2009/XMLSchema/XMLSchema.xsd will change accordingly;
the version at http://www.w3.org/2012/04/XMLSchema.xsd will not change.
Previous dated (and unchanging) versions of this schema document
include:
http://www.w3.org/2012/01/XMLSchema.xsd
(XSD 1.1 Proposed Recommendation)
http://www.w3.org/2011/07/XMLSchema.xsd
(XSD 1.1 Candidate Recommendation)
http://www.w3.org/2009/04/XMLSchema.xsd
(XSD 1.1 Candidate Recommendation)
http://www.w3.org/2004/10/XMLSchema.xsd
(XSD 1.0 Recommendation, Second Edition)
http://www.w3.org/2001/05/XMLSchema.xsd
(XSD 1.0 Recommendation, First Edition)
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="substitution"/>
<xs:enumeration value="extension"/>
<xs:enumeration value="restriction"/>
<xs:enumeration value="list"/>
<xs:enumeration value="union"/>
</xs:restriction>
</xs:simpleType>
</xs:group>
<xs:annotation>
<xs:documentation>
#all or (possibly empty) subset of {restriction, extension, union, list}
</xs:documentation>
A utility type, not for public use
</xs:documentation>
</xs:annotation>
<xs:union>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="#all"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType>
<xs:list>
<xs:simpleType>
<xs:restriction base="xs:derivationControl">
<xs:enumeration value="list"/>
<xs:enumeration value="union"/>
<xs:enumeration value="restriction"/>
<xs:enumeration value="extension"/>
</xs:restriction>
</xs:simpleType>
</xs:list>
</xs:simpleType>
</xs:union>
</xs:simpleType>
<xs:complexType abstract="true" name="simpleType">
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:group ref="xs:simpleDerivation"/>
<xs:attribute name="name" type="xs:NCName">
<xs:annotation>
<xs:documentation>
Can be restricted to required or forbidden
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:simpleType">
<xs:sequence>
</xs:sequence>
<xs:attribute name="name" type="xs:NCName" use="required">
<xs:annotation>
<xs:documentation>
Required at the top level
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:simpleType">
<xs:sequence>
</xs:sequence>
<xs:attribute name="name" use="prohibited">
<xs:annotation>
<xs:documentation>
Forbidden when nested
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="final" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-simpleType"/>
</xs:annotation>
</xs:element>
<xs:element abstract="true" name="facet">
<xs:annotation>
<xs:documentation>
An abstract element, representing facets in general.
The facets defined by this spec are substitutable for
this element, and implementation-defined facets should
also name this as a substitution-group head.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:sequence>
<xs:element minOccurs="0" name="simpleType" type="xs:localSimpleType"/>
<xs:choice maxOccurs="unbounded" minOccurs="0">
<xs:element ref="xs:facet"/>
<xs:any namespace="##other" processContents="lax"/>
</xs:choice>
</xs:sequence>
</xs:group>
<xs:complexType>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-restriction">
base attribute and simpleType child are mutually
exclusive, but one or other is required
</xs:documentation>
</xs:annotation>
<xs:complexContent>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element id="list" name="list">
<xs:complexType>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-list">
itemType attribute and simpleType child are mutually
exclusive, but one or other is required
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence>
</xs:sequence>
<xs:attribute name="itemType" type="xs:QName" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element id="union" name="union">
<xs:complexType>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-union">
memberTypes attribute must be non-empty or there must be
at least one simpleType child
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:sequence>
</xs:sequence>
<xs:simpleType>
<xs:list itemType="xs:QName"/>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="facet">
<xs:complexContent>
<xs:extension base="xs:annotated">
<xs:attribute name="value" use="required"/>
<xs:attribute default="false" name="fixed" type="xs:boolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:facet">
<xs:sequence>
</xs:sequence>
<xs:attribute name="fixed" use="prohibited"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-minExclusive"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-minInclusive"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-maxExclusive"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-maxInclusive"/>
</xs:annotation>
</xs:element>
<xs:complexContent>
<xs:restriction base="xs:facet">
<xs:sequence>
</xs:sequence>
<xs:attribute name="value" type="xs:nonNegativeInteger" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:complexContent>
<xs:restriction base="xs:facet">
<xs:sequence>
</xs:sequence>
<xs:attribute name="value" type="xs:integer" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-totalDigits"/>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="xs:numFacet">
<xs:sequence>
</xs:sequence>
<xs:attribute name="value" type="xs:positiveInteger" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-fractionDigits"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-length"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-minLength"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-maxLength"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-enumeration"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-whiteSpace"/>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="xs:facet">
<xs:sequence>
</xs:sequence>
<xs:attribute name="value" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="preserve"/>
<xs:enumeration value="replace"/>
<xs:enumeration value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-pattern"/>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="xs:noFixedFacet">
<xs:sequence>
</xs:sequence>
<xs:attribute name="value" type="xs:string" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-assertion"/>
</xs:annotation>
</xs:element>
<xs:annotation>
<xs:documentation source="http://www.w3.org/TR/xmlschema11-2/#element-explicitTimezone"/>
</xs:annotation>
<xs:complexContent>
<xs:restriction base="xs:facet">
<xs:sequence>
</xs:sequence>
<xs:attribute name="value" use="required">
<xs:simpleType>
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="optional"/>
<xs:enumeration value="required"/>
<xs:enumeration value="prohibited"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation>
In keeping with the XML Schema WG's standard versioning policy,
this schema document will persist at the URI
http://www.w3.org/2012/04/datatypes.xsd.
At the date of issue it can also be found at the URI
http://www.w3.org/2009/XMLSchema/datatypes.xsd.
The schema document at that URI may however change in the future,
in order to remain compatible with the latest version of XSD
and its namespace. In other words, if XSD or the XML Schema
namespace change, the version of this document at
http://www.w3.org/2009/XMLSchema/datatypes.xsd will change accordingly;
the version at http://www.w3.org/2012/04/datatypes.xsd will not change.
Previous dated (and unchanging) versions of this schema document
include:
http://www.w3.org/2012/01/datatypes.xsd
(XSD 1.1 Proposed Recommendation)
http://www.w3.org/2011/07/datatypes.xsd
(XSD 1.1 Candidate Recommendation)
http://www.w3.org/2009/04/datatypes.xsd
(XSD 1.1 Candidate Recommendation)
http://www.w3.org/2004/10/datatypes.xsd
(XSD 1.0 Recommendation, Second Edition)
http://www.w3.org/2001/05/datatypes.xsd
(XSD 1.0 Recommendation, First Edition)
</xs:documentation>
</xs:annotation>