Tue, 09 Apr 2013 14:51:13 +0100
8010393: Update JAX-WS RI to 2.2.9-b12941
Reviewed-by: alanb, erikj
Contributed-by: miroslav.kos@oracle.com, martin.grebac@oracle.com
1 <?xml version="1.0"?>
2 <!--
3 Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
4 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
6 This code is free software; you can redistribute it and/or modify it
7 under the terms of the GNU General Public License version 2 only, as
8 published by the Free Software Foundation. Oracle designates this
9 particular file as subject to the "Classpath" exception as provided
10 by Oracle in the LICENSE file that accompanied this code.
12 This code is distributed in the hope that it will be useful, but WITHOUT
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15 version 2 for more details (a copy is included in the LICENSE file that
16 accompanied this code).
18 You should have received a copy of the GNU General Public License version
19 2 along with this work; if not, write to the Free Software Foundation,
20 Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
22 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
23 or visit www.oracle.com if you need additional information or have any
24 questions.
25 -->
27 <grammar xmlns="http://relaxng.org/ns/structure/1.0"
28 datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
29 ns="http://www.w3.org/2001/XMLSchema"
30 xmlns:xs="http://www.w3.org/2001/XMLSchema"
31 xmlns:doc="http://www.jenitennison.com/doc"
32 xmlns:txw="http://java.sun.com/txw">
34 <doc:p>
35 RELAX NG schema for XML Schema by <doc:link
36 href="mailto:mail@jenitennison.com">Jeni Tennison</doc:link>. Based on
37 <doc:link href="http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/">XML
38 Schema Part I: Structures Recommendation</doc:link> and <doc:link
39 href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/">XML Schema Part
40 II: Datatypes</doc:link>.
41 </doc:p>
42 <doc:changes date="2001-11-24">
43 <doc:p>
44 Amended to comply with 10 August 2001 Tutorial.
45 </doc:p>
46 <doc:change>Removed key attributes.</doc:change>
47 <doc:change>Replaced not element with except elements.</doc:change>
48 <doc:change>
49 Replaced multiple consecutive optional attributes to use the
50 zeroOrMore/choice pattern.
51 </doc:change>
52 <doc:change>
53 Removed interleave elements inside list elements (which are no longer
54 permitted).
55 </doc:change>
56 </doc:changes>
58 <define name="openAttrs" txw:mode="inherit">
59 <doc:p>
60 This allows any number of attributes that are not in the XML Schema
61 namespace or are in no namespace. This is somewhat more complicated than
62 the XML Schema anyAttribute equivalent.
63 </doc:p>
64 <!-- KK don't care -->
65 <empty/>
66 <!--zeroOrMore>
67 <attribute>
68 <anyName>
69 <except>
70 <nsName />
71 <nsName ns="" />
72 <name>xml:lang</name>
73 </except>
74 </anyName>
75 <text />
76 </attribute>
77 </zeroOrMore-->
78 </define>
80 <define name="annotated" txw:mode="inherit">
81 <doc:p>
82 This allows any number of attributes that are not in the XML Schema
83 namespace or are in no namespace, an optional id attribute of type ID,
84 and an optional annotation element. This is used as the basis for many
85 element content models.
86 </doc:p>
87 <ref name="openAttrs" />
88 <optional>
89 <attribute name="id">
90 <data type="ID" />
91 </attribute>
92 </optional>
93 <optional>
94 <ref name="annotation" />
95 </optional>
96 </define>
98 <define name="schemaTop" txw:mode="inline">
99 <doc:p>
100 This gives the content model of the top level of the schema.
101 </doc:p>
102 <choice>
103 <ref name="redefinable" />
104 <ref name="topLevelElement" />
105 <ref name="topLevelAttribute" />
106 <!--ref name="notation" /-->
107 </choice>
108 </define>
110 <define name="redefinable" txw:mode="inline">
111 <doc:p>
112 This gives the components that can be redefined within the redefine
113 element. They also occur at the top level of the schema.
114 </doc:p>
115 <choice>
116 <ref name="simpleTypeHost" />
117 <ref name="complexTypeHost" />
118 <!--ref name="namedGroup" />
119 <ref name="namedAttributeGroup" /-->
120 </choice>
121 </define>
123 <define name="formChoice">
124 <doc:p>
125 This gives the values for the various form attributes:
126 elementFormDefault and attributeFormDefault on the schema element, and
127 the form attributes on the element and attribute elements.
128 </doc:p>
129 <choice>
130 <value>qualified</value>
131 <value>unqualified</value>
132 </choice>
133 </define>
135 <!-- KK: merge the two -->
136 <define name="reducedDerivationControl">
137 <doc:p>
138 This gives the values that can be taken in the lists used to control
139 derivation by extension or restriction (this is 'reduced' derivation
140 because some derivation can involve substitution). This RELAX NG schema,
141 like the XML Schema Recommendation here, allows the keywords 'extension' and
142 'restriction' to be repeated any number of times.
143 </doc:p>
144 <list>
145 <oneOrMore>
146 <choice>
147 <value>extension</value>
148 <value>restriction</value>
149 </choice>
150 </oneOrMore>
151 </list>
152 </define>
154 <define name="derivationSet">
155 <doc:p>
156 This specifies the possible values for attributes that control derivation.
157 </doc:p>
158 <choice>
159 <value>#all</value>
160 <ref name="reducedDerivationControl" />
161 </choice>
162 </define>
164 <start>
165 <doc:p>
166 This is the beginning point for the schema, and defines the schema
167 element.
168 </doc:p>
169 <element name="schema"
170 doc:href="http://www.w3.org/TR/xmlschema-1/#element-schema">
171 <ref name="openAttrs" />
172 <zeroOrMore>
173 <choice>
174 <attribute name="version">
175 <data type="token" />
176 </attribute>
177 <attribute name="finalDefault">
178 <ref name="derivationSet" />
179 </attribute>
180 <attribute name="blockDefault">
181 <ref name="blockSet" />
182 </attribute>
183 <attribute name="attributeFormDefault">
184 <ref name="formChoice" />
185 </attribute>
186 <attribute name="elementFormDefault">
187 <ref name="formChoice" />
188 </attribute>
189 <attribute name="id">
190 <data type="ID" />
191 </attribute>
192 <attribute name="xml:lang">
193 <data type="language" />
194 </attribute>
195 <attribute name="targetNamespace">
196 <data type="anyURI" />
197 </attribute>
198 </choice>
199 </zeroOrMore>
200 <zeroOrMore>
201 <choice>
202 <!--ref name="include" /-->
203 <ref name="import" />
204 <!--ref name="redefine" /-->
205 <ref name="annotation" />
206 </choice>
207 </zeroOrMore>
208 <zeroOrMore>
209 <choice>
210 <ref name="schemaTop" />
211 <ref name="annotation" />
212 </choice>
213 </zeroOrMore>
214 </element>
215 </start>
217 <define name="allNNI">
218 <doc:p>
219 This gives the value type for the maxOccurs attribute, which may be a
220 non-negative number or the keyword 'unbounded'.
221 </doc:p>
222 <choice>
223 <data type="nonNegativeInteger" />
224 <value type="token">unbounded</value>
225 </choice>
226 </define>
228 <define name="occurs" txw:mode="inherit">
229 <doc:p>
230 This specifies the occurs attributes, minOccurs and maxOccurs, as they
231 are normally used.
232 </doc:p>
233 <zeroOrMore>
234 <choice>
235 <attribute name="minOccurs">
236 <data type="nonNegativeInteger" />
237 </attribute>
238 <attribute name="maxOccurs">
239 <ref name="allNNI" />
240 </attribute>
241 </choice>
242 </zeroOrMore>
243 </define>
245 <define name="typeDefParticle" txw:mode="inline">
246 <doc:p>
247 This gives the possible content of complex types.
248 </doc:p>
249 <choice>
250 <!--ref name="groupRef" /-->
251 <ref name="all" />
252 <ref name="choice" />
253 <ref name="sequence" />
254 </choice>
255 </define>
257 <define name="nestedParticle" txw:mode="inline">
258 <doc:p>
259 This gives the particles that can make up a model group.
260 </doc:p>
261 <choice>
262 <ref name="localElement" />
263 <!--ref name="groupRef" /-->
264 <ref name="choice" />
265 <ref name="sequence" />
266 <ref name="any" />
267 </choice>
268 </define>
270 <define name="fixedOrDefault" txw:mode="inline">
271 <doc:p>
272 This specifies the relationship between fixed and default attributes on
273 element and attribute elements - if one is present, then the other cannot
274 be. This is a constraint that cannot be specified using XML Schema.
275 </doc:p>
276 <choice>
277 <empty />
278 <attribute name="fixed" />
279 <attribute name="default" />
280 </choice>
281 </define>
283 <define name="attributeType" txw:mode="inherit">
284 <doc:p>
285 This specifies the relationship between the type attribute and the
286 simpleType element child of attribute elements - if one is present, then
287 the other cannot be, although it is possible for neither to be allowed.
288 </doc:p>
289 <choice>
290 <empty />
291 <attribute name="type">
292 <data type="QName" />
293 </attribute>
294 <ref name="simpleTypeHost" />
295 </choice>
296 </define>
298 <define name="localAttribute">
299 <doc:p>
300 This describes attribute elements when used in a local context. They
301 have an optional use attribute, possibly a fixed or default attribute,
302 and then can either have a ref attribute (referring to a top-level
303 attribute) or a name attribute with an optional form attribute and
304 specifying an attribute type.
305 </doc:p>
306 <element name="attribute"
307 doc:href="http://www.w3.org/TR/xmlschema-1/#element-attribute">
308 <ref name="annotated" />
309 <optional>
310 <attribute name="use">
311 <choice>
312 <value type="token">optional</value>
313 <value type="token">prohibited</value>
314 <value type="token">required</value>
315 </choice>
316 </attribute>
317 </optional>
318 <ref name="fixedOrDefault" />
319 <choice>
320 <attribute name="ref">
321 <data type="QName" />
322 </attribute>
323 <group>
324 <attribute name="name">
325 <data type="NCName" />
326 </attribute>
327 <optional>
328 <attribute name="form">
329 <ref name="formChoice" />
330 </attribute>
331 </optional>
332 <ref name="attributeType" />
333 </group>
334 </choice>
335 </element>
336 </define>
338 <define name="topLevelAttribute">
339 <doc:p>
340 This describes attribute elements when used at the top level of the
341 schema. They must have a name, may have a fixed or default attribute,
342 and specify their type through a type attribute or child simpleType
343 element. The name attribute of each attribute element that appears at
344 the top level of the schema is unique.
345 </doc:p>
346 <element name="attribute"
347 doc:href="http://www.w3.org/TR/xmlschema-1/#element-attribute">
348 <ref name="annotated" />
349 <attribute name="name">
350 <data type="NCName" />
351 </attribute>
352 <ref name="fixedOrDefault" />
353 <ref name="attributeType" />
354 </element>
355 </define>
357 <define name="attrDecls" txw:mode="inherit">
358 <doc:p>
359 This gives the model group for specifying the attributes in a complex
360 type, an extension or restriction.
361 </doc:p>
362 <zeroOrMore>
363 <choice>
364 <ref name="localAttribute" />
365 <!--ref name="attributeGroupRef" /-->
366 </choice>
367 </zeroOrMore>
368 <optional>
369 <ref name="anyAttribute" />
370 </optional>
371 </define>
373 <define name="anyAttribute">
374 <doc:p>
375 This specifies the anyAttribute wildcard.
376 </doc:p>
377 <element name="anyAttribute"
378 doc:href="http://www.w3.org/TR/xmlschema-1/#element-anyAttribute">
379 <ref name="wildcard" />
380 </element>
381 </define>
383 <define name="complexTypeModel" txw:mode="inherit">
384 <doc:p>
385 This specifies the content of a complexType element. As children, it can
386 have a simpleContent, a complexContent or a model group. Only if it has
387 one of the latter two, may it have a mixed attribute. This latter
388 constraint is something that cannot be specified in XML Schema.
389 </doc:p>
390 <choice>
391 <ref name="simpleContent" />
392 <group>
393 <optional>
394 <attribute name="mixed">
395 <data type="boolean" />
396 </attribute>
397 </optional>
398 <choice>
399 <ref name="complexContent" />
400 <group>
401 <optional>
402 <ref name="typeDefParticle" />
403 </optional>
404 <ref name="attrDecls" />
405 </group>
406 </choice>
407 </group>
408 </choice>
409 </define>
411 <define name="complexTypeHost" txw:mode="inherit">
412 <ref name="typeHost" />
413 <ref name="complexType" />
414 </define>
416 <define name="typeHost" txw:mode="inherit"><empty/><empty/></define>
418 <define name="complexType" txw:mode="inherit">
419 <element name="complexType"
420 doc:href="http://www.w3.org/TR/xmlschema-1/#element-complexType">
421 <doc:p>
422 This specifies the basic content of a complexType element.
423 </doc:p>
424 <ref name="annotated" />
425 <ref name="complexTypeModel" />
426 <optional>
427 <attribute name="name">
428 <data type="NCName" />
429 </attribute>
430 </optional>
431 <zeroOrMore>
432 <choice>
433 <attribute name="abstract">
434 <data type="boolean" />
435 </attribute>
436 <attribute name="block">
437 <ref name="derivationSet" />
438 </attribute>
439 <attribute name="final">
440 <ref name="derivationSet" />
441 </attribute>
442 </choice>
443 </zeroOrMore>
444 </element>
445 </define>
447 <define name="complexRestriction">
448 <doc:p>
449 This describes a restriction element within a complexContent element
450 (i.e. one that restricts a complex type). It has a base attribute, may
451 contain a model group and may contain attribute declarations of various
452 sorts.
453 </doc:p>
454 <element name="restriction"
455 doc:href="http://www.w3.org/TR/xmlschema-1/#element-complexContent::restriction">
456 <ref name="annotated" />
457 <attribute name="base">
458 <data type="QName" />
459 </attribute>
460 <optional>
461 <ref name="typeDefParticle" />
462 </optional>
463 <ref name="attrDecls" />
464 </element>
465 </define>
467 <define name="extensionType">
468 <doc:p>
469 This specifies the basic model for an extension element: adding a
470 required base attribute to the model used for most components.
471 </doc:p>
472 <ref name="annotated" />
473 <attribute name="base">
474 <data type="QName" />
475 </attribute>
476 </define>
478 <define name="complexExtension">
479 <doc:p>
480 This describes an extension element within a complexContent element
481 (i.e. one that restricts a complex type). It may contain a model group
482 and may contain attribute declarations of various sorts.
483 </doc:p>
484 <element name="extension"
485 doc:href="http://www.w3.org/TR/xmlschema-1/#element-complexContent::extension">
486 <ref name="extensionType" />
487 <optional>
488 <ref name="typeDefParticle" />
489 </optional>
490 <ref name="attrDecls" />
491 </element>
492 </define>
494 <define name="complexContent">
495 <doc:p>
496 This describes a complexContent element. It may have a mixed attribute,
497 and either a restriction or extension element as content.
498 </doc:p>
499 <element name="complexContent"
500 doc:href="http://www.w3.org/TR/xmlschema-1/#element-complexContent">
501 <ref name="annotated" />
502 <optional>
503 <attribute name="mixed">
504 <data type="boolean" />
505 </attribute>
506 </optional>
507 <choice>
508 <ref name="complexRestriction" />
509 <ref name="complexExtension" />
510 </choice>
511 </element>
512 </define>
514 <define name="simpleRestriction">
515 <doc:p>
516 This describes a restriction element that appears within a simpleContent
517 or simpleType element (i.e. one that restricts a simple type). Its
518 content follows the simple restriction model that is detailed below, and
519 may include attribute declarations.
520 </doc:p>
521 <element name="restriction"
522 doc:href="http://www.w3.org/TR/xmlschema-1/#element-simpleContent::restriction">
523 <ref name="annotated" />
524 <ref name="simpleRestrictionModel" />
525 <ref name="attrDecls" />
526 </element>
527 </define>
529 <define name="simpleExtension">
530 <doc:p>
531 This describes an extension element that appears within a simpleContent
532 element (i.e. one that extends a simple type). Like other extensions, it
533 has a base type, but it can only be used to add attributes.
534 </doc:p>
535 <element name="extension"
536 doc:href="http://www.w3.org/TR/xmlschema-1/#element-simpleContent::extension">
537 <ref name="extensionType" />
538 <ref name="attrDecls" />
539 </element>
540 </define>
542 <define name="simpleContent">
543 <doc:p>
544 This describes a simpleContent element, whose content can either hold a
545 restriction or extension element.
546 </doc:p>
547 <element name="simpleContent"
548 doc:href="http://www.w3.org/TR/xmlschema-1/#element-simpleContent">
549 <ref name="annotated" />
550 <choice>
551 <ref name="simpleRestriction" />
552 <ref name="simpleExtension" />
553 </choice>
554 </element>
555 </define>
557 <define name="blockSet">
558 <doc:p>
559 This gives the possible values for block attributes on element elements,
560 which includes substitution amongst the list of possible values. This
561 RELAX NG schema, like the XML Schema Recommendation, allows each of the
562 keywords 'extension', 'restriction' and 'substitution' to occur more than
563 once within the list.
564 </doc:p>
565 <choice>
566 <value type="token">#all</value>
567 <list>
568 <oneOrMore>
569 <choice>
570 <value>extension</value>
571 <value>restriction</value>
572 <value>substitution</value>
573 </choice>
574 </oneOrMore>
575 </list>
576 </choice>
577 </define>
579 <define name="element" txw:mode="inherit">
580 <doc:p>
581 This describes the basic content model of an element element. It is
582 annotated, may have a fixed or default attribute, and may have nillable
583 and/or block attributes. Its type may be specified through a type
584 attribute, a local simple type or a local complex type - the choice
585 between these methods is something that cannot be indicated with XML
586 Schema. This content is optionally followed by some identify constraints.
587 </doc:p>
588 <ref name="annotated" />
589 <ref name="fixedOrDefault" />
590 <zeroOrMore>
591 <choice>
592 <attribute name="nillable">
593 <data type="boolean" />
594 </attribute>
595 <attribute name="block">
596 <ref name="blockSet" />
597 </attribute>
598 </choice>
599 </zeroOrMore>
600 <choice>
601 <empty />
602 <attribute name="type">
603 <data type="QName" />
604 </attribute>
605 <ref name="simpleTypeHost" />
606 <ref name="complexTypeHost" />
607 </choice>
608 <!--zeroOrMore>
609 <ref name="identityConstraint" />
610 </zeroOrMore-->
611 </define>
613 <define name="topLevelElement">
614 <doc:p>
615 This describes an element element that appears at the top level of the
616 schema. On top of the basic content for an element element, it has to
617 have a name, which is a unique identifier in the element symbol space. It
618 may have substitutionGroup, abstract and/or final attributes.
619 </doc:p>
620 <element name="element"
621 doc:href="http://www.w3.org/TR/xmlschema-1/#element-element">
622 <ref name="element" />
623 <attribute name="name">
624 <data type="NCName" />
625 </attribute>
626 <zeroOrMore>
627 <choice>
628 <attribute name="substitutionGroup">
629 <data type="QName" />
630 </attribute>
631 <attribute name="abstract">
632 <data type="boolean" />
633 </attribute>
634 <attribute name="final">
635 <ref name="derivationSet" />
636 </attribute>
637 </choice>
638 </zeroOrMore>
639 </element>
640 </define>
642 <define name="localElement">
643 <doc:p>
644 This describes an element element that appears locally, within a
645 complexType or group element. It may have minOccurs and/or maxOccurs
646 attributes. If it has a ref attribute, then that's all it can
647 have. Otherwise, it must have a name and specifies its type in the same
648 way as the basic element content model described above. It may in this
649 case also have a form element. These constraints on local elements
650 cannot be described within XML Schema.
651 </doc:p>
652 <element name="element"
653 doc:href="http://www.w3.org/TR/xmlschema-1/#element-element">
654 <ref name="occurs" />
655 <choice>
656 <attribute name="ref">
657 <data type="QName" />
658 </attribute>
659 <group>
660 <ref name="element" />
661 <attribute name="name">
662 <data type="NCName" />
663 </attribute>
664 <optional>
665 <attribute name="form">
666 <ref name="formChoice" />
667 </attribute>
668 </optional>
669 </group>
670 </choice>
671 </element>
672 </define>
674 <!--define name="namedGroup">
675 <doc:p>
676 This describes an group element that appears at the top level of the
677 schema. It must have a name attribute, and must have one of an all,
678 choice or sequence element child.
679 </doc:p>
680 <element name="group"
681 doc:href="http://www.w3.org/TR/xmlschema-1/#element-group">
682 <ref name="annotated" />
683 <attribute name="name">
684 <data type="NCName" />
685 </attribute>
686 <choice>
687 <element name="all">
688 <ref name="simpleExplicitGroup" /> <!- - RS - relaxed all content model - ->
689 </element>
690 <element name="choice">
691 <ref name="simpleExplicitGroup" />
692 </element>
693 <element name="sequence">
694 <ref name="simpleExplicitGroup" />
695 </element>
696 </choice>
697 </element>
698 </define-->
700 <!--define name="groupRef">
701 <doc:p>
702 This describes group element that occurs locally, referring to a
703 top-level named group. It may have occurrence attributes, and must have
704 a ref attribute.
705 </doc:p>
706 <element name="group"
707 doc:href="http://www.w3.org/TR/xmlschema-1/#element-group">
708 <ref name="annotated" />
709 <ref name="occurs" />
710 <attribute name="ref">
711 <data type="QName" />
712 </attribute>
713 </element>
714 </define-->
716 <define name="explicitGroup" txw:mode="inherit">
717 <doc:p>
718 This gives the content of a model group (not a group element) in the
719 normal run of things. It has occurrence attributes and any number of
720 particles within it.
721 </doc:p>
722 <ref name="annotated" />
723 <ref name="occurs" />
724 <zeroOrMore>
725 <ref name="nestedParticle" />
726 </zeroOrMore>
727 </define>
729 <define name="simpleExplicitGroup">
730 <doc:p>
731 This gives the content of a model group (not a group element) within a
732 named group - it differs from the above in that it doesn't have any
733 occurrence attributes.
734 </doc:p>
735 <ref name="annotated" />
736 <zeroOrMore>
737 <ref name="nestedParticle" />
738 </zeroOrMore>
739 </define>
741 <define name="all">
742 <doc:p>
743 This describes an all element that appears outside a named group (i.e. as
744 the content of a complexType element). It has the standard model for an
745 all element, but adds minOccurs and maxOccurs attributes which can only
746 take certain values.
747 </doc:p>
748 <element name="all"
749 doc:href="http://www.w3.org/TR/xmlschema-1/#element-all">
750 <ref name="explicitGroup" />
751 </element>
752 </define>
754 <define name="choice">
755 <doc:p>
756 This describes a choice element that appears outside a named group.
757 </doc:p>
758 <element name="choice"
759 doc:href="http://www.w3.org/TR/xmlschema-1/#element-choice">
760 <ref name="explicitGroup" />
761 </element>
762 </define>
764 <define name="sequence">
765 <doc:p>
766 This describes a sequence element that appears outside a named group.
767 </doc:p>
768 <element name="sequence"
769 doc:href="http://www.w3.org/TR/xmlschema-1/#element-sequence">
770 <ref name="explicitGroup" />
771 </element>
772 </define>
774 <define name="wildcard" txw:mode="inherit">
775 <doc:p>
776 This describes a wildcard element (i.e. any or anyAttribute). The
777 namespace attribute can take a list URIs interspersed with the keywords
778 '##targetNamespace' and/or '##local'. This RELAX NG schema, like the XML
779 Schema Recommendation, allows the keywords to be specified more than once
780 each within the list, if they're given. This model also specifies the
781 processContents attribute.
782 </doc:p>
783 <ref name="annotated" />
784 <zeroOrMore>
785 <choice>
786 <attribute name="namespace">
787 <choice>
788 <value type="token">##any</value>
789 <value type="token">##other</value>
790 <list>
791 <zeroOrMore>
792 <choice>
793 <data type="anyURI" />
794 <value>##targetNamespace</value>
795 <value>##local</value>
796 </choice>
797 </zeroOrMore>
798 </list>
799 </choice>
800 </attribute>
801 <attribute name="processContents">
802 <choice>
803 <value type="token">lax</value>
804 <value type="token">skip</value>
805 <value type="token">strict</value>
806 </choice>
807 </attribute>
808 </choice>
809 </zeroOrMore>
810 </define>
812 <define name="any">
813 <doc:p>
814 This describes an any element as a wildcard.
815 </doc:p>
816 <element name="any"
817 doc:href="http://www.w3.org/TR/xmlschema-1/#element-any">
818 <ref name="wildcard" />
819 <ref name="occurs" />
820 </element>
821 </define>
823 <!--define name="namedAttributeGroup">
824 <doc:p>
825 This describes an attributeGroup element as it appears at the top level
826 of the schema. It must have a name attribute, and then contains
827 attribute declarations.
828 </doc:p>
829 <element name="attributeGroup"
830 doc:href="http://www.w3.org/TR/xmlschema-1/#element-attributeGroup">
831 <ref name="annotated" />
832 <attribute name="name">
833 <data type="NCName" />
834 </attribute>
835 <ref name="attrDecls" />
836 </element>
837 </define-->
839 <!--define name="attributeGroupRef">
840 <doc:p>
841 This describes an attributeGroup element as it appears within a complex
842 type. It must have a ref attribute.
843 </doc:p>
844 <element name="attributeGroup"
845 doc:href="http://www.w3.org/TR/xmlschema-1/#element-attributeGroup">
846 <ref name="annotated" />
847 <attribute name="ref">
848 <data type="QName" />
849 </attribute>
850 </element>
851 </define-->
853 <!--define name="include">
854 <doc:p>
855 This describes an include element, which must have a schemaLocation
856 attribute.
857 </doc:p>
858 <element name="include"
859 doc:href="http://www.w3.org/TR/xmlschema-1/#element-include">
860 <ref name="annotated" />
861 <attribute name="schemaLocation">
862 <data type="anyURI" />
863 </attribute>
864 </element>
865 </define-->
867 <!--define name="redefine">
868 <doc:p>
869 This describes a redefine element, which must have a schemaLocation
870 attribute and can then contain any mix of annotations and redefinable
871 components.
872 </doc:p>
873 <element name="redefine"
874 doc:href="http://www.w3.org/TR/xmlschema-1/#element-redefine">
875 <ref name="openAttrs" />
876 <optional>
877 <attribute name="id">
878 <data type="ID" />
879 </attribute>
880 </optional>
881 <attribute name="schemaLocation">
882 <data type="anyURI" />
883 </attribute>
884 <zeroOrMore>
885 <choice>
886 <ref name="annotation" />
887 <ref name="redefinable" />
888 </choice>
889 </zeroOrMore>
890 </element>
891 </define-->
893 <define name="import">
894 <doc:p>
895 This describes an import element that's used when its parent schema
896 element specifies a targetNamespace. In these cases, the namespace
897 attribute on the import element is optional.
898 </doc:p>
899 <element name="import"
900 doc:href="http://www.w3.org/TR/xmlschema-1/#element-import">
901 <ref name="annotated" />
902 <optional>
903 <attribute name="schemaLocation">
904 <data type="anyURI" />
905 </attribute>
906 </optional>
907 <optional>
908 <attribute name="namespace">
909 <data type="anyURI" />
910 </attribute>
911 </optional>
912 </element>
913 </define>
915 <!--define name="selector">
916 <doc:p>
917 This describes a selector element. The xpath attribute is a simplified
918 XPath - the regular expression given here is the one from the XML Schema
919 for XML Schema.
920 </doc:p>
921 <element name="selector"
922 doc:href="http://www.w3.org/TR/xmlschema-1/#element-selector">
923 <ref name="annotated" />
924 <attribute name="xpath">
925 <data type="token">
926 <param name="pattern">(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*(\|(\.//)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.)(/(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)*</param>
927 </data>
928 </attribute>
929 </element>
930 </define>
932 <define name="field">
933 <doc:p>
934 This describes a field element. The xpath attribute is a simplified
935 XPath - the regular expression given here is the one from the XML Schema
936 for XML Schema.
937 </doc:p>
938 <element name="field"
939 doc:href="http://www.w3.org/TR/xmlschema-1/#element-field">
940 <ref name="annotated" />
941 <attribute name="xpath">
942 <data type="token">
943 <param name="pattern">(\.//)?((((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*|\*)))))*</param>
944 </data>
945 </attribute>
946 </element>
947 </define>
949 <define name="keybase" txw:mode="inherit">
950 <doc:p>
951 This gives the basic content for identity constraints - a name attribute
952 that uniquely identifies the identity constraint, a selector element and
953 one or more field elements.
954 </doc:p>
955 <ref name="annotated" />
956 <attribute name="name">
957 <data type="NCName" />
958 </attribute>
959 <ref name="selector" />
960 <oneOrMore>
961 <ref name="field" />
962 </oneOrMore>
963 </define>
965 <define name="identityConstraint" txw:mode="inline">
966 <doc:p>
967 This gives a model group for the three identity constraint elements, used
968 within the content of element elements.
969 </doc:p>
970 <choice>
971 <ref name="unique" />
972 <ref name="key" />
973 <ref name="keyref" />
974 </choice>
975 </define>
977 <define name="unique">
978 <doc:p>
979 This describes a unique element.
980 </doc:p>
981 <element name="unique"
982 doc:href="http://www.w3.org/TR/xmlschema-1/#element-unique">
983 <ref name="keybase" />
984 </element>
985 </define>
987 <define name="key">
988 <doc:p>
989 This describes a key element.
990 </doc:p>
991 <element name="key"
992 doc:href="http://www.w3.org/TR/xmlschema-1/#element-key">
993 <ref name="keybase" />
994 </element>
995 </define>
997 <define name="keyref">
998 <doc:p>
999 This describes a keyref element.
1000 </doc:p>
1001 <element name="keyref"
1002 doc:href="http://www.w3.org/TR/xmlschema-1/#element-keyref">
1003 <ref name="keybase" />
1004 <attribute name="refer">
1005 <data type="QName" />
1006 </attribute>
1007 </element>
1008 </define-->
1010 <!--define name="notation">
1011 <doc:p>
1012 This describes a notation element. The names of notation elements are
1013 unique in the notation symbol space. The public attribute is required,
1014 and the system attribute is optional.
1015 </doc:p>
1016 <element name="notation"
1017 doc:href="http://www.w3.org/TR/xmlschema-1/#element-notation">
1018 <ref name="annotated" />
1019 <attribute name="name">
1020 <data type="NCName" />
1021 </attribute>
1022 <attribute name="public">
1023 <data type="token" />
1024 </attribute>
1025 <optional>
1026 <attribute name="system">
1027 <data type="anyURI" />
1028 </attribute>
1029 </optional>
1030 </element>
1031 </define-->
1033 <define name="appinfoContent">
1034 <doc:p>
1035 This is designed to describe the content of the appinfo elements in the
1036 schema. At the moment this allows any mixed content without validation.
1037 Note that this is fairly complex compared to the XML Schema equivalent,
1038 which would be a single any element.
1039 </doc:p>
1040 <ref name="anyContent" />
1041 </define>
1043 <define name="anyContent">
1044 <empty/> <!-- KK don't care -->
1045 <!--mixed>
1046 <zeroOrMore>
1047 <element>
1048 <anyName />
1049 <zeroOrMore>
1050 <attribute>
1051 <anyName />
1052 </attribute>
1053 </zeroOrMore>
1054 <ref name="anyContent" />
1055 <empty />
1056 </element>
1057 </zeroOrMore>
1058 </mixed-->
1059 </define>
1061 <define name="appinfo">
1062 <doc:p>
1063 This describes an appinfo element. It has an optional source attribute
1064 and can currently contain anything at all.
1065 </doc:p>
1066 <element name="appinfo"
1067 doc:href="http://www.w3.org/TR/xmlschema-1/#element-appinfo">
1068 <optional>
1069 <attribute name="source">
1070 <data type="anyURI" />
1071 </attribute>
1072 </optional>
1073 <ref name="appinfoContent" />
1074 </element>
1075 </define>
1077 <define name="documentationContent">
1078 <doc:p>
1079 This is designed to describe the content of the documentation elements in
1080 the schema. At the moment this allows any mixed content without
1081 validation. Note that this is fairly complex compared to the XML Schema
1082 equivalent, which would be a single any element.
1083 </doc:p>
1084 <ref name="anyContent" />
1085 </define>
1087 <define name="documentation">
1088 <doc:p>
1089 This describes a documentation element. It has optional source
1090 and xml:lang attributes and can currently contain anything at all.
1091 </doc:p>
1092 <element name="documentation"
1093 doc:href="http://www.w3.org/TR/xmlschema-1/#element-documentation">
1094 <zeroOrMore>
1095 <choice>
1096 <attribute name="source">
1097 <data type="anyURI" />
1098 </attribute>
1099 <attribute name="xml:lang">
1100 <data type="language" />
1101 </attribute>
1102 </choice>
1103 </zeroOrMore>
1104 <ref name="documentationContent" />
1105 </element>
1106 </define>
1108 <define name="annotation">
1109 <doc:p>
1110 This describes an annotation element. It can have any attributes, may
1111 have an id attribute, and contains any number of documentation or appinfo
1112 elements.
1113 </doc:p>
1114 <element name="annotation"
1115 doc:href="http://www.w3.org/TR/xmlschema-1/#element-annotation">
1116 <ref name="openAttrs" />
1117 <optional>
1118 <attribute name="id">
1119 <data type="ID" />
1120 </attribute>
1121 </optional>
1122 <zeroOrMore>
1123 <choice>
1124 <ref name="documentation" />
1125 <ref name="appinfo" />
1126 </choice>
1127 </zeroOrMore>
1128 </element>
1129 </define>
1131 <define name="simpleDerivation" txw:mode="inline">
1132 <doc:p>
1133 This gives the various types of derivation of simple types.
1134 </doc:p>
1135 <choice>
1136 <ref name="simpleRestriction" />
1137 <ref name="list" />
1138 <ref name="union" />
1139 </choice>
1140 </define>
1142 <define name="simpleDerivationSet">
1143 <doc:p>
1144 This specifies the values of the final attribute for simple types. This
1145 RELAX NG schema for XML Schema, like the XML Schema Recommendation, allows
1146 the keywords 'list', 'union' and 'restriction' to appear more than once
1147 within the list.
1148 </doc:p>
1149 <choice>
1150 <value type="token">#all</value>
1151 <list>
1152 <zeroOrMore>
1153 <choice>
1154 <value>list</value>
1155 <value>union</value>
1156 <value>restriction</value>
1157 </choice>
1158 </zeroOrMore>
1159 </list>
1160 </choice>
1161 </define>
1163 <define name="simpleTypeHost" txw:mode="inherit">
1164 <ref name="typeHost" />
1165 <ref name="simpleType" />
1166 </define>
1168 <define name="simpleType" txw:mode="inherit">
1169 <doc:p>
1170 This gives the basic content of a simple type.
1171 </doc:p>
1172 <element name="simpleType"
1173 doc:href="http://www.w3.org/TR/xmlschema-1/#element-simpleType">
1174 <ref name="annotated" />
1175 <ref name="simpleDerivation" />
1176 <optional>
1177 <attribute name="name">
1178 <data type="NCName" />
1179 </attribute>
1180 </optional>
1181 <optional>
1182 <attribute name="final">
1183 <ref name="simpleDerivationSet" />
1184 </attribute>
1185 </optional>
1186 </element>
1187 </define>
1189 <!--define name="rangeFacets" txw:mode="inherit">
1190 <doc:p>
1191 This describes the relationship between the various range facets. Only
1192 one of minExclusive and minInclusive can be present, and only one of
1193 maxExclusive and maxInclusive can be present. This is a constraint that
1194 can't easily be expressed using XML Schema. This RELAX NG schema
1195 for XML Schema is a little more restrictive than the XML Schema
1196 Recommendation in that it also forces there to be a maximum of one of
1197 each of these types of facets.
1198 </doc:p>
1199 <interleave>
1200 <optional>
1201 <choice>
1202 <ref name="minExclusive" />
1203 <ref name="minInclusive" />
1204 </choice>
1205 </optional>
1206 <optional>
1207 <choice>
1208 <ref name="maxExclusive" />
1209 <ref name="maxInclusive" />
1210 </choice>
1211 </optional>
1212 </interleave>
1213 </define>
1215 <define name="digitFacets" txw:mode="inherit">
1216 <doc:p>
1217 This specifies optional totalDigits and fractionDigits elements. This
1218 RELAX NG schema for XML Schema is a little more restrictive than the XML
1219 Schema Recommendation in that it also forces there to be a maximum of one
1220 of each of these types of facets.
1221 </doc:p>
1222 <optional>
1223 <ref name="totalDigits" />
1224 </optional>
1225 <optional>
1226 <ref name="fractionDigits" />
1227 </optional>
1228 </define>
1230 <define name="lengthFacets" txw:mode="inherit">
1231 <doc:p>
1232 This specifies optional length, minLength and maxLength elements. This
1233 RELAX NG schema for XML Schema is a little more restrictive than the XML
1234 Schema Recommendation in that it also forces there to be a maximum of one
1235 of each of these types of facets, and says that if a length element is
1236 given, then neither minLength nor maxLength should be present.
1237 </doc:p>
1238 <choice>
1239 <ref name="length" />
1240 <interleave>
1241 <optional>
1242 <ref name="minLength" />
1243 </optional>
1244 <optional>
1245 <ref name="maxLength" />
1246 </optional>
1247 </interleave>
1248 </choice>
1249 </define>
1251 <define name="commonFacets" txw:mode="inherit">
1252 <doc:p>
1253 This specifies zero or more enumeration or pattern elements and an
1254 optional whiteSpace element. This RELAX NG schema for XML Schema is a
1255 little more restrictive than the XML Schema Recommendation in that it
1256 also forces there to be a maximum of one whiteSpace element within the
1257 facets. Note that the whiteSpace facet is constrained to have a value of
1258 'collapse'.
1259 </doc:p>
1260 <zeroOrMore>
1261 <ref name="enumeration" />
1262 </zeroOrMore>
1263 <optional>
1264 <ref name="whiteSpaceCollapse" />
1265 </optional>
1266 <zeroOrMore>
1267 <ref name="pattern" />
1268 </zeroOrMore>
1269 </define-->
1271 <define name="simpleRestrictionModel">
1272 <doc:p>
1273 This specifies the types of facets that are valid in restrictions on the
1274 built-in data types. This can only perform rudimentary checking, but
1275 should be enough in most circumstances. Note that for xs:anySimpleType
1276 and xs:string, the whiteSpace facet can take any value, for
1277 xs:normalizedString it can be 'replace' or 'collapse', and for all other
1278 built-in types it has to be 'collapse'.
1279 </doc:p>
1280 <choice>
1281 <attribute name="base">
1282 <data type="QName" />
1283 </attribute>
1284 <ref name="simpleTypeHost" />
1285 </choice>
1286 <interleave>
1287 <!--ref name="rangeFacets" />
1288 <ref name="digitFacets" />
1289 <ref name="lengthFacets" />
1290 <optional>
1291 <ref name="whiteSpace" />
1292 </optional-->
1293 <zeroOrMore>
1294 <ref name="enumeration" />
1295 </zeroOrMore>
1296 <!--zeroOrMore>
1297 <ref name="pattern" />
1298 </zeroOrMore-->
1299 </interleave>
1300 </define>
1302 <define name="list">
1303 <doc:p>
1304 This describes a list element. It can either specify a local simple type
1305 or have a itemType attribute. This constraint cannot be expressed in XML
1306 Schema.
1307 </doc:p>
1308 <element name="list"
1309 doc:href="http://www.w3.org/TR/xmlschema-1/#element-list">
1310 <ref name="annotated" />
1311 <choice>
1312 <ref name="simpleTypeHost" />
1313 <attribute name="itemType">
1314 <data type="QName" />
1315 </attribute>
1316 </choice>
1317 </element>
1318 </define>
1320 <define name="union">
1321 <doc:p>
1322 This describes a union element. If the memberTypes attribute is missing
1323 or empty, then it must contain one or more simpleType elements; if
1324 it's present, then it can contain simpleType elements or list simple
1325 types in the memberTypes attribute. This constraint cannot be expressed
1326 in XML Schema.
1327 </doc:p>
1328 <element name="union"
1329 doc:href="http://www.w3.org/TR/xmlschema-1/#element-union">
1330 <ref name="annotated" />
1331 <choice>
1332 <group>
1333 <attribute name="memberTypes">
1334 <list>
1335 <oneOrMore>
1336 <data type="QName" />
1337 </oneOrMore>
1338 </list>
1339 </attribute>
1340 <zeroOrMore>
1341 <ref name="simpleTypeHost" />
1342 </zeroOrMore>
1343 </group>
1344 <group>
1345 <optional>
1346 <attribute name="memberTypes">
1347 <empty />
1348 </attribute>
1349 </optional>
1350 <oneOrMore>
1351 <ref name="simpleTypeHost" />
1352 </oneOrMore>
1353 </group>
1354 </choice>
1355 </element>
1356 </define>
1358 <define name="facet" txw:mode="inherit">
1359 <doc:p>
1360 This is the basic content of a facet. It has an optional fixed attribute.
1361 </doc:p>
1362 <ref name="annotated" />
1363 <optional>
1364 <attribute name="fixed">
1365 <data type="boolean" />
1366 </attribute>
1367 </optional>
1368 </define>
1370 <define name="noFixedFacet" txw:mode="inherit">
1371 <doc:p>
1372 This is the content of a facet that cannot be fixed (enumeration or
1373 pattern). It has a value attribute that can take any kind of value.
1374 </doc:p>
1375 <ref name="annotated" />
1376 <attribute name="value" />
1377 </define>
1379 <!--define name="rangeFacet">
1380 <doc:p>
1381 This is the content of a range facet. The value must be one of the data
1382 types shown (as these are the only types of data that accept ranges). I
1383 haven't gone so far as to indicate the data type of the value
1384 attribute of a range facet according to the base type as this would be
1385 very complicated (although it would be possible in RELAX NG).
1386 </doc:p>
1387 <ref name="facet" />
1388 <attribute name="value">
1389 <choice>
1390 <data type="decimal" />
1391 <data type="float" />
1392 <data type="double" />
1393 <data type="duration" />
1394 <data type="dateTime" />
1395 <data type="time" />
1396 <data type="date" />
1397 <data type="gYearMonth" />
1398 <data type="gYear" />
1399 <data type="gMonthDay" />
1400 <data type="gMonth" />
1401 <data type="gDay" />
1402 </choice>
1403 </attribute>
1404 </define>
1406 <define name="minExclusive">
1407 <doc:p>
1408 This describes a minExclusive element.
1409 </doc:p>
1410 <element name="minExclusive"
1411 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-minExclusive">
1412 <ref name="rangeFacet" />
1413 </element>
1414 </define>
1416 <define name="minInclusive">
1417 <doc:p>
1418 This describes a minInclusive element.
1419 </doc:p>
1420 <element name="minInclusive"
1421 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-minInclusive">
1422 <ref name="rangeFacet" />
1423 </element>
1424 </define>
1426 <define name="maxExclusive">
1427 <doc:p>
1428 This describes a maxExclusive element.
1429 </doc:p>
1430 <element name="maxExclusive"
1431 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-maxExclusive">
1432 <ref name="rangeFacet" />
1433 </element>
1434 </define>
1436 <define name="maxInclusive">
1437 <doc:p>
1438 This describes a maxInclusive element.
1439 </doc:p>
1440 <element name="maxInclusive"
1441 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-maxInclusive">
1442 <ref name="rangeFacet" />
1443 </element>
1444 </define>
1446 <define name="numFacet">
1447 <doc:p>
1448 This is the content of a numerical facet.
1449 </doc:p>
1450 <ref name="facet" />
1451 <attribute name="value">
1452 <data type="nonNegativeInteger" />
1453 </attribute>
1454 </define>
1456 <define name="totalDigits">
1457 <doc:p>
1458 This describes a totalDigits element. The value attribute must take a
1459 positive integer.
1460 </doc:p>
1461 <element name="totalDigits"
1462 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-totalDigits">
1463 <ref name="facet" />
1464 <attribute name="value">
1465 <data type="positiveInteger" />
1466 </attribute>
1467 </element>
1468 </define>
1470 <define name="fractionDigits">
1471 <doc:p>
1472 This describes a fractionDigits element.
1473 </doc:p>
1474 <element name="fractionDigits"
1475 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-fractionDigits">
1476 <ref name="numFacet" />
1477 </element>
1478 </define>
1480 <define name="length">
1481 <doc:p>
1482 This describes a length element.
1483 </doc:p>
1484 <element name="length"
1485 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-length">
1486 <ref name="numFacet" />
1487 </element>
1488 </define>
1490 <define name="minLength">
1491 <doc:p>
1492 This describes a minLength element.
1493 </doc:p>
1494 <element name="minLength"
1495 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-minLength">
1496 <ref name="numFacet" />
1497 </element>
1498 </define>
1500 <define name="maxLength">
1501 <doc:p>
1502 This describes a maxLength element.
1503 </doc:p>
1504 <element name="maxLength"
1505 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-maxLength">
1506 <ref name="numFacet" />
1507 </element>
1508 </define-->
1510 <define name="enumeration">
1511 <doc:p>
1512 This describes an enumeration element.
1513 </doc:p>
1514 <element name="enumeration"
1515 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-enumeration">
1516 <ref name="noFixedFacet" />
1517 </element>
1518 </define>
1520 <!--define name="whiteSpace">
1521 <doc:p>
1522 This describes a whiteSpace element that can take any of the permitted
1523 values.
1524 </doc:p>
1525 <element name="whiteSpace"
1526 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-whiteSpace">
1527 <ref name="facet" />
1528 <attribute name="value">
1529 <choice>
1530 <value type="token">preserve</value>
1531 <value type="token">replace</value>
1532 <value type="token">collapse</value>
1533 </choice>
1534 </attribute>
1535 </element>
1536 </define>
1538 <define name="whiteSpaceReplaceOrCollapse">
1539 <doc:p>
1540 This describes a whiteSpace element that can only take the values
1541 'replace' or 'collapse'.
1542 </doc:p>
1543 <element name="whiteSpace"
1544 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-whiteSpace">
1545 <ref name="facet" />
1546 <attribute name="value">
1547 <choice>
1548 <value type="token">replace</value>
1549 <value type="token">collapse</value>
1550 </choice>
1551 </attribute>
1552 </element>
1553 </define>
1555 <define name="whiteSpaceCollapse">
1556 <doc:p>
1557 This describes a whiteSpace element that can only take the value
1558 'collapse'.
1559 </doc:p>
1560 <element name="whiteSpace"
1561 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-whiteSpace">
1562 <ref name="facet" />
1563 <attribute name="value">
1564 <value type="token">collapse</value>
1565 </attribute>
1566 </element>
1567 </define>
1569 <define name="pattern">
1570 <doc:p>
1571 This describes a pattern element.
1572 </doc:p>
1573 <element name="pattern"
1574 doc:href="http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/datatypes.html#element-pattern">
1575 <ref name="noFixedFacet" />
1576 </element>
1577 </define-->
1579 </grammar>