Subversion Repositories configs

Rev

Details | Last modification | View Log | RSS feed

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