]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.cms/src/org/argeo/cms/acr/schemas/XMLSchema.xsd
Use runtime namespace context as default.
[lgpl/argeo-commons.git] / org.argeo.cms / src / org / argeo / cms / acr / schemas / XMLSchema.xsd
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> 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="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> 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>
429 &lt;restriction base="xs:anyType">
430 ...
431 &lt;/restriction>
432 &lt;/complexContent></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
1374 source="http://www.w3.org/TR/xmlschema-2/#string"/>
1375 </xs:annotation>
1376 <xs:restriction base="xs:anySimpleType">
1377 <xs:whiteSpace value="preserve" id="string.preserve"/>
1378 </xs:restriction>
1379 </xs:simpleType>
1380
1381 <xs:simpleType name="boolean" id="boolean">
1382 <xs:annotation>
1383 <xs:appinfo>
1384 <hfp:hasFacet name="pattern"/>
1385 <hfp:hasFacet name="whiteSpace"/>
1386 <hfp:hasProperty name="ordered" value="false"/>
1387 <hfp:hasProperty name="bounded" value="false"/>
1388 <hfp:hasProperty name="cardinality" value="finite"/>
1389 <hfp:hasProperty name="numeric" value="false"/>
1390 </xs:appinfo>
1391 <xs:documentation
1392 source="http://www.w3.org/TR/xmlschema-2/#boolean"/>
1393 </xs:annotation>
1394 <xs:restriction base="xs:anySimpleType">
1395 <xs:whiteSpace value="collapse" fixed="true"
1396 id="boolean.whiteSpace"/>
1397 </xs:restriction>
1398 </xs:simpleType>
1399
1400 <xs:simpleType name="float" id="float">
1401 <xs:annotation>
1402 <xs:appinfo>
1403 <hfp:hasFacet name="pattern"/>
1404 <hfp:hasFacet name="enumeration"/>
1405 <hfp:hasFacet name="whiteSpace"/>
1406 <hfp:hasFacet name="maxInclusive"/>
1407 <hfp:hasFacet name="maxExclusive"/>
1408 <hfp:hasFacet name="minInclusive"/>
1409 <hfp:hasFacet name="minExclusive"/>
1410 <hfp:hasProperty name="ordered" value="total"/>
1411 <hfp:hasProperty name="bounded" value="true"/>
1412 <hfp:hasProperty name="cardinality" value="finite"/>
1413 <hfp:hasProperty name="numeric" value="true"/>
1414 </xs:appinfo>
1415 <xs:documentation
1416 source="http://www.w3.org/TR/xmlschema-2/#float"/>
1417 </xs:annotation>
1418 <xs:restriction base="xs:anySimpleType">
1419 <xs:whiteSpace value="collapse" fixed="true"
1420 id="float.whiteSpace"/>
1421 </xs:restriction>
1422 </xs:simpleType>
1423
1424 <xs:simpleType name="double" id="double">
1425 <xs:annotation>
1426 <xs:appinfo>
1427 <hfp:hasFacet name="pattern"/>
1428 <hfp:hasFacet name="enumeration"/>
1429 <hfp:hasFacet name="whiteSpace"/>
1430 <hfp:hasFacet name="maxInclusive"/>
1431 <hfp:hasFacet name="maxExclusive"/>
1432 <hfp:hasFacet name="minInclusive"/>
1433 <hfp:hasFacet name="minExclusive"/>
1434 <hfp:hasProperty name="ordered" value="total"/>
1435 <hfp:hasProperty name="bounded" value="true"/>
1436 <hfp:hasProperty name="cardinality" value="finite"/>
1437 <hfp:hasProperty name="numeric" value="true"/>
1438 </xs:appinfo>
1439 <xs:documentation
1440 source="http://www.w3.org/TR/xmlschema-2/#double"/>
1441 </xs:annotation>
1442 <xs:restriction base="xs:anySimpleType">
1443 <xs:whiteSpace value="collapse" fixed="true"
1444 id="double.whiteSpace"/>
1445 </xs:restriction>
1446 </xs:simpleType>
1447
1448 <xs:simpleType name="decimal" id="decimal">
1449 <xs:annotation>
1450 <xs:appinfo>
1451 <hfp:hasFacet name="totalDigits"/>
1452 <hfp:hasFacet name="fractionDigits"/>
1453 <hfp:hasFacet name="pattern"/>
1454 <hfp:hasFacet name="whiteSpace"/>
1455 <hfp:hasFacet name="enumeration"/>
1456 <hfp:hasFacet name="maxInclusive"/>
1457 <hfp:hasFacet name="maxExclusive"/>
1458 <hfp:hasFacet name="minInclusive"/>
1459 <hfp:hasFacet name="minExclusive"/>
1460 <hfp:hasProperty name="ordered" value="total"/>
1461 <hfp:hasProperty name="bounded" value="false"/>
1462 <hfp:hasProperty name="cardinality"
1463 value="countably infinite"/>
1464 <hfp:hasProperty name="numeric" value="true"/>
1465 </xs:appinfo>
1466 <xs:documentation
1467 source="http://www.w3.org/TR/xmlschema-2/#decimal"/>
1468 </xs:annotation>
1469 <xs:restriction base="xs:anySimpleType">
1470 <xs:whiteSpace value="collapse" fixed="true"
1471 id="decimal.whiteSpace"/>
1472 </xs:restriction>
1473 </xs:simpleType>
1474
1475 <xs:simpleType name="duration" id="duration">
1476 <xs:annotation>
1477 <xs:appinfo>
1478 <hfp:hasFacet name="pattern"/>
1479 <hfp:hasFacet name="enumeration"/>
1480 <hfp:hasFacet name="whiteSpace"/>
1481 <hfp:hasFacet name="maxInclusive"/>
1482 <hfp:hasFacet name="maxExclusive"/>
1483 <hfp:hasFacet name="minInclusive"/>
1484 <hfp:hasFacet name="minExclusive"/>
1485 <hfp:hasProperty name="ordered" value="partial"/>
1486 <hfp:hasProperty name="bounded" value="false"/>
1487 <hfp:hasProperty name="cardinality"
1488 value="countably infinite"/>
1489 <hfp:hasProperty name="numeric" value="false"/>
1490 </xs:appinfo>
1491 <xs:documentation
1492 source="http://www.w3.org/TR/xmlschema-2/#duration"/>
1493 </xs:annotation>
1494 <xs:restriction base="xs:anySimpleType">
1495 <xs:whiteSpace value="collapse" fixed="true"
1496 id="duration.whiteSpace"/>
1497 </xs:restriction>
1498 </xs:simpleType>
1499
1500 <xs:simpleType name="dateTime" id="dateTime">
1501 <xs:annotation>
1502 <xs:appinfo>
1503 <hfp:hasFacet name="pattern"/>
1504 <hfp:hasFacet name="enumeration"/>
1505 <hfp:hasFacet name="whiteSpace"/>
1506 <hfp:hasFacet name="maxInclusive"/>
1507 <hfp:hasFacet name="maxExclusive"/>
1508 <hfp:hasFacet name="minInclusive"/>
1509 <hfp:hasFacet name="minExclusive"/>
1510 <hfp:hasProperty name="ordered" value="partial"/>
1511 <hfp:hasProperty name="bounded" value="false"/>
1512 <hfp:hasProperty name="cardinality"
1513 value="countably infinite"/>
1514 <hfp:hasProperty name="numeric" value="false"/>
1515 </xs:appinfo>
1516 <xs:documentation
1517 source="http://www.w3.org/TR/xmlschema-2/#dateTime"/>
1518 </xs:annotation>
1519 <xs:restriction base="xs:anySimpleType">
1520 <xs:whiteSpace value="collapse" fixed="true"
1521 id="dateTime.whiteSpace"/>
1522 </xs:restriction>
1523 </xs:simpleType>
1524
1525 <xs:simpleType name="time" id="time">
1526 <xs:annotation>
1527 <xs:appinfo>
1528 <hfp:hasFacet name="pattern"/>
1529 <hfp:hasFacet name="enumeration"/>
1530 <hfp:hasFacet name="whiteSpace"/>
1531 <hfp:hasFacet name="maxInclusive"/>
1532 <hfp:hasFacet name="maxExclusive"/>
1533 <hfp:hasFacet name="minInclusive"/>
1534 <hfp:hasFacet name="minExclusive"/>
1535 <hfp:hasProperty name="ordered" value="partial"/>
1536 <hfp:hasProperty name="bounded" value="false"/>
1537 <hfp:hasProperty name="cardinality"
1538 value="countably infinite"/>
1539 <hfp:hasProperty name="numeric" value="false"/>
1540 </xs:appinfo>
1541 <xs:documentation
1542 source="http://www.w3.org/TR/xmlschema-2/#time"/>
1543 </xs:annotation>
1544 <xs:restriction base="xs:anySimpleType">
1545 <xs:whiteSpace value="collapse" fixed="true"
1546 id="time.whiteSpace"/>
1547 </xs:restriction>
1548 </xs:simpleType>
1549
1550 <xs:simpleType name="date" id="date">
1551 <xs:annotation>
1552 <xs:appinfo>
1553 <hfp:hasFacet name="pattern"/>
1554 <hfp:hasFacet name="enumeration"/>
1555 <hfp:hasFacet name="whiteSpace"/>
1556 <hfp:hasFacet name="maxInclusive"/>
1557 <hfp:hasFacet name="maxExclusive"/>
1558 <hfp:hasFacet name="minInclusive"/>
1559 <hfp:hasFacet name="minExclusive"/>
1560 <hfp:hasProperty name="ordered" value="partial"/>
1561 <hfp:hasProperty name="bounded" value="false"/>
1562 <hfp:hasProperty name="cardinality"
1563 value="countably infinite"/>
1564 <hfp:hasProperty name="numeric" value="false"/>
1565 </xs:appinfo>
1566 <xs:documentation
1567 source="http://www.w3.org/TR/xmlschema-2/#date"/>
1568 </xs:annotation>
1569 <xs:restriction base="xs:anySimpleType">
1570 <xs:whiteSpace value="collapse" fixed="true"
1571 id="date.whiteSpace"/>
1572 </xs:restriction>
1573 </xs:simpleType>
1574
1575 <xs:simpleType name="gYearMonth" id="gYearMonth">
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"
1588 value="countably infinite"/>
1589 <hfp:hasProperty name="numeric" value="false"/>
1590 </xs:appinfo>
1591 <xs:documentation
1592 source="http://www.w3.org/TR/xmlschema-2/#gYearMonth"/>
1593 </xs:annotation>
1594 <xs:restriction base="xs:anySimpleType">
1595 <xs:whiteSpace value="collapse" fixed="true"
1596 id="gYearMonth.whiteSpace"/>
1597 </xs:restriction>
1598 </xs:simpleType>
1599
1600 <xs:simpleType name="gYear" id="gYear">
1601 <xs:annotation>
1602 <xs:appinfo>
1603 <hfp:hasFacet name="pattern"/>
1604 <hfp:hasFacet name="enumeration"/>
1605 <hfp:hasFacet name="whiteSpace"/>
1606 <hfp:hasFacet name="maxInclusive"/>
1607 <hfp:hasFacet name="maxExclusive"/>
1608 <hfp:hasFacet name="minInclusive"/>
1609 <hfp:hasFacet name="minExclusive"/>
1610 <hfp:hasProperty name="ordered" value="partial"/>
1611 <hfp:hasProperty name="bounded" value="false"/>
1612 <hfp:hasProperty name="cardinality"
1613 value="countably infinite"/>
1614 <hfp:hasProperty name="numeric" value="false"/>
1615 </xs:appinfo>
1616 <xs:documentation
1617 source="http://www.w3.org/TR/xmlschema-2/#gYear"/>
1618 </xs:annotation>
1619 <xs:restriction base="xs:anySimpleType">
1620 <xs:whiteSpace value="collapse" fixed="true"
1621 id="gYear.whiteSpace"/>
1622 </xs:restriction>
1623 </xs:simpleType>
1624
1625 <xs:simpleType name="gMonthDay" id="gMonthDay">
1626 <xs:annotation>
1627 <xs:appinfo>
1628 <hfp:hasFacet name="pattern"/>
1629 <hfp:hasFacet name="enumeration"/>
1630 <hfp:hasFacet name="whiteSpace"/>
1631 <hfp:hasFacet name="maxInclusive"/>
1632 <hfp:hasFacet name="maxExclusive"/>
1633 <hfp:hasFacet name="minInclusive"/>
1634 <hfp:hasFacet name="minExclusive"/>
1635 <hfp:hasProperty name="ordered" value="partial"/>
1636 <hfp:hasProperty name="bounded" value="false"/>
1637 <hfp:hasProperty name="cardinality"
1638 value="countably infinite"/>
1639 <hfp:hasProperty name="numeric" value="false"/>
1640 </xs:appinfo>
1641 <xs:documentation
1642 source="http://www.w3.org/TR/xmlschema-2/#gMonthDay"/>
1643 </xs:annotation>
1644 <xs:restriction base="xs:anySimpleType">
1645 <xs:whiteSpace value="collapse" fixed="true"
1646 id="gMonthDay.whiteSpace"/>
1647 </xs:restriction>
1648 </xs:simpleType>
1649
1650 <xs:simpleType name="gDay" id="gDay">
1651 <xs:annotation>
1652 <xs:appinfo>
1653 <hfp:hasFacet name="pattern"/>
1654 <hfp:hasFacet name="enumeration"/>
1655 <hfp:hasFacet name="whiteSpace"/>
1656 <hfp:hasFacet name="maxInclusive"/>
1657 <hfp:hasFacet name="maxExclusive"/>
1658 <hfp:hasFacet name="minInclusive"/>
1659 <hfp:hasFacet name="minExclusive"/>
1660 <hfp:hasProperty name="ordered" value="partial"/>
1661 <hfp:hasProperty name="bounded" value="false"/>
1662 <hfp:hasProperty name="cardinality"
1663 value="countably infinite"/>
1664 <hfp:hasProperty name="numeric" value="false"/>
1665 </xs:appinfo>
1666 <xs:documentation
1667 source="http://www.w3.org/TR/xmlschema-2/#gDay"/>
1668 </xs:annotation>
1669 <xs:restriction base="xs:anySimpleType">
1670 <xs:whiteSpace value="collapse" fixed="true"
1671 id="gDay.whiteSpace"/>
1672 </xs:restriction>
1673 </xs:simpleType>
1674
1675 <xs:simpleType name="gMonth" id="gMonth">
1676 <xs:annotation>
1677 <xs:appinfo>
1678 <hfp:hasFacet name="pattern"/>
1679 <hfp:hasFacet name="enumeration"/>
1680 <hfp:hasFacet name="whiteSpace"/>
1681 <hfp:hasFacet name="maxInclusive"/>
1682 <hfp:hasFacet name="maxExclusive"/>
1683 <hfp:hasFacet name="minInclusive"/>
1684 <hfp:hasFacet name="minExclusive"/>
1685 <hfp:hasProperty name="ordered" value="partial"/>
1686 <hfp:hasProperty name="bounded" value="false"/>
1687 <hfp:hasProperty name="cardinality"
1688 value="countably infinite"/>
1689 <hfp:hasProperty name="numeric" value="false"/>
1690 </xs:appinfo>
1691 <xs:documentation
1692 source="http://www.w3.org/TR/xmlschema-2/#gMonth"/>
1693 </xs:annotation>
1694 <xs:restriction base="xs:anySimpleType">
1695 <xs:whiteSpace value="collapse" fixed="true"
1696 id="gMonth.whiteSpace"/>
1697 </xs:restriction>
1698 </xs:simpleType>
1699
1700 <xs:simpleType name="hexBinary" id="hexBinary">
1701 <xs:annotation>
1702 <xs:appinfo>
1703 <hfp:hasFacet name="length"/>
1704 <hfp:hasFacet name="minLength"/>
1705 <hfp:hasFacet name="maxLength"/>
1706 <hfp:hasFacet name="pattern"/>
1707 <hfp:hasFacet name="enumeration"/>
1708 <hfp:hasFacet name="whiteSpace"/>
1709 <hfp:hasProperty name="ordered" value="false"/>
1710 <hfp:hasProperty name="bounded" value="false"/>
1711 <hfp:hasProperty name="cardinality"
1712 value="countably infinite"/>
1713 <hfp:hasProperty name="numeric" value="false"/>
1714 </xs:appinfo>
1715 <xs:documentation
1716 source="http://www.w3.org/TR/xmlschema-2/#binary"/>
1717 </xs:annotation>
1718 <xs:restriction base="xs:anySimpleType">
1719 <xs:whiteSpace value="collapse" fixed="true"
1720 id="hexBinary.whiteSpace"/>
1721 </xs:restriction>
1722 </xs:simpleType>
1723
1724 <xs:simpleType name="base64Binary" id="base64Binary">
1725 <xs:annotation>
1726 <xs:appinfo>
1727 <hfp:hasFacet name="length"/>
1728 <hfp:hasFacet name="minLength"/>
1729 <hfp:hasFacet name="maxLength"/>
1730 <hfp:hasFacet name="pattern"/>
1731 <hfp:hasFacet name="enumeration"/>
1732 <hfp:hasFacet name="whiteSpace"/>
1733 <hfp:hasProperty name="ordered" value="false"/>
1734 <hfp:hasProperty name="bounded" value="false"/>
1735 <hfp:hasProperty name="cardinality"
1736 value="countably infinite"/>
1737 <hfp:hasProperty name="numeric" value="false"/>
1738 </xs:appinfo>
1739 <xs:documentation
1740 source="http://www.w3.org/TR/xmlschema-2/#base64Binary"/>
1741 </xs:annotation>
1742 <xs:restriction base="xs:anySimpleType">
1743 <xs:whiteSpace value="collapse" fixed="true"
1744 id="base64Binary.whiteSpace"/>
1745 </xs:restriction>
1746 </xs:simpleType>
1747
1748 <xs:simpleType name="anyURI" id="anyURI">
1749 <xs:annotation>
1750 <xs:appinfo>
1751 <hfp:hasFacet name="length"/>
1752 <hfp:hasFacet name="minLength"/>
1753 <hfp:hasFacet name="maxLength"/>
1754 <hfp:hasFacet name="pattern"/>
1755 <hfp:hasFacet name="enumeration"/>
1756 <hfp:hasFacet name="whiteSpace"/>
1757 <hfp:hasProperty name="ordered" value="false"/>
1758 <hfp:hasProperty name="bounded" value="false"/>
1759 <hfp:hasProperty name="cardinality"
1760 value="countably infinite"/>
1761 <hfp:hasProperty name="numeric" value="false"/>
1762 </xs:appinfo>
1763 <xs:documentation
1764 source="http://www.w3.org/TR/xmlschema-2/#anyURI"/>
1765 </xs:annotation>
1766 <xs:restriction base="xs:anySimpleType">
1767 <xs:whiteSpace value="collapse" fixed="true"
1768 id="anyURI.whiteSpace"/>
1769 </xs:restriction>
1770 </xs:simpleType>
1771
1772 <xs:simpleType name="QName" id="QName">
1773 <xs:annotation>
1774 <xs:appinfo>
1775 <hfp:hasFacet name="length"/>
1776 <hfp:hasFacet name="minLength"/>
1777 <hfp:hasFacet name="maxLength"/>
1778 <hfp:hasFacet name="pattern"/>
1779 <hfp:hasFacet name="enumeration"/>
1780 <hfp:hasFacet name="whiteSpace"/>
1781 <hfp:hasProperty name="ordered" value="false"/>
1782 <hfp:hasProperty name="bounded" value="false"/>
1783 <hfp:hasProperty name="cardinality"
1784 value="countably infinite"/>
1785 <hfp:hasProperty name="numeric" value="false"/>
1786 </xs:appinfo>
1787 <xs:documentation
1788 source="http://www.w3.org/TR/xmlschema-2/#QName"/>
1789 </xs:annotation>
1790 <xs:restriction base="xs:anySimpleType">
1791 <xs:whiteSpace value="collapse" fixed="true"
1792 id="QName.whiteSpace"/>
1793 </xs:restriction>
1794 </xs:simpleType>
1795
1796 <xs:simpleType name="NOTATION" id="NOTATION">
1797 <xs:annotation>
1798 <xs:appinfo>
1799 <hfp:hasFacet name="length"/>
1800 <hfp:hasFacet name="minLength"/>
1801 <hfp:hasFacet name="maxLength"/>
1802 <hfp:hasFacet name="pattern"/>
1803 <hfp:hasFacet name="enumeration"/>
1804 <hfp:hasFacet name="whiteSpace"/>
1805 <hfp:hasProperty name="ordered" value="false"/>
1806 <hfp:hasProperty name="bounded" value="false"/>
1807 <hfp:hasProperty name="cardinality"
1808 value="countably infinite"/>
1809 <hfp:hasProperty name="numeric" value="false"/>
1810 </xs:appinfo>
1811 <xs:documentation
1812 source="http://www.w3.org/TR/xmlschema-2/#NOTATION"/>
1813 <xs:documentation>
1814 NOTATION cannot be used directly in a schema; rather a type
1815 must be derived from it by specifying at least one enumeration
1816 facet whose value is the name of a NOTATION declared in the
1817 schema.
1818 </xs:documentation>
1819 </xs:annotation>
1820 <xs:restriction base="xs:anySimpleType">
1821 <xs:whiteSpace value="collapse" fixed="true"
1822 id="NOTATION.whiteSpace"/>
1823 </xs:restriction>
1824 </xs:simpleType>
1825
1826 <xs:annotation>
1827 <xs:documentation>
1828 Now the derived primitive types
1829 </xs:documentation>
1830 </xs:annotation>
1831
1832 <xs:simpleType name="normalizedString" id="normalizedString">
1833 <xs:annotation>
1834 <xs:documentation
1835 source="http://www.w3.org/TR/xmlschema-2/#normalizedString"/>
1836 </xs:annotation>
1837 <xs:restriction base="xs:string">
1838 <xs:whiteSpace value="replace"
1839 id="normalizedString.whiteSpace"/>
1840 </xs:restriction>
1841 </xs:simpleType>
1842
1843 <xs:simpleType name="token" id="token">
1844 <xs:annotation>
1845 <xs:documentation
1846 source="http://www.w3.org/TR/xmlschema-2/#token"/>
1847 </xs:annotation>
1848 <xs:restriction base="xs:normalizedString">
1849 <xs:whiteSpace value="collapse" id="token.whiteSpace"/>
1850 </xs:restriction>
1851 </xs:simpleType>
1852
1853 <xs:simpleType name="language" id="language">
1854 <xs:annotation>
1855 <xs:documentation
1856 source="http://www.w3.org/TR/xmlschema-2/#language"/>
1857 </xs:annotation>
1858 <xs:restriction base="xs:token">
1859 <xs:pattern
1860 value="[a-zA-Z]{1,8}(-[a-zA-Z0-9]{1,8})*"
1861 id="language.pattern">
1862 <xs:annotation>
1863 <xs:documentation
1864 source="http://www.ietf.org/rfc/rfc3066.txt">
1865 pattern specifies the content of section 2.12 of XML 1.0e2
1866 and RFC 3066 (Revised version of RFC 1766).
1867 </xs:documentation>
1868 </xs:annotation>
1869 </xs:pattern>
1870 </xs:restriction>
1871 </xs:simpleType>
1872
1873 <xs:simpleType name="IDREFS" id="IDREFS">
1874 <xs:annotation>
1875 <xs:appinfo>
1876 <hfp:hasFacet name="length"/>
1877 <hfp:hasFacet name="minLength"/>
1878 <hfp:hasFacet name="maxLength"/>
1879 <hfp:hasFacet name="enumeration"/>
1880 <hfp:hasFacet name="whiteSpace"/>
1881 <hfp:hasFacet name="pattern"/>
1882 <hfp:hasProperty name="ordered" value="false"/>
1883 <hfp:hasProperty name="bounded" value="false"/>
1884 <hfp:hasProperty name="cardinality"
1885 value="countably infinite"/>
1886 <hfp:hasProperty name="numeric" value="false"/>
1887 </xs:appinfo>
1888 <xs:documentation
1889 source="http://www.w3.org/TR/xmlschema-2/#IDREFS"/>
1890 </xs:annotation>
1891 <xs:restriction>
1892 <xs:simpleType>
1893 <xs:list itemType="xs:IDREF"/>
1894 </xs:simpleType>
1895 <xs:minLength value="1" id="IDREFS.minLength"/>
1896 </xs:restriction>
1897 </xs:simpleType>
1898
1899 <xs:simpleType name="ENTITIES" id="ENTITIES">
1900 <xs:annotation>
1901 <xs:appinfo>
1902 <hfp:hasFacet name="length"/>
1903 <hfp:hasFacet name="minLength"/>
1904 <hfp:hasFacet name="maxLength"/>
1905 <hfp:hasFacet name="enumeration"/>
1906 <hfp:hasFacet name="whiteSpace"/>
1907 <hfp:hasFacet name="pattern"/>
1908 <hfp:hasProperty name="ordered" value="false"/>
1909 <hfp:hasProperty name="bounded" value="false"/>
1910 <hfp:hasProperty name="cardinality"
1911 value="countably infinite"/>
1912 <hfp:hasProperty name="numeric" value="false"/>
1913 </xs:appinfo>
1914 <xs:documentation
1915 source="http://www.w3.org/TR/xmlschema-2/#ENTITIES"/>
1916 </xs:annotation>
1917 <xs:restriction>
1918 <xs:simpleType>
1919 <xs:list itemType="xs:ENTITY"/>
1920 </xs:simpleType>
1921 <xs:minLength value="1" id="ENTITIES.minLength"/>
1922 </xs:restriction>
1923 </xs:simpleType>
1924
1925 <xs:simpleType name="NMTOKEN" id="NMTOKEN">
1926 <xs:annotation>
1927 <xs:documentation
1928 source="http://www.w3.org/TR/xmlschema-2/#NMTOKEN"/>
1929 </xs:annotation>
1930 <xs:restriction base="xs:token">
1931 <xs:pattern value="\c+" id="NMTOKEN.pattern">
1932 <xs:annotation>
1933 <xs:documentation
1934 source="http://www.w3.org/TR/REC-xml#NT-Nmtoken">
1935 pattern matches production 7 from the XML spec
1936 </xs:documentation>
1937 </xs:annotation>
1938 </xs:pattern>
1939 </xs:restriction>
1940 </xs:simpleType>
1941
1942 <xs:simpleType name="NMTOKENS" id="NMTOKENS">
1943 <xs:annotation>
1944 <xs:appinfo>
1945 <hfp:hasFacet name="length"/>
1946 <hfp:hasFacet name="minLength"/>
1947 <hfp:hasFacet name="maxLength"/>
1948 <hfp:hasFacet name="enumeration"/>
1949 <hfp:hasFacet name="whiteSpace"/>
1950 <hfp:hasFacet name="pattern"/>
1951 <hfp:hasProperty name="ordered" value="false"/>
1952 <hfp:hasProperty name="bounded" value="false"/>
1953 <hfp:hasProperty name="cardinality"
1954 value="countably infinite"/>
1955 <hfp:hasProperty name="numeric" value="false"/>
1956 </xs:appinfo>
1957 <xs:documentation
1958 source="http://www.w3.org/TR/xmlschema-2/#NMTOKENS"/>
1959 </xs:annotation>
1960 <xs:restriction>
1961 <xs:simpleType>
1962 <xs:list itemType="xs:NMTOKEN"/>
1963 </xs:simpleType>
1964 <xs:minLength value="1" id="NMTOKENS.minLength"/>
1965 </xs:restriction>
1966 </xs:simpleType>
1967
1968 <xs:simpleType name="Name" id="Name">
1969 <xs:annotation>
1970 <xs:documentation
1971 source="http://www.w3.org/TR/xmlschema-2/#Name"/>
1972 </xs:annotation>
1973 <xs:restriction base="xs:token">
1974 <xs:pattern value="\i\c*" id="Name.pattern">
1975 <xs:annotation>
1976 <xs:documentation
1977 source="http://www.w3.org/TR/REC-xml#NT-Name">
1978 pattern matches production 5 from the XML spec
1979 </xs:documentation>
1980 </xs:annotation>
1981 </xs:pattern>
1982 </xs:restriction>
1983 </xs:simpleType>
1984
1985 <xs:simpleType name="NCName" id="NCName">
1986 <xs:annotation>
1987 <xs:documentation
1988 source="http://www.w3.org/TR/xmlschema-2/#NCName"/>
1989 </xs:annotation>
1990 <xs:restriction base="xs:Name">
1991 <xs:pattern value="[\i-[:]][\c-[:]]*" id="NCName.pattern">
1992 <xs:annotation>
1993 <xs:documentation
1994 source="http://www.w3.org/TR/REC-xml-names/#NT-NCName">
1995 pattern matches production 4 from the Namespaces in XML spec
1996 </xs:documentation>
1997 </xs:annotation>
1998 </xs:pattern>
1999 </xs:restriction>
2000 </xs:simpleType>
2001
2002 <xs:simpleType name="ID" id="ID">
2003 <xs:annotation>
2004 <xs:documentation
2005 source="http://www.w3.org/TR/xmlschema-2/#ID"/>
2006 </xs:annotation>
2007 <xs:restriction base="xs:NCName"/>
2008 </xs:simpleType>
2009
2010 <xs:simpleType name="IDREF" id="IDREF">
2011 <xs:annotation>
2012 <xs:documentation
2013 source="http://www.w3.org/TR/xmlschema-2/#IDREF"/>
2014 </xs:annotation>
2015 <xs:restriction base="xs:NCName"/>
2016 </xs:simpleType>
2017
2018 <xs:simpleType name="ENTITY" id="ENTITY">
2019 <xs:annotation>
2020 <xs:documentation
2021 source="http://www.w3.org/TR/xmlschema-2/#ENTITY"/>
2022 </xs:annotation>
2023 <xs:restriction base="xs:NCName"/>
2024 </xs:simpleType>
2025
2026 <xs:simpleType name="integer" id="integer">
2027 <xs:annotation>
2028 <xs:documentation
2029 source="http://www.w3.org/TR/xmlschema-2/#integer"/>
2030 </xs:annotation>
2031 <xs:restriction base="xs:decimal">
2032 <xs:fractionDigits value="0" fixed="true" id="integer.fractionDigits"/>
2033 <xs:pattern value="[\-+]?[0-9]+"/>
2034 </xs:restriction>
2035 </xs:simpleType>
2036
2037 <xs:simpleType name="nonPositiveInteger" id="nonPositiveInteger">
2038 <xs:annotation>
2039 <xs:documentation
2040 source="http://www.w3.org/TR/xmlschema-2/#nonPositiveInteger"/>
2041 </xs:annotation>
2042 <xs:restriction base="xs:integer">
2043 <xs:maxInclusive value="0" id="nonPositiveInteger.maxInclusive"/>
2044 </xs:restriction>
2045 </xs:simpleType>
2046
2047 <xs:simpleType name="negativeInteger" id="negativeInteger">
2048 <xs:annotation>
2049 <xs:documentation
2050 source="http://www.w3.org/TR/xmlschema-2/#negativeInteger"/>
2051 </xs:annotation>
2052 <xs:restriction base="xs:nonPositiveInteger">
2053 <xs:maxInclusive value="-1" id="negativeInteger.maxInclusive"/>
2054 </xs:restriction>
2055 </xs:simpleType>
2056
2057 <xs:simpleType name="long" id="long">
2058 <xs:annotation>
2059 <xs:appinfo>
2060 <hfp:hasProperty name="bounded" value="true"/>
2061 <hfp:hasProperty name="cardinality" value="finite"/>
2062 </xs:appinfo>
2063 <xs:documentation
2064 source="http://www.w3.org/TR/xmlschema-2/#long"/>
2065 </xs:annotation>
2066 <xs:restriction base="xs:integer">
2067 <xs:minInclusive value="-9223372036854775808" id="long.minInclusive"/>
2068 <xs:maxInclusive value="9223372036854775807" id="long.maxInclusive"/>
2069 </xs:restriction>
2070 </xs:simpleType>
2071
2072 <xs:simpleType name="int" id="int">
2073 <xs:annotation>
2074 <xs:documentation
2075 source="http://www.w3.org/TR/xmlschema-2/#int"/>
2076 </xs:annotation>
2077 <xs:restriction base="xs:long">
2078 <xs:minInclusive value="-2147483648" id="int.minInclusive"/>
2079 <xs:maxInclusive value="2147483647" id="int.maxInclusive"/>
2080 </xs:restriction>
2081 </xs:simpleType>
2082
2083 <xs:simpleType name="short" id="short">
2084 <xs:annotation>
2085 <xs:documentation
2086 source="http://www.w3.org/TR/xmlschema-2/#short"/>
2087 </xs:annotation>
2088 <xs:restriction base="xs:int">
2089 <xs:minInclusive value="-32768" id="short.minInclusive"/>
2090 <xs:maxInclusive value="32767" id="short.maxInclusive"/>
2091 </xs:restriction>
2092 </xs:simpleType>
2093
2094 <xs:simpleType name="byte" id="byte">
2095 <xs:annotation>
2096 <xs:documentation
2097 source="http://www.w3.org/TR/xmlschema-2/#byte"/>
2098 </xs:annotation>
2099 <xs:restriction base="xs:short">
2100 <xs:minInclusive value="-128" id="byte.minInclusive"/>
2101 <xs:maxInclusive value="127" id="byte.maxInclusive"/>
2102 </xs:restriction>
2103 </xs:simpleType>
2104
2105 <xs:simpleType name="nonNegativeInteger" id="nonNegativeInteger">
2106 <xs:annotation>
2107 <xs:documentation
2108 source="http://www.w3.org/TR/xmlschema-2/#nonNegativeInteger"/>
2109 </xs:annotation>
2110 <xs:restriction base="xs:integer">
2111 <xs:minInclusive value="0" id="nonNegativeInteger.minInclusive"/>
2112 </xs:restriction>
2113 </xs:simpleType>
2114
2115 <xs:simpleType name="unsignedLong" id="unsignedLong">
2116 <xs:annotation>
2117 <xs:appinfo>
2118 <hfp:hasProperty name="bounded" value="true"/>
2119 <hfp:hasProperty name="cardinality" value="finite"/>
2120 </xs:appinfo>
2121 <xs:documentation
2122 source="http://www.w3.org/TR/xmlschema-2/#unsignedLong"/>
2123 </xs:annotation>
2124 <xs:restriction base="xs:nonNegativeInteger">
2125 <xs:maxInclusive value="18446744073709551615"
2126 id="unsignedLong.maxInclusive"/>
2127 </xs:restriction>
2128 </xs:simpleType>
2129
2130 <xs:simpleType name="unsignedInt" id="unsignedInt">
2131 <xs:annotation>
2132 <xs:documentation
2133 source="http://www.w3.org/TR/xmlschema-2/#unsignedInt"/>
2134 </xs:annotation>
2135 <xs:restriction base="xs:unsignedLong">
2136 <xs:maxInclusive value="4294967295"
2137 id="unsignedInt.maxInclusive"/>
2138 </xs:restriction>
2139 </xs:simpleType>
2140
2141 <xs:simpleType name="unsignedShort" id="unsignedShort">
2142 <xs:annotation>
2143 <xs:documentation
2144 source="http://www.w3.org/TR/xmlschema-2/#unsignedShort"/>
2145 </xs:annotation>
2146 <xs:restriction base="xs:unsignedInt">
2147 <xs:maxInclusive value="65535"
2148 id="unsignedShort.maxInclusive"/>
2149 </xs:restriction>
2150 </xs:simpleType>
2151
2152 <xs:simpleType name="unsignedByte" id="unsignedByte">
2153 <xs:annotation>
2154 <xs:documentation
2155 source="http://www.w3.org/TR/xmlschema-2/#unsignedByte"/>
2156 </xs:annotation>
2157 <xs:restriction base="xs:unsignedShort">
2158 <xs:maxInclusive value="255" id="unsignedByte.maxInclusive"/>
2159 </xs:restriction>
2160 </xs:simpleType>
2161
2162 <xs:simpleType name="positiveInteger" id="positiveInteger">
2163 <xs:annotation>
2164 <xs:documentation
2165 source="http://www.w3.org/TR/xmlschema-2/#positiveInteger"/>
2166 </xs:annotation>
2167 <xs:restriction base="xs:nonNegativeInteger">
2168 <xs:minInclusive value="1" id="positiveInteger.minInclusive"/>
2169 </xs:restriction>
2170 </xs:simpleType>
2171
2172 <xs:simpleType name="derivationControl">
2173 <xs:annotation>
2174 <xs:documentation>
2175 A utility type, not for public use</xs:documentation>
2176 </xs:annotation>
2177 <xs:restriction base="xs:NMTOKEN">
2178 <xs:enumeration value="substitution"/>
2179 <xs:enumeration value="extension"/>
2180 <xs:enumeration value="restriction"/>
2181 <xs:enumeration value="list"/>
2182 <xs:enumeration value="union"/>
2183 </xs:restriction>
2184 </xs:simpleType>
2185
2186 <xs:group name="simpleDerivation">
2187 <xs:choice>
2188 <xs:element ref="xs:restriction"/>
2189 <xs:element ref="xs:list"/>
2190 <xs:element ref="xs:union"/>
2191 </xs:choice>
2192 </xs:group>
2193
2194 <xs:simpleType name="simpleDerivationSet">
2195 <xs:annotation>
2196 <xs:documentation>
2197 #all or (possibly empty) subset of {restriction, union, list}
2198 </xs:documentation>
2199 <xs:documentation>
2200 A utility type, not for public use</xs:documentation>
2201 </xs:annotation>
2202 <xs:union>
2203 <xs:simpleType>
2204 <xs:restriction base="xs:token">
2205 <xs:enumeration value="#all"/>
2206 </xs:restriction>
2207 </xs:simpleType>
2208 <xs:simpleType>
2209 <xs:list>
2210 <xs:simpleType>
2211 <xs:restriction base="xs:derivationControl">
2212 <xs:enumeration value="list"/>
2213 <xs:enumeration value="union"/>
2214 <xs:enumeration value="restriction"/>
2215 </xs:restriction>
2216 </xs:simpleType>
2217 </xs:list>
2218 </xs:simpleType>
2219 </xs:union>
2220 </xs:simpleType>
2221
2222 <xs:complexType name="simpleType" abstract="true">
2223 <xs:complexContent>
2224 <xs:extension base="xs:annotated">
2225 <xs:group ref="xs:simpleDerivation"/>
2226 <xs:attribute name="final" type="xs:simpleDerivationSet"/>
2227 <xs:attribute name="name" type="xs:NCName">
2228 <xs:annotation>
2229 <xs:documentation>
2230 Can be restricted to required or forbidden
2231 </xs:documentation>
2232 </xs:annotation>
2233 </xs:attribute>
2234 </xs:extension>
2235 </xs:complexContent>
2236 </xs:complexType>
2237
2238 <xs:complexType name="topLevelSimpleType">
2239 <xs:complexContent>
2240 <xs:restriction base="xs:simpleType">
2241 <xs:sequence>
2242 <xs:element ref="xs:annotation" minOccurs="0"/>
2243 <xs:group ref="xs:simpleDerivation"/>
2244 </xs:sequence>
2245 <xs:attribute name="name" use="required"
2246 type="xs:NCName">
2247 <xs:annotation>
2248 <xs:documentation>
2249 Required at the top level
2250 </xs:documentation>
2251 </xs:annotation>
2252 </xs:attribute>
2253 <xs:anyAttribute namespace="##other" processContents="lax"/>
2254 </xs:restriction>
2255 </xs:complexContent>
2256 </xs:complexType>
2257
2258 <xs:complexType name="localSimpleType">
2259 <xs:complexContent>
2260 <xs:restriction base="xs:simpleType">
2261 <xs:sequence>
2262 <xs:element ref="xs:annotation" minOccurs="0"/>
2263 <xs:group ref="xs:simpleDerivation"/>
2264 </xs:sequence>
2265 <xs:attribute name="name" use="prohibited">
2266 <xs:annotation>
2267 <xs:documentation>
2268 Forbidden when nested
2269 </xs:documentation>
2270 </xs:annotation>
2271 </xs:attribute>
2272 <xs:attribute name="final" use="prohibited"/>
2273 <xs:anyAttribute namespace="##other" processContents="lax"/>
2274 </xs:restriction>
2275 </xs:complexContent>
2276 </xs:complexType>
2277
2278 <xs:element name="simpleType" type="xs:topLevelSimpleType" id="simpleType">
2279 <xs:annotation>
2280 <xs:documentation
2281 source="http://www.w3.org/TR/xmlschema-2/#element-simpleType"/>
2282 </xs:annotation>
2283 </xs:element>
2284
2285 <xs:group name="facets">
2286 <xs:annotation>
2287 <xs:documentation>
2288 We should use a substitution group for facets, but
2289 that's ruled out because it would allow users to
2290 add their own, which we're not ready for yet.
2291 </xs:documentation>
2292 </xs:annotation>
2293 <xs:choice>
2294 <xs:element ref="xs:minExclusive"/>
2295 <xs:element ref="xs:minInclusive"/>
2296 <xs:element ref="xs:maxExclusive"/>
2297 <xs:element ref="xs:maxInclusive"/>
2298 <xs:element ref="xs:totalDigits"/>
2299 <xs:element ref="xs:fractionDigits"/>
2300 <xs:element ref="xs:length"/>
2301 <xs:element ref="xs:minLength"/>
2302 <xs:element ref="xs:maxLength"/>
2303 <xs:element ref="xs:enumeration"/>
2304 <xs:element ref="xs:whiteSpace"/>
2305 <xs:element ref="xs:pattern"/>
2306 </xs:choice>
2307 </xs:group>
2308
2309 <xs:group name="simpleRestrictionModel">
2310 <xs:sequence>
2311 <xs:element name="simpleType" type="xs:localSimpleType" minOccurs="0"/>
2312 <xs:group ref="xs:facets" minOccurs="0" maxOccurs="unbounded"/>
2313 </xs:sequence>
2314 </xs:group>
2315
2316 <xs:element name="restriction" id="restriction">
2317 <xs:complexType>
2318 <xs:annotation>
2319 <xs:documentation
2320 source="http://www.w3.org/TR/xmlschema-2/#element-restriction">
2321 base attribute and simpleType child are mutually
2322 exclusive, but one or other is required
2323 </xs:documentation>
2324 </xs:annotation>
2325 <xs:complexContent>
2326 <xs:extension base="xs:annotated">
2327 <xs:group ref="xs:simpleRestrictionModel"/>
2328 <xs:attribute name="base" type="xs:QName" use="optional"/>
2329 </xs:extension>
2330 </xs:complexContent>
2331 </xs:complexType>
2332 </xs:element>
2333
2334 <xs:element name="list" id="list">
2335 <xs:complexType>
2336 <xs:annotation>
2337 <xs:documentation
2338 source="http://www.w3.org/TR/xmlschema-2/#element-list">
2339 itemType attribute and simpleType child are mutually
2340 exclusive, but one or other is required
2341 </xs:documentation>
2342 </xs:annotation>
2343 <xs:complexContent>
2344 <xs:extension base="xs:annotated">
2345 <xs:sequence>
2346 <xs:element name="simpleType" type="xs:localSimpleType"
2347 minOccurs="0"/>
2348 </xs:sequence>
2349 <xs:attribute name="itemType" type="xs:QName" use="optional"/>
2350 </xs:extension>
2351 </xs:complexContent>
2352 </xs:complexType>
2353 </xs:element>
2354
2355 <xs:element name="union" id="union">
2356 <xs:complexType>
2357 <xs:annotation>
2358 <xs:documentation
2359 source="http://www.w3.org/TR/xmlschema-2/#element-union">
2360 memberTypes attribute must be non-empty or there must be
2361 at least one simpleType child
2362 </xs:documentation>
2363 </xs:annotation>
2364 <xs:complexContent>
2365 <xs:extension base="xs:annotated">
2366 <xs:sequence>
2367 <xs:element name="simpleType" type="xs:localSimpleType"
2368 minOccurs="0" maxOccurs="unbounded"/>
2369 </xs:sequence>
2370 <xs:attribute name="memberTypes" use="optional">
2371 <xs:simpleType>
2372 <xs:list itemType="xs:QName"/>
2373 </xs:simpleType>
2374 </xs:attribute>
2375 </xs:extension>
2376 </xs:complexContent>
2377 </xs:complexType>
2378 </xs:element>
2379
2380 <xs:complexType name="facet">
2381 <xs:complexContent>
2382 <xs:extension base="xs:annotated">
2383 <xs:attribute name="value" use="required"/>
2384 <xs:attribute name="fixed" type="xs:boolean" use="optional"
2385 default="false"/>
2386 </xs:extension>
2387 </xs:complexContent>
2388 </xs:complexType>
2389
2390 <xs:complexType name="noFixedFacet">
2391 <xs:complexContent>
2392 <xs:restriction base="xs:facet">
2393 <xs:sequence>
2394 <xs:element ref="xs:annotation" minOccurs="0"/>
2395 </xs:sequence>
2396 <xs:attribute name="fixed" use="prohibited"/>
2397 <xs:anyAttribute namespace="##other" processContents="lax"/>
2398 </xs:restriction>
2399 </xs:complexContent>
2400 </xs:complexType>
2401
2402 <xs:element name="minExclusive" id="minExclusive" type="xs:facet">
2403 <xs:annotation>
2404 <xs:documentation
2405 source="http://www.w3.org/TR/xmlschema-2/#element-minExclusive"/>
2406 </xs:annotation>
2407 </xs:element>
2408 <xs:element name="minInclusive" id="minInclusive" type="xs:facet">
2409 <xs:annotation>
2410 <xs:documentation
2411 source="http://www.w3.org/TR/xmlschema-2/#element-minInclusive"/>
2412 </xs:annotation>
2413 </xs:element>
2414
2415 <xs:element name="maxExclusive" id="maxExclusive" type="xs:facet">
2416 <xs:annotation>
2417 <xs:documentation
2418 source="http://www.w3.org/TR/xmlschema-2/#element-maxExclusive"/>
2419 </xs:annotation>
2420 </xs:element>
2421 <xs:element name="maxInclusive" id="maxInclusive" type="xs:facet">
2422 <xs:annotation>
2423 <xs:documentation
2424 source="http://www.w3.org/TR/xmlschema-2/#element-maxInclusive"/>
2425 </xs:annotation>
2426 </xs:element>
2427
2428 <xs:complexType name="numFacet">
2429 <xs:complexContent>
2430 <xs:restriction base="xs:facet">
2431 <xs:sequence>
2432 <xs:element ref="xs:annotation" minOccurs="0"/>
2433 </xs:sequence>
2434 <xs:attribute name="value" type="xs:nonNegativeInteger" use="required"/>
2435 <xs:anyAttribute namespace="##other" processContents="lax"/>
2436 </xs:restriction>
2437 </xs:complexContent>
2438 </xs:complexType>
2439
2440 <xs:element name="totalDigits" id="totalDigits">
2441 <xs:annotation>
2442 <xs:documentation
2443 source="http://www.w3.org/TR/xmlschema-2/#element-totalDigits"/>
2444 </xs:annotation>
2445 <xs:complexType>
2446 <xs:complexContent>
2447 <xs:restriction base="xs:numFacet">
2448 <xs:sequence>
2449 <xs:element ref="xs:annotation" minOccurs="0"/>
2450 </xs:sequence>
2451 <xs:attribute name="value" type="xs:positiveInteger" use="required"/>
2452 <xs:anyAttribute namespace="##other" processContents="lax"/>
2453 </xs:restriction>
2454 </xs:complexContent>
2455 </xs:complexType>
2456 </xs:element>
2457 <xs:element name="fractionDigits" id="fractionDigits" type="xs:numFacet">
2458 <xs:annotation>
2459 <xs:documentation
2460 source="http://www.w3.org/TR/xmlschema-2/#element-fractionDigits"/>
2461 </xs:annotation>
2462 </xs:element>
2463
2464 <xs:element name="length" id="length" type="xs:numFacet">
2465 <xs:annotation>
2466 <xs:documentation
2467 source="http://www.w3.org/TR/xmlschema-2/#element-length"/>
2468 </xs:annotation>
2469 </xs:element>
2470 <xs:element name="minLength" id="minLength" type="xs:numFacet">
2471 <xs:annotation>
2472 <xs:documentation
2473 source="http://www.w3.org/TR/xmlschema-2/#element-minLength"/>
2474 </xs:annotation>
2475 </xs:element>
2476 <xs:element name="maxLength" id="maxLength" type="xs:numFacet">
2477 <xs:annotation>
2478 <xs:documentation
2479 source="http://www.w3.org/TR/xmlschema-2/#element-maxLength"/>
2480 </xs:annotation>
2481 </xs:element>
2482
2483 <xs:element name="enumeration" id="enumeration" type="xs:noFixedFacet">
2484 <xs:annotation>
2485 <xs:documentation
2486 source="http://www.w3.org/TR/xmlschema-2/#element-enumeration"/>
2487 </xs:annotation>
2488 </xs:element>
2489
2490 <xs:element name="whiteSpace" id="whiteSpace">
2491 <xs:annotation>
2492 <xs:documentation
2493 source="http://www.w3.org/TR/xmlschema-2/#element-whiteSpace"/>
2494 </xs:annotation>
2495 <xs:complexType>
2496 <xs:complexContent>
2497 <xs:restriction base="xs:facet">
2498 <xs:sequence>
2499 <xs:element ref="xs:annotation" minOccurs="0"/>
2500 </xs:sequence>
2501 <xs:attribute name="value" use="required">
2502 <xs:simpleType>
2503 <xs:restriction base="xs:NMTOKEN">
2504 <xs:enumeration value="preserve"/>
2505 <xs:enumeration value="replace"/>
2506 <xs:enumeration value="collapse"/>
2507 </xs:restriction>
2508 </xs:simpleType>
2509 </xs:attribute>
2510 <xs:anyAttribute namespace="##other" processContents="lax"/>
2511 </xs:restriction>
2512 </xs:complexContent>
2513 </xs:complexType>
2514 </xs:element>
2515
2516 <xs:element name="pattern" id="pattern">
2517 <xs:annotation>
2518 <xs:documentation
2519 source="http://www.w3.org/TR/xmlschema-2/#element-pattern"/>
2520 </xs:annotation>
2521 <xs:complexType>
2522 <xs:complexContent>
2523 <xs:restriction base="xs:noFixedFacet">
2524 <xs:sequence>
2525 <xs:element ref="xs:annotation" minOccurs="0"/>
2526 </xs:sequence>
2527 <xs:attribute name="value" type="xs:string" use="required"/>
2528 <xs:anyAttribute namespace="##other" processContents="lax"/>
2529 </xs:restriction>
2530 </xs:complexContent>
2531 </xs:complexType>
2532 </xs:element>
2533
2534 </xs:schema>