minixsv/datatypes.xsd
changeset 0 b622defdfd98
equal deleted inserted replaced
-1:000000000000 0:b622defdfd98
       
     1 <?xml version='1.0'?>
       
     2 <!-- XML Schema schema for XML Schemas: Part 2: Datatypes -->
       
     3 <!DOCTYPE xs:schema PUBLIC "-//W3C//DTD XMLSCHEMA 200102//EN"
       
     4           "XMLSchema.dtd" [
       
     5 
       
     6 <!--
       
     7      keep this schema XML1.0 DTD valid
       
     8   -->
       
     9         <!ENTITY % schemaAttrs 'xmlns:hfp CDATA #IMPLIED'>
       
    10 
       
    11         <!ELEMENT hfp:hasFacet EMPTY>
       
    12         <!ATTLIST hfp:hasFacet
       
    13                 name NMTOKEN #REQUIRED>
       
    14                 
       
    15         <!ELEMENT hfp:hasProperty EMPTY>
       
    16         <!ATTLIST hfp:hasProperty
       
    17                 name NMTOKEN #REQUIRED
       
    18                 value CDATA #REQUIRED>
       
    19 <!--
       
    20         Make sure that processors that do not read the external
       
    21         subset will know about the various IDs we declare
       
    22   -->
       
    23         <!ATTLIST xs:simpleType id ID #IMPLIED>
       
    24         <!ATTLIST xs:maxExclusive id ID #IMPLIED>
       
    25         <!ATTLIST xs:minExclusive id ID #IMPLIED>
       
    26         <!ATTLIST xs:maxInclusive id ID #IMPLIED>
       
    27         <!ATTLIST xs:minInclusive id ID #IMPLIED>
       
    28         <!ATTLIST xs:totalDigits id ID #IMPLIED>
       
    29         <!ATTLIST xs:fractionDigits id ID #IMPLIED>
       
    30         <!ATTLIST xs:length id ID #IMPLIED>
       
    31         <!ATTLIST xs:minLength id ID #IMPLIED>
       
    32         <!ATTLIST xs:maxLength id ID #IMPLIED>
       
    33         <!ATTLIST xs:enumeration id ID #IMPLIED>
       
    34         <!ATTLIST xs:pattern id ID #IMPLIED>
       
    35         <!ATTLIST xs:appinfo id ID #IMPLIED>
       
    36         <!ATTLIST xs:documentation id ID #IMPLIED>
       
    37         <!ATTLIST xs:list id ID #IMPLIED>
       
    38         <!ATTLIST xs:union id ID #IMPLIED>
       
    39         ]>
       
    40 
       
    41 
       
    42 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
       
    43         targetNamespace="http://www.w3.org/2001/XMLSchema"
       
    44         version="Id: datatypes.xsd,v 1.52 2001/04/27 11:49:21 ht Exp "
       
    45         xmlns:hfp="http://www.w3.org/2001/XMLSchema-hasFacetAndProperty"
       
    46         elementFormDefault="qualified"
       
    47         blockDefault="#all"
       
    48         xml:lang="en">
       
    49 
       
    50   <xs:annotation>
       
    51    <xs:documentation source="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes">
       
    52       The schema corresponding to this document is normative,
       
    53       with respect to the syntactic constraints it expresses in the
       
    54       XML Schema language.  The documentation (within &lt;documentation>
       
    55       elements) below, is not normative, but rather highlights important
       
    56       aspects of the W3C Recommendation of which this is a part
       
    57     </xs:documentation>
       
    58   </xs:annotation>
       
    59 
       
    60   <xs:annotation>
       
    61     <xs:documentation>
       
    62       First the built-in primitive datatypes.  These definitions are for
       
    63       information only, the real built-in definitions are magic.  Note in
       
    64       particular that there is no type named 'anySimpleType'.  The
       
    65       primitives should really be derived from no type at all, and
       
    66       anySimpleType should be derived as a union of all the primitives.
       
    67     </xs:documentation>
       
    68 
       
    69     <xs:documentation>
       
    70       For each built-in datatype in this schema (both primitive and
       
    71       derived) can be uniquely addressed via a URI constructed
       
    72       as follows:
       
    73         1) the base URI is the URI of the XML Schema namespace
       
    74         2) the fragment identifier is the name of the datatype
       
    75         
       
    76       For example, to address the int datatype, the URI is:
       
    77       
       
    78         http://www.w3.org/2001/XMLSchema#int
       
    79       
       
    80       Additionally, each facet definition element can be uniquely
       
    81       addressed via a URI constructed as follows:
       
    82         1) the base URI is the URI of the XML Schema namespace
       
    83         2) the fragment identifier is the name of the facet
       
    84         
       
    85       For example, to address the maxInclusive facet, the URI is:
       
    86       
       
    87         http://www.w3.org/2001/XMLSchema#maxInclusive
       
    88 
       
    89       Additionally, each facet usage in a built-in datatype definition
       
    90       can be uniquely addressed via a URI constructed as follows:
       
    91         1) the base URI is the URI of the XML Schema namespace
       
    92         2) the fragment identifier is the name of the datatype, followed
       
    93            by a period (".") followed by the name of the facet
       
    94         
       
    95       For example, to address the usage of the maxInclusive facet in
       
    96       the definition of int, the URI is:
       
    97       
       
    98         http://www.w3.org/2001/XMLSchema#int.maxInclusive
       
    99         
       
   100     </xs:documentation>
       
   101   </xs:annotation>
       
   102  
       
   103 <!-- 
       
   104   <xs:simpleType name="string" id="string">
       
   105     <xs:annotation>
       
   106       <xs:appinfo>
       
   107         <hfp:hasFacet name="length"/>
       
   108         <hfp:hasFacet name="minLength"/>
       
   109         <hfp:hasFacet name="maxLength"/>
       
   110         <hfp:hasFacet name="pattern"/>
       
   111         <hfp:hasFacet name="enumeration"/>
       
   112         <hfp:hasFacet name="whiteSpace"/>
       
   113         <hfp:hasProperty name="ordered" value="false"/>
       
   114         <hfp:hasProperty name="bounded" value="false"/>
       
   115         <hfp:hasProperty name="cardinality" value="countably infinite"/>
       
   116         <hfp:hasProperty name="numeric" value="false"/>
       
   117       </xs:appinfo>
       
   118       <xs:documentation
       
   119                 source="http://www.w3.org/TR/xmlschema-2/#string"/>
       
   120     </xs:annotation>
       
   121     <xs:restriction base="xs:anySimpleType">
       
   122       <xs:whiteSpace value="preserve" id="string.preserve"/>
       
   123     </xs:restriction>
       
   124   </xs:simpleType>
       
   125 
       
   126   <xs:simpleType name="boolean" id="boolean">
       
   127     <xs:annotation>
       
   128       <xs:appinfo>
       
   129         <hfp:hasFacet name="pattern"/>
       
   130         <hfp:hasFacet name="whiteSpace"/>
       
   131         <hfp:hasProperty name="ordered" value="false"/>
       
   132         <hfp:hasProperty name="bounded" value="false"/>
       
   133         <hfp:hasProperty name="cardinality" value="finite"/>
       
   134         <hfp:hasProperty name="numeric" value="false"/>
       
   135       </xs:appinfo>
       
   136       <xs:documentation
       
   137         source="http://www.w3.org/TR/xmlschema-2/#boolean"/>
       
   138     </xs:annotation>
       
   139     <xs:restriction base="xs:anySimpleType">
       
   140       <xs:whiteSpace value="collapse" fixed="true"
       
   141         id="boolean.whiteSpace"/>
       
   142     </xs:restriction>
       
   143   </xs:simpleType>
       
   144 
       
   145   <xs:simpleType name="float" id="float">
       
   146     <xs:annotation>
       
   147       <xs:appinfo>
       
   148         <hfp:hasFacet name="pattern"/>
       
   149         <hfp:hasFacet name="enumeration"/>
       
   150         <hfp:hasFacet name="whiteSpace"/>
       
   151         <hfp:hasFacet name="maxInclusive"/>
       
   152         <hfp:hasFacet name="maxExclusive"/>
       
   153         <hfp:hasFacet name="minInclusive"/>
       
   154         <hfp:hasFacet name="minExclusive"/>
       
   155         <hfp:hasProperty name="ordered" value="total"/>
       
   156         <hfp:hasProperty name="bounded" value="true"/>
       
   157         <hfp:hasProperty name="cardinality" value="finite"/>
       
   158         <hfp:hasProperty name="numeric" value="true"/>
       
   159       </xs:appinfo>
       
   160       <xs:documentation
       
   161         source="http://www.w3.org/TR/xmlschema-2/#float"/>
       
   162     </xs:annotation>
       
   163     <xs:restriction base="xs:anySimpleType">
       
   164       <xs:whiteSpace value="collapse" fixed="true"
       
   165         id="float.whiteSpace"/>
       
   166     </xs:restriction>
       
   167   </xs:simpleType>
       
   168 
       
   169   <xs:simpleType name="double" id="double">
       
   170     <xs:annotation>
       
   171       <xs:appinfo>
       
   172         <hfp:hasFacet name="pattern"/>
       
   173         <hfp:hasFacet name="enumeration"/>
       
   174         <hfp:hasFacet name="whiteSpace"/>
       
   175         <hfp:hasFacet name="maxInclusive"/>
       
   176         <hfp:hasFacet name="maxExclusive"/>
       
   177         <hfp:hasFacet name="minInclusive"/>
       
   178         <hfp:hasFacet name="minExclusive"/>
       
   179         <hfp:hasProperty name="ordered" value="total"/>
       
   180         <hfp:hasProperty name="bounded" value="true"/>
       
   181         <hfp:hasProperty name="cardinality" value="finite"/>
       
   182         <hfp:hasProperty name="numeric" value="true"/>
       
   183       </xs:appinfo>
       
   184       <xs:documentation
       
   185         source="http://www.w3.org/TR/xmlschema-2/#double"/>
       
   186     </xs:annotation>
       
   187     <xs:restriction base="xs:anySimpleType">
       
   188       <xs:whiteSpace value="collapse"  fixed="true"
       
   189         id="double.whiteSpace"/>
       
   190     </xs:restriction>
       
   191   </xs:simpleType>
       
   192 
       
   193   <xs:simpleType name="decimal" id="decimal">
       
   194     <xs:annotation>
       
   195       <xs:appinfo>
       
   196         <hfp:hasFacet name="totalDigits"/>
       
   197         <hfp:hasFacet name="fractionDigits"/>
       
   198         <hfp:hasFacet name="pattern"/>
       
   199         <hfp:hasFacet name="whiteSpace"/>
       
   200         <hfp:hasFacet name="enumeration"/>
       
   201         <hfp:hasFacet name="maxInclusive"/>
       
   202         <hfp:hasFacet name="maxExclusive"/>
       
   203         <hfp:hasFacet name="minInclusive"/>
       
   204         <hfp:hasFacet name="minExclusive"/>
       
   205         <hfp:hasProperty name="ordered" value="total"/>
       
   206         <hfp:hasProperty name="bounded" value="false"/>
       
   207         <hfp:hasProperty name="cardinality"
       
   208                 value="countably infinite"/>
       
   209         <hfp:hasProperty name="numeric" value="true"/>
       
   210       </xs:appinfo>
       
   211       <xs:documentation
       
   212         source="http://www.w3.org/TR/xmlschema-2/#decimal"/>
       
   213     </xs:annotation>
       
   214     <xs:restriction base="xs:anySimpleType">
       
   215       <xs:whiteSpace value="collapse"  fixed="true"
       
   216         id="decimal.whiteSpace"/>
       
   217     </xs:restriction>
       
   218    </xs:simpleType>
       
   219 
       
   220    <xs:simpleType name="duration" id="duration">
       
   221     <xs:annotation>
       
   222       <xs:appinfo>
       
   223         <hfp:hasFacet name="pattern"/>
       
   224         <hfp:hasFacet name="enumeration"/>
       
   225         <hfp:hasFacet name="whiteSpace"/>
       
   226         <hfp:hasFacet name="maxInclusive"/>
       
   227         <hfp:hasFacet name="maxExclusive"/>
       
   228         <hfp:hasFacet name="minInclusive"/>
       
   229         <hfp:hasFacet name="minExclusive"/>
       
   230         <hfp:hasProperty name="ordered" value="partial"/>
       
   231         <hfp:hasProperty name="bounded" value="false"/>
       
   232         <hfp:hasProperty name="cardinality"
       
   233                 value="countably infinite"/>
       
   234         <hfp:hasProperty name="numeric" value="false"/>
       
   235       </xs:appinfo>
       
   236       <xs:documentation
       
   237         source="http://www.w3.org/TR/xmlschema-2/#duration"/>
       
   238     </xs:annotation>
       
   239     <xs:restriction base="xs:anySimpleType">
       
   240       <xs:whiteSpace value="collapse"  fixed="true"
       
   241         id="duration.whiteSpace"/>
       
   242     </xs:restriction>
       
   243    </xs:simpleType>
       
   244 
       
   245  <xs:simpleType name="dateTime" id="dateTime">
       
   246     <xs:annotation>
       
   247     <xs:appinfo>
       
   248         <hfp:hasFacet name="pattern"/>
       
   249         <hfp:hasFacet name="enumeration"/>
       
   250         <hfp:hasFacet name="whiteSpace"/>
       
   251         <hfp:hasFacet name="maxInclusive"/>
       
   252         <hfp:hasFacet name="maxExclusive"/>
       
   253         <hfp:hasFacet name="minInclusive"/>
       
   254         <hfp:hasFacet name="minExclusive"/>
       
   255         <hfp:hasProperty name="ordered" value="partial"/>
       
   256         <hfp:hasProperty name="bounded" value="false"/>
       
   257         <hfp:hasProperty name="cardinality"
       
   258                 value="countably infinite"/>
       
   259         <hfp:hasProperty name="numeric" value="false"/>
       
   260       </xs:appinfo>
       
   261       <xs:documentation
       
   262         source="http://www.w3.org/TR/xmlschema-2/#dateTime"/>
       
   263     </xs:annotation>
       
   264     <xs:restriction base="xs:anySimpleType">
       
   265       <xs:whiteSpace value="collapse"  fixed="true"
       
   266         id="dateTime.whiteSpace"/>
       
   267     </xs:restriction>
       
   268   </xs:simpleType>
       
   269 
       
   270   <xs:simpleType name="time" id="time">
       
   271     <xs:annotation>
       
   272     <xs:appinfo>
       
   273         <hfp:hasFacet name="pattern"/>
       
   274         <hfp:hasFacet name="enumeration"/>
       
   275         <hfp:hasFacet name="whiteSpace"/>
       
   276         <hfp:hasFacet name="maxInclusive"/>
       
   277         <hfp:hasFacet name="maxExclusive"/>
       
   278         <hfp:hasFacet name="minInclusive"/>
       
   279         <hfp:hasFacet name="minExclusive"/>
       
   280         <hfp:hasProperty name="ordered" value="partial"/>
       
   281         <hfp:hasProperty name="bounded" value="false"/>
       
   282         <hfp:hasProperty name="cardinality"
       
   283                 value="countably infinite"/>
       
   284         <hfp:hasProperty name="numeric" value="false"/>
       
   285       </xs:appinfo>
       
   286       <xs:documentation
       
   287         source="http://www.w3.org/TR/xmlschema-2/#time"/>
       
   288     </xs:annotation>
       
   289     <xs:restriction base="xs:anySimpleType">
       
   290       <xs:whiteSpace value="collapse"  fixed="true"
       
   291         id="time.whiteSpace"/>
       
   292     </xs:restriction>
       
   293   </xs:simpleType>
       
   294 
       
   295   <xs:simpleType name="date" id="date">
       
   296    <xs:annotation>
       
   297     <xs:appinfo>
       
   298         <hfp:hasFacet name="pattern"/>
       
   299         <hfp:hasFacet name="enumeration"/>
       
   300         <hfp:hasFacet name="whiteSpace"/>
       
   301         <hfp:hasFacet name="maxInclusive"/>
       
   302         <hfp:hasFacet name="maxExclusive"/>
       
   303         <hfp:hasFacet name="minInclusive"/>
       
   304         <hfp:hasFacet name="minExclusive"/>
       
   305         <hfp:hasProperty name="ordered" value="partial"/>
       
   306         <hfp:hasProperty name="bounded" value="false"/>
       
   307         <hfp:hasProperty name="cardinality"
       
   308                 value="countably infinite"/>
       
   309         <hfp:hasProperty name="numeric" value="false"/>
       
   310       </xs:appinfo>
       
   311       <xs:documentation
       
   312         source="http://www.w3.org/TR/xmlschema-2/#date"/>
       
   313     </xs:annotation>
       
   314     <xs:restriction base="xs:anySimpleType">
       
   315       <xs:whiteSpace value="collapse"  fixed="true"
       
   316         id="date.whiteSpace"/>
       
   317     </xs:restriction>
       
   318   </xs:simpleType>
       
   319 
       
   320   <xs:simpleType name="gYearMonth" id="gYearMonth">
       
   321    <xs:annotation>
       
   322     <xs:appinfo>
       
   323         <hfp:hasFacet name="pattern"/>
       
   324         <hfp:hasFacet name="enumeration"/>
       
   325         <hfp:hasFacet name="whiteSpace"/>
       
   326         <hfp:hasFacet name="maxInclusive"/>
       
   327         <hfp:hasFacet name="maxExclusive"/>
       
   328         <hfp:hasFacet name="minInclusive"/>
       
   329         <hfp:hasFacet name="minExclusive"/>
       
   330         <hfp:hasProperty name="ordered" value="partial"/>
       
   331         <hfp:hasProperty name="bounded" value="false"/>
       
   332         <hfp:hasProperty name="cardinality"
       
   333                 value="countably infinite"/>
       
   334         <hfp:hasProperty name="numeric" value="false"/>
       
   335       </xs:appinfo>
       
   336       <xs:documentation
       
   337         source="http://www.w3.org/TR/xmlschema-2/#gYearMonth"/>
       
   338     </xs:annotation>
       
   339     <xs:restriction base="xs:anySimpleType">
       
   340       <xs:whiteSpace value="collapse"  fixed="true"
       
   341         id="gYearMonth.whiteSpace"/>
       
   342     </xs:restriction>
       
   343   </xs:simpleType>
       
   344 
       
   345   <xs:simpleType name="gYear" id="gYear">
       
   346     <xs:annotation>
       
   347     <xs:appinfo>
       
   348         <hfp:hasFacet name="pattern"/>
       
   349         <hfp:hasFacet name="enumeration"/>
       
   350         <hfp:hasFacet name="whiteSpace"/>
       
   351         <hfp:hasFacet name="maxInclusive"/>
       
   352         <hfp:hasFacet name="maxExclusive"/>
       
   353         <hfp:hasFacet name="minInclusive"/>
       
   354         <hfp:hasFacet name="minExclusive"/>
       
   355         <hfp:hasProperty name="ordered" value="partial"/>
       
   356         <hfp:hasProperty name="bounded" value="false"/>
       
   357         <hfp:hasProperty name="cardinality"
       
   358                 value="countably infinite"/>
       
   359         <hfp:hasProperty name="numeric" value="false"/>
       
   360       </xs:appinfo>
       
   361       <xs:documentation
       
   362         source="http://www.w3.org/TR/xmlschema-2/#gYear"/>
       
   363     </xs:annotation>
       
   364     <xs:restriction base="xs:anySimpleType">
       
   365       <xs:whiteSpace value="collapse"  fixed="true"
       
   366         id="gYear.whiteSpace"/>
       
   367     </xs:restriction>
       
   368   </xs:simpleType>
       
   369 
       
   370  <xs:simpleType name="gMonthDay" id="gMonthDay">
       
   371     <xs:annotation>
       
   372       <xs:appinfo>
       
   373         <hfp:hasFacet name="pattern"/>
       
   374         <hfp:hasFacet name="enumeration"/>
       
   375         <hfp:hasFacet name="whiteSpace"/>
       
   376         <hfp:hasFacet name="maxInclusive"/>
       
   377         <hfp:hasFacet name="maxExclusive"/>
       
   378         <hfp:hasFacet name="minInclusive"/>
       
   379         <hfp:hasFacet name="minExclusive"/>
       
   380         <hfp:hasProperty name="ordered" value="partial"/>
       
   381         <hfp:hasProperty name="bounded" value="false"/>
       
   382         <hfp:hasProperty name="cardinality"
       
   383                 value="countably infinite"/>
       
   384         <hfp:hasProperty name="numeric" value="false"/>
       
   385       </xs:appinfo>
       
   386        <xs:documentation
       
   387         source="http://www.w3.org/TR/xmlschema-2/#gMonthDay"/>
       
   388     </xs:annotation>
       
   389     <xs:restriction base="xs:anySimpleType">
       
   390          <xs:whiteSpace value="collapse" fixed="true"
       
   391                 id="gMonthDay.whiteSpace"/>
       
   392     </xs:restriction>
       
   393   </xs:simpleType>
       
   394 
       
   395   <xs:simpleType name="gDay" id="gDay">
       
   396     <xs:annotation>
       
   397   <xs:appinfo>
       
   398         <hfp:hasFacet name="pattern"/>
       
   399         <hfp:hasFacet name="enumeration"/>
       
   400         <hfp:hasFacet name="whiteSpace"/>
       
   401         <hfp:hasFacet name="maxInclusive"/>
       
   402         <hfp:hasFacet name="maxExclusive"/>
       
   403         <hfp:hasFacet name="minInclusive"/>
       
   404         <hfp:hasFacet name="minExclusive"/>
       
   405         <hfp:hasProperty name="ordered" value="partial"/>
       
   406         <hfp:hasProperty name="bounded" value="false"/>
       
   407         <hfp:hasProperty name="cardinality"
       
   408                 value="countably infinite"/>
       
   409         <hfp:hasProperty name="numeric" value="false"/>
       
   410       </xs:appinfo>
       
   411       <xs:documentation
       
   412         source="http://www.w3.org/TR/xmlschema-2/#gDay"/>
       
   413     </xs:annotation>
       
   414     <xs:restriction base="xs:anySimpleType">
       
   415          <xs:whiteSpace value="collapse"  fixed="true"
       
   416                 id="gDay.whiteSpace"/>
       
   417     </xs:restriction>
       
   418   </xs:simpleType>
       
   419 
       
   420  <xs:simpleType name="gMonth" id="gMonth">
       
   421     <xs:annotation>
       
   422   <xs:appinfo>
       
   423         <hfp:hasFacet name="pattern"/>
       
   424         <hfp:hasFacet name="enumeration"/>
       
   425         <hfp:hasFacet name="whiteSpace"/>
       
   426         <hfp:hasFacet name="maxInclusive"/>
       
   427         <hfp:hasFacet name="maxExclusive"/>
       
   428         <hfp:hasFacet name="minInclusive"/>
       
   429         <hfp:hasFacet name="minExclusive"/>
       
   430         <hfp:hasProperty name="ordered" value="partial"/>
       
   431         <hfp:hasProperty name="bounded" value="false"/>
       
   432         <hfp:hasProperty name="cardinality"
       
   433                 value="countably infinite"/>
       
   434         <hfp:hasProperty name="numeric" value="false"/>
       
   435       </xs:appinfo>
       
   436       <xs:documentation
       
   437         source="http://www.w3.org/TR/xmlschema-2/#gMonth"/>
       
   438     </xs:annotation>
       
   439     <xs:restriction base="xs:anySimpleType">
       
   440          <xs:whiteSpace value="collapse"  fixed="true"
       
   441                 id="gMonth.whiteSpace"/>
       
   442     </xs:restriction>
       
   443   </xs:simpleType>
       
   444 
       
   445    <xs:simpleType name="hexBinary" id="hexBinary">
       
   446     <xs:annotation>
       
   447       <xs:appinfo>
       
   448         <hfp:hasFacet name="length"/>
       
   449         <hfp:hasFacet name="minLength"/>
       
   450         <hfp:hasFacet name="maxLength"/>
       
   451         <hfp:hasFacet name="pattern"/>
       
   452         <hfp:hasFacet name="enumeration"/>
       
   453         <hfp:hasFacet name="whiteSpace"/>
       
   454         <hfp:hasProperty name="ordered" value="false"/>
       
   455         <hfp:hasProperty name="bounded" value="false"/>
       
   456         <hfp:hasProperty name="cardinality"
       
   457                 value="countably infinite"/>
       
   458         <hfp:hasProperty name="numeric" value="false"/>
       
   459       </xs:appinfo>
       
   460       <xs:documentation
       
   461         source="http://www.w3.org/TR/xmlschema-2/#binary"/>
       
   462     </xs:annotation>
       
   463     <xs:restriction base="xs:anySimpleType">
       
   464       <xs:whiteSpace value="collapse" fixed="true"
       
   465         id="hexBinary.whiteSpace"/>
       
   466     </xs:restriction>
       
   467    </xs:simpleType>
       
   468  
       
   469  <xs:simpleType name="base64Binary" id="base64Binary">
       
   470     <xs:annotation>
       
   471       <xs:appinfo>
       
   472         <hfp:hasFacet name="length"/>
       
   473         <hfp:hasFacet name="minLength"/>
       
   474         <hfp:hasFacet name="maxLength"/>
       
   475         <hfp:hasFacet name="pattern"/>
       
   476         <hfp:hasFacet name="enumeration"/>
       
   477         <hfp:hasFacet name="whiteSpace"/>
       
   478         <hfp:hasProperty name="ordered" value="false"/>
       
   479         <hfp:hasProperty name="bounded" value="false"/>
       
   480         <hfp:hasProperty name="cardinality"
       
   481                 value="countably infinite"/>
       
   482         <hfp:hasProperty name="numeric" value="false"/>
       
   483       </xs:appinfo>
       
   484       <xs:documentation
       
   485                 source="http://www.w3.org/TR/xmlschema-2/#base64Binary"/>
       
   486     </xs:annotation>
       
   487     <xs:restriction base="xs:anySimpleType">
       
   488       <xs:whiteSpace value="collapse" fixed="true"
       
   489         id="base64Binary.whiteSpace"/>
       
   490     </xs:restriction>
       
   491    </xs:simpleType>
       
   492 
       
   493    <xs:simpleType name="anyURI" id="anyURI">
       
   494     <xs:annotation>
       
   495       <xs:appinfo>
       
   496         <hfp:hasFacet name="length"/>
       
   497         <hfp:hasFacet name="minLength"/>
       
   498         <hfp:hasFacet name="maxLength"/>
       
   499         <hfp:hasFacet name="pattern"/>
       
   500         <hfp:hasFacet name="enumeration"/>
       
   501         <hfp:hasFacet name="whiteSpace"/>
       
   502         <hfp:hasProperty name="ordered" value="false"/>
       
   503         <hfp:hasProperty name="bounded" value="false"/>
       
   504         <hfp:hasProperty name="cardinality"
       
   505                 value="countably infinite"/>
       
   506         <hfp:hasProperty name="numeric" value="false"/>
       
   507       </xs:appinfo>
       
   508       <xs:documentation
       
   509         source="http://www.w3.org/TR/xmlschema-2/#anyURI"/>
       
   510     </xs:annotation>
       
   511     <xs:restriction base="xs:anySimpleType">
       
   512       <xs:whiteSpace value="collapse"  fixed="true"
       
   513         id="anyURI.whiteSpace"/>
       
   514     </xs:restriction>
       
   515    </xs:simpleType>
       
   516 
       
   517   <xs:simpleType name="QName" id="QName">
       
   518     <xs:annotation>
       
   519         <xs:appinfo>
       
   520         <hfp:hasFacet name="length"/>
       
   521         <hfp:hasFacet name="minLength"/>
       
   522         <hfp:hasFacet name="maxLength"/>
       
   523         <hfp:hasFacet name="pattern"/>
       
   524         <hfp:hasFacet name="enumeration"/>
       
   525         <hfp:hasFacet name="whiteSpace"/>
       
   526         <hfp:hasProperty name="ordered" value="false"/>
       
   527         <hfp:hasProperty name="bounded" value="false"/>
       
   528         <hfp:hasProperty name="cardinality"
       
   529                 value="countably infinite"/>
       
   530         <hfp:hasProperty name="numeric" value="false"/>
       
   531       </xs:appinfo>
       
   532       <xs:documentation
       
   533         source="http://www.w3.org/TR/xmlschema-2/#QName"/>
       
   534     </xs:annotation>
       
   535     <xs:restriction base="xs:anySimpleType">
       
   536       <xs:whiteSpace value="collapse"  fixed="true"
       
   537         id="QName.whiteSpace"/>
       
   538     </xs:restriction>
       
   539   </xs:simpleType>
       
   540 
       
   541 
       
   542    <xs:simpleType name="NOTATION" id="NOTATION">
       
   543     <xs:annotation>
       
   544         <xs:appinfo>
       
   545         <hfp:hasFacet name="length"/>
       
   546         <hfp:hasFacet name="minLength"/>
       
   547         <hfp:hasFacet name="maxLength"/>
       
   548         <hfp:hasFacet name="pattern"/>
       
   549         <hfp:hasFacet name="enumeration"/>
       
   550         <hfp:hasFacet name="whiteSpace"/>
       
   551         <hfp:hasProperty name="ordered" value="false"/>
       
   552         <hfp:hasProperty name="bounded" value="false"/>
       
   553         <hfp:hasProperty name="cardinality"
       
   554                 value="countably infinite"/>
       
   555         <hfp:hasProperty name="numeric" value="false"/>
       
   556       </xs:appinfo>
       
   557       <xs:documentation
       
   558         source="http://www.w3.org/TR/xmlschema-2/#NOTATION"/>
       
   559       <xs:documentation>
       
   560         NOTATION cannot be used directly in a schema; rather a type
       
   561         must be derived from it by specifying at least one enumeration
       
   562         facet whose value is the name of a NOTATION declared in the
       
   563         schema.
       
   564       </xs:documentation>
       
   565     </xs:annotation>
       
   566     <xs:restriction base="xs:anySimpleType">
       
   567       <xs:whiteSpace value="collapse"  fixed="true"
       
   568         id="NOTATION.whiteSpace"/>
       
   569     </xs:restriction>
       
   570   </xs:simpleType>
       
   571 -->
       
   572 
       
   573   <!-- PATCH, to be corrected -->
       
   574   <xs:simpleType name="QName" id="QName">
       
   575         <xs:restriction base="xs:Name"/>
       
   576   </xs:simpleType>
       
   577   <!-- PATCH end -->
       
   578 
       
   579   <xs:annotation>
       
   580     <xs:documentation>
       
   581       Now the derived primitive types
       
   582     </xs:documentation>
       
   583   </xs:annotation>
       
   584 
       
   585   <xs:simpleType name="normalizedString" id="normalizedString">
       
   586     <xs:annotation>
       
   587       <xs:documentation
       
   588         source="http://www.w3.org/TR/xmlschema-2/#normalizedString"/>
       
   589     </xs:annotation>
       
   590     <xs:restriction base="xs:string">
       
   591       <xs:whiteSpace value="replace"
       
   592         id="normalizedString.whiteSpace"/>
       
   593     </xs:restriction>
       
   594   </xs:simpleType>
       
   595   
       
   596   <xs:simpleType name="token" id="token">
       
   597     <xs:annotation>
       
   598       <xs:documentation
       
   599         source="http://www.w3.org/TR/xmlschema-2/#token"/>
       
   600     </xs:annotation>
       
   601     <xs:restriction base="xs:normalizedString">
       
   602       <xs:whiteSpace value="collapse" id="token.whiteSpace"/>
       
   603     </xs:restriction>
       
   604   </xs:simpleType>
       
   605   
       
   606   <xs:simpleType name="language" id="language">
       
   607     <xs:annotation>
       
   608       <xs:documentation
       
   609         source="http://www.w3.org/TR/xmlschema-2/#language"/>
       
   610     </xs:annotation>
       
   611     <xs:restriction base="xs:token">
       
   612       <xs:pattern
       
   613         value="([a-zA-Z]{2}|[iI]-[a-zA-Z]+|[xX]-[a-zA-Z]{1,8})(-[a-zA-Z]{1,8})*"
       
   614                 id="language.pattern">
       
   615         <xs:annotation>
       
   616           <xs:documentation
       
   617                 source="http://www.w3.org/TR/REC-xml#NT-LanguageID">
       
   618             pattern specifies the content of section 2.12 of XML 1.0e2
       
   619             and RFC 1766
       
   620           </xs:documentation>
       
   621         </xs:annotation>
       
   622       </xs:pattern>
       
   623     </xs:restriction>
       
   624   </xs:simpleType>
       
   625 
       
   626   <xs:simpleType name="IDREFS" id="IDREFS">
       
   627     <xs:annotation>
       
   628       <xs:appinfo>
       
   629         <hfp:hasFacet name="length"/>
       
   630         <hfp:hasFacet name="minLength"/>
       
   631         <hfp:hasFacet name="maxLength"/>
       
   632         <hfp:hasFacet name="enumeration"/>
       
   633         <hfp:hasFacet name="whiteSpace"/>
       
   634         <hfp:hasProperty name="ordered" value="false"/>
       
   635         <hfp:hasProperty name="bounded" value="false"/>
       
   636         <hfp:hasProperty name="cardinality"
       
   637                 value="countably infinite"/>
       
   638         <hfp:hasProperty name="numeric" value="false"/>
       
   639       </xs:appinfo>
       
   640       <xs:documentation
       
   641         source="http://www.w3.org/TR/xmlschema-2/#IDREFS"/>
       
   642     </xs:annotation>
       
   643     <xs:restriction>
       
   644       <xs:simpleType>
       
   645         <xs:list itemType="xs:IDREF"/>    
       
   646       </xs:simpleType>
       
   647         <xs:minLength value="1" id="IDREFS.minLength"/>
       
   648     </xs:restriction>
       
   649   </xs:simpleType>
       
   650 
       
   651   <xs:simpleType name="ENTITIES" id="ENTITIES">
       
   652     <xs:annotation>
       
   653       <xs:appinfo>
       
   654         <hfp:hasFacet name="length"/>
       
   655         <hfp:hasFacet name="minLength"/>
       
   656         <hfp:hasFacet name="maxLength"/>
       
   657         <hfp:hasFacet name="enumeration"/>
       
   658         <hfp:hasFacet name="whiteSpace"/>
       
   659         <hfp:hasProperty name="ordered" value="false"/>
       
   660         <hfp:hasProperty name="bounded" value="false"/>
       
   661         <hfp:hasProperty name="cardinality"
       
   662                 value="countably infinite"/>
       
   663         <hfp:hasProperty name="numeric" value="false"/>
       
   664       </xs:appinfo>
       
   665       <xs:documentation
       
   666         source="http://www.w3.org/TR/xmlschema-2/#ENTITIES"/>
       
   667     </xs:annotation>
       
   668     <xs:restriction>
       
   669       <xs:simpleType>
       
   670         <xs:list itemType="xs:ENTITY"/>
       
   671       </xs:simpleType>
       
   672         <xs:minLength value="1" id="ENTITIES.minLength"/>
       
   673     </xs:restriction>
       
   674   </xs:simpleType>
       
   675 
       
   676   <xs:simpleType name="NMTOKEN" id="NMTOKEN">
       
   677     <xs:annotation>
       
   678       <xs:documentation
       
   679         source="http://www.w3.org/TR/xmlschema-2/#NMTOKEN"/>
       
   680     </xs:annotation>
       
   681     <xs:restriction base="xs:token">
       
   682       <xs:pattern value="[\w.\-:]+" id="NMTOKEN.pattern">
       
   683         <xs:annotation>
       
   684           <xs:documentation
       
   685                 source="http://www.w3.org/TR/REC-xml#NT-Nmtoken">
       
   686             pattern matches production 7 from the XML spec
       
   687           </xs:documentation>
       
   688         </xs:annotation>
       
   689       </xs:pattern>
       
   690     </xs:restriction>
       
   691   </xs:simpleType>
       
   692 
       
   693   <xs:simpleType name="NMTOKENS" id="NMTOKENS">
       
   694     <xs:annotation>
       
   695       <xs:appinfo>
       
   696         <hfp:hasFacet name="length"/>
       
   697         <hfp:hasFacet name="minLength"/>
       
   698         <hfp:hasFacet name="maxLength"/>
       
   699         <hfp:hasFacet name="enumeration"/>
       
   700         <hfp:hasFacet name="whiteSpace"/>
       
   701         <hfp:hasProperty name="ordered" value="false"/>
       
   702         <hfp:hasProperty name="bounded" value="false"/>
       
   703         <hfp:hasProperty name="cardinality"
       
   704                 value="countably infinite"/>
       
   705         <hfp:hasProperty name="numeric" value="false"/>
       
   706       </xs:appinfo>
       
   707       <xs:documentation
       
   708         source="http://www.w3.org/TR/xmlschema-2/#NMTOKENS"/>
       
   709     </xs:annotation>
       
   710     <xs:restriction>
       
   711       <xs:simpleType>
       
   712         <xs:list itemType="xs:NMTOKEN"/>
       
   713       </xs:simpleType>
       
   714         <xs:minLength value="1" id="NMTOKENS.minLength"/>
       
   715     </xs:restriction>
       
   716   </xs:simpleType>
       
   717 
       
   718   <xs:simpleType name="Name" id="Name">
       
   719     <xs:annotation>
       
   720       <xs:documentation
       
   721         source="http://www.w3.org/TR/xmlschema-2/#Name"/>
       
   722     </xs:annotation>
       
   723     <xs:restriction base="xs:token">
       
   724       <xs:pattern value="[a-zA-z_:][\w.\-:]*" id="Name.pattern">
       
   725         <xs:annotation>
       
   726           <xs:documentation
       
   727                         source="http://www.w3.org/TR/REC-xml#NT-Name">
       
   728             pattern matches production 5 from the XML spec
       
   729           </xs:documentation>
       
   730         </xs:annotation>
       
   731       </xs:pattern>
       
   732     </xs:restriction>
       
   733   </xs:simpleType>
       
   734 
       
   735   <xs:simpleType name="NCName" id="NCName">
       
   736     <xs:annotation>
       
   737       <xs:documentation
       
   738         source="http://www.w3.org/TR/xmlschema-2/#NCName"/>
       
   739     </xs:annotation>
       
   740     <xs:restriction base="xs:Name">
       
   741       <xs:pattern value="[a-zA-z_][\w.\-]*" id="NCName.pattern">
       
   742         <xs:annotation>
       
   743           <xs:documentation
       
   744                 source="http://www.w3.org/TR/REC-xml-names/#NT-NCName">
       
   745             pattern matches production 4 from the Namespaces in XML spec
       
   746           </xs:documentation>
       
   747         </xs:annotation>
       
   748       </xs:pattern>
       
   749     </xs:restriction>
       
   750   </xs:simpleType>
       
   751 
       
   752    <xs:simpleType name="ID" id="ID">
       
   753     <xs:annotation>
       
   754       <xs:documentation
       
   755         source="http://www.w3.org/TR/xmlschema-2/#ID"/>
       
   756     </xs:annotation>
       
   757     <xs:restriction base="xs:NCName"/>
       
   758    </xs:simpleType>
       
   759 
       
   760    <xs:simpleType name="IDREF" id="IDREF">
       
   761     <xs:annotation>
       
   762       <xs:documentation
       
   763         source="http://www.w3.org/TR/xmlschema-2/#IDREF"/>
       
   764     </xs:annotation>
       
   765     <xs:restriction base="xs:NCName"/>
       
   766    </xs:simpleType>
       
   767 
       
   768    <xs:simpleType name="ENTITY" id="ENTITY">
       
   769     <xs:annotation>
       
   770       <xs:documentation
       
   771         source="http://www.w3.org/TR/xmlschema-2/#ENTITY"/>
       
   772     </xs:annotation>
       
   773     <xs:restriction base="xs:NCName"/>
       
   774    </xs:simpleType>
       
   775 
       
   776 <!--
       
   777   <xs:simpleType name="integer" id="integer">
       
   778     <xs:annotation>
       
   779       <xs:documentation
       
   780         source="http://www.w3.org/TR/xmlschema-2/#integer"/>
       
   781     </xs:annotation>
       
   782     <xs:restriction base="xs:decimal">
       
   783       <xs:fractionDigits value="0" fixed="true" id="integer.fractionDigits"/>
       
   784     </xs:restriction>
       
   785   </xs:simpleType>
       
   786 -->
       
   787 
       
   788   <xs:simpleType name="nonPositiveInteger" id="nonPositiveInteger">
       
   789     <xs:annotation>
       
   790       <xs:documentation
       
   791         source="http://www.w3.org/TR/xmlschema-2/#nonPositiveInteger"/>
       
   792     </xs:annotation>
       
   793     <xs:restriction base="xs:integer">
       
   794       <xs:maxInclusive value="0" id="nonPositiveInteger.maxInclusive"/>
       
   795     </xs:restriction>
       
   796   </xs:simpleType>
       
   797 
       
   798   <xs:simpleType name="negativeInteger" id="negativeInteger">
       
   799     <xs:annotation>
       
   800       <xs:documentation
       
   801         source="http://www.w3.org/TR/xmlschema-2/#negativeInteger"/>
       
   802     </xs:annotation>
       
   803     <xs:restriction base="xs:nonPositiveInteger">
       
   804       <xs:maxInclusive value="-1" id="negativeInteger.maxInclusive"/>
       
   805     </xs:restriction>
       
   806   </xs:simpleType>
       
   807 
       
   808   <xs:simpleType name="long" id="long">
       
   809     <xs:annotation>
       
   810       <xs:appinfo>
       
   811         <hfp:hasProperty name="bounded" value="true"/>
       
   812         <hfp:hasProperty name="cardinality" value="finite"/>
       
   813       </xs:appinfo>
       
   814       <xs:documentation
       
   815         source="http://www.w3.org/TR/xmlschema-2/#long"/>
       
   816     </xs:annotation>
       
   817     <xs:restriction base="xs:integer">
       
   818       <xs:minInclusive value="-2147483648" id="long.minInclusive"/>
       
   819       <xs:maxInclusive value="2147483647" id="long.maxInclusive"/>
       
   820     </xs:restriction>
       
   821   </xs:simpleType>
       
   822 
       
   823   <xs:simpleType name="int" id="int">
       
   824     <xs:annotation>
       
   825       <xs:documentation
       
   826         source="http://www.w3.org/TR/xmlschema-2/#int"/>
       
   827     </xs:annotation>
       
   828     <xs:restriction base="xs:long">
       
   829       <xs:minInclusive value="-2147483648" id="int.minInclusive"/>
       
   830       <xs:maxInclusive value="2147483647" id="int.maxInclusive"/>
       
   831     </xs:restriction>
       
   832   </xs:simpleType>
       
   833 
       
   834   <xs:simpleType name="short" id="short">
       
   835     <xs:annotation>
       
   836       <xs:documentation
       
   837         source="http://www.w3.org/TR/xmlschema-2/#short"/>
       
   838     </xs:annotation>
       
   839     <xs:restriction base="xs:int">
       
   840       <xs:minInclusive value="-32768" id="short.minInclusive"/>
       
   841       <xs:maxInclusive value="32767" id="short.maxInclusive"/>
       
   842     </xs:restriction>
       
   843   </xs:simpleType>
       
   844 
       
   845   <xs:simpleType name="byte" id="byte">
       
   846     <xs:annotation>
       
   847       <xs:documentation
       
   848         source="http://www.w3.org/TR/xmlschema-2/#byte"/>
       
   849     </xs:annotation>
       
   850     <xs:restriction base="xs:short">
       
   851       <xs:minInclusive value="-128" id="byte.minInclusive"/>
       
   852       <xs:maxInclusive value="127" id="byte.maxInclusive"/>
       
   853     </xs:restriction>
       
   854   </xs:simpleType>
       
   855 
       
   856   <xs:simpleType name="nonNegativeInteger" id="nonNegativeInteger">
       
   857     <xs:annotation>
       
   858       <xs:documentation
       
   859         source="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger"/>
       
   860     </xs:annotation>
       
   861     <xs:restriction base="xs:integer">
       
   862       <xs:minInclusive value="0" id="nonNegativeInteger.minInclusive"/>
       
   863     </xs:restriction>
       
   864   </xs:simpleType>
       
   865 
       
   866   <xs:simpleType name="unsignedLong" id="unsignedLong">
       
   867     <xs:annotation>
       
   868       <xs:appinfo>
       
   869         <hfp:hasProperty name="bounded" value="true"/>
       
   870         <hfp:hasProperty name="cardinality" value="finite"/>
       
   871       </xs:appinfo>
       
   872       <xs:documentation
       
   873         source="http://www.w3.org/TR/xmlschema-2/#unsignedLong"/>
       
   874     </xs:annotation>
       
   875     <xs:restriction base="xs:nonNegativeInteger">
       
   876       <xs:maxInclusive value="2147483647"
       
   877         id="unsignedLong.maxInclusive"/>
       
   878     </xs:restriction>
       
   879   </xs:simpleType>
       
   880 
       
   881   <xs:simpleType name="unsignedInt" id="unsignedInt">
       
   882     <xs:annotation>
       
   883       <xs:documentation
       
   884         source="http://www.w3.org/TR/xmlschema-2/#unsignedInt"/>
       
   885     </xs:annotation>
       
   886     <xs:restriction base="xs:unsignedLong">
       
   887       <xs:maxInclusive value="2147483647"
       
   888         id="unsignedInt.maxInclusive"/>
       
   889     </xs:restriction>
       
   890   </xs:simpleType>
       
   891 
       
   892   <xs:simpleType name="unsignedShort" id="unsignedShort">
       
   893     <xs:annotation>
       
   894       <xs:documentation
       
   895         source="http://www.w3.org/TR/xmlschema-2/#unsignedShort"/>
       
   896     </xs:annotation>
       
   897     <xs:restriction base="xs:unsignedInt">
       
   898       <xs:maxInclusive value="65535"
       
   899         id="unsignedShort.maxInclusive"/>
       
   900     </xs:restriction>
       
   901   </xs:simpleType>
       
   902 
       
   903   <xs:simpleType name="unsignedByte" id="unsignedBtype">
       
   904     <xs:annotation>
       
   905       <xs:documentation
       
   906         source="http://www.w3.org/TR/xmlschema-2/#unsignedByte"/>
       
   907     </xs:annotation>
       
   908     <xs:restriction base="xs:unsignedShort">
       
   909       <xs:maxInclusive value="255" id="unsignedByte.maxInclusive"/>
       
   910     </xs:restriction>
       
   911   </xs:simpleType>
       
   912 
       
   913   <xs:simpleType name="positiveInteger" id="positiveInteger">
       
   914     <xs:annotation>
       
   915       <xs:documentation
       
   916         source="http://www.w3.org/TR/xmlschema-2/#positiveInteger"/>
       
   917     </xs:annotation>
       
   918     <xs:restriction base="xs:nonNegativeInteger">
       
   919       <xs:minInclusive value="1" id="positiveInteger.minInclusive"/>
       
   920     </xs:restriction>
       
   921   </xs:simpleType>
       
   922 
       
   923  <xs:simpleType name="derivationControl">
       
   924   <xs:annotation>
       
   925    <xs:documentation>
       
   926    A utility type, not for public use</xs:documentation>
       
   927   </xs:annotation>
       
   928   <xs:restriction base="xs:NMTOKEN">
       
   929    <xs:enumeration value="substitution"/>
       
   930    <xs:enumeration value="extension"/>
       
   931    <xs:enumeration value="restriction"/>
       
   932    <xs:enumeration value="list"/>
       
   933    <xs:enumeration value="union"/>
       
   934   </xs:restriction>
       
   935  </xs:simpleType>
       
   936 
       
   937  <xs:group name="simpleDerivation">
       
   938   <xs:choice>
       
   939     <xs:element ref="xs:restriction"/>
       
   940     <xs:element ref="xs:list"/>
       
   941     <xs:element ref="xs:union"/>
       
   942   </xs:choice>
       
   943  </xs:group>
       
   944 
       
   945  <xs:simpleType name="simpleDerivationSet">
       
   946   <xs:annotation>
       
   947    <xs:documentation>
       
   948    #all or (possibly empty) subset of {restriction, union, list}
       
   949    </xs:documentation>
       
   950    <xs:documentation>
       
   951    A utility type, not for public use</xs:documentation>
       
   952   </xs:annotation>
       
   953   <xs:union>
       
   954    <xs:simpleType>    
       
   955     <xs:restriction base="xs:token">
       
   956      <xs:enumeration value="#all"/>
       
   957     </xs:restriction>
       
   958    </xs:simpleType>
       
   959    <xs:simpleType>
       
   960     <xs:restriction base="xs:derivationControl">
       
   961      <xs:enumeration value="list"/>
       
   962      <xs:enumeration value="union"/>
       
   963      <xs:enumeration value="restriction"/>
       
   964     </xs:restriction>
       
   965    </xs:simpleType>
       
   966   </xs:union>
       
   967  </xs:simpleType>
       
   968 
       
   969   <xs:complexType name="simpleType" abstract="true">
       
   970     <xs:complexContent>
       
   971       <xs:extension base="xs:annotated">
       
   972         <xs:group ref="xs:simpleDerivation"/>
       
   973         <xs:attribute name="final" type="xs:simpleDerivationSet"/>
       
   974         <xs:attribute name="name" type="xs:NCName">
       
   975           <xs:annotation>
       
   976             <xs:documentation>
       
   977               Can be restricted to required or forbidden
       
   978             </xs:documentation>
       
   979           </xs:annotation>
       
   980         </xs:attribute>
       
   981       </xs:extension>
       
   982     </xs:complexContent>
       
   983   </xs:complexType>
       
   984 
       
   985   <xs:complexType name="topLevelSimpleType">
       
   986     <xs:complexContent>
       
   987       <xs:restriction base="xs:simpleType">
       
   988         <xs:sequence>
       
   989           <xs:element ref="xs:annotation" minOccurs="0"/>
       
   990           <xs:group ref="xs:simpleDerivation"/>
       
   991         </xs:sequence>
       
   992         <xs:attribute name="name" use="required"
       
   993              type="xs:NCName">
       
   994           <xs:annotation>
       
   995             <xs:documentation>
       
   996               Required at the top level
       
   997             </xs:documentation>
       
   998           </xs:annotation>
       
   999         </xs:attribute>   
       
  1000       </xs:restriction>
       
  1001     </xs:complexContent>
       
  1002   </xs:complexType>
       
  1003 
       
  1004   <xs:complexType name="localSimpleType">
       
  1005     <xs:complexContent>
       
  1006       <xs:restriction base="xs:simpleType">
       
  1007         <xs:sequence>
       
  1008           <xs:element ref="xs:annotation" minOccurs="0"/>
       
  1009           <xs:group ref="xs:simpleDerivation"/>
       
  1010         </xs:sequence>
       
  1011         <xs:attribute name="name" use="prohibited">
       
  1012           <xs:annotation>
       
  1013             <xs:documentation>
       
  1014               Forbidden when nested
       
  1015             </xs:documentation>
       
  1016           </xs:annotation>
       
  1017         </xs:attribute>   
       
  1018         <xs:attribute name="final" use="prohibited"/>
       
  1019       </xs:restriction>
       
  1020     </xs:complexContent>
       
  1021   </xs:complexType>
       
  1022 
       
  1023   <xs:element name="simpleType" type="xs:topLevelSimpleType" id="simpleType">
       
  1024     <xs:annotation>
       
  1025       <xs:documentation
       
  1026         source="http://www.w3.org/TR/xmlschema-2/#element-simpleType"/>
       
  1027     </xs:annotation>
       
  1028   </xs:element>
       
  1029 
       
  1030   <xs:group name="facets">
       
  1031    <xs:annotation>
       
  1032     <xs:documentation>
       
  1033        We should use a substitution group for facets, but
       
  1034        that's ruled out because it would allow users to
       
  1035        add their own, which we're not ready for yet.
       
  1036     </xs:documentation>
       
  1037    </xs:annotation>
       
  1038    <xs:choice>
       
  1039     <xs:element ref="xs:minExclusive"/>
       
  1040     <xs:element ref="xs:minInclusive"/>
       
  1041     <xs:element ref="xs:maxExclusive"/>
       
  1042     <xs:element ref="xs:maxInclusive"/>
       
  1043     <xs:element ref="xs:totalDigits"/>
       
  1044     <xs:element ref="xs:fractionDigits"/>
       
  1045     <xs:element ref="xs:length"/>
       
  1046     <xs:element ref="xs:minLength"/>
       
  1047     <xs:element ref="xs:maxLength"/>
       
  1048     <xs:element ref="xs:enumeration"/>
       
  1049     <xs:element ref="xs:whiteSpace"/>
       
  1050     <xs:element ref="xs:pattern"/>
       
  1051    </xs:choice>
       
  1052   </xs:group>
       
  1053 
       
  1054   <xs:group name="simpleRestrictionModel">
       
  1055    <xs:sequence>
       
  1056     <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/>
       
  1057     <xs:group ref="xs:facets" minOccurs="0" maxOccurs="unbounded"/>
       
  1058    </xs:sequence>
       
  1059   </xs:group>
       
  1060 
       
  1061   <xs:element name="restriction" id="restriction">
       
  1062    <xs:complexType>
       
  1063     <xs:annotation>
       
  1064       <xs:documentation
       
  1065                 source="http://www.w3.org/TR/xmlschema-2/#element-restriction">
       
  1066           base attribute and simpleType child are mutually
       
  1067           exclusive, but one or other is required
       
  1068         </xs:documentation>
       
  1069       </xs:annotation>
       
  1070       <xs:complexContent>
       
  1071         <xs:extension base="xs:annotated">
       
  1072          <xs:group ref="xs:simpleRestrictionModel"/>
       
  1073          <xs:attribute name="base" type="xs:QName" use="optional"/>
       
  1074         </xs:extension>
       
  1075       </xs:complexContent>
       
  1076     </xs:complexType>
       
  1077   </xs:element>
       
  1078 
       
  1079   <xs:element name="list" id="list">
       
  1080    <xs:complexType>
       
  1081     <xs:annotation>
       
  1082       <xs:documentation
       
  1083                 source="http://www.w3.org/TR/xmlschema-2/#element-list">
       
  1084           itemType attribute and simpleType child are mutually
       
  1085           exclusive, but one or other is required
       
  1086         </xs:documentation>
       
  1087       </xs:annotation>
       
  1088       <xs:complexContent>
       
  1089         <xs:extension base="xs:annotated">
       
  1090           <xs:sequence>
       
  1091             <xs:element name="simpleType" type="xs:localSimpleType"
       
  1092                 minOccurs="0"/>
       
  1093           </xs:sequence>
       
  1094           <xs:attribute name="itemType" type="xs:QName" use="optional"/>
       
  1095         </xs:extension>
       
  1096       </xs:complexContent>
       
  1097     </xs:complexType>
       
  1098   </xs:element>
       
  1099 
       
  1100   <xs:element name="union" id="union">
       
  1101    <xs:complexType>
       
  1102     <xs:annotation>
       
  1103       <xs:documentation
       
  1104                 source="http://www.w3.org/TR/xmlschema-2/#element-union">
       
  1105           memberTypes attribute must be non-empty or there must be
       
  1106           at least one simpleType child
       
  1107         </xs:documentation>
       
  1108       </xs:annotation>
       
  1109       <xs:complexContent>
       
  1110         <xs:extension base="xs:annotated">
       
  1111           <xs:sequence>
       
  1112             <xs:element name="simpleType" type="xs:localSimpleType"
       
  1113                 minOccurs="0" maxOccurs="unbounded"/>
       
  1114           </xs:sequence>
       
  1115           <xs:attribute name="memberTypes" use="optional">
       
  1116             <xs:simpleType>
       
  1117               <xs:list itemType="xs:QName"/>
       
  1118             </xs:simpleType>
       
  1119           </xs:attribute>
       
  1120         </xs:extension>
       
  1121       </xs:complexContent>
       
  1122     </xs:complexType>
       
  1123   </xs:element>
       
  1124   
       
  1125   <xs:complexType name="facet">
       
  1126     <xs:complexContent>
       
  1127       <xs:extension base="xs:annotated">
       
  1128         <xs:attribute name="value" use="required"/>
       
  1129         <xs:attribute name="fixed" type="xs:boolean" use="optional"
       
  1130                       default="false"/>
       
  1131       </xs:extension>
       
  1132     </xs:complexContent>
       
  1133   </xs:complexType>
       
  1134  
       
  1135  <xs:complexType name="noFixedFacet">
       
  1136   <xs:complexContent>
       
  1137    <xs:restriction base="xs:facet">
       
  1138     <xs:sequence>
       
  1139      <xs:element ref="xs:annotation" minOccurs="0"/>
       
  1140     </xs:sequence>
       
  1141     <xs:attribute name="fixed" use="prohibited"/>
       
  1142    </xs:restriction>
       
  1143   </xs:complexContent>
       
  1144  </xs:complexType>
       
  1145 
       
  1146   <xs:element name="minExclusive" id="minExclusive" type="xs:facet">
       
  1147     <xs:annotation>
       
  1148       <xs:documentation
       
  1149         source="http://www.w3.org/TR/xmlschema-2/#element-minExclusive"/>
       
  1150     </xs:annotation>
       
  1151   </xs:element>
       
  1152   <xs:element name="minInclusive" id="minInclusive" type="xs:facet">
       
  1153     <xs:annotation>
       
  1154       <xs:documentation
       
  1155         source="http://www.w3.org/TR/xmlschema-2/#element-minInclusive"/>
       
  1156     </xs:annotation>
       
  1157   </xs:element>
       
  1158 
       
  1159   <xs:element name="maxExclusive" id="maxExclusive" type="xs:facet">
       
  1160     <xs:annotation>
       
  1161       <xs:documentation
       
  1162         source="http://www.w3.org/TR/xmlschema-2/#element-maxExclusive"/>
       
  1163     </xs:annotation>
       
  1164   </xs:element>
       
  1165   <xs:element name="maxInclusive" id="maxInclusive" type="xs:facet">
       
  1166     <xs:annotation>
       
  1167       <xs:documentation
       
  1168         source="http://www.w3.org/TR/xmlschema-2/#element-maxInclusive"/>
       
  1169     </xs:annotation>
       
  1170   </xs:element>
       
  1171 
       
  1172   <xs:complexType name="numFacet">
       
  1173     <xs:complexContent>
       
  1174       <xs:restriction base="xs:facet">
       
  1175        <xs:sequence>
       
  1176          <xs:element ref="xs:annotation" minOccurs="0"/>
       
  1177        </xs:sequence>
       
  1178        <xs:attribute name="value" type="xs:nonNegativeInteger" use="required"/>
       
  1179       </xs:restriction>
       
  1180     </xs:complexContent>
       
  1181   </xs:complexType>
       
  1182 
       
  1183   <xs:element name="totalDigits" id="totalDigits">
       
  1184     <xs:annotation>
       
  1185       <xs:documentation
       
  1186         source="http://www.w3.org/TR/xmlschema-2/#element-totalDigits"/>
       
  1187     </xs:annotation>
       
  1188     <xs:complexType>
       
  1189       <xs:complexContent>
       
  1190         <xs:restriction base="xs:numFacet">
       
  1191           <xs:sequence>
       
  1192             <xs:element ref="xs:annotation" minOccurs="0"/>
       
  1193           </xs:sequence>
       
  1194           <xs:attribute name="value" type="xs:positiveInteger" use="required"/>
       
  1195         </xs:restriction>
       
  1196       </xs:complexContent>
       
  1197     </xs:complexType>
       
  1198   </xs:element>
       
  1199   <xs:element name="fractionDigits" id="fractionDigits" type="xs:numFacet">
       
  1200     <xs:annotation>
       
  1201       <xs:documentation
       
  1202         source="http://www.w3.org/TR/xmlschema-2/#element-fractionDigits"/>
       
  1203     </xs:annotation>
       
  1204   </xs:element>
       
  1205 
       
  1206   <xs:element name="length" id="length" type="xs:numFacet">
       
  1207     <xs:annotation>
       
  1208       <xs:documentation
       
  1209         source="http://www.w3.org/TR/xmlschema-2/#element-length"/>
       
  1210     </xs:annotation>
       
  1211   </xs:element>
       
  1212   <xs:element name="minLength" id="minLength" type="xs:numFacet">
       
  1213     <xs:annotation>
       
  1214       <xs:documentation
       
  1215         source="http://www.w3.org/TR/xmlschema-2/#element-minLength"/>
       
  1216     </xs:annotation>
       
  1217   </xs:element>
       
  1218   <xs:element name="maxLength" id="maxLength" type="xs:numFacet">
       
  1219     <xs:annotation>
       
  1220       <xs:documentation
       
  1221         source="http://www.w3.org/TR/xmlschema-2/#element-maxLength"/>
       
  1222     </xs:annotation>
       
  1223   </xs:element>
       
  1224   
       
  1225   <xs:element name="enumeration" id="enumeration" type="xs:noFixedFacet">
       
  1226     <xs:annotation>
       
  1227       <xs:documentation
       
  1228         source="http://www.w3.org/TR/xmlschema-2/#element-enumeration"/>
       
  1229     </xs:annotation>
       
  1230   </xs:element>
       
  1231 
       
  1232   <xs:element name="whiteSpace" id="whiteSpace">
       
  1233     <xs:annotation>
       
  1234       <xs:documentation
       
  1235         source="http://www.w3.org/TR/xmlschema-2/#element-whiteSpace"/>
       
  1236     </xs:annotation>
       
  1237     <xs:complexType>
       
  1238       <xs:complexContent>
       
  1239         <xs:restriction base="xs:facet">
       
  1240           <xs:sequence>
       
  1241             <xs:element ref="xs:annotation" minOccurs="0"/>
       
  1242           </xs:sequence>
       
  1243           <xs:attribute name="value" use="required">
       
  1244             <xs:simpleType>
       
  1245               <xs:restriction base="xs:NMTOKEN">
       
  1246                 <xs:enumeration value="preserve"/>
       
  1247                 <xs:enumeration value="replace"/>
       
  1248                 <xs:enumeration value="collapse"/>
       
  1249               </xs:restriction>
       
  1250             </xs:simpleType>
       
  1251           </xs:attribute>
       
  1252         </xs:restriction>
       
  1253       </xs:complexContent>
       
  1254     </xs:complexType>
       
  1255   </xs:element>
       
  1256 
       
  1257   <xs:element name="pattern" id="pattern" type="xs:noFixedFacet">
       
  1258     <xs:annotation>
       
  1259       <xs:documentation
       
  1260         source="http://www.w3.org/TR/xmlschema-2/#element-pattern"/>
       
  1261     </xs:annotation>
       
  1262   </xs:element>
       
  1263 
       
  1264 </xs:schema>