home *** CD-ROM | disk | FTP | other *** search
/ MacFormat UK 160 - Disc 2 / MF_UK_160_2.iso / pc / DiscContent / Trials / oxygen / lib / oxygen.jar / builtin / XMLSchema.xsd < prev    next >
Encoding:
Extensible Markup Language  |  2005-07-21  |  125.2 KB  |  2,273 lines

  1. <?xml version='1.0' encoding='UTF-8'?>
  2. <xs:schema blockDefault="#all" elementFormDefault="qualified" targetNamespace="http://www.w3.org/2001/XMLSchema"
  3.     version="1.0" xml:lang="EN" xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  4.     <xs:annotation>
  5.         <xs:documentation>Copyright ¬© 2002-2004 SyncRO Soft Ltd. All rights reserved. </xs:documentation>
  6.     </xs:annotation>
  7.     <xs:annotation>
  8.         <xs:documentation> Part 1 version: Id: XMLSchema.xsd,v 1.50 2002/05/22 09:24:24 ht Exp Part 2 version: Id:
  9.             datatypes.xsd,v 1.54 2002/05/27 22:22:50 ht Exp </xs:documentation>
  10.     </xs:annotation>
  11.     <xs:annotation>
  12.         <xs:documentation source="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/structures.html"> The schema
  13.             corresponding to this document is normative, with respect to the syntactic constraints it expresses in the
  14.             XML Schema language. The documentation (within <documentation> elements) below, is not
  15.             normative, but rather highlights important aspects of the W3C Recommendation of which this is a part.</xs:documentation>
  16.     </xs:annotation>
  17.     <xs:annotation>
  18.         <xs:documentation> The simpleType element and all of its members are defined towards the end of this schema document.</xs:documentation>
  19.     </xs:annotation>
  20.     <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd">
  21.         <xs:annotation>
  22.             <xs:documentation> Get access to the xml: attribute groups for xml:lang as declared on 'schema' and
  23.                 'documentation' below.</xs:documentation>
  24.         </xs:annotation>
  25.     </xs:import>
  26.     <xs:complexType name="openAttrs">
  27.         <xs:annotation>
  28.             <xs:documentation> This type is extended by almost all schema types to allow attributes from other
  29.                 namespaces to be added to user schemas.</xs:documentation>
  30.         </xs:annotation>
  31.         <xs:complexContent>
  32.             <xs:restriction base="xs:anyType">
  33.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  34.             </xs:restriction>
  35.         </xs:complexContent>
  36.     </xs:complexType>
  37.     <xs:complexType name="annotated">
  38.         <xs:annotation>
  39.             <xs:documentation> This type is extended by all types which allow annotation other than
  40.                 <schema> itself.</xs:documentation>
  41.         </xs:annotation>
  42.         <xs:complexContent>
  43.             <xs:extension base="xs:openAttrs">
  44.                 <xs:sequence>
  45.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  46.                 </xs:sequence>
  47.                 <xs:attribute name="id" type="xs:ID">
  48.                     <xs:annotation>
  49.                         <xs:documentation>Specifies an ID.</xs:documentation>
  50.                     </xs:annotation>
  51.                 </xs:attribute>
  52.             </xs:extension>
  53.         </xs:complexContent>
  54.     </xs:complexType>
  55.     <xs:group name="schemaTop">
  56.         <xs:annotation>
  57.             <xs:documentation> This group is for the elements which occur freely at the top level of schemas. All of
  58.                 their types are based on the "annotated" type by extension.</xs:documentation>
  59.         </xs:annotation>
  60.         <xs:choice>
  61.             <xs:group ref="xs:redefinable"/>
  62.             <xs:element ref="xs:element"/>
  63.             <xs:element ref="xs:attribute"/>
  64.             <xs:element ref="xs:notation"/>
  65.         </xs:choice>
  66.     </xs:group>
  67.     <xs:group name="redefinable">
  68.         <xs:annotation>
  69.             <xs:documentation> This group is for the elements which can self-redefine.</xs:documentation>
  70.         </xs:annotation>
  71.         <xs:choice>
  72.             <xs:element ref="xs:simpleType"/>
  73.             <xs:element ref="xs:complexType"/>
  74.             <xs:element ref="xs:group"/>
  75.             <xs:element ref="xs:attributeGroup"/>
  76.         </xs:choice>
  77.     </xs:group>
  78.     <xs:simpleType name="formChoice">
  79.         <xs:annotation>
  80.             <xs:documentation> A utility type, not for public use.</xs:documentation>
  81.         </xs:annotation>
  82.         <xs:restriction base="xs:NMTOKEN">
  83.             <xs:enumeration value="qualified">
  84.                 <xs:annotation>
  85.                     <xs:documentation>Specifies that the corresponding component (element or attribute) defined 
  86.                         locally will belong to the schema target namespace.</xs:documentation>
  87.                 </xs:annotation>
  88.             </xs:enumeration>
  89.             <xs:enumeration value="unqualified">
  90.                 <xs:annotation>
  91.                     <xs:documentation>Specifies that the corresponding component (element or attribute) defined 
  92.                         locally will belong no namespace.</xs:documentation>
  93.                 </xs:annotation>
  94.             </xs:enumeration>
  95.         </xs:restriction>
  96.     </xs:simpleType>
  97.     <xs:simpleType name="reducedDerivationControl">
  98.         <xs:annotation>
  99.             <xs:documentation> A utility type, not for public use.</xs:documentation>
  100.         </xs:annotation>
  101.         <xs:restriction base="xs:derivationControl">
  102.             <xs:enumeration value="extension"/>
  103.             <xs:enumeration value="restriction"/>
  104.         </xs:restriction>
  105.     </xs:simpleType>
  106.     <xs:simpleType name="derivationSet">
  107.         <xs:annotation>
  108.             <xs:documentation> A utility type, not for public use.</xs:documentation>
  109.             <xs:documentation> #all or (possibly empty) subset of {extension, restriction}.</xs:documentation>
  110.         </xs:annotation>
  111.         <xs:union>
  112.             <xs:simpleType>
  113.                 <xs:restriction base="xs:token">
  114.                     <xs:enumeration value="#all"/>
  115.                 </xs:restriction>
  116.             </xs:simpleType>
  117.             <xs:simpleType>
  118.                 <xs:list itemType="xs:reducedDerivationControl"/>
  119.             </xs:simpleType>
  120.         </xs:union>
  121.     </xs:simpleType>
  122.     <xs:element id="schema" name="schema">
  123.         <xs:annotation>
  124.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-schema"> Defines the root element of a
  125.                 schema. A schema consists of a set of schema components. A schema is represented in XML by one or more
  126.                 schema documents, that is, one or more <schema> element information items. A schema
  127.                 document contains representations for a collection of schema components, e.g. type definitions and
  128.                 element declarations, which have a common target namespace. <br/> See more info at http://www.w3.org/TR/xmlschema-1/#element-schema</xs:documentation>
  129.         </xs:annotation>
  130.         <xs:complexType>
  131.             <xs:complexContent>
  132.                 <xs:extension base="xs:openAttrs">
  133.                     <xs:sequence>
  134.                         <xs:choice maxOccurs="unbounded" minOccurs="0">
  135.                             <xs:element ref="xs:include"/>
  136.                             <xs:element ref="xs:import"/>
  137.                             <xs:element ref="xs:redefine"/>
  138.                             <xs:element ref="xs:annotation"/>
  139.                         </xs:choice>
  140.                         <xs:sequence maxOccurs="unbounded" minOccurs="0">
  141.                             <xs:group ref="xs:schemaTop"/>
  142.                             <xs:element maxOccurs="unbounded" minOccurs="0" ref="xs:annotation"/>
  143.                         </xs:sequence>
  144.                     </xs:sequence>
  145.                     <xs:attribute name="targetNamespace" type="xs:anyURI">
  146.                         <xs:annotation>
  147.                             <xs:documentation>Most components corresponding to representations within a given schema
  148.                                 will have a target namespace which corresponds to the targetNamespace attribute. The
  149.                                 appropriate form of schema document corresponding to a schema whose components have no
  150.                                 target namespace is one which has no targetNamespace attribute specified at all.</xs:documentation>
  151.                         </xs:annotation>
  152.                     </xs:attribute>
  153.                     <xs:attribute name="version" type="xs:normalizedString">
  154.                         <xs:annotation>
  155.                             <xs:documentation> Optional. Specifies the version of the schema. It is for user
  156.                                 convenience, and the XML Schema specification defines no semantics for it.</xs:documentation>
  157.                         </xs:annotation>
  158.                     </xs:attribute>
  159.                     <xs:attribute default="" name="finalDefault" type="xs:derivationSet" use="optional">
  160.                         <xs:annotation>
  161.                             <xs:documentation> Optional. Specifies the default value of the final attribute on element,
  162.                                 simpleType, and complexType elements in the target namespace. The final attribute
  163.                                 prevents a specified type of derivation of an element, simpleType, or complexType
  164.                                 element. For element and complexType elements, this value can contain #all or a list
  165.                                 that is a subset of extension or restriction. For simpleType elements, this value can
  166.                                 additionally contain list and union: <ul>
  167.                                     <li>extension - prevents derivation by extension</li>
  168.                                     <li>restriction - prevents derivation by restriction</li>
  169.                                     <li>list - prevents derivation by list </li>
  170.                                     <li>union - prevents derivation by union </li>
  171.                                     <li>#all - prevents all derivation.</li>
  172.                                 </ul>
  173.                             </xs:documentation>
  174.                         </xs:annotation>
  175.                     </xs:attribute>
  176.                     <xs:attribute default="" name="blockDefault" type="xs:blockSet" use="optional">
  177.                         <xs:annotation>
  178.                             <xs:documentation> Optional. Specifies the default value of the block attribute on element
  179.                                 and complexType elements in the target namespace. The block attribute prevents a complex
  180.                                 type (or element) that has a specified type of derivation from being used in place of
  181.                                 this complex type. This value can contain #all or a list that is a subset of extension,
  182.                                 restriction, or substitution: <ul>
  183.                                     <li>extension - prevents complex types derived by extension </li>
  184.                                     <li>restriction - prevents complex types derived by restriction</li>
  185.                                     <li>substitution - prevents substitution of elements</li>
  186.                                     <li>#all - prevents all derived complex types.</li>
  187.                                 </ul>
  188.                             </xs:documentation>
  189.                         </xs:annotation>
  190.                     </xs:attribute>
  191.                     <xs:attribute default="unqualified" name="attributeFormDefault" type="xs:formChoice" use="optional">
  192.                         <xs:annotation>
  193.                             <xs:documentation>Optional. The form for attributes declared in the target namespace of this
  194.                                 schema. The value must be "qualified" or "unqualified". Default is "unqualified". <ul>
  195.                                     <li>"unqualified" indicates that attributes from the target namespace are not
  196.                                         required to be qualified with the namespace prefix.</li>
  197.                                     <li> "qualified" indicates that attributes from the target namespace must be
  198.                                         qualified with the namespace prefix.</li>
  199.                                 </ul>
  200.                             </xs:documentation>
  201.                         </xs:annotation>
  202.                     </xs:attribute>
  203.                     <xs:attribute default="unqualified" name="elementFormDefault" type="xs:formChoice" use="optional">
  204.                         <xs:annotation>
  205.                             <xs:documentation>Optional. The form for elements declared in the target namespace of this
  206.                                 schema. The value must be "qualified" or "unqualified". Default is "unqualified". <ul>
  207.                                     <li>"unqualified" indicates that elements from the target namespace are not required
  208.                                         to be qualified with the namespace prefix. </li>
  209.                                     <li>"qualified" indicates that elements from the target namespace must be qualified
  210.                                         with the namespace prefix.</li>
  211.                                 </ul>
  212.                             </xs:documentation>
  213.                         </xs:annotation>
  214.                     </xs:attribute>
  215.                     <xs:attribute name="id" type="xs:ID">
  216.                         <xs:annotation>
  217.                             <xs:documentation> Optional. Specifies a unique ID for the element. It is for user
  218.                                 convenience, and the XML Schema specification defines no semantics for it.</xs:documentation>
  219.                         </xs:annotation>
  220.                     </xs:attribute>
  221.                     <xs:attribute ref="xml:lang"/>
  222.                 </xs:extension>
  223.             </xs:complexContent>
  224.         </xs:complexType>
  225.         <xs:key name="element">
  226.             <xs:selector xpath="xs:element"/>
  227.             <xs:field xpath="@name"/>
  228.         </xs:key>
  229.         <xs:key name="attribute">
  230.             <xs:selector xpath="xs:attribute"/>
  231.             <xs:field xpath="@name"/>
  232.         </xs:key>
  233.         <xs:key name="type">
  234.             <xs:selector xpath="xs:complexType|xs:simpleType"/>
  235.             <xs:field xpath="@name"/>
  236.         </xs:key>
  237.         <xs:key name="group">
  238.             <xs:selector xpath="xs:group"/>
  239.             <xs:field xpath="@name"/>
  240.         </xs:key>
  241.         <xs:key name="attributeGroup">
  242.             <xs:selector xpath="xs:attributeGroup"/>
  243.             <xs:field xpath="@name"/>
  244.         </xs:key>
  245.         <xs:key name="notation">
  246.             <xs:selector xpath="xs:notation"/>
  247.             <xs:field xpath="@name"/>
  248.         </xs:key>
  249.         <xs:key name="identityConstraint">
  250.             <xs:selector xpath=".//xs:key|.//xs:unique|.//xs:keyref"/>
  251.             <xs:field xpath="@name"/>
  252.         </xs:key>
  253.     </xs:element>
  254.     <xs:simpleType name="allNNI">
  255.         <xs:annotation>
  256.             <xs:documentation> for maxOccurs</xs:documentation>
  257.         </xs:annotation>
  258.         <xs:union memberTypes="xs:nonNegativeInteger">
  259.             <xs:simpleType>
  260.                 <xs:restriction base="xs:NMTOKEN">
  261.                     <xs:enumeration value="unbounded">
  262.                         <xs:annotation>
  263.                             <xs:documentation>Specifies an unbounded number of occurances.</xs:documentation>
  264.                         </xs:annotation>
  265.                     </xs:enumeration>
  266.                 </xs:restriction>
  267.             </xs:simpleType>
  268.         </xs:union>
  269.     </xs:simpleType>
  270.     <xs:attributeGroup name="occurs">
  271.         <xs:annotation>
  272.             <xs:documentation> for all particles</xs:documentation>
  273.         </xs:annotation>
  274.         <xs:attribute default="1" name="minOccurs" type="xs:nonNegativeInteger" use="optional">
  275.             <xs:annotation>
  276.                 <xs:documentation>Specifies the minimum number of occurrences for this particle. Default is 1.</xs:documentation>
  277.             </xs:annotation>
  278.         </xs:attribute>
  279.         <xs:attribute default="1" name="maxOccurs" type="xs:allNNI" use="optional">
  280.             <xs:annotation>
  281.                 <xs:documentation>Specifies the maximum number of occurrences for this particle. Default is 1.</xs:documentation>
  282.             </xs:annotation>
  283.         </xs:attribute>
  284.     </xs:attributeGroup>
  285.     <xs:attributeGroup name="defRef">
  286.         <xs:annotation>
  287.             <xs:documentation> For element, group and attributeGroup, which both define and reference</xs:documentation>
  288.         </xs:annotation>
  289.         <xs:attribute name="name" type="xs:NCName">
  290.             <xs:annotation>
  291.                 <xs:documentation>Specifies a name.</xs:documentation>
  292.             </xs:annotation>
  293.         </xs:attribute>
  294.         <xs:attribute name="ref" type="xs:QName">
  295.             <xs:annotation>
  296.                 <xs:documentation>Specifies a reference.</xs:documentation>
  297.             </xs:annotation>
  298.         </xs:attribute>
  299.     </xs:attributeGroup>
  300.     <xs:group name="typeDefParticle">
  301.         <xs:annotation>
  302.             <xs:documentation> 'complexType' uses this</xs:documentation>
  303.         </xs:annotation>
  304.         <xs:choice>
  305.             <xs:element name="group" type="xs:groupRef">
  306.                 <xs:annotation>
  307.                     <xs:documentation>Specifies a group reference.</xs:documentation>
  308.                 </xs:annotation>
  309.             </xs:element>
  310.             <xs:element ref="xs:all"/>
  311.             <xs:element ref="xs:choice"/>
  312.             <xs:element ref="xs:sequence"/>
  313.         </xs:choice>
  314.     </xs:group>
  315.     <xs:group name="nestedParticle">
  316.         <xs:choice>
  317.             <xs:element name="element" type="xs:localElement">
  318.                 <xs:annotation>
  319.                     <xs:documentation>Specifies a local element or a reference to a global element.</xs:documentation>
  320.                 </xs:annotation>
  321.             </xs:element>
  322.             <xs:element name="group" type="xs:groupRef">
  323.                 <xs:annotation>
  324.                     <xs:documentation>Specifies a group reference.</xs:documentation>
  325.                 </xs:annotation>
  326.             </xs:element>
  327.             <xs:element ref="xs:choice"/>
  328.             <xs:element ref="xs:sequence"/>
  329.             <xs:element ref="xs:any"/>
  330.         </xs:choice>
  331.     </xs:group>
  332.     <xs:group name="particle">
  333.         <xs:choice>
  334.             <xs:element name="element" type="xs:localElement">
  335.                 <xs:annotation>
  336.                     <xs:documentation>Specifies a local element or a reference to a global element.</xs:documentation>
  337.                 </xs:annotation>
  338.             </xs:element>
  339.             <xs:element name="group" type="xs:groupRef">
  340.                 <xs:annotation>
  341.                     <xs:documentation>Specifies a group reference.</xs:documentation>
  342.                 </xs:annotation>
  343.             </xs:element>
  344.             <xs:element ref="xs:all"/>
  345.             <xs:element ref="xs:choice"/>
  346.             <xs:element ref="xs:sequence"/>
  347.             <xs:element ref="xs:any"/>
  348.         </xs:choice>
  349.     </xs:group>
  350.     <xs:complexType name="attribute">
  351.         <xs:complexContent>
  352.             <xs:extension base="xs:annotated">
  353.                 <xs:sequence>
  354.                     <xs:element minOccurs="0" name="simpleType" type="xs:localSimpleType">
  355.                         <xs:annotation>
  356.                             <xs:documentation>Specifies an anonymous local simple type for the attribute in case the
  357.                                 attribute does not have the type attribute to specify a built-in or a pre-declared type.
  358.                                 The default when no simple type definition is referenced or provided is the simple
  359.                                 ur-type definition, which imposes no constraints at all.</xs:documentation>
  360.                         </xs:annotation>
  361.                     </xs:element>
  362.                 </xs:sequence>
  363.                 <xs:attributeGroup ref="xs:defRef"/>
  364.                 <xs:attribute name="type" type="xs:QName">
  365.                     <xs:annotation>
  366.                         <xs:documentation>The type attribute is used when the declaration can use a built-in or
  367.                             pre-declared simple type definition. Otherwise an anonymous <simpleType> is
  368.                             provided inline. The default when no simple type definition is referenced or provided is the
  369.                             simple ur-type definition, which imposes no constraints at all.</xs:documentation>
  370.                     </xs:annotation>
  371.                 </xs:attribute>
  372.                 <xs:attribute default="optional" name="use" use="optional">
  373.                     <xs:annotation>
  374.                         <xs:documentation>Specifies the attribute use: prohibited, optional or required, default is optional.</xs:documentation>
  375.                     </xs:annotation>
  376.                     <xs:simpleType>
  377.                         <xs:restriction base="xs:NMTOKEN">
  378.                             <xs:enumeration value="prohibited"/>
  379.                             <xs:enumeration value="optional"/>
  380.                             <xs:enumeration value="required"/>
  381.                         </xs:restriction>
  382.                     </xs:simpleType>
  383.                 </xs:attribute>
  384.                 <xs:attribute name="default" type="xs:string">
  385.                     <xs:annotation>
  386.                         <xs:documentation>The default attribute specifies that the attribute is to appear
  387.                             unconditionally in the post-schema-validation infoset, with the supplied value used whenever
  388.                             the attribute is not actually present.</xs:documentation>
  389.                     </xs:annotation>
  390.                 </xs:attribute>
  391.                 <xs:attribute name="fixed" type="xs:string">
  392.                     <xs:annotation>
  393.                         <xs:documentation>The fixed attribute indicates that the attribute value if present must equal
  394.                             the supplied constraint value, and if absent receives the supplied value as for default.</xs:documentation>
  395.                     </xs:annotation>
  396.                 </xs:attribute>
  397.                 <xs:attribute name="form" type="xs:formChoice">
  398.                     <xs:annotation>
  399.                         <xs:documentation>Specifies if a local attribute belongs to the schema target namespace or has
  400.                             no namespace. The value must be "qualified" or "unqualified". The default value is
  401.                             provided by the attributeFormDefault attribute on the enclosing <schema> element.</xs:documentation>
  402.                     </xs:annotation>
  403.                 </xs:attribute>
  404.             </xs:extension>
  405.         </xs:complexContent>
  406.     </xs:complexType>
  407.     <xs:complexType name="topLevelAttribute">
  408.         <xs:complexContent>
  409.             <xs:restriction base="xs:attribute">
  410.                 <xs:sequence>
  411.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  412.                     <xs:element minOccurs="0" name="simpleType" type="xs:localSimpleType">
  413.                         <xs:annotation>
  414.                             <xs:documentation> Specifies an anonymous local simple type for the attribute in case the
  415.                                 attribute does not have the type attribute to specify a built-in or a pre-declared type.
  416.                                 The default when no simple type definition is referenced or provided is the simple
  417.                                 ur-type definition, which imposes no constraints at all. </xs:documentation>
  418.                         </xs:annotation>
  419.                     </xs:element>
  420.                 </xs:sequence>
  421.                 <xs:attribute name="ref" use="prohibited"/>
  422.                 <xs:attribute name="form" use="prohibited"/>
  423.                 <xs:attribute name="use" use="prohibited"/>
  424.                 <xs:attribute name="name" type="xs:NCName" use="required">
  425.                     <xs:annotation>
  426.                         <xs:documentation>Specifies the required top level attribute name.</xs:documentation>
  427.                     </xs:annotation>
  428.                 </xs:attribute>
  429.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  430.             </xs:restriction>
  431.         </xs:complexContent>
  432.     </xs:complexType>
  433.     <xs:group name="attrDecls">
  434.         <xs:sequence>
  435.             <xs:choice maxOccurs="unbounded" minOccurs="0">
  436.                 <xs:element name="attribute" type="xs:attribute">
  437.                     <xs:annotation>
  438.                         <xs:documentation>Specifies an attribute.</xs:documentation>
  439.                     </xs:annotation>
  440.                 </xs:element>
  441.                 <xs:element name="attributeGroup" type="xs:attributeGroupRef">
  442.                     <xs:annotation>
  443.                         <xs:documentation>Specifies an attribute group reference.</xs:documentation>
  444.                     </xs:annotation>
  445.                 </xs:element>
  446.             </xs:choice>
  447.             <xs:element minOccurs="0" ref="xs:anyAttribute"/>
  448.         </xs:sequence>
  449.     </xs:group>
  450.     <xs:element id="anyAttribute" name="anyAttribute" type="xs:wildcard">
  451.         <xs:annotation>
  452.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-anyAttribute"> Enables the author to
  453.                 extend the XML document with attributes not specified by the schema.</xs:documentation>
  454.         </xs:annotation>
  455.     </xs:element>
  456.     <xs:group name="complexTypeModel">
  457.         <xs:choice>
  458.             <xs:element ref="xs:simpleContent"/>
  459.             <xs:element ref="xs:complexContent"/>
  460.             <xs:sequence>
  461.                 <xs:annotation>
  462.                     <xs:documentation> This branch is short for <complexContent> <restriction
  463.                         base="xs:anyType"> ... </restriction> </complexContent>.</xs:documentation>
  464.                 </xs:annotation>
  465.                 <xs:group minOccurs="0" ref="xs:typeDefParticle"/>
  466.                 <xs:group ref="xs:attrDecls"/>
  467.             </xs:sequence>
  468.         </xs:choice>
  469.     </xs:group>
  470.     <xs:complexType name="complexType" abstract="true">
  471.         <xs:complexContent>
  472.             <xs:extension base="xs:annotated">
  473.                 <xs:group ref="xs:complexTypeModel"/>
  474.                 <xs:attribute name="name" type="xs:NCName">
  475.                     <xs:annotation>
  476.                         <xs:documentation> Will be restricted to required or forbidden.</xs:documentation>
  477.                     </xs:annotation>
  478.                 </xs:attribute>
  479.                 <xs:attribute default="false" name="mixed" type="xs:boolean" use="optional">
  480.                     <xs:annotation>
  481.                         <xs:documentation>Specifies if the content model is formed both from elements and character
  482.                             data. Not allowed if simpleContent child is chosen. May be overridden by setting on
  483.                             complexContent child.</xs:documentation>
  484.                     </xs:annotation>
  485.                 </xs:attribute>
  486.                 <xs:attribute default="false" name="abstract" type="xs:boolean" use="optional">
  487.                     <xs:annotation>
  488.                         <xs:documentation>Specifies whether the complex type is abstract or not. Default is false.
  489.                             Complex types for which abstract is true must not be used as the type definition for the
  490.                             validation of element information items. Abstract complex types can be used as base type
  491.                             definitions, or even as the type definitions of element declarations, provided in every case
  492.                             a concrete derived type definition is used for validation. </xs:documentation>
  493.                     </xs:annotation>
  494.                 </xs:attribute>
  495.                 <xs:attribute name="final" type="xs:derivationSet">
  496.                     <xs:annotation>
  497.                         <xs:documentation> A complex type with an empty specification for final can be used as a base
  498.                             type definition for other types derived by either of extension or restriction; the explicit
  499.                             values extension, and restriction prevent further derivations by extension and restriction
  500.                             respectively. If all values are specified, then the complex type is said to be final,
  501.                             because no further derivations are possible. Finality is not inherited, that is, a type
  502.                             definition derived by restriction from a type definition which is final for extension is not
  503.                             itself, in the absence of any explicit final attribute of its own, final for anything. </xs:documentation>
  504.                     </xs:annotation>
  505.                 </xs:attribute>
  506.                 <xs:attribute name="block" type="xs:derivationSet">
  507.                     <xs:annotation>
  508.                         <xs:documentation> Specifies the value of the block attribute on this complexType The block
  509.                             attribute prevents a complex type that has a specified type of derivation from being used in
  510.                             place of this complex type. This value can contain #all or a list that is a subset of
  511.                             extension and restriction: <ul>
  512.                                 <li>extension - prevents complex types derived by extension </li>
  513.                                 <li>restriction - prevents complex types derived by restriction</li>                                
  514.                                 <li>#all - prevents all derived complex types.</li>
  515.                             </ul>
  516.                         </xs:documentation>
  517.                     </xs:annotation>
  518.                 </xs:attribute>
  519.             </xs:extension>
  520.         </xs:complexContent>
  521.     </xs:complexType>
  522.     <xs:complexType name="topLevelComplexType">
  523.         <xs:complexContent>
  524.             <xs:restriction base="xs:complexType">
  525.                 <xs:sequence>
  526.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  527.                     <xs:group ref="xs:complexTypeModel"/>
  528.                 </xs:sequence>
  529.                 <xs:attribute name="name" type="xs:NCName" use="required">
  530.                     <xs:annotation>
  531.                         <xs:documentation>Defines the name of the top level complex type. No complex type definition can
  532.                             have the same name as another simple or complex type definition.</xs:documentation>
  533.                     </xs:annotation>
  534.                 </xs:attribute>
  535.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  536.             </xs:restriction>
  537.         </xs:complexContent>
  538.     </xs:complexType>
  539.     <xs:complexType name="localComplexType">
  540.         <xs:complexContent>
  541.             <xs:restriction base="xs:complexType">
  542.                 <xs:sequence>
  543.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  544.                     <xs:group ref="xs:complexTypeModel"/>
  545.                 </xs:sequence>
  546.                 <xs:attribute name="name" use="prohibited"/>
  547.                 <xs:attribute name="abstract" use="prohibited"/>
  548.                 <xs:attribute name="final" use="prohibited"/>
  549.                 <xs:attribute name="block" use="prohibited"/>
  550.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  551.             </xs:restriction>
  552.         </xs:complexContent>
  553.     </xs:complexType>
  554.     <xs:complexType name="restrictionType">
  555.         <xs:complexContent>
  556.             <xs:extension base="xs:annotated">
  557.                 <xs:sequence>
  558.                     <xs:choice minOccurs="0">
  559.                         <xs:group ref="xs:typeDefParticle"/>
  560.                         <xs:group ref="xs:simpleRestrictionModel"/>
  561.                     </xs:choice>
  562.                     <xs:group ref="xs:attrDecls"/>
  563.                 </xs:sequence>
  564.                 <xs:attribute name="base" type="xs:QName" use="required">
  565.                     <xs:annotation>
  566.                         <xs:documentation>Specifies the base type for the restriction.</xs:documentation>
  567.                     </xs:annotation>
  568.                 </xs:attribute>
  569.             </xs:extension>
  570.         </xs:complexContent>
  571.     </xs:complexType>
  572.     <xs:complexType name="complexRestrictionType">
  573.         <xs:complexContent>
  574.             <xs:restriction base="xs:restrictionType">
  575.                 <xs:sequence>
  576.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  577.                     <xs:choice minOccurs="0">
  578.                         <xs:annotation>
  579.                             <xs:documentation>This choice is added simply to make this a valid restriction per the REC.</xs:documentation>
  580.                         </xs:annotation>
  581.                         <xs:group ref="xs:typeDefParticle"/>
  582.                     </xs:choice>
  583.                     <xs:group ref="xs:attrDecls"/>
  584.                 </xs:sequence>
  585.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  586.             </xs:restriction>
  587.         </xs:complexContent>
  588.     </xs:complexType>
  589.     <xs:complexType name="extensionType">
  590.         <xs:complexContent>
  591.             <xs:extension base="xs:annotated">
  592.                 <xs:sequence>
  593.                     <xs:group minOccurs="0" ref="xs:typeDefParticle"/>
  594.                     <xs:group ref="xs:attrDecls"/>
  595.                 </xs:sequence>
  596.                 <xs:attribute name="base" type="xs:QName" use="required">
  597.                     <xs:annotation>
  598.                         <xs:documentation>Specifies the base type for the extension.</xs:documentation>
  599.                     </xs:annotation>
  600.                 </xs:attribute>
  601.             </xs:extension>
  602.         </xs:complexContent>
  603.     </xs:complexType>
  604.     <xs:element id="complexContent" name="complexContent">
  605.         <xs:annotation>
  606.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexContent"> Defines extensions or
  607.                 restrictions on a complex type that contains mixed content or elements only. </xs:documentation>
  608.         </xs:annotation>
  609.         <xs:complexType>
  610.             <xs:complexContent>
  611.                 <xs:extension base="xs:annotated">
  612.                     <xs:choice>
  613.                         <xs:element name="restriction" type="xs:complexRestrictionType">
  614.                             <xs:annotation>
  615.                                 <xs:documentation>Defines a restriction.</xs:documentation>
  616.                             </xs:annotation>
  617.                         </xs:element>
  618.                         <xs:element name="extension" type="xs:extensionType">
  619.                             <xs:annotation>
  620.                                 <xs:documentation>Defines an extension.</xs:documentation>
  621.                             </xs:annotation>
  622.                         </xs:element>
  623.                     </xs:choice>
  624.                     <xs:attribute name="mixed" type="xs:boolean">
  625.                         <xs:annotation>
  626.                             <xs:documentation>Specifies if both elements and character data are allowed.</xs:documentation>
  627.                         </xs:annotation>
  628.                     </xs:attribute>
  629.                 </xs:extension>
  630.             </xs:complexContent>
  631.         </xs:complexType>
  632.     </xs:element>
  633.     <xs:complexType name="simpleRestrictionType">
  634.         <xs:complexContent>
  635.             <xs:restriction base="xs:restrictionType">
  636.                 <xs:sequence>
  637.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  638.                     <xs:choice minOccurs="0">
  639.                         <xs:annotation>
  640.                             <xs:documentation>This choice is added simply to make this a valid restriction per the REC.</xs:documentation>
  641.                         </xs:annotation>
  642.                         <xs:group ref="xs:simpleRestrictionModel"/>
  643.                     </xs:choice>
  644.                     <xs:group ref="xs:attrDecls"/>
  645.                 </xs:sequence>
  646.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  647.             </xs:restriction>
  648.         </xs:complexContent>
  649.     </xs:complexType>
  650.     <xs:complexType name="simpleExtensionType">
  651.         <xs:complexContent>
  652.             <xs:restriction base="xs:extensionType">
  653.                 <xs:sequence>
  654.                     <xs:annotation>
  655.                         <xs:documentation> No typeDefParticle group reference.</xs:documentation>
  656.                     </xs:annotation>
  657.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  658.                     <xs:group ref="xs:attrDecls"/>
  659.                 </xs:sequence>
  660.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  661.             </xs:restriction>
  662.         </xs:complexContent>
  663.     </xs:complexType>
  664.     <xs:element id="simpleContent" name="simpleContent">
  665.         <xs:annotation>
  666.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-simpleContent"> Contains extensions or
  667.                 restrictions on a text-only complex type or on a simple type as content and contains no elements.</xs:documentation>
  668.         </xs:annotation>
  669.         <xs:complexType>
  670.             <xs:complexContent>
  671.                 <xs:extension base="xs:annotated">
  672.                     <xs:choice>
  673.                         <xs:element name="restriction" type="xs:simpleRestrictionType">
  674.                             <xs:annotation>
  675.                                 <xs:documentation>Defines restrictions on a simpleType, simpleContent, or a
  676.                                     complexContent. </xs:documentation>
  677.                             </xs:annotation>
  678.                         </xs:element>
  679.                         <xs:element name="extension" type="xs:simpleExtensionType">
  680.                             <xs:annotation>
  681.                                 <xs:documentation>Extends an existing simpleType or complexType element. </xs:documentation>
  682.                             </xs:annotation>
  683.                         </xs:element>
  684.                     </xs:choice>
  685.                 </xs:extension>
  686.             </xs:complexContent>
  687.         </xs:complexType>
  688.     </xs:element>
  689.     <xs:element id="complexType" name="complexType" type="xs:topLevelComplexType">
  690.         <xs:annotation>
  691.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-complexType"> Defines a top level
  692.                 complex type.<br/> Complex Type Definitions provide for: <ul>
  693.                     <li>Constraining element information items by providing Attribute Declarations governing the
  694.                         appearance and content of attributes.</li>
  695.                     <li>Constraining element information item children to be empty, or to conform to a specified
  696.                         element-only or mixed content model, or else constraining the character information item
  697.                         children to conform to a specified simple type definition.</li>
  698.                     <li>Using the mechanisms of Type Definition Hierarchy to derive a complex type from another simple
  699.                         or complex type.</li>
  700.                     <li>Specifying post-schema-validation infoset contributions for elements.</li>
  701.                     <li>Limiting the ability to derive additional types from a given complex type.</li>
  702.                     <li>Controlling the permission to substitute, in an instance, elements of a derived type for
  703.                         elements declared in a content model to be of a given complex type.</li>
  704.                 </ul>
  705.             </xs:documentation>
  706.         </xs:annotation>
  707.     </xs:element>
  708.     <xs:simpleType name="blockSet">
  709.         <xs:annotation>
  710.             <xs:documentation> A utility type, not for public use.</xs:documentation>
  711.             <xs:documentation> #all or (possibly empty) subset of {substitution, extension, restriction}</xs:documentation>
  712.         </xs:annotation>
  713.         <xs:union>
  714.             <xs:simpleType>
  715.                 <xs:restriction base="xs:token">
  716.                     <xs:enumeration value="#all"/>
  717.                 </xs:restriction>
  718.             </xs:simpleType>
  719.             <xs:simpleType>
  720.                 <xs:list>
  721.                     <xs:simpleType>
  722.                         <xs:restriction base="xs:derivationControl">
  723.                             <xs:enumeration value="extension"/>
  724.                             <xs:enumeration value="restriction"/>
  725.                             <xs:enumeration value="substitution"/>
  726.                         </xs:restriction>
  727.                     </xs:simpleType>
  728.                 </xs:list>
  729.             </xs:simpleType>
  730.         </xs:union>
  731.     </xs:simpleType>
  732.     <xs:complexType name="element" abstract="true">
  733.         <xs:annotation>
  734.             <xs:documentation> The element element can be used either at the top level to define an element-type binding
  735.                 globally, or within a content model to either reference a globally-defined element or type or declare an
  736.                 element-type binding locally. The ref form is not allowed at the top level.</xs:documentation>
  737.         </xs:annotation>
  738.         <xs:complexContent>
  739.             <xs:extension base="xs:annotated">
  740.                 <xs:sequence>
  741.                     <xs:choice minOccurs="0">
  742.                         <xs:element name="simpleType" type="xs:localSimpleType">
  743.                             <xs:annotation>
  744.                                 <xs:documentation>Specifies a local simple type.</xs:documentation>
  745.                             </xs:annotation>
  746.                         </xs:element>
  747.                         <xs:element name="complexType" type="xs:localComplexType">
  748.                             <xs:annotation>
  749.                                 <xs:documentation>Defines a local complex type. Complex Type Definitions provide for: <ul>
  750.                                         <li>Constraining element information items by providing Attribute Declarations
  751.                                             governing the appearance and content of attributes.</li>
  752.                                         <li>Constraining element information item children to be empty, or to conform to
  753.                                             a specified element-only or mixed content model, or else constraining the
  754.                                             character information item children to conform to a specified simple type definition.</li>
  755.                                         <li>Using the mechanisms of Type Definition Hierarchy to derive a complex type
  756.                                             from another simple or complex type.</li>
  757.                                         <li>Specifying post-schema-validation infoset contributions for elements.</li>
  758.                                         <li>Limiting the ability to derive additional types from a given complex type.</li>
  759.                                         <li>Controlling the permission to substitute, in an instance, elements of a
  760.                                             derived type for elements declared in a content model to be of a given
  761.                                             complex type.</li>
  762.                                     </ul>
  763.                                 </xs:documentation>
  764.                             </xs:annotation>
  765.                         </xs:element>
  766.                     </xs:choice>
  767.                     <xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:identityConstraint"/>
  768.                 </xs:sequence>
  769.                 <xs:attributeGroup ref="xs:defRef"/>
  770.                 <xs:attribute name="type" type="xs:QName">
  771.                     <xs:annotation>
  772.                         <xs:documentation>Specifies a type definition for this element by reference to a defined type.</xs:documentation>
  773.                     </xs:annotation>
  774.                 </xs:attribute>
  775.                 <xs:attribute name="substitutionGroup" type="xs:QName">
  776.                     <xs:annotation>
  777.                         <xs:documentation>Defines the substitution group head element. XML Schema provides a mechanism,
  778.                             called substitution groups, that allows elements to be substituted for other elements. More
  779.                             specifically, elements can be assigned to a special group of elements that are said to be
  780.                             substitutable for a particular named element called the head element. (Note that the head
  781.                             element must be declared as a global element.).</xs:documentation>
  782.                     </xs:annotation>
  783.                 </xs:attribute>
  784.                 <xs:attributeGroup ref="xs:occurs"/>
  785.                 <xs:attribute name="default" type="xs:string">
  786.                     <xs:annotation>
  787.                         <xs:documentation>Specifies a default value for this element. The element must have either a
  788.                             simple type or a complex type emptiable and with mixed content.</xs:documentation>
  789.                     </xs:annotation>
  790.                 </xs:attribute>
  791.                 <xs:attribute name="fixed" type="xs:string">
  792.                     <xs:annotation>
  793.                         <xs:documentation>Specifies a fixed value for this element. If fixed is specified, then the
  794.                             element's content must either be empty, in which case fixed behaves as default, or its value
  795.                             must match the supplied constraint value.</xs:documentation>
  796.                     </xs:annotation>
  797.                 </xs:attribute>
  798.                 <xs:attribute default="false" name="nillable" type="xs:boolean" use="optional">
  799.                     <xs:annotation>
  800.                         <xs:documentation>Specifies if the element is nillable, default is false. If nillable is true
  801.                             then an element may also be valid if it specifies xsi:nil="true" even if it has no text or
  802.                             element content despite a content type which would otherwise require content.</xs:documentation>
  803.                     </xs:annotation>
  804.                 </xs:attribute>
  805.                 <xs:attribute default="false" name="abstract" type="xs:boolean" use="optional">
  806.                     <xs:annotation>
  807.                         <xs:documentation>Specifies if the element is abstract, default is false. Element declarations
  808.                             for which abstract is true can appear in content models only when substitution is allowed.</xs:documentation>
  809.                     </xs:annotation>
  810.                 </xs:attribute>
  811.                 <xs:attribute name="final" type="xs:derivationSet">
  812.                     <xs:annotation>
  813.                         <xs:documentation>Specifies the value of the final attribute for this element. The final
  814.                             attribute prevents a specified type of derivation of an element. For elements this value can
  815.                             contain #all or a list that is a subset of extension or restriction. <ul>
  816.                                 <li>extension - prevents derivation by extension</li>
  817.                                 <li>restriction - prevents derivation by restriction</li>
  818.                                 <li>#all - prevents all derivation.</li>
  819.                             </ul>
  820.                         </xs:documentation>
  821.                     </xs:annotation>
  822.                 </xs:attribute>
  823.                 <xs:attribute name="block" type="xs:blockSet">
  824.                     <xs:annotation>
  825.                         <xs:documentation>Specifies the value of the block attribute on this element. The block
  826.                             attribute prevents an element that has a specified type of derivation from being used in
  827.                             place of this element. This value can contain #all or a list that is a subset of extension,
  828.                             restriction, or substitution.</xs:documentation>
  829.                     </xs:annotation>
  830.                 </xs:attribute>
  831.                 <xs:attribute name="form" type="xs:formChoice">
  832.                     <xs:annotation>
  833.                         <xs:documentation>Specifies the target namespace for this element. The value must be "qualified"
  834.                             or "unqualified". The default value is provided by the elementFormDefault attribute on
  835.                             the enclosing <schema> element. <ul>
  836.                                 <li>"unqualified" indicates that a local element belongs to no namespace.</li>
  837.                                 <li>"qualified" indicates that a local element belongs to the schema target namespace.</li>
  838.                             </ul>
  839.                         </xs:documentation>
  840.                     </xs:annotation>
  841.                 </xs:attribute>
  842.             </xs:extension>
  843.         </xs:complexContent>
  844.     </xs:complexType>
  845.     <xs:complexType name="topLevelElement">
  846.         <xs:complexContent>
  847.             <xs:restriction base="xs:element">
  848.                 <xs:sequence>
  849.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  850.                     <xs:choice minOccurs="0">
  851.                         <xs:element name="simpleType" type="xs:localSimpleType">
  852.                             <xs:annotation>
  853.                                 <xs:documentation>Specifies a local simple type.</xs:documentation>
  854.                             </xs:annotation>
  855.                         </xs:element>
  856.                         <xs:element name="complexType" type="xs:localComplexType">
  857.                             <xs:annotation>
  858.                                 <xs:documentation>Defines a local complex type. Complex Type Definitions provide for: <ul>
  859.                                         <li>Constraining element information items by providing Attribute Declarations
  860.                                             governing the appearance and content of attributes.</li>
  861.                                         <li>Constraining element information item children to be empty, or to conform to
  862.                                             a specified element-only or mixed content model, or else constraining the
  863.                                             character information item children to conform to a specified simple type definition.</li>
  864.                                         <li>Using the mechanisms of Type Definition Hierarchy to derive a complex type
  865.                                             from another simple or complex type.</li>
  866.                                         <li>Specifying post-schema-validation infoset contributions for elements.</li>
  867.                                         <li>Limiting the ability to derive additional types from a given complex type.</li>
  868.                                         <li>Controlling the permission to substitute, in an instance, elements of a
  869.                                             derived type for elements declared in a content model to be of a given
  870.                                             complex type.</li>
  871.                                     </ul>
  872.                                 </xs:documentation>
  873.                             </xs:annotation>
  874.                         </xs:element>
  875.                     </xs:choice>
  876.                     <xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:identityConstraint"/>
  877.                 </xs:sequence>
  878.                 <xs:attribute name="ref" use="prohibited"/>
  879.                 <xs:attribute name="form" use="prohibited"/>
  880.                 <xs:attribute name="minOccurs" use="prohibited"/>
  881.                 <xs:attribute name="maxOccurs" use="prohibited"/>
  882.                 <xs:attribute name="name" type="xs:NCName" use="required">
  883.                     <xs:annotation>
  884.                         <xs:documentation>Specifies the required top level element name.</xs:documentation>
  885.                     </xs:annotation>
  886.                 </xs:attribute>
  887.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  888.             </xs:restriction>
  889.         </xs:complexContent>
  890.     </xs:complexType>
  891.     <xs:complexType name="localElement">
  892.         <xs:complexContent>
  893.             <xs:restriction base="xs:element">
  894.                 <xs:sequence>
  895.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  896.                     <xs:choice minOccurs="0">
  897.                         <xs:element name="simpleType" type="xs:localSimpleType">
  898.                             <xs:annotation>
  899.                                 <xs:documentation>Specifies a local simple type.</xs:documentation>
  900.                             </xs:annotation>
  901.                         </xs:element>
  902.                         <xs:element name="complexType" type="xs:localComplexType">
  903.                             <xs:annotation>
  904.                                 <xs:documentation>Defines a local complex type. Complex Type Definitions provide for: <ul>
  905.                                         <li>Constraining element information items by providing Attribute Declarations
  906.                                             governing the appearance and content of attributes.</li>
  907.                                         <li>Constraining element information item children to be empty, or to conform to
  908.                                             a specified element-only or mixed content model, or else constraining the
  909.                                             character information item children to conform to a specified simple type definition.</li>
  910.                                         <li>Using the mechanisms of Type Definition Hierarchy to derive a complex type
  911.                                             from another simple or complex type.</li>
  912.                                         <li>Specifying post-schema-validation infoset contributions for elements.</li>
  913.                                         <li>Limiting the ability to derive additional types from a given complex type.</li>
  914.                                         <li>Controlling the permission to substitute, in an instance, elements of a
  915.                                             derived type for elements declared in a content model to be of a given
  916.                                             complex type.</li>
  917.                                     </ul>
  918.                                 </xs:documentation>
  919.                             </xs:annotation>
  920.                         </xs:element>
  921.                     </xs:choice>
  922.                     <xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:identityConstraint"/>
  923.                 </xs:sequence>
  924.                 <xs:attribute name="substitutionGroup" use="prohibited"/>
  925.                 <xs:attribute name="final" use="prohibited"/>
  926.                 <xs:attribute name="abstract" use="prohibited"/>
  927.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  928.             </xs:restriction>
  929.         </xs:complexContent>
  930.     </xs:complexType>
  931.     <xs:element id="element" name="element" type="xs:topLevelElement">
  932.         <xs:annotation>
  933.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-element"> Defines an element. An element
  934.                 declaration is an association of a name with a type definition, either simple or complex, an (optional)
  935.                 default value and a (possibly empty) set of identity-constraint definitions. </xs:documentation>
  936.         </xs:annotation>
  937.     </xs:element>
  938.     <xs:complexType abstract="true" name="group">
  939.         <xs:annotation>
  940.             <xs:documentation> group type for explicit groups, named top-level groups and group references</xs:documentation>
  941.         </xs:annotation>
  942.         <xs:complexContent>
  943.             <xs:extension base="xs:annotated">
  944.                 <xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:particle"/>
  945.                 <xs:attributeGroup ref="xs:defRef"/>
  946.                 <xs:attributeGroup ref="xs:occurs"/>
  947.             </xs:extension>
  948.         </xs:complexContent>
  949.     </xs:complexType>
  950.     <xs:complexType name="realGroup">
  951.         <xs:complexContent>
  952.             <xs:restriction base="xs:group">
  953.                 <xs:sequence>
  954.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  955.                     <xs:choice maxOccurs="1" minOccurs="0">
  956.                         <xs:element ref="xs:all"/>
  957.                         <xs:element ref="xs:choice"/>
  958.                         <xs:element ref="xs:sequence"/>
  959.                     </xs:choice>
  960.                 </xs:sequence>
  961.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  962.             </xs:restriction>
  963.         </xs:complexContent>
  964.     </xs:complexType>
  965.     <xs:complexType name="namedGroup">
  966.         <xs:complexContent>
  967.             <xs:restriction base="xs:realGroup">
  968.                 <xs:sequence>
  969.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  970.                     <xs:choice maxOccurs="1" minOccurs="1">
  971.                         <xs:element name="all">
  972.                             <xs:annotation>
  973.                                 <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-all"> Specifies that
  974.                                     the child elements can appear in any order. Each child element can occur 0 or 1 time.</xs:documentation>
  975.                             </xs:annotation>
  976.                             <xs:complexType>
  977.                                 <xs:complexContent>
  978.                                     <xs:restriction base="xs:all">
  979.                                         <xs:group ref="xs:allModel"/>
  980.                                         <xs:attribute name="minOccurs" use="prohibited"/>
  981.                                         <xs:attribute name="maxOccurs" use="prohibited"/>
  982.                                         <xs:anyAttribute namespace="##other" processContents="lax"/>
  983.                                     </xs:restriction>
  984.                                 </xs:complexContent>
  985.                             </xs:complexType>
  986.                         </xs:element>
  987.                         <xs:element name="choice" type="xs:simpleExplicitGroup">
  988.                             <xs:annotation>
  989.                                 <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-choice"> Allows only
  990.                                     one of the elements contained in the <choice> declaration to be
  991.                                     present within the containing element.</xs:documentation>
  992.                             </xs:annotation>
  993.                         </xs:element>
  994.                         <xs:element name="sequence" type="xs:simpleExplicitGroup">
  995.                             <xs:annotation>
  996.                                 <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-sequence"> Specifies
  997.                                     that the child elements must appear in a sequence. Each child element can occur from
  998.                                     0 to any number of times.</xs:documentation>
  999.                             </xs:annotation>
  1000.                         </xs:element>
  1001.                     </xs:choice>
  1002.                 </xs:sequence>
  1003.                 <xs:attribute name="name" type="xs:NCName" use="required">
  1004.                     <xs:annotation>
  1005.                         <xs:documentation>Specifies the required named group name.</xs:documentation>
  1006.                     </xs:annotation>
  1007.                 </xs:attribute>
  1008.                 <xs:attribute name="ref" use="prohibited"/>
  1009.                 <xs:attribute name="minOccurs" use="prohibited"/>
  1010.                 <xs:attribute name="maxOccurs" use="prohibited"/>
  1011.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1012.             </xs:restriction>
  1013.         </xs:complexContent>
  1014.     </xs:complexType>
  1015.     <xs:complexType name="groupRef">
  1016.         <xs:complexContent>
  1017.             <xs:restriction base="xs:realGroup">
  1018.                 <xs:sequence>
  1019.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  1020.                 </xs:sequence>
  1021.                 <xs:attribute name="ref" type="xs:QName" use="required">
  1022.                     <xs:annotation>
  1023.                         <xs:documentation>Specifies the group this group reference points to.</xs:documentation>
  1024.                     </xs:annotation>
  1025.                 </xs:attribute>
  1026.                 <xs:attribute name="name" use="prohibited"/>
  1027.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1028.             </xs:restriction>
  1029.         </xs:complexContent>
  1030.     </xs:complexType>
  1031.     <xs:complexType name="explicitGroup">
  1032.         <xs:annotation>
  1033.             <xs:documentation> group type for the three kinds of group</xs:documentation>
  1034.         </xs:annotation>
  1035.         <xs:complexContent>
  1036.             <xs:restriction base="xs:group">
  1037.                 <xs:sequence>
  1038.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  1039.                     <xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:nestedParticle"/>
  1040.                 </xs:sequence>
  1041.                 <xs:attribute name="name" type="xs:NCName" use="prohibited"/>
  1042.                 <xs:attribute name="ref" type="xs:QName" use="prohibited"/>
  1043.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1044.             </xs:restriction>
  1045.         </xs:complexContent>
  1046.     </xs:complexType>
  1047.     <xs:complexType name="simpleExplicitGroup">
  1048.         <xs:complexContent>
  1049.             <xs:restriction base="xs:explicitGroup">
  1050.                 <xs:sequence>
  1051.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  1052.                     <xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:nestedParticle"/>
  1053.                 </xs:sequence>
  1054.                 <xs:attribute name="minOccurs" use="prohibited"/>
  1055.                 <xs:attribute name="maxOccurs" use="prohibited"/>
  1056.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1057.             </xs:restriction>
  1058.         </xs:complexContent>
  1059.     </xs:complexType>
  1060.     <xs:group name="allModel">
  1061.         <xs:sequence>
  1062.             <xs:element minOccurs="0" ref="xs:annotation"/>
  1063.             <xs:choice maxOccurs="unbounded" minOccurs="0">
  1064.                 <xs:annotation>
  1065.                     <xs:documentation>This choice with min/max is here to avoid a pblm with the Elt:All/Choice/Seq
  1066.                         Particle derivation constraint.</xs:documentation>
  1067.                 </xs:annotation>
  1068.                 <xs:element name="element">
  1069.                     <xs:annotation>
  1070.                         <xs:documentation>Specifies a local element or a reference to a global element.</xs:documentation>
  1071.                     </xs:annotation>
  1072.                     <xs:complexType>
  1073.                         <xs:annotation>
  1074.                             <xs:documentation>restricted max/min</xs:documentation>
  1075.                         </xs:annotation>
  1076.                         <xs:complexContent>
  1077.                             <xs:restriction base="xs:localElement">
  1078.                                 <xs:sequence>
  1079.                                     <xs:element minOccurs="0" ref="xs:annotation"/>
  1080.                                     <xs:choice minOccurs="0">
  1081.                                         <xs:element name="simpleType" type="xs:localSimpleType">
  1082.                                             <xs:annotation>
  1083.                                                 <xs:documentation>Specifies a local simple type.</xs:documentation>
  1084.                                             </xs:annotation>
  1085.                                         </xs:element>
  1086.                                         <xs:element name="complexType" type="xs:localComplexType">
  1087.                                             <xs:annotation>
  1088.                                                 <xs:documentation>Defines a local complex type. Complex Type Definitions
  1089.                                                     provide for: <ul>
  1090.                                                         <li>Constraining element information items by providing
  1091.                                                             Attribute Declarations governing the appearance and content
  1092.                                                             of attributes.</li>
  1093.                                                         <li>Constraining element information item children to be empty,
  1094.                                                             or to conform to a specified element-only or mixed content
  1095.                                                             model, or else constraining the character information item
  1096.                                                             children to conform to a specified simple type definition.</li>
  1097.                                                         <li>Using the mechanisms of Type Definition Hierarchy to derive
  1098.                                                             a complex type from another simple or complex type.</li>
  1099.                                                         <li>Specifying post-schema-validation infoset contributions for elements.</li>
  1100.                                                         <li>Limiting the ability to derive additional types from a given
  1101.                                                             complex type.</li>
  1102.                                                         <li>Controlling the permission to substitute, in an instance,
  1103.                                                             elements of a derived type for elements declared in a
  1104.                                                             content model to be of a given complex type.</li>
  1105.                                                     </ul>
  1106.                                                 </xs:documentation>
  1107.                                             </xs:annotation>
  1108.                                         </xs:element>
  1109.                                     </xs:choice>
  1110.                                     <xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:identityConstraint"/>
  1111.                                 </xs:sequence>
  1112.                                 <xs:attribute default="1" name="minOccurs" use="optional">
  1113.                                     <xs:annotation>
  1114.                                         <xs:documentation>Specifies the minimum number of occurrences, possible values
  1115.                                             are 0 and 1, default is 1.</xs:documentation>
  1116.                                     </xs:annotation>
  1117.                                     <xs:simpleType>
  1118.                                         <xs:restriction base="xs:nonNegativeInteger">
  1119.                                             <xs:enumeration value="0"/>
  1120.                                             <xs:enumeration value="1"/>
  1121.                                         </xs:restriction>
  1122.                                     </xs:simpleType>
  1123.                                 </xs:attribute>
  1124.                                 <xs:attribute default="1" name="maxOccurs" use="optional">
  1125.                                     <xs:annotation>
  1126.                                         <xs:documentation>Specifies the maximum number of occurrences, possible values
  1127.                                             are 0 and 1, default is 1.</xs:documentation>
  1128.                                     </xs:annotation>
  1129.                                     <xs:simpleType>
  1130.                                         <xs:restriction base="xs:allNNI">
  1131.                                             <xs:enumeration value="0"/>
  1132.                                             <xs:enumeration value="1"/>
  1133.                                         </xs:restriction>
  1134.                                     </xs:simpleType>
  1135.                                 </xs:attribute>
  1136.                                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1137.                             </xs:restriction>
  1138.                         </xs:complexContent>
  1139.                     </xs:complexType>
  1140.                 </xs:element>
  1141.             </xs:choice>
  1142.         </xs:sequence>
  1143.     </xs:group>
  1144.     <xs:complexType name="all">
  1145.         <xs:annotation>
  1146.             <xs:documentation> Only elements allowed inside.</xs:documentation>
  1147.         </xs:annotation>
  1148.         <xs:complexContent>
  1149.             <xs:restriction base="xs:explicitGroup">
  1150.                 <xs:group ref="xs:allModel"/>
  1151.                 <xs:attribute default="1" name="minOccurs" use="optional">
  1152.                     <xs:annotation>
  1153.                         <xs:documentation>Specifies the minimum number of occurrences, possible values are 0 and 1,
  1154.                             default is 1.</xs:documentation>
  1155.                     </xs:annotation>
  1156.                     <xs:simpleType>
  1157.                         <xs:restriction base="xs:nonNegativeInteger">
  1158.                             <xs:enumeration value="0"/>
  1159.                             <xs:enumeration value="1"/>
  1160.                         </xs:restriction>
  1161.                     </xs:simpleType>
  1162.                 </xs:attribute>
  1163.                 <xs:attribute default="1" name="maxOccurs" use="optional">
  1164.                     <xs:annotation>
  1165.                         <xs:documentation>Specifies the maximum number of occurrences, possible value is 1, default is 1.</xs:documentation>
  1166.                     </xs:annotation>
  1167.                     <xs:simpleType>
  1168.                         <xs:restriction base="xs:allNNI">
  1169.                             <xs:enumeration value="1"/>
  1170.                         </xs:restriction>
  1171.                     </xs:simpleType>
  1172.                 </xs:attribute>
  1173.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1174.             </xs:restriction>
  1175.         </xs:complexContent>
  1176.     </xs:complexType>
  1177.     <xs:element id="all" name="all" type="xs:all">
  1178.         <xs:annotation>
  1179.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-all"> Specifies that the child elements
  1180.                 can appear in any order. Each child element can occur 0 or 1 time. </xs:documentation>
  1181.         </xs:annotation>
  1182.     </xs:element>
  1183.     <xs:element id="choice" name="choice" type="xs:explicitGroup">
  1184.         <xs:annotation>
  1185.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-choice"> Allows only one of the elements
  1186.                 contained in the <choice> declaration to be present within the containing element.</xs:documentation>
  1187.         </xs:annotation>
  1188.     </xs:element>
  1189.     <xs:element id="sequence" name="sequence" type="xs:explicitGroup">
  1190.         <xs:annotation>
  1191.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-sequence"> Specifies that the child
  1192.                 elements must appear in a sequence. Each child element can occur from 0 to any number of times.</xs:documentation>
  1193.         </xs:annotation>
  1194.     </xs:element>
  1195.     <xs:element id="group" name="group" type="xs:namedGroup">
  1196.         <xs:annotation>
  1197.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-group"> Defines a group of elements to
  1198.                 be used in complex type definitions.</xs:documentation>
  1199.         </xs:annotation>
  1200.     </xs:element>
  1201.     <xs:complexType name="wildcard">
  1202.         <xs:complexContent>
  1203.             <xs:extension base="xs:annotated">
  1204.                 <xs:attribute default="##any" name="namespace" type="xs:namespaceList" use="optional">
  1205.                     <xs:annotation>
  1206.                         <xs:documentation>Specifies the namespace(s) allowed by the wildcard, default is ##any standing
  1207.                             for any namespace. </xs:documentation>
  1208.                     </xs:annotation>
  1209.                 </xs:attribute>
  1210.                 <xs:attribute default="strict" name="processContents" use="optional">
  1211.                     <xs:annotation>
  1212.                         <xs:documentation>Specifies the validation constraint to be applied on the content that matched
  1213.                             the wildcard. Possible values are <ul>
  1214.                                 <li>skip - that means no validation</li>
  1215.                                 <li>lax - that means validation will be performed if a schema is available</li>
  1216.                                 <li>strict - that means validation is required </li>
  1217.                             </ul> The default is strict. </xs:documentation>
  1218.                     </xs:annotation>
  1219.                     <xs:simpleType>
  1220.                         <xs:restriction base="xs:NMTOKEN">
  1221.                             <xs:enumeration value="skip"/>
  1222.                             <xs:enumeration value="lax"/>
  1223.                             <xs:enumeration value="strict"/>
  1224.                         </xs:restriction>
  1225.                     </xs:simpleType>
  1226.                 </xs:attribute>
  1227.             </xs:extension>
  1228.         </xs:complexContent>
  1229.     </xs:complexType>
  1230.     <xs:element id="any" name="any">
  1231.         <xs:annotation>
  1232.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-any"> Enables the author to extend the
  1233.                 XML document with elements not specified by the schema.</xs:documentation>
  1234.         </xs:annotation>
  1235.         <xs:complexType>
  1236.             <xs:complexContent>
  1237.                 <xs:extension base="xs:wildcard">
  1238.                     <xs:attributeGroup ref="xs:occurs"/>
  1239.                 </xs:extension>
  1240.             </xs:complexContent>
  1241.         </xs:complexType>
  1242.     </xs:element>
  1243.     <xs:annotation>
  1244.         <xs:documentation> simple type for the value of the 'namespace' attr of 'any' and 'anyAttribute'</xs:documentation>
  1245.     </xs:annotation>
  1246.     <xs:annotation>
  1247.         <xs:documentation> Value is <ul>
  1248.                 <li>##any - - any non-conflicting WFXML/attribute at all </li>
  1249.                 <li>##other - - any non-conflicting WFXML/attribute from namespace other than targetNS</li>
  1250.                 <li>##local - - any unqualified non-conflicting WFXML/attribute</li>
  1251.                 <li>one or more URI references (space separated) - - any non-conflicting WFXML/attribute from the listed namespaces</li>
  1252.             </ul> ##targetNamespace or ##local may appear in the above list, to refer to the targetNamespace of the
  1253.             enclosing schema or an absent targetNamespace respectively. .</xs:documentation>
  1254.     </xs:annotation>
  1255.     <xs:simpleType name="namespaceList">
  1256.         <xs:annotation>
  1257.             <xs:documentation> A utility type, not for public use.</xs:documentation>
  1258.         </xs:annotation>
  1259.         <xs:union>
  1260.             <xs:simpleType>
  1261.                 <xs:restriction base="xs:token">
  1262.                     <xs:enumeration value="##any"/>
  1263.                     <xs:enumeration value="##other"/>
  1264.                 </xs:restriction>
  1265.             </xs:simpleType>
  1266.             <xs:simpleType>
  1267.                 <xs:list>
  1268.                     <xs:simpleType>
  1269.                         <xs:union memberTypes="xs:anyURI">
  1270.                             <xs:simpleType>
  1271.                                 <xs:restriction base="xs:token">
  1272.                                     <xs:enumeration value="##targetNamespace"/>
  1273.                                     <xs:enumeration value="##local"/>
  1274.                                 </xs:restriction>
  1275.                             </xs:simpleType>
  1276.                         </xs:union>
  1277.                     </xs:simpleType>
  1278.                 </xs:list>
  1279.             </xs:simpleType>
  1280.         </xs:union>
  1281.     </xs:simpleType>
  1282.     <xs:element id="attribute" name="attribute" type="xs:topLevelAttribute">
  1283.         <xs:annotation>
  1284.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attribute"> Defines an attribute.</xs:documentation>
  1285.         </xs:annotation>
  1286.     </xs:element>
  1287.     <xs:complexType abstract="true" name="attributeGroup">
  1288.         <xs:complexContent>
  1289.             <xs:extension base="xs:annotated">
  1290.                 <xs:group ref="xs:attrDecls"/>
  1291.                 <xs:attributeGroup ref="xs:defRef"/>
  1292.             </xs:extension>
  1293.         </xs:complexContent>
  1294.     </xs:complexType>
  1295.     <xs:complexType name="namedAttributeGroup">
  1296.         <xs:complexContent>
  1297.             <xs:restriction base="xs:attributeGroup">
  1298.                 <xs:sequence>
  1299.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  1300.                     <xs:group ref="xs:attrDecls"/>
  1301.                 </xs:sequence>
  1302.                 <xs:attribute name="name" type="xs:NCName" use="required">
  1303.                     <xs:annotation>
  1304.                         <xs:documentation>Specifies the required named attribute group name.</xs:documentation>
  1305.                     </xs:annotation>
  1306.                 </xs:attribute>
  1307.                 <xs:attribute name="ref" use="prohibited"/>
  1308.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1309.             </xs:restriction>
  1310.         </xs:complexContent>
  1311.     </xs:complexType>
  1312.     <xs:complexType name="attributeGroupRef">
  1313.         <xs:complexContent>
  1314.             <xs:restriction base="xs:attributeGroup">
  1315.                 <xs:sequence>
  1316.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  1317.                 </xs:sequence>
  1318.                 <xs:attribute name="ref" type="xs:QName" use="required">
  1319.                     <xs:annotation>
  1320.                         <xs:documentation>Specifies the attribute group this attribute group reference points to.</xs:documentation>
  1321.                     </xs:annotation>
  1322.                 </xs:attribute>
  1323.                 <xs:attribute name="name" use="prohibited"/>
  1324.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1325.             </xs:restriction>
  1326.         </xs:complexContent>
  1327.     </xs:complexType>
  1328.     <xs:element id="attributeGroup" name="attributeGroup" type="xs:namedAttributeGroup">
  1329.         <xs:annotation>
  1330.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-attributeGroup">Defines an attribute
  1331.                 group to be used in complex type definitions.</xs:documentation>
  1332.         </xs:annotation>
  1333.     </xs:element>
  1334.     <xs:element id="include" name="include">
  1335.         <xs:annotation>
  1336.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-include"> Adds multiple schemas with the
  1337.                 same target namespace to a document.</xs:documentation>
  1338.         </xs:annotation>
  1339.         <xs:complexType>
  1340.             <xs:complexContent>
  1341.                 <xs:extension base="xs:annotated">
  1342.                     <xs:attribute name="schemaLocation" type="xs:anyURI" use="required">
  1343.                         <xs:annotation>
  1344.                             <xs:documentation>Required. Specifies the URI to the schema to include in the target
  1345.                                 namespace of the containing schema.</xs:documentation>
  1346.                         </xs:annotation>
  1347.                     </xs:attribute>
  1348.                 </xs:extension>
  1349.             </xs:complexContent>
  1350.         </xs:complexType>
  1351.     </xs:element>
  1352.     <xs:element id="redefine" name="redefine">
  1353.         <xs:annotation>
  1354.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-redefine"> Redefines simple and complex
  1355.                 types, groups, and attribute groups from an external schema.</xs:documentation>
  1356.         </xs:annotation>
  1357.         <xs:complexType>
  1358.             <xs:complexContent>
  1359.                 <xs:extension base="xs:openAttrs">
  1360.                     <xs:choice maxOccurs="unbounded" minOccurs="0">
  1361.                         <xs:element ref="xs:annotation"/>
  1362.                         <xs:group ref="xs:redefinable"/>
  1363.                     </xs:choice>
  1364.                     <xs:attribute name="schemaLocation" type="xs:anyURI" use="required">
  1365.                         <xs:annotation>
  1366.                             <xs:documentation>Required. A URI to the location of a schema document.</xs:documentation>
  1367.                         </xs:annotation>
  1368.                     </xs:attribute>
  1369.                     <xs:attribute name="id" type="xs:ID">
  1370.                         <xs:annotation>
  1371.                             <xs:documentation>Optional. Specifies a unique ID for the element.</xs:documentation>
  1372.                         </xs:annotation>
  1373.                     </xs:attribute>
  1374.                 </xs:extension>
  1375.             </xs:complexContent>
  1376.         </xs:complexType>
  1377.     </xs:element>
  1378.     <xs:element id="import" name="import">
  1379.         <xs:annotation>
  1380.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-import"> Adds multiple schemas with
  1381.                 different target namespace to a document.</xs:documentation>
  1382.         </xs:annotation>
  1383.         <xs:complexType>
  1384.             <xs:complexContent>
  1385.                 <xs:extension base="xs:annotated">
  1386.                     <xs:attribute name="namespace" type="xs:anyURI">
  1387.                         <xs:annotation>
  1388.                             <xs:documentation>Required. Specifies the URI of the namespace to import.</xs:documentation>
  1389.                         </xs:annotation>
  1390.                     </xs:attribute>
  1391.                     <xs:attribute name="schemaLocation" type="xs:anyURI">
  1392.                         <xs:annotation>
  1393.                             <xs:documentation>Optional. Specifies the URI to the schema for the imported namespace.</xs:documentation>
  1394.                         </xs:annotation>
  1395.                     </xs:attribute>
  1396.                 </xs:extension>
  1397.             </xs:complexContent>
  1398.         </xs:complexType>
  1399.     </xs:element>
  1400.     <xs:element id="selector" name="selector">
  1401.         <xs:annotation>
  1402.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-selector"> Specifies an XPath expression
  1403.                 that selects a set of elements for an identity constraint. </xs:documentation>
  1404.         </xs:annotation>
  1405.         <xs:complexType>
  1406.             <xs:complexContent>
  1407.                 <xs:extension base="xs:annotated">
  1408.                     <xs:attribute name="xpath" use="required">
  1409.                         <xs:annotation>
  1410.                             <xs:documentation>Defines the XPath selector expression.</xs:documentation>
  1411.                         </xs:annotation>
  1412.                         <xs:simpleType>
  1413.                             <xs:annotation>
  1414.                                 <xs:documentation>A subset of XPath expressions for use in selectors.</xs:documentation>
  1415.                                 <xs:documentation>A utility type, not for public use.</xs:documentation>
  1416.                             </xs:annotation>
  1417.                             <xs:restriction base="xs:token">
  1418.                                 <xs:annotation>
  1419.                                     <xs:documentation>The following pattern is intended to allow XPath expressions per
  1420.                                         the following EBNF: Selector ::= Path ( '|' Path )* Path ::= ('.//')? Step ( '/'
  1421.                                         Step )* Step ::= '.' | NameTest NameTest ::= QName | '*' | NCName ':' '*'
  1422.                                         child:: is also allowed.</xs:documentation>
  1423.                                 </xs:annotation>
  1424.                                 <xs:pattern value="(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*"/>
  1425.                             </xs:restriction>
  1426.                         </xs:simpleType>
  1427.                     </xs:attribute>
  1428.                 </xs:extension>
  1429.             </xs:complexContent>
  1430.         </xs:complexType>
  1431.     </xs:element>
  1432.     <xs:element id="field" name="field">
  1433.         <xs:annotation>
  1434.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-field"> Specifies an XPath expression
  1435.                 that specifies the value used to define an identity constraint.</xs:documentation>
  1436.         </xs:annotation>
  1437.         <xs:complexType>
  1438.             <xs:complexContent>
  1439.                 <xs:extension base="xs:annotated">
  1440.                     <xs:attribute name="xpath" use="required">
  1441.                         <xs:annotation>
  1442.                             <xs:documentation>Required. Identifies a single element or attribute whose content or value
  1443.                                 is used for the constraint.</xs:documentation>
  1444.                         </xs:annotation>
  1445.                         <xs:simpleType>
  1446.                             <xs:annotation>
  1447.                                 <xs:documentation>A subset of XPath expressions for use in fields.</xs:documentation>
  1448.                                 <xs:documentation>A utility type, not for public use.</xs:documentation>
  1449.                             </xs:annotation>
  1450.                             <xs:restriction base="xs:token">
  1451.                                 <xs:annotation>
  1452.                                     <xs:documentation>The following pattern is intended to allow XPath expressions per
  1453.                                         the same EBNF as for selector, with the following change: Path ::= ('.//')? (
  1454.                                         Step '/' )* ( Step | '@' NameTest ). </xs:documentation>
  1455.                                 </xs:annotation>
  1456.                                 <xs:pattern value="(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))(\|(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*)))))*"/>
  1457.                             </xs:restriction>
  1458.                         </xs:simpleType>
  1459.                     </xs:attribute>
  1460.                 </xs:extension>
  1461.             </xs:complexContent>
  1462.         </xs:complexType>
  1463.     </xs:element>
  1464.     <xs:complexType name="keybase">
  1465.         <xs:complexContent>
  1466.             <xs:extension base="xs:annotated">
  1467.                 <xs:sequence>
  1468.                     <xs:element ref="xs:selector"/>
  1469.                     <xs:element maxOccurs="unbounded" minOccurs="1" ref="xs:field"/>
  1470.                 </xs:sequence>
  1471.                 <xs:attribute name="name" type="xs:NCName" use="required">
  1472.                     <xs:annotation>
  1473.                         <xs:documentation>Specifies the required identity constraint name.</xs:documentation>
  1474.                     </xs:annotation>
  1475.                 </xs:attribute>
  1476.             </xs:extension>
  1477.         </xs:complexContent>
  1478.     </xs:complexType>
  1479.     <xs:group name="identityConstraint">
  1480.         <xs:annotation>
  1481.             <xs:documentation>The three kinds of identity constraints, all with type of or derived from 'keybase'. </xs:documentation>
  1482.         </xs:annotation>
  1483.         <xs:choice>
  1484.             <xs:element ref="xs:unique"/>
  1485.             <xs:element ref="xs:key"/>
  1486.             <xs:element ref="xs:keyref"/>
  1487.         </xs:choice>
  1488.     </xs:group>
  1489.     <xs:element id="unique" name="unique" type="xs:keybase">
  1490.         <xs:annotation>
  1491.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-unique"> Defines that an element or an
  1492.                 attribute value must be unique within the scope. </xs:documentation>
  1493.         </xs:annotation>
  1494.     </xs:element>
  1495.     <xs:element id="key" name="key" type="xs:keybase">
  1496.         <xs:annotation>
  1497.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-key"> Specifies an attribute or element
  1498.                 value as a key (unique, non-nullable, and always present) within the containing element in an instance
  1499.                 document. </xs:documentation>
  1500.         </xs:annotation>
  1501.     </xs:element>
  1502.     <xs:element id="keyref" name="keyref">
  1503.         <xs:annotation>
  1504.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-keyref"> Specifies that an attribute or
  1505.                 element value correspond to those of the specified key or unique element.</xs:documentation>
  1506.         </xs:annotation>
  1507.         <xs:complexType>
  1508.             <xs:complexContent>
  1509.                 <xs:extension base="xs:keybase">
  1510.                     <xs:attribute name="refer" type="xs:QName" use="required">
  1511.                         <xs:annotation>
  1512.                             <xs:documentation>Required. Specifies the name of a key or unique element defined in this or
  1513.                                 another schema.</xs:documentation>
  1514.                         </xs:annotation>
  1515.                     </xs:attribute>
  1516.                 </xs:extension>
  1517.             </xs:complexContent>
  1518.         </xs:complexType>
  1519.     </xs:element>
  1520.     <xs:element id="notation" name="notation">
  1521.         <xs:annotation>
  1522.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-notation"> Describes the format of
  1523.                 non-XML data within an XML document.</xs:documentation>
  1524.         </xs:annotation>
  1525.         <xs:complexType>
  1526.             <xs:complexContent>
  1527.                 <xs:extension base="xs:annotated">
  1528.                     <xs:attribute name="name" type="xs:NCName" use="required">
  1529.                         <xs:annotation>
  1530.                             <xs:documentation>Required. Specifies a name for the notation.</xs:documentation>
  1531.                         </xs:annotation>
  1532.                     </xs:attribute>
  1533.                     <xs:attribute name="public" type="xs:public" use="required">
  1534.                         <xs:annotation>
  1535.                             <xs:documentation>Required. Specifies a URI corresponding to the public identifier.</xs:documentation>
  1536.                         </xs:annotation>
  1537.                     </xs:attribute>
  1538.                     <xs:attribute name="system" type="xs:anyURI">
  1539.                         <xs:annotation>
  1540.                             <xs:documentation>Optional. Specifies a URI corresponding to the system identifier. </xs:documentation>
  1541.                         </xs:annotation>
  1542.                     </xs:attribute>
  1543.                 </xs:extension>
  1544.             </xs:complexContent>
  1545.         </xs:complexType>
  1546.     </xs:element>
  1547.     <xs:simpleType name="public">
  1548.         <xs:annotation>
  1549.             <xs:documentation> A utility type, not for public use.</xs:documentation>
  1550.             <xs:documentation> A public identifier, per ISO 8879.</xs:documentation>
  1551.         </xs:annotation>
  1552.         <xs:restriction base="xs:token"/>
  1553.     </xs:simpleType>
  1554.     <xs:element id="appinfo" name="appinfo">
  1555.         <xs:annotation>
  1556.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-appinfo"> Specifies information to be
  1557.                 used by the application. </xs:documentation>
  1558.         </xs:annotation>
  1559.         <xs:complexType mixed="true">
  1560.             <xs:sequence maxOccurs="unbounded" minOccurs="0">
  1561.                 <xs:any processContents="lax"/>
  1562.             </xs:sequence>
  1563.             <xs:attribute name="source" type="xs:anyURI">
  1564.                 <xs:annotation>
  1565.                     <xs:documentation>Optional. A URI reference that specifies the source of the application
  1566.                         information. </xs:documentation>
  1567.                 </xs:annotation>
  1568.             </xs:attribute>
  1569.         </xs:complexType>
  1570.     </xs:element>
  1571.     <xs:element id="documentation" name="documentation">
  1572.         <xs:annotation>
  1573.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-documentation"> Defines text comments in
  1574.                 a schema. </xs:documentation>
  1575.         </xs:annotation>
  1576.         <xs:complexType mixed="true">
  1577.             <xs:sequence maxOccurs="unbounded" minOccurs="0">
  1578.                 <xs:any processContents="lax"/>
  1579.             </xs:sequence>
  1580.             <xs:attribute name="source" type="xs:anyURI">
  1581.                 <xs:annotation>
  1582.                     <xs:documentation>Optional. Specifies the source of the application information.</xs:documentation>
  1583.                 </xs:annotation>
  1584.             </xs:attribute>
  1585.             <xs:attribute ref="xml:lang">
  1586.                 <xs:annotation>
  1587.                     <xs:documentation> Optional. Specifies the language used in the contents.</xs:documentation>
  1588.                 </xs:annotation>
  1589.             </xs:attribute>
  1590.         </xs:complexType>
  1591.     </xs:element>
  1592.     <xs:element id="annotation" name="annotation">
  1593.         <xs:annotation>
  1594.             <xs:documentation source="http://www.w3.org/TR/xmlschema-1/#element-annotation">Specifies schema comments.</xs:documentation>
  1595.         </xs:annotation>
  1596.         <xs:complexType>
  1597.             <xs:complexContent>
  1598.                 <xs:extension base="xs:openAttrs">
  1599.                     <xs:choice maxOccurs="unbounded" minOccurs="0">
  1600.                         <xs:element ref="xs:appinfo"/>
  1601.                         <xs:element ref="xs:documentation"/>
  1602.                     </xs:choice>
  1603.                     <xs:attribute name="id" type="xs:ID">
  1604.                         <xs:annotation>
  1605.                             <xs:documentation>Optional. Specifies a unique ID for the element.</xs:documentation>
  1606.                         </xs:annotation>
  1607.                     </xs:attribute>
  1608.                 </xs:extension>
  1609.             </xs:complexContent>
  1610.         </xs:complexType>
  1611.     </xs:element>
  1612.     <xs:annotation>
  1613.         <xs:documentation> notations for use within XML Schema schemas</xs:documentation>
  1614.     </xs:annotation>
  1615.     <xs:notation name="XMLSchemaStructures" public="structures" system="http://www.w3.org/2000/08/XMLSchema.xsd"/>
  1616.     <xs:notation name="XML" public="REC-xml-19980210" system="http://www.w3.org/TR/1998/REC-xml-19980210"/>
  1617.     <xs:complexType mixed="true" name="anyType">
  1618.         <xs:annotation>
  1619.             <xs:documentation> Not the real urType, but as close an approximation as we can get in the XML representation.</xs:documentation>
  1620.         </xs:annotation>
  1621.         <xs:sequence>
  1622.             <xs:any maxOccurs="unbounded" minOccurs="0"/>
  1623.         </xs:sequence>
  1624.         <xs:anyAttribute/>
  1625.     </xs:complexType>
  1626.     <xs:annotation>
  1627.         <xs:documentation> First the built-in primitive datatypes. These definitions are for information only, the real
  1628.             built-in definitions are magic. Note in particular that there is no type named 'anySimpleType'. The
  1629.             primitives should really be derived from no type at all, and anySimpleType should be derived as a union of
  1630.             all the primitives. </xs:documentation>
  1631.         <xs:documentation> For each built-in datatype in this schema (both primitive and derived) can be uniquely
  1632.             addressed via a URI constructed as follows: 1) the base URI is the URI of the XML Schema namespace 2) the
  1633.             fragment identifier is the name of the datatype For example, to address the int datatype, the URI is:
  1634.             http://www.w3.org/2001/XMLSchema#int Additionally, each facet definition element can be uniquely addressed
  1635.             via a URI constructed as follows: 1) the base URI is the URI of the XML Schema namespace 2) the fragment
  1636.             identifier is the name of the facet For example, to address the maxInclusive facet, the URI is:
  1637.             http://www.w3.org/2001/XMLSchema#maxInclusive Additionally, each facet usage in a built-in datatype
  1638.             definition can be uniquely addressed via a URI constructed as follows: 1) the base URI is the URI of the XML
  1639.             Schema namespace 2) the fragment identifier is the name of the datatype, followed by a period (".") followed
  1640.             by the name of the facet For example, to address the usage of the maxInclusive facet in the definition of
  1641.             int, the URI is: http://www.w3.org/2001/XMLSchema#int.maxInclusive. </xs:documentation>
  1642.     </xs:annotation>
  1643.     <xs:simpleType id="string" name="string">
  1644.         <xs:restriction base="xs:anySimpleType">
  1645.             <xs:whiteSpace id="string.preserve" value="preserve"/>
  1646.         </xs:restriction>
  1647.     </xs:simpleType>
  1648.     <xs:simpleType id="boolean" name="boolean">
  1649.         <xs:restriction base="xs:anySimpleType">
  1650.             <xs:whiteSpace fixed="true" id="boolean.whiteSpace" value="collapse"/>
  1651.         </xs:restriction>
  1652.     </xs:simpleType>
  1653.     <xs:simpleType id="float" name="float">
  1654.         <xs:restriction base="xs:anySimpleType">
  1655.             <xs:whiteSpace fixed="true" id="float.whiteSpace" value="collapse"/>
  1656.         </xs:restriction>
  1657.     </xs:simpleType>
  1658.     <xs:simpleType id="double" name="double">
  1659.         <xs:restriction base="xs:anySimpleType">
  1660.             <xs:whiteSpace fixed="true" id="double.whiteSpace" value="collapse"/>
  1661.         </xs:restriction>
  1662.     </xs:simpleType>
  1663.     <xs:simpleType id="decimal" name="decimal">
  1664.         <xs:restriction base="xs:anySimpleType">
  1665.             <xs:whiteSpace fixed="true" id="decimal.whiteSpace" value="collapse"/>
  1666.         </xs:restriction>
  1667.     </xs:simpleType>
  1668.     <xs:simpleType id="duration" name="duration">
  1669.         <xs:restriction base="xs:anySimpleType">
  1670.             <xs:whiteSpace fixed="true" id="duration.whiteSpace" value="collapse"/>
  1671.         </xs:restriction>
  1672.     </xs:simpleType>
  1673.     <xs:simpleType id="dateTime" name="dateTime">
  1674.         <xs:restriction base="xs:anySimpleType">
  1675.             <xs:whiteSpace fixed="true" id="dateTime.whiteSpace" value="collapse"/>
  1676.         </xs:restriction>
  1677.     </xs:simpleType>
  1678.     <xs:simpleType id="time" name="time">
  1679.         <xs:restriction base="xs:anySimpleType">
  1680.             <xs:whiteSpace fixed="true" id="time.whiteSpace" value="collapse"/>
  1681.         </xs:restriction>
  1682.     </xs:simpleType>
  1683.     <xs:simpleType id="date" name="date">
  1684.         <xs:restriction base="xs:anySimpleType">
  1685.             <xs:whiteSpace fixed="true" id="date.whiteSpace" value="collapse"/>
  1686.         </xs:restriction>
  1687.     </xs:simpleType>
  1688.     <xs:simpleType id="gYearMonth" name="gYearMonth">
  1689.         <xs:restriction base="xs:anySimpleType">
  1690.             <xs:whiteSpace fixed="true" id="gYearMonth.whiteSpace" value="collapse"/>
  1691.         </xs:restriction>
  1692.     </xs:simpleType>
  1693.     <xs:simpleType id="gYear" name="gYear">
  1694.         <xs:restriction base="xs:anySimpleType">
  1695.             <xs:whiteSpace fixed="true" id="gYear.whiteSpace" value="collapse"/>
  1696.         </xs:restriction>
  1697.     </xs:simpleType>
  1698.     <xs:simpleType id="gMonthDay" name="gMonthDay">
  1699.         <xs:restriction base="xs:anySimpleType">
  1700.             <xs:whiteSpace fixed="true" id="gMonthDay.whiteSpace" value="collapse"/>
  1701.         </xs:restriction>
  1702.     </xs:simpleType>
  1703.     <xs:simpleType id="gDay" name="gDay">
  1704.         <xs:restriction base="xs:anySimpleType">
  1705.             <xs:whiteSpace fixed="true" id="gDay.whiteSpace" value="collapse"/>
  1706.         </xs:restriction>
  1707.     </xs:simpleType>
  1708.     <xs:simpleType id="gMonth" name="gMonth">
  1709.         <xs:restriction base="xs:anySimpleType">
  1710.             <xs:whiteSpace fixed="true" id="gMonth.whiteSpace" value="collapse"/>
  1711.         </xs:restriction>
  1712.     </xs:simpleType>
  1713.     <xs:simpleType id="hexBinary" name="hexBinary">
  1714.         <xs:restriction base="xs:anySimpleType">
  1715.             <xs:whiteSpace fixed="true" id="hexBinary.whiteSpace" value="collapse"/>
  1716.         </xs:restriction>
  1717.     </xs:simpleType>
  1718.     <xs:simpleType id="base64Binary" name="base64Binary">
  1719.         <xs:restriction base="xs:anySimpleType">
  1720.             <xs:whiteSpace fixed="true" id="base64Binary.whiteSpace" value="collapse"/>
  1721.         </xs:restriction>
  1722.     </xs:simpleType>
  1723.     <xs:simpleType id="anyURI" name="anyURI">
  1724.         <xs:restriction base="xs:anySimpleType">
  1725.             <xs:whiteSpace fixed="true" id="anyURI.whiteSpace" value="collapse"/>
  1726.         </xs:restriction>
  1727.     </xs:simpleType>
  1728.     <xs:simpleType id="QName" name="QName">
  1729.         <xs:restriction base="xs:anySimpleType">
  1730.             <xs:whiteSpace fixed="true" id="QName.whiteSpace" value="collapse"/>
  1731.         </xs:restriction>
  1732.     </xs:simpleType>
  1733.     <xs:simpleType id="NOTATION" name="NOTATION">
  1734.         <xs:annotation>
  1735.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#NOTATION"/>
  1736.             <xs:documentation> NOTATION cannot be used directly in a schema; rather a type must be derived from it by
  1737.                 specifying at least one enumeration facet whose value is the name of a NOTATION declared in the schema. </xs:documentation>
  1738.         </xs:annotation>
  1739.         <xs:restriction base="xs:anySimpleType">
  1740.             <xs:whiteSpace fixed="true" id="NOTATION.whiteSpace" value="collapse"/>
  1741.         </xs:restriction>
  1742.     </xs:simpleType>
  1743.     <xs:annotation>
  1744.         <xs:documentation> Now the derived primitive types. </xs:documentation>
  1745.     </xs:annotation>
  1746.     <xs:simpleType id="normalizedString" name="normalizedString">
  1747.         <xs:restriction base="xs:string">
  1748.             <xs:whiteSpace id="normalizedString.whiteSpace" value="replace"/>
  1749.         </xs:restriction>
  1750.     </xs:simpleType>
  1751.     <xs:simpleType id="token" name="token">
  1752.         <xs:restriction base="xs:normalizedString">
  1753.             <xs:whiteSpace id="token.whiteSpace" value="collapse"/>
  1754.         </xs:restriction>
  1755.     </xs:simpleType>
  1756.     <xs:simpleType id="language" name="language">
  1757.         <xs:restriction base="xs:token">
  1758.             <xs:pattern id="language.pattern" value="([a-zA-Z]{2}|[iI]-[a-zA-Z]+|[xX]-[a-zA-Z]{1,8})(-[a-zA-Z]{1,8})*">
  1759.                 <xs:annotation>
  1760.                     <xs:documentation source="http://www.w3.org/TR/REC-xml#NT-LanguageID"> pattern specifies the content
  1761.                         of section 2.12 of XML 1.0e2 and RFC 1766 </xs:documentation>
  1762.                 </xs:annotation>
  1763.             </xs:pattern>
  1764.         </xs:restriction>
  1765.     </xs:simpleType>
  1766.     <xs:simpleType id="IDREFS" name="IDREFS">
  1767.         <xs:restriction>
  1768.             <xs:simpleType>
  1769.                 <xs:list itemType="xs:IDREF"/>
  1770.             </xs:simpleType>
  1771.             <xs:minLength id="IDREFS.minLength" value="1"/>
  1772.         </xs:restriction>
  1773.     </xs:simpleType>
  1774.     <xs:simpleType id="ENTITIES" name="ENTITIES">
  1775.         <xs:restriction>
  1776.             <xs:simpleType>
  1777.                 <xs:list itemType="xs:ENTITY"/>
  1778.             </xs:simpleType>
  1779.             <xs:minLength id="ENTITIES.minLength" value="1"/>
  1780.         </xs:restriction>
  1781.     </xs:simpleType>
  1782.     <xs:simpleType id="NMTOKEN" name="NMTOKEN">
  1783.         <xs:restriction base="xs:token">
  1784.             <xs:pattern id="NMTOKEN.pattern" value="\c+">
  1785.                 <xs:annotation>
  1786.                     <xs:documentation source="http://www.w3.org/TR/REC-xml#NT-Nmtoken"> pattern matches production 7
  1787.                         from the XML spec </xs:documentation>
  1788.                 </xs:annotation>
  1789.             </xs:pattern>
  1790.         </xs:restriction>
  1791.     </xs:simpleType>
  1792.     <xs:simpleType id="NMTOKENS" name="NMTOKENS">
  1793.         <xs:restriction>
  1794.             <xs:simpleType>
  1795.                 <xs:list itemType="xs:NMTOKEN"/>
  1796.             </xs:simpleType>
  1797.             <xs:minLength id="NMTOKENS.minLength" value="1"/>
  1798.         </xs:restriction>
  1799.     </xs:simpleType>
  1800.     <xs:simpleType id="Name" name="Name">
  1801.         <xs:restriction base="xs:token">
  1802.             <xs:pattern id="Name.pattern" value="\i\c*">
  1803.                 <xs:annotation>
  1804.                     <xs:documentation source="http://www.w3.org/TR/REC-xml#NT-Name"> pattern matches production 5 from
  1805.                         the XML spec </xs:documentation>
  1806.                 </xs:annotation>
  1807.             </xs:pattern>
  1808.         </xs:restriction>
  1809.     </xs:simpleType>
  1810.     <xs:simpleType id="NCName" name="NCName">
  1811.         <xs:restriction base="xs:Name">
  1812.             <xs:pattern id="NCName.pattern" value="[\i-[:]][\c-[:]]*">
  1813.                 <xs:annotation>
  1814.                     <xs:documentation source="http://www.w3.org/TR/REC-xml-names/#NT-NCName"> pattern matches production
  1815.                         4 from the Namespaces in XML spec </xs:documentation>
  1816.                 </xs:annotation>
  1817.             </xs:pattern>
  1818.         </xs:restriction>
  1819.     </xs:simpleType>
  1820.     <xs:simpleType id="ID" name="ID">
  1821.         <xs:restriction base="xs:NCName"/>
  1822.     </xs:simpleType>
  1823.     <xs:simpleType id="IDREF" name="IDREF">
  1824.         <xs:restriction base="xs:NCName"/>
  1825.     </xs:simpleType>
  1826.     <xs:simpleType id="ENTITY" name="ENTITY">
  1827.         <xs:restriction base="xs:NCName"/>
  1828.     </xs:simpleType>
  1829.     <xs:simpleType id="integer" name="integer">
  1830.         <xs:restriction base="xs:decimal">
  1831.             <xs:fractionDigits fixed="true" id="integer.fractionDigits" value="0"/>
  1832.         </xs:restriction>
  1833.     </xs:simpleType>
  1834.     <xs:simpleType id="nonPositiveInteger" name="nonPositiveInteger">
  1835.         <xs:restriction base="xs:integer">
  1836.             <xs:maxInclusive id="nonPositiveInteger.maxInclusive" value="0"/>
  1837.         </xs:restriction>
  1838.     </xs:simpleType>
  1839.     <xs:simpleType id="negativeInteger" name="negativeInteger">
  1840.         <xs:restriction base="xs:nonPositiveInteger">
  1841.             <xs:maxInclusive id="negativeInteger.maxInclusive" value="-1"/>
  1842.         </xs:restriction>
  1843.     </xs:simpleType>
  1844.     <xs:simpleType id="long" name="long">
  1845.         <xs:restriction base="xs:integer">
  1846.             <xs:minInclusive id="long.minInclusive" value="-9223372036854775808"/>
  1847.             <xs:maxInclusive id="long.maxInclusive" value="9223372036854775807"/>
  1848.         </xs:restriction>
  1849.     </xs:simpleType>
  1850.     <xs:simpleType id="int" name="int">
  1851.         <xs:restriction base="xs:long">
  1852.             <xs:minInclusive id="int.minInclusive" value="-2147483648"/>
  1853.             <xs:maxInclusive id="int.maxInclusive" value="2147483647"/>
  1854.         </xs:restriction>
  1855.     </xs:simpleType>
  1856.     <xs:simpleType id="short" name="short">
  1857.         <xs:restriction base="xs:int">
  1858.             <xs:minInclusive id="short.minInclusive" value="-32768"/>
  1859.             <xs:maxInclusive id="short.maxInclusive" value="32767"/>
  1860.         </xs:restriction>
  1861.     </xs:simpleType>
  1862.     <xs:simpleType id="byte" name="byte">
  1863.         <xs:restriction base="xs:short">
  1864.             <xs:minInclusive id="byte.minInclusive" value="-128"/>
  1865.             <xs:maxInclusive id="byte.maxInclusive" value="127"/>
  1866.         </xs:restriction>
  1867.     </xs:simpleType>
  1868.     <xs:simpleType id="nonNegativeInteger" name="nonNegativeInteger">
  1869.         <xs:restriction base="xs:integer">
  1870.             <xs:minInclusive id="nonNegativeInteger.minInclusive" value="0"/>
  1871.         </xs:restriction>
  1872.     </xs:simpleType>
  1873.     <xs:simpleType id="unsignedLong" name="unsignedLong">
  1874.         <xs:restriction base="xs:nonNegativeInteger">
  1875.             <xs:maxInclusive id="unsignedLong.maxInclusive" value="18446744073709551615"/>
  1876.         </xs:restriction>
  1877.     </xs:simpleType>
  1878.     <xs:simpleType id="unsignedInt" name="unsignedInt">
  1879.         <xs:restriction base="xs:unsignedLong">
  1880.             <xs:maxInclusive id="unsignedInt.maxInclusive" value="4294967295"/>
  1881.         </xs:restriction>
  1882.     </xs:simpleType>
  1883.     <xs:simpleType id="unsignedShort" name="unsignedShort">
  1884.         <xs:restriction base="xs:unsignedInt">
  1885.             <xs:maxInclusive id="unsignedShort.maxInclusive" value="65535"/>
  1886.         </xs:restriction>
  1887.     </xs:simpleType>
  1888.     <xs:simpleType id="unsignedByte" name="unsignedByte">
  1889.         <xs:restriction base="xs:unsignedShort">
  1890.             <xs:maxInclusive id="unsignedByte.maxInclusive" value="255"/>
  1891.         </xs:restriction>
  1892.     </xs:simpleType>
  1893.     <xs:simpleType id="positiveInteger" name="positiveInteger">
  1894.         <xs:restriction base="xs:nonNegativeInteger">
  1895.             <xs:minInclusive id="positiveInteger.minInclusive" value="1"/>
  1896.         </xs:restriction>
  1897.     </xs:simpleType>
  1898.     <xs:simpleType name="derivationControl">
  1899.         <xs:annotation>
  1900.             <xs:documentation> A utility type, not for public use.</xs:documentation>
  1901.         </xs:annotation>
  1902.         <xs:restriction base="xs:NMTOKEN">
  1903.             <xs:enumeration value="substitution"/>
  1904.             <xs:enumeration value="extension"/>
  1905.             <xs:enumeration value="restriction"/>
  1906.             <xs:enumeration value="list"/>
  1907.             <xs:enumeration value="union"/>
  1908.         </xs:restriction>
  1909.     </xs:simpleType>
  1910.     <xs:group name="simpleDerivation">
  1911.         <xs:choice>
  1912.             <xs:element ref="xs:restriction"/>
  1913.             <xs:element ref="xs:list"/>
  1914.             <xs:element ref="xs:union"/>
  1915.         </xs:choice>
  1916.     </xs:group>
  1917.     <xs:simpleType name="simpleDerivationSet">
  1918.         <xs:annotation>
  1919.             <xs:documentation> #all or (possibly empty) subset of {restriction, union, list} </xs:documentation>
  1920.             <xs:documentation> A utility type, not for public use.</xs:documentation>
  1921.         </xs:annotation>
  1922.         <xs:union>
  1923.             <xs:simpleType>
  1924.                 <xs:restriction base="xs:token">
  1925.                     <xs:enumeration value="#all"/>
  1926.                 </xs:restriction>
  1927.             </xs:simpleType>
  1928.             <xs:simpleType>
  1929.                 <xs:list>
  1930.                     <xs:simpleType>
  1931.                         <xs:restriction base="xs:derivationControl">
  1932.                             <xs:enumeration value="list"/>
  1933.                             <xs:enumeration value="union"/>
  1934.                             <xs:enumeration value="restriction"/>
  1935.                         </xs:restriction>
  1936.                         </xs:simpleType>
  1937.                 </xs:list>                
  1938.             </xs:simpleType>
  1939.         </xs:union>
  1940.     </xs:simpleType>
  1941.     <xs:complexType abstract="true" name="simpleType">
  1942.         <xs:complexContent>
  1943.             <xs:extension base="xs:annotated">
  1944.                 <xs:group ref="xs:simpleDerivation"/>
  1945.                 <xs:attribute name="final" type="xs:simpleDerivationSet">
  1946.                     <xs:annotation>
  1947.                         <xs:documentation>Specifies the value of the final attribute on this simpleType. The final
  1948.                             attribute prevents a specified type of derivation. For simpleType elements this value can
  1949.                             contain #all or a list that is a subset of restriction, list or union: <ul>
  1950.                                 <li>restriction - prevents derivation by restriction</li>
  1951.                                 <li>list - prevents derivation by list</li>
  1952.                                 <li>union - prevents derivation by union</li>
  1953.                                 <li>#all - prevents all derivation</li>
  1954.                             </ul>
  1955.                         </xs:documentation>
  1956.                     </xs:annotation>
  1957.                 </xs:attribute>
  1958.                 <xs:attribute name="name" type="xs:NCName">
  1959.                     <xs:annotation>
  1960.                         <xs:documentation> Can be restricted to required or forbidden. </xs:documentation>
  1961.                     </xs:annotation>
  1962.                 </xs:attribute>
  1963.             </xs:extension>
  1964.         </xs:complexContent>
  1965.     </xs:complexType>
  1966.     <xs:complexType name="topLevelSimpleType">
  1967.         <xs:complexContent>
  1968.             <xs:restriction base="xs:simpleType">
  1969.                 <xs:sequence>
  1970.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  1971.                     <xs:group ref="xs:simpleDerivation"/>
  1972.                 </xs:sequence>
  1973.                 <xs:attribute name="name" type="xs:NCName" use="required">
  1974.                     <xs:annotation>
  1975.                         <xs:documentation>Specifies the required top level simple type name.</xs:documentation>
  1976.                     </xs:annotation>
  1977.                 </xs:attribute>
  1978.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1979.             </xs:restriction>
  1980.         </xs:complexContent>
  1981.     </xs:complexType>
  1982.     <xs:complexType name="localSimpleType">
  1983.         <xs:complexContent>
  1984.             <xs:restriction base="xs:simpleType">
  1985.                 <xs:sequence>
  1986.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  1987.                     <xs:group ref="xs:simpleDerivation"/>
  1988.                 </xs:sequence>
  1989.                 <xs:attribute name="name" use="prohibited">
  1990.                     <xs:annotation>
  1991.                         <xs:documentation> Forbidden when nested. </xs:documentation>
  1992.                     </xs:annotation>
  1993.                 </xs:attribute>
  1994.                 <xs:attribute name="final" use="prohibited"/>
  1995.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  1996.             </xs:restriction>
  1997.         </xs:complexContent>
  1998.     </xs:complexType>
  1999.     <xs:element id="simpleType" name="simpleType" type="xs:topLevelSimpleType">
  2000.         <xs:annotation>
  2001.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-simpleType"> Defines a simple type. A
  2002.                 simple type definition is a set of constraints on strings and information about the values they encode,
  2003.                 applicable to the normalized value of an attribute information item or of an element information item
  2004.                 with no element children. Informally, it applies to the values of attributes and the text-only content
  2005.                 of elements. </xs:documentation>
  2006.         </xs:annotation>
  2007.     </xs:element>
  2008.     <xs:group name="facets">
  2009.         <xs:annotation>
  2010.             <xs:documentation> We should use a substitution group for facets, but that's ruled out because it would
  2011.                 allow users to add their own, which we're not ready for yet. </xs:documentation>
  2012.         </xs:annotation>
  2013.         <xs:choice>
  2014.             <xs:element ref="xs:minExclusive"/>
  2015.             <xs:element ref="xs:minInclusive"/>
  2016.             <xs:element ref="xs:maxExclusive"/>
  2017.             <xs:element ref="xs:maxInclusive"/>
  2018.             <xs:element ref="xs:totalDigits"/>
  2019.             <xs:element ref="xs:fractionDigits"/>
  2020.             <xs:element ref="xs:length"/>
  2021.             <xs:element ref="xs:minLength"/>
  2022.             <xs:element ref="xs:maxLength"/>
  2023.             <xs:element ref="xs:enumeration"/>
  2024.             <xs:element ref="xs:whiteSpace"/>
  2025.             <xs:element ref="xs:pattern"/>
  2026.         </xs:choice>
  2027.     </xs:group>
  2028.     <xs:group name="simpleRestrictionModel">
  2029.         <xs:sequence>
  2030.             <xs:element minOccurs="0" name="simpleType" type="xs:localSimpleType">
  2031.                 <xs:annotation>
  2032.                     <xs:documentation>Specifies a local simple type.</xs:documentation>
  2033.                 </xs:annotation>
  2034.             </xs:element>
  2035.             <xs:group maxOccurs="unbounded" minOccurs="0" ref="xs:facets"/>
  2036.         </xs:sequence>
  2037.     </xs:group>
  2038.     <xs:element id="restriction" name="restriction">
  2039.         <xs:annotation>
  2040.             <xs:documentation> Defines restrictions on a simpleType, simpleContent, or a complexContent. </xs:documentation>
  2041.         </xs:annotation>
  2042.         <xs:complexType>
  2043.             <xs:annotation>
  2044.                 <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-restriction"> base attribute and
  2045.                     simpleType child are mutually exclusive, but one or other is required </xs:documentation>
  2046.             </xs:annotation>
  2047.             <xs:complexContent>
  2048.                 <xs:extension base="xs:annotated">
  2049.                     <xs:group ref="xs:simpleRestrictionModel"/>
  2050.                     <xs:attribute name="base" type="xs:QName" use="optional">
  2051.                         <xs:annotation>
  2052.                             <xs:documentation>Specifies the base type for the restriction.</xs:documentation>
  2053.                         </xs:annotation>
  2054.                     </xs:attribute>
  2055.                 </xs:extension>
  2056.             </xs:complexContent>
  2057.         </xs:complexType>
  2058.     </xs:element>
  2059.     <xs:element id="list" name="list">
  2060.         <xs:annotation>
  2061.             <xs:documentation> Defines a simple type element as a list of values. </xs:documentation>
  2062.         </xs:annotation>
  2063.         <xs:complexType>
  2064.             <xs:annotation>
  2065.                 <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-list"> itemType attribute and
  2066.                     simpleType child are mutually exclusive, but one or other is required </xs:documentation>
  2067.             </xs:annotation>
  2068.             <xs:complexContent>
  2069.                 <xs:extension base="xs:annotated">
  2070.                     <xs:sequence>
  2071.                         <xs:element minOccurs="0" name="simpleType" type="xs:localSimpleType">
  2072.                             <xs:annotation>
  2073.                                 <xs:documentation> Defines a simple type and specifies the constraints and information
  2074.                                     about the values of attributes or text-only elements. </xs:documentation>
  2075.                             </xs:annotation>
  2076.                         </xs:element>
  2077.                     </xs:sequence>
  2078.                     <xs:attribute name="itemType" type="xs:QName" use="optional">
  2079.                         <xs:annotation>
  2080.                             <xs:documentation> Specifies the name of a built-in data type or simpleType element defined
  2081.                                 in this or another schema. This attribute is not allowed if the content contains a
  2082.                                 simpleType element, otherwise it is required. </xs:documentation>
  2083.                         </xs:annotation>
  2084.                     </xs:attribute>
  2085.                 </xs:extension>
  2086.             </xs:complexContent>
  2087.         </xs:complexType>
  2088.     </xs:element>
  2089.     <xs:element id="union" name="union">
  2090.         <xs:annotation>
  2091.             <xs:documentation> Defines a simple type as a collection (union) of values from specified simple data types. </xs:documentation>
  2092.         </xs:annotation>
  2093.         <xs:complexType>
  2094.             <xs:annotation>
  2095.                 <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-union"> memberTypes attribute must
  2096.                     be non-empty or there must be at least one simpleType child </xs:documentation>
  2097.             </xs:annotation>
  2098.             <xs:complexContent>
  2099.                 <xs:extension base="xs:annotated">
  2100.                     <xs:sequence>
  2101.                         <xs:element maxOccurs="unbounded" minOccurs="0" name="simpleType" type="xs:localSimpleType">
  2102.                             <xs:annotation>
  2103.                                 <xs:documentation> Defines a simple type and specifies the constraints and information
  2104.                                     about the values of attributes or text-only elements. </xs:documentation>
  2105.                             </xs:annotation>
  2106.                         </xs:element>
  2107.                     </xs:sequence>
  2108.                     <xs:attribute name="memberTypes" use="optional">
  2109.                         <xs:annotation>
  2110.                             <xs:documentation>Optional. Specifies a list of built-in data types or simpleType elements
  2111.                                 defined in a schema. </xs:documentation>
  2112.                         </xs:annotation>
  2113.                         <xs:simpleType>
  2114.                             <xs:list itemType="xs:QName"/>
  2115.                         </xs:simpleType>
  2116.                     </xs:attribute>
  2117.                 </xs:extension>
  2118.             </xs:complexContent>
  2119.         </xs:complexType>
  2120.     </xs:element>
  2121.     <xs:complexType name="facet">
  2122.         <xs:complexContent>
  2123.             <xs:extension base="xs:annotated">
  2124.                 <xs:attribute name="value" use="required">
  2125.                     <xs:annotation>
  2126.                         <xs:documentation>Specifies the facet value.</xs:documentation>
  2127.                     </xs:annotation>
  2128.                 </xs:attribute>
  2129.                 <xs:attribute default="false" name="fixed" type="xs:boolean" use="optional">
  2130.                     <xs:annotation>
  2131.                         <xs:documentation>Default is false, specifies whether the content has a fixed value.</xs:documentation>
  2132.                     </xs:annotation>
  2133.                 </xs:attribute>
  2134.             </xs:extension>
  2135.         </xs:complexContent>
  2136.     </xs:complexType>
  2137.     <xs:complexType name="noFixedFacet">
  2138.         <xs:complexContent>
  2139.             <xs:restriction base="xs:facet">
  2140.                 <xs:sequence>
  2141.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  2142.                 </xs:sequence>
  2143.                 <xs:attribute name="fixed" use="prohibited"/>
  2144.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  2145.             </xs:restriction>
  2146.         </xs:complexContent>
  2147.     </xs:complexType>
  2148.     <xs:element id="minExclusive" name="minExclusive" type="xs:facet">
  2149.         <xs:annotation>
  2150.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-minExclusive"> Specifies the lower
  2151.                 bounds for numeric values (the value must be greater than this value). </xs:documentation>
  2152.         </xs:annotation>
  2153.     </xs:element>
  2154.     <xs:element id="minInclusive" name="minInclusive" type="xs:facet">
  2155.         <xs:annotation>
  2156.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-minInclusive"> Specifies the lower
  2157.                 bounds for numeric values (the value must be greater than or equal to this value).</xs:documentation>
  2158.         </xs:annotation>
  2159.     </xs:element>
  2160.     <xs:element id="maxExclusive" name="maxExclusive" type="xs:facet">
  2161.         <xs:annotation>
  2162.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-maxExclusive"> Specifies the upper
  2163.                 bounds for numeric values (the value must be less than this value). </xs:documentation>
  2164.         </xs:annotation>
  2165.     </xs:element>
  2166.     <xs:element id="maxInclusive" name="maxInclusive" type="xs:facet">
  2167.         <xs:annotation>
  2168.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-maxInclusive"> Specifies the upper
  2169.                 bounds for numeric values (the value must be less than or equal to this value). </xs:documentation>
  2170.         </xs:annotation>
  2171.     </xs:element>
  2172.     <xs:complexType name="numFacet">
  2173.         <xs:complexContent>
  2174.             <xs:restriction base="xs:facet">
  2175.                 <xs:sequence>
  2176.                     <xs:element minOccurs="0" ref="xs:annotation"/>
  2177.                 </xs:sequence>
  2178.                 <xs:attribute name="value" type="xs:nonNegativeInteger" use="required">
  2179.                     <xs:annotation>
  2180.                         <xs:documentation>Specifies the facet value.</xs:documentation>
  2181.                     </xs:annotation>
  2182.                 </xs:attribute>
  2183.                 <xs:anyAttribute namespace="##other" processContents="lax"/>
  2184.             </xs:restriction>
  2185.         </xs:complexContent>
  2186.     </xs:complexType>
  2187.     <xs:element id="totalDigits" name="totalDigits">
  2188.         <xs:annotation>
  2189.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-totalDigits"> Specifies the exact number
  2190.                 of digits allowed. Must be greater than zero. </xs:documentation>
  2191.         </xs:annotation>
  2192.         <xs:complexType>
  2193.             <xs:complexContent>
  2194.                 <xs:restriction base="xs:numFacet">
  2195.                     <xs:sequence>
  2196.                         <xs:element minOccurs="0" ref="xs:annotation"/>
  2197.                     </xs:sequence>
  2198.                     <xs:attribute name="value" type="xs:positiveInteger" use="required">
  2199.                         <xs:annotation>
  2200.                             <xs:documentation>Specifies the facet value.</xs:documentation>
  2201.                         </xs:annotation>
  2202.                     </xs:attribute>
  2203.                     <xs:anyAttribute namespace="##other" processContents="lax"/>
  2204.                 </xs:restriction>
  2205.             </xs:complexContent>
  2206.         </xs:complexType>
  2207.     </xs:element>
  2208.     <xs:element id="fractionDigits" name="fractionDigits" type="xs:numFacet">
  2209.         <xs:annotation>
  2210.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-fractionDigits"> Specifies the maximum
  2211.                 number of decimal places allowed. Must be equal to or greater than zero. </xs:documentation>
  2212.         </xs:annotation>
  2213.     </xs:element>
  2214.     <xs:element id="length" name="length" type="xs:numFacet">
  2215.         <xs:annotation>
  2216.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-length"> Specifies the exact number of
  2217.                 characters or list items allowed. Must be equal to or greater than zero. </xs:documentation>
  2218.         </xs:annotation>
  2219.     </xs:element>
  2220.     <xs:element id="minLength" name="minLength" type="xs:numFacet">
  2221.         <xs:annotation>
  2222.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-minLength"> Specifies the minimum number
  2223.                 of characters or list items allowed. Must be equal to or greater than zero. </xs:documentation>
  2224.         </xs:annotation>
  2225.     </xs:element>
  2226.     <xs:element id="maxLength" name="maxLength" type="xs:numFacet">
  2227.         <xs:annotation>
  2228.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-maxLength"> Specifies the maximum number
  2229.                 of characters or list items allowed. Must be equal to or greater than zero. </xs:documentation>
  2230.         </xs:annotation>
  2231.     </xs:element>
  2232.     <xs:element id="enumeration" name="enumeration" type="xs:noFixedFacet">
  2233.         <xs:annotation>
  2234.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-enumeration"> Defines a list of
  2235.                 acceptable values. </xs:documentation>
  2236.         </xs:annotation>
  2237.     </xs:element>
  2238.     <xs:element id="whiteSpace" name="whiteSpace">
  2239.         <xs:annotation>
  2240.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-whiteSpace"> Specifies how white space
  2241.                 (line feeds, tabs, spaces, and carriage returns) are handled. </xs:documentation>
  2242.         </xs:annotation>
  2243.         <xs:complexType>
  2244.             <xs:complexContent>
  2245.                 <xs:restriction base="xs:facet">
  2246.                     <xs:sequence>
  2247.                         <xs:element minOccurs="0" ref="xs:annotation"/>
  2248.                     </xs:sequence>
  2249.                     <xs:attribute name="value" use="required">
  2250.                         <xs:annotation>
  2251.                             <xs:documentation>Specifies the facet value.</xs:documentation>
  2252.                         </xs:annotation>
  2253.                         <xs:simpleType>
  2254.                             <xs:restriction base="xs:NMTOKEN">
  2255.                                 <xs:enumeration value="preserve"/>
  2256.                                 <xs:enumeration value="replace"/>
  2257.                                 <xs:enumeration value="collapse"/>
  2258.                             </xs:restriction>
  2259.                         </xs:simpleType>
  2260.                     </xs:attribute>
  2261.                     <xs:anyAttribute namespace="##other" processContents="lax"/>
  2262.                 </xs:restriction>
  2263.             </xs:complexContent>
  2264.         </xs:complexType>
  2265.     </xs:element>
  2266.     <xs:element id="pattern" name="pattern" type="xs:noFixedFacet">
  2267.         <xs:annotation>
  2268.             <xs:documentation source="http://www.w3.org/TR/xmlschema-2/#element-pattern"> Defines the exact sequence of
  2269.                 characters that are acceptable. </xs:documentation>
  2270.         </xs:annotation>
  2271.     </xs:element>
  2272. </xs:schema>
  2273.