Annotation of embedaddon/libxml2/test/relaxng/tutorA.rng, revision 1.1.1.1
1.1 misho 1: <grammar datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
2: ns="http://relaxng.org/ns/structure/1.0"
3: xmlns="http://relaxng.org/ns/structure/1.0">
4:
5: <start>
6: <ref name="pattern"/>
7: </start>
8:
9: <define name="pattern">
10: <choice>
11: <element name="element">
12: <choice>
13: <attribute name="name">
14: <data type="QName"/>
15: </attribute>
16: <ref name="open-name-class"/>
17: </choice>
18: <ref name="common-atts"/>
19: <ref name="open-patterns"/>
20: </element>
21: <element name="attribute">
22: <ref name="common-atts"/>
23: <choice>
24: <attribute name="name">
25: <data type="QName"/>
26: </attribute>
27: <ref name="open-name-class"/>
28: </choice>
29: <interleave>
30: <ref name="other"/>
31: <optional>
32: <ref name="pattern"/>
33: </optional>
34: </interleave>
35: </element>
36: <element name="group">
37: <ref name="common-atts"/>
38: <ref name="open-patterns"/>
39: </element>
40: <element name="interleave">
41: <ref name="common-atts"/>
42: <ref name="open-patterns"/>
43: </element>
44: <element name="choice">
45: <ref name="common-atts"/>
46: <ref name="open-patterns"/>
47: </element>
48: <element name="optional">
49: <ref name="common-atts"/>
50: <ref name="open-patterns"/>
51: </element>
52: <element name="zeroOrMore">
53: <ref name="common-atts"/>
54: <ref name="open-patterns"/>
55: </element>
56: <element name="oneOrMore">
57: <ref name="common-atts"/>
58: <ref name="open-patterns"/>
59: </element>
60: <element name="list">
61: <ref name="common-atts"/>
62: <ref name="open-patterns"/>
63: </element>
64: <element name="mixed">
65: <ref name="common-atts"/>
66: <ref name="open-patterns"/>
67: </element>
68: <element name="ref">
69: <attribute name="name">
70: <data type="NCName"/>
71: </attribute>
72: <ref name="common-atts"/>
73: <ref name="other"/>
74: </element>
75: <element name="parentRef">
76: <attribute name="name">
77: <data type="NCName"/>
78: </attribute>
79: <ref name="common-atts"/>
80: <ref name="other"/>
81: </element>
82: <element name="empty">
83: <ref name="common-atts"/>
84: <ref name="other"/>
85: </element>
86: <element name="text">
87: <ref name="common-atts"/>
88: <ref name="other"/>
89: </element>
90: <element name="value">
91: <optional>
92: <attribute name="type">
93: <data type="NCName"/>
94: </attribute>
95: </optional>
96: <ref name="common-atts"/>
97: <text/>
98: </element>
99: <element name="data">
100: <attribute name="type">
101: <data type="NCName"/>
102: </attribute>
103: <ref name="common-atts"/>
104: <interleave>
105: <ref name="other"/>
106: <group>
107: <zeroOrMore>
108: <element name="param">
109: <attribute name="name">
110: <data type="NCName"/>
111: </attribute>
112: <ref name="common-atts"/>
113: <text/>
114: </element>
115: </zeroOrMore>
116: <optional>
117: <element name="except">
118: <ref name="common-atts"/>
119: <ref name="open-patterns"/>
120: </element>
121: </optional>
122: </group>
123: </interleave>
124: </element>
125: <element name="notAllowed">
126: <ref name="common-atts"/>
127: <ref name="other"/>
128: </element>
129: <element name="externalRef">
130: <attribute name="href">
131: <data type="anyURI"/>
132: </attribute>
133: <ref name="common-atts"/>
134: <ref name="other"/>
135: </element>
136: <element name="grammar">
137: <ref name="common-atts"/>
138: <ref name="grammar-content"/>
139: </element>
140: </choice>
141: </define>
142:
143: <define name="grammar-content">
144: <interleave>
145: <ref name="other"/>
146: <zeroOrMore>
147: <choice>
148: <ref name="start-element"/>
149: <ref name="define-element"/>
150: <element name="div">
151: <ref name="common-atts"/>
152: <ref name="grammar-content"/>
153: </element>
154: <element name="include">
155: <attribute name="href">
156: <data type="anyURI"/>
157: </attribute>
158: <ref name="common-atts"/>
159: <ref name="include-content"/>
160: </element>
161: </choice>
162: </zeroOrMore>
163: </interleave>
164: </define>
165:
166: <define name="include-content">
167: <interleave>
168: <ref name="other"/>
169: <zeroOrMore>
170: <choice>
171: <ref name="start-element"/>
172: <ref name="define-element"/>
173: <element name="div">
174: <ref name="common-atts"/>
175: <ref name="include-content"/>
176: </element>
177: </choice>
178: </zeroOrMore>
179: </interleave>
180: </define>
181:
182: <define name="start-element">
183: <element name="start">
184: <ref name="combine-att"/>
185: <ref name="common-atts"/>
186: <ref name="open-pattern"/>
187: </element>
188: </define>
189:
190: <define name="define-element">
191: <element name="define">
192: <attribute name="name">
193: <data type="NCName"/>
194: </attribute>
195: <ref name="combine-att"/>
196: <ref name="common-atts"/>
197: <ref name="open-patterns"/>
198: </element>
199: </define>
200:
201: <define name="combine-att">
202: <optional>
203: <attribute name="combine">
204: <choice>
205: <value>choice</value>
206: <value>interleave</value>
207: </choice>
208: </attribute>
209: </optional>
210: </define>
211:
212: <define name="open-patterns">
213: <interleave>
214: <ref name="other"/>
215: <oneOrMore>
216: <ref name="pattern"/>
217: </oneOrMore>
218: </interleave>
219: </define>
220:
221: <define name="open-pattern">
222: <interleave>
223: <ref name="other"/>
224: <ref name="pattern"/>
225: </interleave>
226: </define>
227:
228: <define name="name-class">
229: <choice>
230: <element name="name">
231: <ref name="common-atts"/>
232: <data type="QName"/>
233: </element>
234: <element name="anyName">
235: <ref name="common-atts"/>
236: <ref name="except-name-class"/>
237: </element>
238: <element name="nsName">
239: <ref name="common-atts"/>
240: <ref name="except-name-class"/>
241: </element>
242: <element name="choice">
243: <ref name="common-atts"/>
244: <ref name="open-name-classes"/>
245: </element>
246: </choice>
247: </define>
248:
249: <define name="except-name-class">
250: <interleave>
251: <ref name="other"/>
252: <optional>
253: <element name="except">
254: <ref name="open-name-classes"/>
255: </element>
256: </optional>
257: </interleave>
258: </define>
259:
260: <define name="open-name-classes">
261: <interleave>
262: <ref name="other"/>
263: <oneOrMore>
264: <ref name="name-class"/>
265: </oneOrMore>
266: </interleave>
267: </define>
268:
269: <define name="open-name-class">
270: <interleave>
271: <ref name="other"/>
272: <ref name="name-class"/>
273: </interleave>
274: </define>
275:
276: <define name="common-atts">
277: <optional>
278: <attribute name="ns"/>
279: </optional>
280: <optional>
281: <attribute name="datatypeLibrary">
282: <data type="anyURI"/>
283: </attribute>
284: </optional>
285: <zeroOrMore>
286: <attribute>
287: <anyName>
288: <except>
289: <nsName/>
290: <nsName ns=""/>
291: </except>
292: </anyName>
293: </attribute>
294: </zeroOrMore>
295: </define>
296:
297: <define name="other">
298: <zeroOrMore>
299: <element>
300: <anyName>
301: <except>
302: <nsName/>
303: </except>
304: </anyName>
305: <zeroOrMore>
306: <choice>
307: <attribute>
308: <anyName/>
309: </attribute>
310: <text/>
311: <ref name="any"/>
312: </choice>
313: </zeroOrMore>
314: </element>
315: </zeroOrMore>
316: </define>
317:
318: <define name="any">
319: <element>
320: <anyName/>
321: <zeroOrMore>
322: <choice>
323: <attribute>
324: <anyName/>
325: </attribute>
326: <text/>
327: <ref name="any"/>
328: </choice>
329: </zeroOrMore>
330: </element>
331: </define>
332:
333: </grammar>
334:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>