metanorma-itu 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,992 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <include href="biblio.rng"/>
4
+ <start>
5
+ <ref name="document"/>
6
+ </start>
7
+ <define name="document">
8
+ <element name="document">
9
+ <optional>
10
+ <attribute name="identifier"/>
11
+ </optional>
12
+ <ref name="bibdata"/>
13
+ <ref name="sections"/>
14
+ <zeroOrMore>
15
+ <ref name="references"/>
16
+ </zeroOrMore>
17
+ </element>
18
+ </define>
19
+ <define name="bibdata">
20
+ <element name="bibdata">
21
+ <ref name="BibData"/>
22
+ </element>
23
+ </define>
24
+ <define name="sections">
25
+ <element name="sections">
26
+ <oneOrMore>
27
+ <ref name="section"/>
28
+ </oneOrMore>
29
+ </element>
30
+ </define>
31
+ <define name="section">
32
+ <element name="section">
33
+ <ref name="Basic-Section"/>
34
+ <zeroOrMore>
35
+ <ref name="section"/>
36
+ </zeroOrMore>
37
+ </element>
38
+ </define>
39
+ <define name="Basic-Section">
40
+ <optional>
41
+ <attribute name="id">
42
+ <data type="ID"/>
43
+ </attribute>
44
+ </optional>
45
+ <optional>
46
+ <attribute name="language"/>
47
+ </optional>
48
+ <optional>
49
+ <attribute name="script"/>
50
+ </optional>
51
+ <optional>
52
+ <ref name="section-title"/>
53
+ </optional>
54
+ <optional>
55
+ <ref name="BasicBlock"/>
56
+ </optional>
57
+ <zeroOrMore>
58
+ <ref name="note"/>
59
+ </zeroOrMore>
60
+ </define>
61
+ <define name="references">
62
+ <element name="references">
63
+ <optional>
64
+ <attribute name="id">
65
+ <data type="ID"/>
66
+ </attribute>
67
+ </optional>
68
+ <optional>
69
+ <ref name="section-title"/>
70
+ </optional>
71
+ <zeroOrMore>
72
+ <ref name="BasicBlock"/>
73
+ </zeroOrMore>
74
+ <zeroOrMore>
75
+ <ref name="bibitem"/>
76
+ </zeroOrMore>
77
+ </element>
78
+ </define>
79
+ <define name="section-title">
80
+ <element name="title">
81
+ <zeroOrMore>
82
+ <ref name="TextElement"/>
83
+ </zeroOrMore>
84
+ </element>
85
+ </define>
86
+ <define name="BasicBlock">
87
+ <choice>
88
+ <ref name="paragraph-with-footnote"/>
89
+ <ref name="table"/>
90
+ <ref name="formula"/>
91
+ <ref name="admonition"/>
92
+ <ref name="ol"/>
93
+ <ref name="ul"/>
94
+ <ref name="dl"/>
95
+ <ref name="figure"/>
96
+ <ref name="quote"/>
97
+ <ref name="sourcecode"/>
98
+ <ref name="example"/>
99
+ <ref name="review"/>
100
+ <ref name="pre"/>
101
+ </choice>
102
+ </define>
103
+ <define name="paragraph">
104
+ <element name="p">
105
+ <ref name="ParagraphType"/>
106
+ </element>
107
+ </define>
108
+ <define name="Alignments">
109
+ <choice>
110
+ <value>left</value>
111
+ <value>right</value>
112
+ <value>center</value>
113
+ <value>justified</value>
114
+ </choice>
115
+ </define>
116
+ <define name="ParagraphType">
117
+ <attribute name="id">
118
+ <data type="ID"/>
119
+ </attribute>
120
+ <optional>
121
+ <attribute name="align">
122
+ <ref name="Alignments"/>
123
+ </attribute>
124
+ </optional>
125
+ <zeroOrMore>
126
+ <ref name="TextElement"/>
127
+ </zeroOrMore>
128
+ <zeroOrMore>
129
+ <ref name="note"/>
130
+ </zeroOrMore>
131
+ </define>
132
+ <define name="paragraph-with-footnote">
133
+ <element name="p">
134
+ <attribute name="id">
135
+ <data type="ID"/>
136
+ </attribute>
137
+ <optional>
138
+ <attribute name="align">
139
+ <ref name="Alignments"/>
140
+ </attribute>
141
+ </optional>
142
+ <zeroOrMore>
143
+ <choice>
144
+ <ref name="TextElement"/>
145
+ <ref name="fn"/>
146
+ </choice>
147
+ </zeroOrMore>
148
+ <zeroOrMore>
149
+ <ref name="note"/>
150
+ </zeroOrMore>
151
+ </element>
152
+ </define>
153
+ <define name="note">
154
+ <element name="note">
155
+ <attribute name="id">
156
+ <data type="ID"/>
157
+ </attribute>
158
+ <oneOrMore>
159
+ <ref name="paragraph"/>
160
+ </oneOrMore>
161
+ </element>
162
+ </define>
163
+ <define name="review">
164
+ <element name="review">
165
+ <attribute name="id">
166
+ <data type="ID"/>
167
+ </attribute>
168
+ <attribute name="reviewer"/>
169
+ <optional>
170
+ <attribute name="date">
171
+ <data type="dateTime"/>
172
+ </attribute>
173
+ </optional>
174
+ <attribute name="from">
175
+ <data type="IDREF"/>
176
+ </attribute>
177
+ <optional>
178
+ <attribute name="to">
179
+ <data type="IDREF"/>
180
+ </attribute>
181
+ </optional>
182
+ <oneOrMore>
183
+ <ref name="paragraph"/>
184
+ </oneOrMore>
185
+ </element>
186
+ </define>
187
+ <define name="formula">
188
+ <element name="formula">
189
+ <attribute name="id">
190
+ <data type="ID"/>
191
+ </attribute>
192
+ <optional>
193
+ <attribute name="unnumbered">
194
+ <data type="boolean"/>
195
+ </attribute>
196
+ </optional>
197
+ <ref name="stem"/>
198
+ <optional>
199
+ <ref name="dl"/>
200
+ </optional>
201
+ <zeroOrMore>
202
+ <ref name="note"/>
203
+ </zeroOrMore>
204
+ </element>
205
+ </define>
206
+ <define name="quote">
207
+ <element name="quote">
208
+ <attribute name="id">
209
+ <data type="ID"/>
210
+ </attribute>
211
+ <optional>
212
+ <attribute name="alignment">
213
+ <ref name="Alignments"/>
214
+ </attribute>
215
+ </optional>
216
+ <optional>
217
+ <ref name="quote-source"/>
218
+ </optional>
219
+ <optional>
220
+ <ref name="quote-author"/>
221
+ </optional>
222
+ <oneOrMore>
223
+ <ref name="paragraph-with-footnote"/>
224
+ </oneOrMore>
225
+ <zeroOrMore>
226
+ <ref name="note"/>
227
+ </zeroOrMore>
228
+ </element>
229
+ </define>
230
+ <define name="quote-source">
231
+ <element name="source">
232
+ <ref name="erefType"/>
233
+ </element>
234
+ </define>
235
+ <define name="quote-author">
236
+ <element name="author">
237
+ <text/>
238
+ </element>
239
+ </define>
240
+ <define name="sourcecode">
241
+ <element name="sourcecode">
242
+ <attribute name="id">
243
+ <data type="ID"/>
244
+ </attribute>
245
+ <optional>
246
+ <attribute name="unnumbered">
247
+ <data type="boolean"/>
248
+ </attribute>
249
+ </optional>
250
+ <optional>
251
+ <attribute name="lang"/>
252
+ </optional>
253
+ <optional>
254
+ <ref name="tname"/>
255
+ </optional>
256
+ <oneOrMore>
257
+ <choice>
258
+ <text/>
259
+ <ref name="callout"/>
260
+ </choice>
261
+ </oneOrMore>
262
+ <zeroOrMore>
263
+ <ref name="annotation"/>
264
+ </zeroOrMore>
265
+ <zeroOrMore>
266
+ <ref name="note"/>
267
+ </zeroOrMore>
268
+ </element>
269
+ </define>
270
+ <define name="pre">
271
+ <element name="pre">
272
+ <attribute name="id">
273
+ <data type="ID"/>
274
+ </attribute>
275
+ <optional>
276
+ <ref name="tname"/>
277
+ </optional>
278
+ <text/>
279
+ <zeroOrMore>
280
+ <ref name="note"/>
281
+ </zeroOrMore>
282
+ </element>
283
+ </define>
284
+ <define name="table">
285
+ <element name="table">
286
+ <attribute name="id">
287
+ <data type="ID"/>
288
+ </attribute>
289
+ <optional>
290
+ <attribute name="unnumbered">
291
+ <data type="boolean"/>
292
+ </attribute>
293
+ </optional>
294
+ <optional>
295
+ <attribute name="alt"/>
296
+ </optional>
297
+ <optional>
298
+ <attribute name="uri">
299
+ <data type="anyURI"/>
300
+ </attribute>
301
+ </optional>
302
+ <optional>
303
+ <ref name="tname"/>
304
+ </optional>
305
+ <optional>
306
+ <ref name="thead"/>
307
+ </optional>
308
+ <ref name="tbody"/>
309
+ <optional>
310
+ <ref name="tfoot"/>
311
+ </optional>
312
+ <zeroOrMore>
313
+ <ref name="table-note"/>
314
+ </zeroOrMore>
315
+ <optional>
316
+ <ref name="dl"/>
317
+ </optional>
318
+ </element>
319
+ </define>
320
+ <define name="tname">
321
+ <element name="name">
322
+ <text/>
323
+ </element>
324
+ </define>
325
+ <define name="tclass">
326
+ <element name="name">
327
+ <text/>
328
+ </element>
329
+ </define>
330
+ <define name="thead">
331
+ <element name="thead">
332
+ <ref name="tr"/>
333
+ </element>
334
+ </define>
335
+ <define name="tfoot">
336
+ <element name="tfoot">
337
+ <ref name="tr"/>
338
+ </element>
339
+ </define>
340
+ <define name="tbody">
341
+ <element name="tbody">
342
+ <oneOrMore>
343
+ <ref name="tr"/>
344
+ </oneOrMore>
345
+ </element>
346
+ </define>
347
+ <define name="table-note">
348
+ <element name="note">
349
+ <ref name="paragraph"/>
350
+ </element>
351
+ </define>
352
+ <define name="tr">
353
+ <element name="tr">
354
+ <oneOrMore>
355
+ <choice>
356
+ <ref name="td"/>
357
+ <ref name="th"/>
358
+ </choice>
359
+ </oneOrMore>
360
+ </element>
361
+ </define>
362
+ <define name="td">
363
+ <element name="td">
364
+ <optional>
365
+ <attribute name="colspan"/>
366
+ </optional>
367
+ <optional>
368
+ <attribute name="rowspan"/>
369
+ </optional>
370
+ <optional>
371
+ <attribute name="align">
372
+ <choice>
373
+ <value>left</value>
374
+ <value>right</value>
375
+ <value>center</value>
376
+ </choice>
377
+ </attribute>
378
+ </optional>
379
+ <choice>
380
+ <zeroOrMore>
381
+ <ref name="TextElement"/>
382
+ </zeroOrMore>
383
+ <oneOrMore>
384
+ <ref name="paragraph-with-footnote"/>
385
+ </oneOrMore>
386
+ </choice>
387
+ </element>
388
+ </define>
389
+ <define name="th">
390
+ <element name="th">
391
+ <optional>
392
+ <attribute name="colspan"/>
393
+ </optional>
394
+ <optional>
395
+ <attribute name="rowspan"/>
396
+ </optional>
397
+ <optional>
398
+ <attribute name="align">
399
+ <choice>
400
+ <value>left</value>
401
+ <value>right</value>
402
+ <value>center</value>
403
+ </choice>
404
+ </attribute>
405
+ </optional>
406
+ <choice>
407
+ <zeroOrMore>
408
+ <ref name="TextElement"/>
409
+ </zeroOrMore>
410
+ <oneOrMore>
411
+ <ref name="paragraph-with-footnote"/>
412
+ </oneOrMore>
413
+ </choice>
414
+ </element>
415
+ </define>
416
+ <define name="example">
417
+ <element name="example">
418
+ <attribute name="id">
419
+ <data type="ID"/>
420
+ </attribute>
421
+ <optional>
422
+ <attribute name="unnumbered">
423
+ <data type="boolean"/>
424
+ </attribute>
425
+ </optional>
426
+ <oneOrMore>
427
+ <choice>
428
+ <ref name="formula"/>
429
+ <ref name="ul"/>
430
+ <ref name="ol"/>
431
+ <ref name="dl"/>
432
+ <ref name="quote"/>
433
+ <ref name="sourcecode"/>
434
+ <ref name="paragraph-with-footnote"/>
435
+ </choice>
436
+ </oneOrMore>
437
+ <zeroOrMore>
438
+ <ref name="note"/>
439
+ </zeroOrMore>
440
+ </element>
441
+ </define>
442
+ <define name="admonition">
443
+ <element name="admonition">
444
+ <attribute name="type">
445
+ <ref name="AdmonitionType"/>
446
+ </attribute>
447
+ <optional>
448
+ <attribute name="class"/>
449
+ </optional>
450
+ <attribute name="id">
451
+ <data type="ID"/>
452
+ </attribute>
453
+ <optional>
454
+ <attribute name="uri">
455
+ <data type="anyURI"/>
456
+ </attribute>
457
+ </optional>
458
+ <optional>
459
+ <ref name="tname"/>
460
+ </optional>
461
+ <zeroOrMore>
462
+ <ref name="paragraph-with-footnote"/>
463
+ </zeroOrMore>
464
+ <zeroOrMore>
465
+ <ref name="note"/>
466
+ </zeroOrMore>
467
+ </element>
468
+ </define>
469
+ <define name="AdmonitionType">
470
+ <choice>
471
+ <value>warning</value>
472
+ <value>note</value>
473
+ <value>tip</value>
474
+ <value>important</value>
475
+ <value>caution</value>
476
+ <value>statement</value>
477
+ </choice>
478
+ </define>
479
+ <define name="figure">
480
+ <element name="figure">
481
+ <attribute name="id">
482
+ <data type="ID"/>
483
+ </attribute>
484
+ <optional>
485
+ <attribute name="unnumbered">
486
+ <data type="boolean"/>
487
+ </attribute>
488
+ </optional>
489
+ <optional>
490
+ <ref name="source"/>
491
+ </optional>
492
+ <optional>
493
+ <ref name="tname"/>
494
+ </optional>
495
+ <optional>
496
+ <ref name="tclass"/>
497
+ </optional>
498
+ <choice>
499
+ <ref name="image"/>
500
+ <ref name="pre"/>
501
+ <zeroOrMore>
502
+ <ref name="figure"/>
503
+ </zeroOrMore>
504
+ </choice>
505
+ <zeroOrMore>
506
+ <ref name="fn"/>
507
+ </zeroOrMore>
508
+ <optional>
509
+ <ref name="dl"/>
510
+ </optional>
511
+ <zeroOrMore>
512
+ <ref name="note"/>
513
+ </zeroOrMore>
514
+ </element>
515
+ </define>
516
+ <define name="TextElement">
517
+ <choice>
518
+ <text/>
519
+ <ref name="em"/>
520
+ <ref name="eref"/>
521
+ <ref name="strong"/>
522
+ <ref name="stem"/>
523
+ <ref name="sub"/>
524
+ <ref name="sup"/>
525
+ <ref name="tt"/>
526
+ <ref name="underline"/>
527
+ <ref name="keyword"/>
528
+ <ref name="ruby"/>
529
+ <ref name="strike"/>
530
+ <ref name="smallcap"/>
531
+ <ref name="xref"/>
532
+ <ref name="br"/>
533
+ <ref name="hyperlink"/>
534
+ <ref name="hr"/>
535
+ <ref name="pagebreak"/>
536
+ <ref name="bookmark"/>
537
+ <ref name="image"/>
538
+ </choice>
539
+ </define>
540
+ <define name="PureTextElement">
541
+ <choice>
542
+ <text/>
543
+ <ref name="em"/>
544
+ <ref name="strong"/>
545
+ <ref name="sub"/>
546
+ <ref name="sup"/>
547
+ <ref name="tt"/>
548
+ <ref name="underline"/>
549
+ <ref name="strike"/>
550
+ <ref name="smallcap"/>
551
+ <ref name="br"/>
552
+ </choice>
553
+ </define>
554
+ <define name="source">
555
+ <element name="source">
556
+ <ref name="TypedUri"/>
557
+ </element>
558
+ </define>
559
+ <define name="em">
560
+ <element name="em">
561
+ <zeroOrMore>
562
+ <ref name="PureTextElement"/>
563
+ </zeroOrMore>
564
+ </element>
565
+ </define>
566
+ <define name="strong">
567
+ <element name="strong">
568
+ <zeroOrMore>
569
+ <ref name="PureTextElement"/>
570
+ </zeroOrMore>
571
+ </element>
572
+ </define>
573
+ <define name="tt">
574
+ <element name="tt">
575
+ <zeroOrMore>
576
+ <ref name="PureTextElement"/>
577
+ </zeroOrMore>
578
+ </element>
579
+ </define>
580
+ <define name="keyword">
581
+ <element name="keyword">
582
+ <zeroOrMore>
583
+ <ref name="PureTextElement"/>
584
+ </zeroOrMore>
585
+ </element>
586
+ </define>
587
+ <define name="sub">
588
+ <element name="sub">
589
+ <zeroOrMore>
590
+ <ref name="PureTextElement"/>
591
+ </zeroOrMore>
592
+ </element>
593
+ </define>
594
+ <define name="sup">
595
+ <element name="sup">
596
+ <zeroOrMore>
597
+ <ref name="PureTextElement"/>
598
+ </zeroOrMore>
599
+ </element>
600
+ </define>
601
+ <define name="strike">
602
+ <element name="strike">
603
+ <zeroOrMore>
604
+ <ref name="PureTextElement"/>
605
+ </zeroOrMore>
606
+ </element>
607
+ </define>
608
+ <define name="underline">
609
+ <element name="underline">
610
+ <zeroOrMore>
611
+ <ref name="PureTextElement"/>
612
+ </zeroOrMore>
613
+ </element>
614
+ </define>
615
+ <define name="smallcap">
616
+ <element name="smallcap">
617
+ <zeroOrMore>
618
+ <ref name="PureTextElement"/>
619
+ </zeroOrMore>
620
+ </element>
621
+ </define>
622
+ <define name="ruby">
623
+ <element name="ruby">
624
+ <zeroOrMore>
625
+ <choice>
626
+ <ref name="PureTextElement"/>
627
+ <ref name="rp"/>
628
+ <ref name="rt"/>
629
+ </choice>
630
+ </zeroOrMore>
631
+ </element>
632
+ </define>
633
+ <define name="rp">
634
+ <element name="rp">
635
+ <zeroOrMore>
636
+ <ref name="PureTextElement"/>
637
+ </zeroOrMore>
638
+ </element>
639
+ </define>
640
+ <define name="rt">
641
+ <element name="rt">
642
+ <zeroOrMore>
643
+ <ref name="PureTextElement"/>
644
+ </zeroOrMore>
645
+ </element>
646
+ </define>
647
+ <define name="br">
648
+ <element name="br">
649
+ <empty/>
650
+ </element>
651
+ </define>
652
+ <define name="hr">
653
+ <element name="hr">
654
+ <empty/>
655
+ </element>
656
+ </define>
657
+ <define name="pagebreak">
658
+ <element name="pagebreak">
659
+ <empty/>
660
+ </element>
661
+ </define>
662
+ <!-- bare ID element, used for referencing arbitrary spans of text -->
663
+ <define name="bookmark">
664
+ <element name="bookmark">
665
+ <attribute name="id">
666
+ <data type="ID"/>
667
+ </attribute>
668
+ <empty/>
669
+ </element>
670
+ </define>
671
+ <define name="ReferenceFormat">
672
+ <choice>
673
+ <value>external</value>
674
+ <value>inline</value>
675
+ <value>footnote</value>
676
+ <value>callout</value>
677
+ </choice>
678
+ </define>
679
+ <define name="eref">
680
+ <element name="eref">
681
+ <ref name="erefType"/>
682
+ </element>
683
+ </define>
684
+ <define name="erefType">
685
+ <optional>
686
+ <attribute name="normative">
687
+ <data type="boolean"/>
688
+ </attribute>
689
+ </optional>
690
+ <attribute name="citeas"/>
691
+ <attribute name="type">
692
+ <ref name="ReferenceFormat"/>
693
+ </attribute>
694
+ <optional>
695
+ <attribute name="alt"/>
696
+ </optional>
697
+ <ref name="CitationType"/>
698
+ <text/>
699
+ </define>
700
+ <define name="hyperlink">
701
+ <element name="link">
702
+ <attribute name="target">
703
+ <data type="anyURI"/>
704
+ </attribute>
705
+ <attribute name="type">
706
+ <ref name="ReferenceFormat"/>
707
+ </attribute>
708
+ <optional>
709
+ <attribute name="alt"/>
710
+ </optional>
711
+ <text/>
712
+ </element>
713
+ </define>
714
+ <define name="xref">
715
+ <element name="xref">
716
+ <attribute name="target">
717
+ <data type="IDREF"/>
718
+ </attribute>
719
+ <attribute name="type">
720
+ <ref name="ReferenceFormat"/>
721
+ </attribute>
722
+ <optional>
723
+ <attribute name="alt"/>
724
+ </optional>
725
+ <text/>
726
+ </element>
727
+ </define>
728
+ <define name="fn">
729
+ <element name="fn">
730
+ <attribute name="reference"/>
731
+ <oneOrMore>
732
+ <ref name="paragraph"/>
733
+ </oneOrMore>
734
+ </element>
735
+ </define>
736
+ <!--
737
+ This is xref with fixed @type="footnote", and @target built in as paragraph+
738
+ @reference replaces ReferenceElement/text
739
+ so <fn reference="2"><p>This is a footnote</p></fn>
740
+ corresponds to
741
+ <eref type="footnote" target="fn2">2</xref> <p id="fn2">This is a footnote</p>
742
+ -->
743
+ <define name="callout">
744
+ <element name="callout">
745
+ <attribute name="target">
746
+ <data type="IDREF"/>
747
+ </attribute>
748
+ <text/>
749
+ </element>
750
+ </define>
751
+ <!--
752
+ This is xref with fixed @type="callout"; the target by convention is in an annotation in the same source code snippet
753
+ so <callout target="xyz">1</callout>
754
+ corresponds to <xref type="callout" target="xyz">1</xref>
755
+ -->
756
+ <define name="image">
757
+ <element name="image">
758
+ <attribute name="id">
759
+ <data type="ID"/>
760
+ </attribute>
761
+ <attribute name="src">
762
+ <data type="anyURI"/>
763
+ </attribute>
764
+ <attribute name="mimetype"/>
765
+ <optional>
766
+ <attribute name="filename"/>
767
+ </optional>
768
+ <optional>
769
+ <attribute name="width">
770
+ <choice>
771
+ <data type="int"/>
772
+ <value>auto</value>
773
+ </choice>
774
+ </attribute>
775
+ </optional>
776
+ <optional>
777
+ <attribute name="height">
778
+ <choice>
779
+ <data type="int"/>
780
+ <value>auto</value>
781
+ </choice>
782
+ </attribute>
783
+ </optional>
784
+ <optional>
785
+ <attribute name="alt"/>
786
+ </optional>
787
+ <optional>
788
+ <attribute name="longdesc">
789
+ <data type="anyURI"/>
790
+ </attribute>
791
+ </optional>
792
+ </element>
793
+ </define>
794
+ <define name="video">
795
+ <element name="image">
796
+ <attribute name="id">
797
+ <data type="ID"/>
798
+ </attribute>
799
+ <attribute name="src">
800
+ <data type="anyURI"/>
801
+ </attribute>
802
+ <attribute name="mimetype"/>
803
+ <optional>
804
+ <attribute name="filename"/>
805
+ </optional>
806
+ <optional>
807
+ <attribute name="width">
808
+ <choice>
809
+ <data type="int"/>
810
+ <value>auto</value>
811
+ </choice>
812
+ </attribute>
813
+ </optional>
814
+ <optional>
815
+ <attribute name="height">
816
+ <choice>
817
+ <data type="int"/>
818
+ <value>auto</value>
819
+ </choice>
820
+ </attribute>
821
+ </optional>
822
+ <optional>
823
+ <attribute name="alt"/>
824
+ </optional>
825
+ <optional>
826
+ <attribute name="longdesc">
827
+ <data type="anyURI"/>
828
+ </attribute>
829
+ </optional>
830
+ <zeroOrMore>
831
+ <ref name="altsource"/>
832
+ </zeroOrMore>
833
+ </element>
834
+ </define>
835
+ <define name="audio">
836
+ <element name="image">
837
+ <attribute name="id">
838
+ <data type="ID"/>
839
+ </attribute>
840
+ <attribute name="src">
841
+ <data type="anyURI"/>
842
+ </attribute>
843
+ <attribute name="mimetype"/>
844
+ <optional>
845
+ <attribute name="filename"/>
846
+ </optional>
847
+ <optional>
848
+ <attribute name="alt"/>
849
+ </optional>
850
+ <optional>
851
+ <attribute name="longdesc">
852
+ <data type="anyURI"/>
853
+ </attribute>
854
+ </optional>
855
+ <zeroOrMore>
856
+ <ref name="altsource"/>
857
+ </zeroOrMore>
858
+ </element>
859
+ </define>
860
+ <define name="altsource">
861
+ <element name="altsource">
862
+ <attribute name="src">
863
+ <data type="anyURI"/>
864
+ </attribute>
865
+ <attribute name="mimetype"/>
866
+ <optional>
867
+ <attribute name="filename"/>
868
+ </optional>
869
+ </element>
870
+ </define>
871
+ <define name="stem">
872
+ <element name="stem">
873
+ <attribute name="type">
874
+ <choice>
875
+ <value>MathML</value>
876
+ <value>AsciiMath</value>
877
+ </choice>
878
+ </attribute>
879
+ <oneOrMore>
880
+ <choice>
881
+ <text/>
882
+ <ref name="AnyElement"/>
883
+ </choice>
884
+ </oneOrMore>
885
+ </element>
886
+ </define>
887
+ <define name="annotation">
888
+ <element name="annotation">
889
+ <attribute name="id">
890
+ <data type="ID"/>
891
+ </attribute>
892
+ <ref name="paragraph"/>
893
+ </element>
894
+ </define>
895
+ <define name="ul">
896
+ <element name="ul">
897
+ <attribute name="id">
898
+ <data type="ID"/>
899
+ </attribute>
900
+ <oneOrMore>
901
+ <ref name="li"/>
902
+ </oneOrMore>
903
+ <zeroOrMore>
904
+ <ref name="note"/>
905
+ </zeroOrMore>
906
+ </element>
907
+ </define>
908
+ <define name="li">
909
+ <element name="li">
910
+ <optional>
911
+ <attribute name="id">
912
+ <data type="ID"/>
913
+ </attribute>
914
+ </optional>
915
+ <oneOrMore>
916
+ <ref name="paragraph-with-footnote"/>
917
+ </oneOrMore>
918
+ </element>
919
+ </define>
920
+ <define name="ol">
921
+ <element name="ol">
922
+ <attribute name="id">
923
+ <data type="ID"/>
924
+ </attribute>
925
+ <attribute name="type">
926
+ <choice>
927
+ <value>roman</value>
928
+ <value>alphabet</value>
929
+ <value>arabic</value>
930
+ <value>roman_upper</value>
931
+ <value>alphabet_upper</value>
932
+ </choice>
933
+ </attribute>
934
+ <oneOrMore>
935
+ <ref name="li"/>
936
+ </oneOrMore>
937
+ <zeroOrMore>
938
+ <ref name="note"/>
939
+ </zeroOrMore>
940
+ </element>
941
+ </define>
942
+ <define name="dl">
943
+ <element name="dl">
944
+ <attribute name="id">
945
+ <data type="ID"/>
946
+ </attribute>
947
+ <oneOrMore>
948
+ <ref name="dt"/>
949
+ <ref name="dd"/>
950
+ </oneOrMore>
951
+ <zeroOrMore>
952
+ <ref name="note"/>
953
+ </zeroOrMore>
954
+ </element>
955
+ </define>
956
+ <define name="dt">
957
+ <element name="dt">
958
+ <zeroOrMore>
959
+ <ref name="TextElement"/>
960
+ </zeroOrMore>
961
+ </element>
962
+ </define>
963
+ <define name="dd">
964
+ <element name="dd">
965
+ <zeroOrMore>
966
+ <ref name="paragraph-with-footnote"/>
967
+ </zeroOrMore>
968
+ </element>
969
+ </define>
970
+ <define name="ext">
971
+ <element name="ext">
972
+ <ref name="BibDataExtensionType"/>
973
+ </element>
974
+ </define>
975
+ <define name="BibDataExtensionType">
976
+ <ref name="doctype"/>
977
+ </define>
978
+ <define name="doctype">
979
+ <element name="doctype">
980
+ <ref name="DocumentType"/>
981
+ </element>
982
+ </define>
983
+ <define name="DocumentType">
984
+ <value>document</value>
985
+ </define>
986
+ <define name="BibData">
987
+ <ref name="BibliographicItem"/>
988
+ <optional>
989
+ <ref name="ext"/>
990
+ </optional>
991
+ </define>
992
+ </grammar>