rgen-xsd 0.1.0

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