metanorma-plateau 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1660 @@
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
+ <define name="document">
4
+ <element name="document">
5
+ <optional>
6
+ <attribute name="identifier"/>
7
+ </optional>
8
+ <ref name="bibdata"/>
9
+ <ref name="sections"/>
10
+ <zeroOrMore>
11
+ <ref name="references"/>
12
+ </zeroOrMore>
13
+ </element>
14
+ </define>
15
+ <define name="bibdata">
16
+ <element name="bibdata">
17
+ <ref name="BibData"/>
18
+ </element>
19
+ </define>
20
+ <define name="sections">
21
+ <element name="sections">
22
+ <oneOrMore>
23
+ <ref name="section"/>
24
+ </oneOrMore>
25
+ </element>
26
+ </define>
27
+ <define name="section">
28
+ <element name="section">
29
+ <ref name="Basic-Section"/>
30
+ <zeroOrMore>
31
+ <ref name="section"/>
32
+ </zeroOrMore>
33
+ </element>
34
+ </define>
35
+ <define name="Basic-Section">
36
+ <optional>
37
+ <attribute name="id">
38
+ <data type="ID"/>
39
+ </attribute>
40
+ </optional>
41
+ <optional>
42
+ <attribute name="language"/>
43
+ </optional>
44
+ <optional>
45
+ <attribute name="script"/>
46
+ </optional>
47
+ <optional>
48
+ <ref name="section-title"/>
49
+ </optional>
50
+ <zeroOrMore>
51
+ <ref name="BasicBlock"/>
52
+ </zeroOrMore>
53
+ </define>
54
+ <define name="references">
55
+ <element name="references">
56
+ <optional>
57
+ <attribute name="id">
58
+ <data type="ID"/>
59
+ </attribute>
60
+ </optional>
61
+ <optional>
62
+ <ref name="section-title"/>
63
+ </optional>
64
+ <zeroOrMore>
65
+ <ref name="BasicBlock"/>
66
+ </zeroOrMore>
67
+ <zeroOrMore>
68
+ <ref name="bibitem"/>
69
+ </zeroOrMore>
70
+ </element>
71
+ </define>
72
+ <define name="section-title">
73
+ <element name="title">
74
+ <zeroOrMore>
75
+ <ref name="TextElement"/>
76
+ </zeroOrMore>
77
+ </element>
78
+ </define>
79
+ <define name="BasicBlock">
80
+ <choice>
81
+ <ref name="paragraph-with-footnote"/>
82
+ <ref name="table"/>
83
+ <ref name="formula"/>
84
+ <ref name="admonition"/>
85
+ <ref name="ol"/>
86
+ <ref name="ul"/>
87
+ <ref name="dl"/>
88
+ <ref name="figure"/>
89
+ <ref name="quote"/>
90
+ <ref name="sourcecode"/>
91
+ <ref name="example"/>
92
+ <ref name="review"/>
93
+ <ref name="pre"/>
94
+ <ref name="note"/>
95
+ <ref name="pagebreak"/>
96
+ <ref name="hr"/>
97
+ <ref name="bookmark"/>
98
+ <ref name="amend"/>
99
+ </choice>
100
+ </define>
101
+ <define name="BasicBlockNoId">
102
+ <choice>
103
+ <ref name="paragraph-with-footnote-no-id"/>
104
+ <ref name="table-no-id"/>
105
+ <ref name="formula-no-id"/>
106
+ <ref name="admonition-no-id"/>
107
+ <ref name="ol-no-id"/>
108
+ <ref name="ul-no-id"/>
109
+ <ref name="dl-no-id"/>
110
+ <ref name="figure-no-id"/>
111
+ <ref name="quote-no-id"/>
112
+ <ref name="sourcecode-no-id"/>
113
+ <ref name="example-no-id"/>
114
+ <ref name="review"/>
115
+ <ref name="pre-no-id"/>
116
+ <ref name="note-no-id"/>
117
+ <ref name="pagebreak"/>
118
+ <ref name="hr"/>
119
+ <ref name="bookmark"/>
120
+ <ref name="amend"/>
121
+ </choice>
122
+ </define>
123
+ <define name="amend">
124
+ <element name="amend">
125
+ <ref name="AmendType"/>
126
+ </element>
127
+ </define>
128
+ <define name="AmendType">
129
+ <optional>
130
+ <attribute name="id">
131
+ <data type="ID"/>
132
+ </attribute>
133
+ </optional>
134
+ <attribute name="change">
135
+ <choice>
136
+ <value>add</value>
137
+ <value>modify</value>
138
+ <value>delete</value>
139
+ <value>replace</value>
140
+ </choice>
141
+ </attribute>
142
+ <optional>
143
+ <attribute name="path"/>
144
+ </optional>
145
+ <optional>
146
+ <attribute name="path_end"/>
147
+ </optional>
148
+ <optional>
149
+ <attribute name="title"/>
150
+ </optional>
151
+ <optional>
152
+ <element name="location">
153
+ <zeroOrMore>
154
+ <choice>
155
+ <ref name="locality"/>
156
+ <ref name="localityStack"/>
157
+ </choice>
158
+ </zeroOrMore>
159
+ </element>
160
+ </optional>
161
+ <optional>
162
+ <element name="description">
163
+ <zeroOrMore>
164
+ <ref name="BasicBlock"/>
165
+ </zeroOrMore>
166
+ </element>
167
+ </optional>
168
+ <optional>
169
+ <element name="newcontent">
170
+ <optional>
171
+ <attribute name="id">
172
+ <data type="ID"/>
173
+ </attribute>
174
+ </optional>
175
+ <zeroOrMore>
176
+ <ref name="BasicBlock"/>
177
+ </zeroOrMore>
178
+ </element>
179
+ </optional>
180
+ <zeroOrMore>
181
+ <ref name="classification"/>
182
+ </zeroOrMore>
183
+ <zeroOrMore>
184
+ <ref name="contributor"/>
185
+ </zeroOrMore>
186
+ </define>
187
+ <define name="classification">
188
+ <element name="classification">
189
+ <ref name="classification_tag"/>
190
+ <ref name="classification_value"/>
191
+ </element>
192
+ </define>
193
+ <define name="classification_tag">
194
+ <element name="tag">
195
+ <text/>
196
+ </element>
197
+ </define>
198
+ <define name="classification_value">
199
+ <element name="value">
200
+ <text/>
201
+ </element>
202
+ </define>
203
+ <define name="paragraph">
204
+ <element name="p">
205
+ <ref name="ParagraphType"/>
206
+ </element>
207
+ </define>
208
+ <define name="Alignments">
209
+ <choice>
210
+ <value>left</value>
211
+ <value>right</value>
212
+ <value>center</value>
213
+ <value>justified</value>
214
+ </choice>
215
+ </define>
216
+ <define name="RequiredId">
217
+ <attribute name="id">
218
+ <data type="ID"/>
219
+ </attribute>
220
+ </define>
221
+ <define name="OptionalId">
222
+ <optional>
223
+ <attribute name="id">
224
+ <data type="ID"/>
225
+ </attribute>
226
+ </optional>
227
+ </define>
228
+ <define name="ParagraphAttrs">
229
+ <optional>
230
+ <attribute name="align">
231
+ <ref name="Alignments"/>
232
+ </attribute>
233
+ </optional>
234
+ </define>
235
+ <define name="ParagraphType">
236
+ <ref name="RequiredId"/>
237
+ <ref name="ParagraphAttrs"/>
238
+ <ref name="ParagraphBody"/>
239
+ </define>
240
+ <define name="ParagraphBody">
241
+ <zeroOrMore>
242
+ <ref name="TextElement"/>
243
+ </zeroOrMore>
244
+ <zeroOrMore>
245
+ <ref name="note"/>
246
+ </zeroOrMore>
247
+ </define>
248
+ <define name="ParagraphFnBody">
249
+ <zeroOrMore>
250
+ <choice>
251
+ <ref name="TextElement"/>
252
+ <ref name="fn"/>
253
+ </choice>
254
+ </zeroOrMore>
255
+ <zeroOrMore>
256
+ <ref name="note"/>
257
+ </zeroOrMore>
258
+ </define>
259
+ <define name="paragraph-no-id">
260
+ <element name="p">
261
+ <ref name="OptionalId"/>
262
+ <ref name="ParagraphAttrs"/>
263
+ <ref name="ParagraphBody"/>
264
+ </element>
265
+ </define>
266
+ <define name="paragraph-with-footnote">
267
+ <element name="p">
268
+ <ref name="RequiredId"/>
269
+ <ref name="ParagraphAttrs"/>
270
+ <ref name="ParagraphFnBody"/>
271
+ </element>
272
+ </define>
273
+ <define name="paragraph-with-footnote-no-id">
274
+ <element name="p">
275
+ <ref name="OptionalId"/>
276
+ <ref name="ParagraphAttrs"/>
277
+ <ref name="ParagraphFnBody"/>
278
+ </element>
279
+ </define>
280
+ <define name="note">
281
+ <element name="note">
282
+ <ref name="RequiredId"/>
283
+ <ref name="NoteAttr"/>
284
+ <ref name="NoteBody"/>
285
+ </element>
286
+ </define>
287
+ <define name="note-no-id">
288
+ <element name="note">
289
+ <ref name="OptionalId"/>
290
+ <ref name="NoteAttr"/>
291
+ <ref name="NoteNoIdBody"/>
292
+ </element>
293
+ </define>
294
+ <define name="NoteAttr">
295
+ <empty/>
296
+ </define>
297
+ <define name="NoteBody">
298
+ <oneOrMore>
299
+ <ref name="paragraph"/>
300
+ </oneOrMore>
301
+ </define>
302
+ <define name="NoteNoIdBody">
303
+ <oneOrMore>
304
+ <ref name="paragraph-no-id"/>
305
+ </oneOrMore>
306
+ </define>
307
+ <define name="review">
308
+ <element name="review">
309
+ <ref name="RequiredId"/>
310
+ <attribute name="reviewer"/>
311
+ <optional>
312
+ <attribute name="type"/>
313
+ </optional>
314
+ <optional>
315
+ <attribute name="date">
316
+ <data type="dateTime"/>
317
+ </attribute>
318
+ </optional>
319
+ <optional>
320
+ <attribute name="from">
321
+ <data type="IDREF"/>
322
+ </attribute>
323
+ </optional>
324
+ <optional>
325
+ <attribute name="to">
326
+ <data type="IDREF"/>
327
+ </attribute>
328
+ </optional>
329
+ <oneOrMore>
330
+ <ref name="paragraph"/>
331
+ </oneOrMore>
332
+ </element>
333
+ </define>
334
+ <define name="formula">
335
+ <element name="formula">
336
+ <ref name="RequiredId"/>
337
+ <ref name="FormulaAttr"/>
338
+ <ref name="FormulaBody"/>
339
+ </element>
340
+ </define>
341
+ <define name="formula-no-id">
342
+ <element name="formula">
343
+ <ref name="OptionalId"/>
344
+ <ref name="FormulaAttr"/>
345
+ <ref name="FormulaNoIdBody"/>
346
+ </element>
347
+ </define>
348
+ <define name="FormulaAttr">
349
+ <optional>
350
+ <attribute name="unnumbered">
351
+ <data type="boolean"/>
352
+ </attribute>
353
+ </optional>
354
+ <optional>
355
+ <attribute name="subsequence"/>
356
+ </optional>
357
+ <optional>
358
+ <attribute name="inequality">
359
+ <data type="boolean"/>
360
+ </attribute>
361
+ </optional>
362
+ </define>
363
+ <define name="FormulaBody">
364
+ <ref name="stem"/>
365
+ <optional>
366
+ <ref name="dl"/>
367
+ </optional>
368
+ <zeroOrMore>
369
+ <ref name="note"/>
370
+ </zeroOrMore>
371
+ </define>
372
+ <define name="FormulaNoIdBody">
373
+ <ref name="stem"/>
374
+ <optional>
375
+ <ref name="dl-no-id"/>
376
+ </optional>
377
+ <zeroOrMore>
378
+ <ref name="note-no-id"/>
379
+ </zeroOrMore>
380
+ </define>
381
+ <define name="quote">
382
+ <element name="quote">
383
+ <ref name="RequiredId"/>
384
+ <ref name="QuoteAttr"/>
385
+ <ref name="QuoteBody"/>
386
+ </element>
387
+ </define>
388
+ <define name="quote-no-id">
389
+ <element name="quote">
390
+ <ref name="OptionalId"/>
391
+ <ref name="QuoteAttr"/>
392
+ <ref name="QuoteNoIdBody"/>
393
+ </element>
394
+ </define>
395
+ <define name="QuoteAttr">
396
+ <optional>
397
+ <attribute name="alignment">
398
+ <ref name="Alignments"/>
399
+ </attribute>
400
+ </optional>
401
+ </define>
402
+ <define name="QuoteBody">
403
+ <optional>
404
+ <ref name="quote-source"/>
405
+ </optional>
406
+ <optional>
407
+ <ref name="quote-author"/>
408
+ </optional>
409
+ <oneOrMore>
410
+ <ref name="paragraph-with-footnote"/>
411
+ </oneOrMore>
412
+ <zeroOrMore>
413
+ <ref name="note"/>
414
+ </zeroOrMore>
415
+ </define>
416
+ <define name="QuoteNoIdBody">
417
+ <optional>
418
+ <ref name="quote-source"/>
419
+ </optional>
420
+ <optional>
421
+ <ref name="quote-author"/>
422
+ </optional>
423
+ <oneOrMore>
424
+ <ref name="paragraph-with-footnote-no-id"/>
425
+ </oneOrMore>
426
+ <zeroOrMore>
427
+ <ref name="note-no-id"/>
428
+ </zeroOrMore>
429
+ </define>
430
+ <define name="quote-source">
431
+ <element name="source">
432
+ <ref name="erefType"/>
433
+ </element>
434
+ </define>
435
+ <define name="quote-author">
436
+ <element name="author">
437
+ <text/>
438
+ </element>
439
+ </define>
440
+ <define name="sourcecode">
441
+ <element name="sourcecode">
442
+ <ref name="RequiredId"/>
443
+ <ref name="SourceAttr"/>
444
+ <ref name="SourceBody"/>
445
+ </element>
446
+ </define>
447
+ <define name="sourcecode-no-id">
448
+ <element name="sourcecode">
449
+ <ref name="OptionalId"/>
450
+ <ref name="SourceAttr"/>
451
+ <ref name="SourceNoIdBody"/>
452
+ </element>
453
+ </define>
454
+ <define name="SourceAttr">
455
+ <optional>
456
+ <attribute name="unnumbered">
457
+ <data type="boolean"/>
458
+ </attribute>
459
+ </optional>
460
+ <optional>
461
+ <attribute name="subsequence"/>
462
+ </optional>
463
+ <optional>
464
+ <attribute name="lang"/>
465
+ </optional>
466
+ </define>
467
+ <define name="SourceBody">
468
+ <optional>
469
+ <ref name="tname"/>
470
+ </optional>
471
+ <oneOrMore>
472
+ <choice>
473
+ <text/>
474
+ <ref name="callout"/>
475
+ </choice>
476
+ </oneOrMore>
477
+ <zeroOrMore>
478
+ <ref name="annotation"/>
479
+ </zeroOrMore>
480
+ <zeroOrMore>
481
+ <ref name="note"/>
482
+ </zeroOrMore>
483
+ </define>
484
+ <define name="SourceNoIdBody">
485
+ <optional>
486
+ <ref name="tname"/>
487
+ </optional>
488
+ <oneOrMore>
489
+ <choice>
490
+ <text/>
491
+ <ref name="callout"/>
492
+ </choice>
493
+ </oneOrMore>
494
+ <zeroOrMore>
495
+ <ref name="annotation"/>
496
+ </zeroOrMore>
497
+ <zeroOrMore>
498
+ <ref name="note-no-id"/>
499
+ </zeroOrMore>
500
+ </define>
501
+ <define name="pre">
502
+ <element name="pre">
503
+ <ref name="RequiredId"/>
504
+ <ref name="PreAttr"/>
505
+ <ref name="PreBody"/>
506
+ </element>
507
+ </define>
508
+ <define name="pre-no-id">
509
+ <element name="pre">
510
+ <ref name="OptionalId"/>
511
+ <ref name="PreAttr"/>
512
+ <ref name="PreNoIdBody"/>
513
+ </element>
514
+ </define>
515
+ <define name="PreAttr">
516
+ <optional>
517
+ <attribute name="alt"/>
518
+ </optional>
519
+ </define>
520
+ <define name="PreBody">
521
+ <optional>
522
+ <ref name="tname"/>
523
+ </optional>
524
+ <text/>
525
+ <zeroOrMore>
526
+ <ref name="note"/>
527
+ </zeroOrMore>
528
+ </define>
529
+ <define name="PreNoIdBody">
530
+ <optional>
531
+ <ref name="tname"/>
532
+ </optional>
533
+ <text/>
534
+ <zeroOrMore>
535
+ <ref name="note-no-id"/>
536
+ </zeroOrMore>
537
+ </define>
538
+ <define name="table">
539
+ <element name="table">
540
+ <ref name="RequiredId"/>
541
+ <ref name="TableAttr"/>
542
+ <ref name="TableBody"/>
543
+ </element>
544
+ </define>
545
+ <define name="table-no-id">
546
+ <element name="table">
547
+ <ref name="OptionalId"/>
548
+ <ref name="TableAttr"/>
549
+ <ref name="TableNoIdBody"/>
550
+ </element>
551
+ </define>
552
+ <define name="TableAttr">
553
+ <optional>
554
+ <attribute name="unnumbered">
555
+ <data type="boolean"/>
556
+ </attribute>
557
+ </optional>
558
+ <optional>
559
+ <attribute name="subsequence"/>
560
+ </optional>
561
+ <optional>
562
+ <attribute name="alt"/>
563
+ </optional>
564
+ <optional>
565
+ <attribute name="summary"/>
566
+ </optional>
567
+ <optional>
568
+ <attribute name="uri">
569
+ <data type="anyURI"/>
570
+ </attribute>
571
+ </optional>
572
+ </define>
573
+ <define name="TableBody">
574
+ <optional>
575
+ <ref name="tname"/>
576
+ </optional>
577
+ <optional>
578
+ <ref name="thead"/>
579
+ </optional>
580
+ <ref name="tbody"/>
581
+ <optional>
582
+ <ref name="tfoot"/>
583
+ </optional>
584
+ <optional>
585
+ <ref name="dl"/>
586
+ </optional>
587
+ <zeroOrMore>
588
+ <ref name="table-note"/>
589
+ </zeroOrMore>
590
+ </define>
591
+ <define name="TableNoIdBody">
592
+ <optional>
593
+ <ref name="tname"/>
594
+ </optional>
595
+ <optional>
596
+ <ref name="thead-no-id"/>
597
+ </optional>
598
+ <ref name="tbody-no-id"/>
599
+ <optional>
600
+ <ref name="tfoot-no-id"/>
601
+ </optional>
602
+ <optional>
603
+ <ref name="dl-no-id"/>
604
+ </optional>
605
+ <zeroOrMore>
606
+ <ref name="table-note-no-id"/>
607
+ </zeroOrMore>
608
+ </define>
609
+ <define name="tname">
610
+ <element name="name">
611
+ <oneOrMore>
612
+ <choice>
613
+ <ref name="PureTextElement"/>
614
+ <ref name="eref"/>
615
+ <ref name="stem"/>
616
+ <ref name="keyword"/>
617
+ <ref name="xref"/>
618
+ <ref name="hyperlink"/>
619
+ <ref name="index"/>
620
+ <ref name="index-xref"/>
621
+ </choice>
622
+ </oneOrMore>
623
+ </element>
624
+ </define>
625
+ <define name="thead">
626
+ <element name="thead">
627
+ <ref name="tr"/>
628
+ </element>
629
+ </define>
630
+ <define name="thead-no-id">
631
+ <element name="thead">
632
+ <ref name="tr-no-id"/>
633
+ </element>
634
+ </define>
635
+ <define name="tfoot">
636
+ <element name="tfoot">
637
+ <ref name="tr"/>
638
+ </element>
639
+ </define>
640
+ <define name="tfoot-no-id">
641
+ <element name="tfoot">
642
+ <ref name="tr-no-id"/>
643
+ </element>
644
+ </define>
645
+ <define name="tbody">
646
+ <element name="tbody">
647
+ <oneOrMore>
648
+ <ref name="tr"/>
649
+ </oneOrMore>
650
+ </element>
651
+ </define>
652
+ <define name="tbody-no-id">
653
+ <element name="tbody">
654
+ <oneOrMore>
655
+ <ref name="tr-no-id"/>
656
+ </oneOrMore>
657
+ </element>
658
+ </define>
659
+ <define name="table-note">
660
+ <element name="note">
661
+ <ref name="paragraph"/>
662
+ </element>
663
+ </define>
664
+ <define name="table-note-no-id">
665
+ <element name="note">
666
+ <ref name="paragraph-no-id"/>
667
+ </element>
668
+ </define>
669
+ <define name="tr">
670
+ <element name="tr">
671
+ <oneOrMore>
672
+ <choice>
673
+ <ref name="td"/>
674
+ <ref name="th"/>
675
+ </choice>
676
+ </oneOrMore>
677
+ </element>
678
+ </define>
679
+ <define name="tr-no-id">
680
+ <element name="tr">
681
+ <oneOrMore>
682
+ <choice>
683
+ <ref name="td-no-id"/>
684
+ <ref name="th-no-id"/>
685
+ </choice>
686
+ </oneOrMore>
687
+ </element>
688
+ </define>
689
+ <define name="td">
690
+ <element name="td">
691
+ <ref name="TdAttr"/>
692
+ <ref name="TdBody"/>
693
+ </element>
694
+ </define>
695
+ <define name="td-no-id">
696
+ <element name="td">
697
+ <ref name="TdAttr"/>
698
+ <ref name="TdNoIdBody"/>
699
+ </element>
700
+ </define>
701
+ <define name="TdAttr">
702
+ <optional>
703
+ <attribute name="colspan"/>
704
+ </optional>
705
+ <optional>
706
+ <attribute name="rowspan"/>
707
+ </optional>
708
+ <optional>
709
+ <attribute name="align">
710
+ <choice>
711
+ <value>left</value>
712
+ <value>right</value>
713
+ <value>center</value>
714
+ </choice>
715
+ </attribute>
716
+ </optional>
717
+ <optional>
718
+ <attribute name="valign">
719
+ <choice>
720
+ <value>top</value>
721
+ <value>middle</value>
722
+ <value>bottom</value>
723
+ <value>baseline</value>
724
+ </choice>
725
+ </attribute>
726
+ </optional>
727
+ </define>
728
+ <define name="TdBody">
729
+ <choice>
730
+ <zeroOrMore>
731
+ <ref name="TextElement"/>
732
+ </zeroOrMore>
733
+ <oneOrMore>
734
+ <ref name="paragraph-with-footnote"/>
735
+ </oneOrMore>
736
+ </choice>
737
+ </define>
738
+ <define name="TdNoIdBody">
739
+ <choice>
740
+ <zeroOrMore>
741
+ <ref name="TextElement"/>
742
+ </zeroOrMore>
743
+ <oneOrMore>
744
+ <ref name="paragraph-with-footnote-no-id"/>
745
+ </oneOrMore>
746
+ </choice>
747
+ </define>
748
+ <define name="th">
749
+ <element name="th">
750
+ <ref name="ThAttr"/>
751
+ <ref name="ThBody"/>
752
+ </element>
753
+ </define>
754
+ <define name="th-no-id">
755
+ <element name="th">
756
+ <ref name="ThAttr"/>
757
+ <ref name="ThNoIdBody"/>
758
+ </element>
759
+ </define>
760
+ <define name="ThAttr">
761
+ <ref name="TdAttr"/>
762
+ </define>
763
+ <define name="ThBody">
764
+ <ref name="TdBody"/>
765
+ </define>
766
+ <define name="ThNoIdBody">
767
+ <ref name="TdNoIdBody"/>
768
+ </define>
769
+ <define name="example">
770
+ <element name="example">
771
+ <ref name="RequiredId"/>
772
+ <ref name="ExampleAttr"/>
773
+ <ref name="ExampleBody"/>
774
+ </element>
775
+ </define>
776
+ <define name="example-no-id">
777
+ <element name="example">
778
+ <ref name="OptionalId"/>
779
+ <ref name="ExampleAttr"/>
780
+ <ref name="ExampleNoIdBody"/>
781
+ </element>
782
+ </define>
783
+ <define name="ExampleAttr">
784
+ <optional>
785
+ <attribute name="unnumbered">
786
+ <data type="boolean"/>
787
+ </attribute>
788
+ </optional>
789
+ <optional>
790
+ <attribute name="subsequence"/>
791
+ </optional>
792
+ </define>
793
+ <define name="ExampleBody">
794
+ <optional>
795
+ <ref name="tname"/>
796
+ </optional>
797
+ <oneOrMore>
798
+ <choice>
799
+ <ref name="formula"/>
800
+ <ref name="ul"/>
801
+ <ref name="ol"/>
802
+ <ref name="dl"/>
803
+ <ref name="quote"/>
804
+ <ref name="sourcecode"/>
805
+ <ref name="paragraph-with-footnote"/>
806
+ </choice>
807
+ </oneOrMore>
808
+ <zeroOrMore>
809
+ <ref name="note"/>
810
+ </zeroOrMore>
811
+ </define>
812
+ <define name="ExampleNoIdBody">
813
+ <optional>
814
+ <ref name="tname"/>
815
+ </optional>
816
+ <oneOrMore>
817
+ <choice>
818
+ <ref name="formula-no-id"/>
819
+ <ref name="ul-no-id"/>
820
+ <ref name="ol-no-id"/>
821
+ <ref name="dl-no-id"/>
822
+ <ref name="quote-no-id"/>
823
+ <ref name="sourcecode-no-id"/>
824
+ <ref name="paragraph-with-footnote-no-id"/>
825
+ </choice>
826
+ </oneOrMore>
827
+ <zeroOrMore>
828
+ <ref name="note-no-id"/>
829
+ </zeroOrMore>
830
+ </define>
831
+ <define name="admonition">
832
+ <element name="admonition">
833
+ <ref name="RequiredId"/>
834
+ <ref name="AdmonitionAttr"/>
835
+ <ref name="AdmonitionBody"/>
836
+ </element>
837
+ </define>
838
+ <define name="admonition-no-id">
839
+ <element name="admonition">
840
+ <ref name="OptionalId"/>
841
+ <ref name="AdmonitionAttr"/>
842
+ <ref name="AdmonitionNoIdBody"/>
843
+ </element>
844
+ </define>
845
+ <define name="AdmonitionAttr">
846
+ <attribute name="type">
847
+ <ref name="AdmonitionType"/>
848
+ </attribute>
849
+ <optional>
850
+ <attribute name="class"/>
851
+ </optional>
852
+ <optional>
853
+ <attribute name="uri">
854
+ <data type="anyURI"/>
855
+ </attribute>
856
+ </optional>
857
+ </define>
858
+ <define name="AdmonitionBody">
859
+ <optional>
860
+ <ref name="tname"/>
861
+ </optional>
862
+ <zeroOrMore>
863
+ <ref name="paragraph-with-footnote"/>
864
+ </zeroOrMore>
865
+ <zeroOrMore>
866
+ <ref name="note"/>
867
+ </zeroOrMore>
868
+ </define>
869
+ <define name="AdmonitionNoIdBody">
870
+ <optional>
871
+ <ref name="tname"/>
872
+ </optional>
873
+ <zeroOrMore>
874
+ <ref name="paragraph-with-footnote-no-id"/>
875
+ </zeroOrMore>
876
+ <zeroOrMore>
877
+ <ref name="note-no-id"/>
878
+ </zeroOrMore>
879
+ </define>
880
+ <define name="AdmonitionType">
881
+ <choice>
882
+ <value>warning</value>
883
+ <value>note</value>
884
+ <value>tip</value>
885
+ <value>important</value>
886
+ <value>caution</value>
887
+ </choice>
888
+ </define>
889
+ <define name="figure">
890
+ <element name="figure">
891
+ <ref name="RequiredId"/>
892
+ <ref name="FigureAttr"/>
893
+ <ref name="FigureBody"/>
894
+ </element>
895
+ </define>
896
+ <define name="figure-no-id">
897
+ <element name="figure">
898
+ <ref name="OptionalId"/>
899
+ <ref name="FigureAttr"/>
900
+ <ref name="FigureNoIdBody"/>
901
+ </element>
902
+ </define>
903
+ <define name="FigureAttr">
904
+ <optional>
905
+ <attribute name="unnumbered">
906
+ <data type="boolean"/>
907
+ </attribute>
908
+ </optional>
909
+ <optional>
910
+ <attribute name="subsequence"/>
911
+ </optional>
912
+ <optional>
913
+ <attribute name="class"/>
914
+ </optional>
915
+ </define>
916
+ <define name="FigureBody">
917
+ <optional>
918
+ <ref name="source"/>
919
+ </optional>
920
+ <optional>
921
+ <ref name="tname"/>
922
+ </optional>
923
+ <choice>
924
+ <ref name="image"/>
925
+ <ref name="video"/>
926
+ <ref name="audio"/>
927
+ <ref name="pre"/>
928
+ <oneOrMore>
929
+ <ref name="paragraph-with-footnote"/>
930
+ </oneOrMore>
931
+ <zeroOrMore>
932
+ <ref name="figure"/>
933
+ </zeroOrMore>
934
+ </choice>
935
+ <zeroOrMore>
936
+ <ref name="fn"/>
937
+ </zeroOrMore>
938
+ <optional>
939
+ <ref name="dl"/>
940
+ </optional>
941
+ <zeroOrMore>
942
+ <ref name="note"/>
943
+ </zeroOrMore>
944
+ </define>
945
+ <define name="FigureNoIdBody">
946
+ <optional>
947
+ <ref name="source"/>
948
+ </optional>
949
+ <optional>
950
+ <ref name="tname"/>
951
+ </optional>
952
+ <choice>
953
+ <ref name="image-no-id"/>
954
+ <ref name="video-no-id"/>
955
+ <ref name="audio-no-id"/>
956
+ <ref name="pre-no-id"/>
957
+ <oneOrMore>
958
+ <ref name="paragraph-with-footnote-no-id"/>
959
+ </oneOrMore>
960
+ <zeroOrMore>
961
+ <ref name="figure-no-id"/>
962
+ </zeroOrMore>
963
+ </choice>
964
+ <zeroOrMore>
965
+ <ref name="fn"/>
966
+ </zeroOrMore>
967
+ <optional>
968
+ <ref name="dl-no-id"/>
969
+ </optional>
970
+ <zeroOrMore>
971
+ <ref name="note-no-id"/>
972
+ </zeroOrMore>
973
+ </define>
974
+ <define name="TextElement">
975
+ <choice>
976
+ <text/>
977
+ <ref name="em"/>
978
+ <ref name="eref"/>
979
+ <ref name="strong"/>
980
+ <ref name="stem"/>
981
+ <ref name="sub"/>
982
+ <ref name="sup"/>
983
+ <ref name="tt"/>
984
+ <ref name="underline"/>
985
+ <ref name="keyword"/>
986
+ <ref name="ruby"/>
987
+ <ref name="strike"/>
988
+ <ref name="smallcap"/>
989
+ <ref name="xref"/>
990
+ <ref name="br"/>
991
+ <ref name="hyperlink"/>
992
+ <ref name="hr"/>
993
+ <ref name="pagebreak"/>
994
+ <ref name="bookmark"/>
995
+ <ref name="image"/>
996
+ <ref name="index"/>
997
+ <ref name="index-xref"/>
998
+ </choice>
999
+ </define>
1000
+ <define name="PureTextElement">
1001
+ <choice>
1002
+ <text/>
1003
+ <ref name="em"/>
1004
+ <ref name="strong"/>
1005
+ <ref name="sub"/>
1006
+ <ref name="sup"/>
1007
+ <ref name="tt"/>
1008
+ <ref name="underline"/>
1009
+ <ref name="strike"/>
1010
+ <ref name="smallcap"/>
1011
+ <ref name="br"/>
1012
+ </choice>
1013
+ </define>
1014
+ <define name="source">
1015
+ <element name="source">
1016
+ <ref name="TypedUri"/>
1017
+ </element>
1018
+ </define>
1019
+ <define name="em">
1020
+ <element name="em">
1021
+ <zeroOrMore>
1022
+ <choice>
1023
+ <ref name="PureTextElement"/>
1024
+ <ref name="stem"/>
1025
+ <ref name="eref"/>
1026
+ <ref name="xref"/>
1027
+ <ref name="hyperlink"/>
1028
+ <ref name="index"/>
1029
+ <ref name="index-xref"/>
1030
+ </choice>
1031
+ </zeroOrMore>
1032
+ </element>
1033
+ </define>
1034
+ <define name="strong">
1035
+ <element name="strong">
1036
+ <zeroOrMore>
1037
+ <choice>
1038
+ <ref name="PureTextElement"/>
1039
+ <ref name="stem"/>
1040
+ <ref name="eref"/>
1041
+ <ref name="xref"/>
1042
+ <ref name="hyperlink"/>
1043
+ <ref name="index"/>
1044
+ <ref name="index-xref"/>
1045
+ </choice>
1046
+ </zeroOrMore>
1047
+ </element>
1048
+ </define>
1049
+ <define name="tt">
1050
+ <element name="tt">
1051
+ <zeroOrMore>
1052
+ <choice>
1053
+ <ref name="PureTextElement"/>
1054
+ <ref name="eref"/>
1055
+ <ref name="xref"/>
1056
+ <ref name="hyperlink"/>
1057
+ <ref name="index"/>
1058
+ <ref name="index-xref"/>
1059
+ </choice>
1060
+ </zeroOrMore>
1061
+ </element>
1062
+ </define>
1063
+ <define name="keyword">
1064
+ <element name="keyword">
1065
+ <zeroOrMore>
1066
+ <choice>
1067
+ <ref name="PureTextElement"/>
1068
+ <ref name="index"/>
1069
+ <ref name="index-xref"/>
1070
+ </choice>
1071
+ </zeroOrMore>
1072
+ </element>
1073
+ </define>
1074
+ <define name="sub">
1075
+ <element name="sub">
1076
+ <zeroOrMore>
1077
+ <ref name="PureTextElement"/>
1078
+ </zeroOrMore>
1079
+ </element>
1080
+ </define>
1081
+ <define name="sup">
1082
+ <element name="sup">
1083
+ <zeroOrMore>
1084
+ <ref name="PureTextElement"/>
1085
+ </zeroOrMore>
1086
+ </element>
1087
+ </define>
1088
+ <define name="strike">
1089
+ <element name="strike">
1090
+ <zeroOrMore>
1091
+ <choice>
1092
+ <ref name="PureTextElement"/>
1093
+ <ref name="index"/>
1094
+ <ref name="index-xref"/>
1095
+ </choice>
1096
+ </zeroOrMore>
1097
+ </element>
1098
+ </define>
1099
+ <define name="underline">
1100
+ <element name="underline">
1101
+ <optional>
1102
+ <attribute name="style"/>
1103
+ </optional>
1104
+ <zeroOrMore>
1105
+ <ref name="PureTextElement"/>
1106
+ </zeroOrMore>
1107
+ </element>
1108
+ </define>
1109
+ <define name="smallcap">
1110
+ <element name="smallcap">
1111
+ <zeroOrMore>
1112
+ <ref name="PureTextElement"/>
1113
+ </zeroOrMore>
1114
+ </element>
1115
+ </define>
1116
+ <define name="ruby">
1117
+ <element name="ruby">
1118
+ <choice>
1119
+ <ref name="ruby_pronunciation"/>
1120
+ <ref name="ruby_annotation"/>
1121
+ </choice>
1122
+ <choice>
1123
+ <text/>
1124
+ <ref name="ruby"/>
1125
+ </choice>
1126
+ </element>
1127
+ </define>
1128
+ <define name="ruby_pronunciation">
1129
+ <element name="pronunciation">
1130
+ <attribute name="value"/>
1131
+ <optional>
1132
+ <attribute name="script"/>
1133
+ </optional>
1134
+ <optional>
1135
+ <attribute name="lang"/>
1136
+ </optional>
1137
+ </element>
1138
+ </define>
1139
+ <define name="ruby_annotation">
1140
+ <element name="annotation">
1141
+ <attribute name="value"/>
1142
+ <optional>
1143
+ <attribute name="script"/>
1144
+ </optional>
1145
+ <optional>
1146
+ <attribute name="lang"/>
1147
+ </optional>
1148
+ </element>
1149
+ </define>
1150
+ <define name="br">
1151
+ <element name="br">
1152
+ <empty/>
1153
+ </element>
1154
+ </define>
1155
+ <define name="hr">
1156
+ <element name="hr">
1157
+ <empty/>
1158
+ </element>
1159
+ </define>
1160
+ <define name="pagebreak">
1161
+ <element name="pagebreak">
1162
+ <empty/>
1163
+ </element>
1164
+ </define>
1165
+ <define name="index">
1166
+ <element name="index">
1167
+ <optional>
1168
+ <attribute name="to">
1169
+ <data type="IDREF"/>
1170
+ </attribute>
1171
+ </optional>
1172
+ <element name="primary">
1173
+ <oneOrMore>
1174
+ <ref name="PureTextElement"/>
1175
+ </oneOrMore>
1176
+ </element>
1177
+ <optional>
1178
+ <element name="secondary">
1179
+ <oneOrMore>
1180
+ <ref name="PureTextElement"/>
1181
+ </oneOrMore>
1182
+ </element>
1183
+ </optional>
1184
+ <optional>
1185
+ <element name="tertiary">
1186
+ <oneOrMore>
1187
+ <ref name="PureTextElement"/>
1188
+ </oneOrMore>
1189
+ </element>
1190
+ </optional>
1191
+ </element>
1192
+ </define>
1193
+ <define name="index-xref">
1194
+ <element name="index-xref">
1195
+ <attribute name="also">
1196
+ <data type="boolean"/>
1197
+ </attribute>
1198
+ <element name="primary">
1199
+ <oneOrMore>
1200
+ <ref name="PureTextElement"/>
1201
+ </oneOrMore>
1202
+ </element>
1203
+ <optional>
1204
+ <element name="secondary">
1205
+ <oneOrMore>
1206
+ <ref name="PureTextElement"/>
1207
+ </oneOrMore>
1208
+ </element>
1209
+ </optional>
1210
+ <optional>
1211
+ <element name="tertiary">
1212
+ <oneOrMore>
1213
+ <ref name="PureTextElement"/>
1214
+ </oneOrMore>
1215
+ </element>
1216
+ </optional>
1217
+ <element name="target">
1218
+ <oneOrMore>
1219
+ <ref name="PureTextElement"/>
1220
+ </oneOrMore>
1221
+ </element>
1222
+ </element>
1223
+ </define>
1224
+ <!-- bare ID element, used for referencing arbitrary spans of text -->
1225
+ <define name="bookmark">
1226
+ <element name="bookmark">
1227
+ <attribute name="id">
1228
+ <data type="ID"/>
1229
+ </attribute>
1230
+ <empty/>
1231
+ </element>
1232
+ </define>
1233
+ <define name="ReferenceFormat">
1234
+ <choice>
1235
+ <value>external</value>
1236
+ <value>inline</value>
1237
+ <value>footnote</value>
1238
+ <value>callout</value>
1239
+ </choice>
1240
+ </define>
1241
+ <define name="eref">
1242
+ <element name="eref">
1243
+ <ref name="erefType"/>
1244
+ </element>
1245
+ </define>
1246
+ <define name="erefType">
1247
+ <optional>
1248
+ <attribute name="normative">
1249
+ <data type="boolean"/>
1250
+ </attribute>
1251
+ </optional>
1252
+ <attribute name="citeas"/>
1253
+ <attribute name="type">
1254
+ <ref name="ReferenceFormat"/>
1255
+ </attribute>
1256
+ <optional>
1257
+ <attribute name="alt"/>
1258
+ </optional>
1259
+ <ref name="CitationType"/>
1260
+ <oneOrMore>
1261
+ <ref name="PureTextElement"/>
1262
+ </oneOrMore>
1263
+ </define>
1264
+ <define name="hyperlink">
1265
+ <element name="link">
1266
+ <attribute name="target">
1267
+ <data type="anyURI"/>
1268
+ </attribute>
1269
+ <attribute name="type">
1270
+ <ref name="ReferenceFormat"/>
1271
+ </attribute>
1272
+ <optional>
1273
+ <attribute name="alt"/>
1274
+ </optional>
1275
+ <oneOrMore>
1276
+ <ref name="PureTextElement"/>
1277
+ </oneOrMore>
1278
+ </element>
1279
+ </define>
1280
+ <define name="xref">
1281
+ <element name="xref">
1282
+ <attribute name="target">
1283
+ <data type="IDREF"/>
1284
+ </attribute>
1285
+ <attribute name="type">
1286
+ <ref name="ReferenceFormat"/>
1287
+ </attribute>
1288
+ <optional>
1289
+ <attribute name="alt"/>
1290
+ </optional>
1291
+ <oneOrMore>
1292
+ <ref name="PureTextElement"/>
1293
+ </oneOrMore>
1294
+ </element>
1295
+ </define>
1296
+ <define name="fn">
1297
+ <element name="fn">
1298
+ <attribute name="reference"/>
1299
+ <oneOrMore>
1300
+ <ref name="paragraph"/>
1301
+ </oneOrMore>
1302
+ </element>
1303
+ </define>
1304
+ <!--
1305
+ This is xref with fixed @type="footnote", and @target built in as paragraph+
1306
+ @reference replaces ReferenceElement/text
1307
+ so <fn reference="2"><p>This is a footnote</p></fn>
1308
+ corresponds to
1309
+ <eref type="footnote" target="fn2">2</xref> <p id="fn2">This is a footnote</p>
1310
+ -->
1311
+ <define name="callout">
1312
+ <element name="callout">
1313
+ <attribute name="target">
1314
+ <data type="IDREF"/>
1315
+ </attribute>
1316
+ <text/>
1317
+ </element>
1318
+ </define>
1319
+ <!--
1320
+ This is xref with fixed @type="callout"; the target by convention is in an annotation in the same source code snippet
1321
+ so <callout target="xyz">1</callout>
1322
+ corresponds to <xref type="callout" target="xyz">1</xref>
1323
+ -->
1324
+ <define name="image">
1325
+ <element name="image">
1326
+ <ref name="RequiredId"/>
1327
+ <ref name="ImageAttr"/>
1328
+ </element>
1329
+ </define>
1330
+ <define name="image-no-id">
1331
+ <element name="image">
1332
+ <ref name="OptionalId"/>
1333
+ <ref name="ImageAttr"/>
1334
+ </element>
1335
+ </define>
1336
+ <define name="ImageAttr">
1337
+ <attribute name="src">
1338
+ <data type="anyURI"/>
1339
+ </attribute>
1340
+ <attribute name="mimetype"/>
1341
+ <optional>
1342
+ <attribute name="filename"/>
1343
+ </optional>
1344
+ <optional>
1345
+ <attribute name="width">
1346
+ <ref name="ImageSize"/>
1347
+ </attribute>
1348
+ </optional>
1349
+ <optional>
1350
+ <attribute name="height">
1351
+ <ref name="ImageSize"/>
1352
+ </attribute>
1353
+ </optional>
1354
+ <optional>
1355
+ <attribute name="alt"/>
1356
+ </optional>
1357
+ <optional>
1358
+ <attribute name="title"/>
1359
+ </optional>
1360
+ <optional>
1361
+ <attribute name="longdesc">
1362
+ <data type="anyURI"/>
1363
+ </attribute>
1364
+ </optional>
1365
+ </define>
1366
+ <define name="ImageSize">
1367
+ <choice>
1368
+ <data type="string">
1369
+ <param name="pattern">\d+([.]\d+)?(%?)</param>
1370
+ </data>
1371
+ <value>auto</value>
1372
+ </choice>
1373
+ </define>
1374
+ <define name="video">
1375
+ <element name="video">
1376
+ <ref name="RequiredId"/>
1377
+ <ref name="VideoAttr"/>
1378
+ <ref name="VideoBody"/>
1379
+ </element>
1380
+ </define>
1381
+ <define name="video-no-id">
1382
+ <element name="video">
1383
+ <ref name="OptionalId"/>
1384
+ <ref name="VideoAttr"/>
1385
+ <ref name="VideoBody"/>
1386
+ </element>
1387
+ </define>
1388
+ <define name="VideoAttr">
1389
+ <attribute name="src">
1390
+ <data type="anyURI"/>
1391
+ </attribute>
1392
+ <attribute name="mimetype"/>
1393
+ <optional>
1394
+ <attribute name="filename"/>
1395
+ </optional>
1396
+ <optional>
1397
+ <attribute name="width">
1398
+ <choice>
1399
+ <data type="int"/>
1400
+ <value>auto</value>
1401
+ </choice>
1402
+ </attribute>
1403
+ </optional>
1404
+ <optional>
1405
+ <attribute name="height">
1406
+ <choice>
1407
+ <data type="int"/>
1408
+ <value>auto</value>
1409
+ </choice>
1410
+ </attribute>
1411
+ </optional>
1412
+ <optional>
1413
+ <attribute name="alt"/>
1414
+ </optional>
1415
+ <optional>
1416
+ <attribute name="title"/>
1417
+ </optional>
1418
+ <optional>
1419
+ <attribute name="longdesc">
1420
+ <data type="anyURI"/>
1421
+ </attribute>
1422
+ </optional>
1423
+ </define>
1424
+ <define name="VideoBody">
1425
+ <zeroOrMore>
1426
+ <ref name="altsource"/>
1427
+ </zeroOrMore>
1428
+ </define>
1429
+ <define name="audio">
1430
+ <element name="audio">
1431
+ <ref name="RequiredId"/>
1432
+ <ref name="AudioAttr"/>
1433
+ <ref name="AudioBody"/>
1434
+ </element>
1435
+ </define>
1436
+ <define name="audio-no-id">
1437
+ <element name="audio">
1438
+ <ref name="OptionalId"/>
1439
+ <ref name="AudioAttr"/>
1440
+ <ref name="AudioBody"/>
1441
+ </element>
1442
+ </define>
1443
+ <define name="AudioAttr">
1444
+ <attribute name="src">
1445
+ <data type="anyURI"/>
1446
+ </attribute>
1447
+ <attribute name="mimetype"/>
1448
+ <optional>
1449
+ <attribute name="filename"/>
1450
+ </optional>
1451
+ <optional>
1452
+ <attribute name="alt"/>
1453
+ </optional>
1454
+ <optional>
1455
+ <attribute name="title"/>
1456
+ </optional>
1457
+ <optional>
1458
+ <attribute name="longdesc">
1459
+ <data type="anyURI"/>
1460
+ </attribute>
1461
+ </optional>
1462
+ </define>
1463
+ <define name="AudioBody">
1464
+ <zeroOrMore>
1465
+ <ref name="altsource"/>
1466
+ </zeroOrMore>
1467
+ </define>
1468
+ <define name="altsource">
1469
+ <element name="altsource">
1470
+ <attribute name="src">
1471
+ <data type="anyURI"/>
1472
+ </attribute>
1473
+ <attribute name="mimetype"/>
1474
+ <optional>
1475
+ <attribute name="filename"/>
1476
+ </optional>
1477
+ </element>
1478
+ </define>
1479
+ <define name="stem">
1480
+ <element name="stem">
1481
+ <attribute name="type">
1482
+ <choice>
1483
+ <value>MathML</value>
1484
+ <value>AsciiMath</value>
1485
+ </choice>
1486
+ </attribute>
1487
+ <oneOrMore>
1488
+ <choice>
1489
+ <text/>
1490
+ <ref name="AnyElement"/>
1491
+ </choice>
1492
+ </oneOrMore>
1493
+ </element>
1494
+ </define>
1495
+ <define name="annotation">
1496
+ <element name="annotation">
1497
+ <ref name="RequiredId"/>
1498
+ <ref name="paragraph"/>
1499
+ </element>
1500
+ </define>
1501
+ <define name="ul">
1502
+ <element name="ul">
1503
+ <ref name="RequiredId"/>
1504
+ <ref name="UlAttr"/>
1505
+ <ref name="UlBody"/>
1506
+ </element>
1507
+ </define>
1508
+ <define name="ul-no-id">
1509
+ <element name="ul">
1510
+ <ref name="OptionalId"/>
1511
+ <ref name="UlAttr"/>
1512
+ <ref name="UlNoIdBody"/>
1513
+ </element>
1514
+ </define>
1515
+ <define name="UlAttr">
1516
+ <empty/>
1517
+ </define>
1518
+ <define name="UlBody">
1519
+ <oneOrMore>
1520
+ <ref name="li"/>
1521
+ </oneOrMore>
1522
+ <zeroOrMore>
1523
+ <ref name="note"/>
1524
+ </zeroOrMore>
1525
+ </define>
1526
+ <define name="UlNoIdBody">
1527
+ <oneOrMore>
1528
+ <ref name="li-no-id"/>
1529
+ </oneOrMore>
1530
+ <zeroOrMore>
1531
+ <ref name="note-no-id"/>
1532
+ </zeroOrMore>
1533
+ </define>
1534
+ <define name="li">
1535
+ <element name="li">
1536
+ <ref name="OptionalId"/>
1537
+ <ref name="LiAttr"/>
1538
+ <ref name="LiBody"/>
1539
+ </element>
1540
+ </define>
1541
+ <define name="li-no-id">
1542
+ <element name="li">
1543
+ <ref name="OptionalId"/>
1544
+ <ref name="LiAttr"/>
1545
+ <ref name="LiNoIdBody"/>
1546
+ </element>
1547
+ </define>
1548
+ <define name="LiAttr">
1549
+ <empty/>
1550
+ </define>
1551
+ <define name="LiBody">
1552
+ <oneOrMore>
1553
+ <ref name="paragraph-with-footnote"/>
1554
+ </oneOrMore>
1555
+ </define>
1556
+ <define name="LiNoIdBody">
1557
+ <oneOrMore>
1558
+ <ref name="paragraph-with-footnote-no-id"/>
1559
+ </oneOrMore>
1560
+ </define>
1561
+ <define name="ol">
1562
+ <element name="ol">
1563
+ <ref name="RequiredId"/>
1564
+ <ref name="OlAttr"/>
1565
+ <ref name="OlBody"/>
1566
+ </element>
1567
+ </define>
1568
+ <define name="ol-no-id">
1569
+ <element name="ol">
1570
+ <ref name="OptionalId"/>
1571
+ <ref name="OlAttr"/>
1572
+ <ref name="OlNoIdBody"/>
1573
+ </element>
1574
+ </define>
1575
+ <define name="OlAttr">
1576
+ <attribute name="type">
1577
+ <choice>
1578
+ <value>roman</value>
1579
+ <value>alphabet</value>
1580
+ <value>arabic</value>
1581
+ <value>roman_upper</value>
1582
+ <value>alphabet_upper</value>
1583
+ </choice>
1584
+ </attribute>
1585
+ <optional>
1586
+ <attribute name="start"/>
1587
+ </optional>
1588
+ </define>
1589
+ <define name="OlBody">
1590
+ <oneOrMore>
1591
+ <ref name="li"/>
1592
+ </oneOrMore>
1593
+ <zeroOrMore>
1594
+ <ref name="note"/>
1595
+ </zeroOrMore>
1596
+ </define>
1597
+ <define name="OlNoIdBody">
1598
+ <oneOrMore>
1599
+ <ref name="li-no-id"/>
1600
+ </oneOrMore>
1601
+ <zeroOrMore>
1602
+ <ref name="note-no-id"/>
1603
+ </zeroOrMore>
1604
+ </define>
1605
+ <define name="dl">
1606
+ <element name="dl">
1607
+ <ref name="RequiredId"/>
1608
+ <ref name="DlAttr"/>
1609
+ <ref name="DlBody"/>
1610
+ </element>
1611
+ </define>
1612
+ <define name="dl-no-id">
1613
+ <element name="dl">
1614
+ <ref name="OptionalId"/>
1615
+ <ref name="DlNoIdBody"/>
1616
+ </element>
1617
+ </define>
1618
+ <define name="DlAttr">
1619
+ <empty/>
1620
+ </define>
1621
+ <define name="DlBody">
1622
+ <oneOrMore>
1623
+ <ref name="dt"/>
1624
+ <ref name="dd"/>
1625
+ </oneOrMore>
1626
+ <zeroOrMore>
1627
+ <ref name="note"/>
1628
+ </zeroOrMore>
1629
+ </define>
1630
+ <define name="DlNoIdBody">
1631
+ <oneOrMore>
1632
+ <ref name="dt"/>
1633
+ <ref name="dd-no-id"/>
1634
+ </oneOrMore>
1635
+ <zeroOrMore>
1636
+ <ref name="note-no-id"/>
1637
+ </zeroOrMore>
1638
+ </define>
1639
+ <define name="dt">
1640
+ <element name="dt">
1641
+ <zeroOrMore>
1642
+ <ref name="TextElement"/>
1643
+ </zeroOrMore>
1644
+ </element>
1645
+ </define>
1646
+ <define name="dd">
1647
+ <element name="dd">
1648
+ <zeroOrMore>
1649
+ <ref name="paragraph-with-footnote"/>
1650
+ </zeroOrMore>
1651
+ </element>
1652
+ </define>
1653
+ <define name="dd-no-id">
1654
+ <element name="dd">
1655
+ <zeroOrMore>
1656
+ <ref name="paragraph-with-footnote-no-id"/>
1657
+ </zeroOrMore>
1658
+ </element>
1659
+ </define>
1660
+ </grammar>