PageRenderTime 135ms CodeModel.GetById 117ms app.highlight 12ms RepoModel.GetById 1ms app.codeStats 0ms

/bundles/plugins-trunk/XML/xml/dtds/datatypes.xsd

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