rgen-xsd 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
+