relaton-etsi 1.17.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1144 @@
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
+ </choice>
99
+ </define>
100
+ <define name="paragraph">
101
+ <element name="p">
102
+ <ref name="ParagraphType"/>
103
+ </element>
104
+ </define>
105
+ <define name="Alignments">
106
+ <choice>
107
+ <value>left</value>
108
+ <value>right</value>
109
+ <value>center</value>
110
+ <value>justified</value>
111
+ </choice>
112
+ </define>
113
+ <define name="ParagraphType">
114
+ <attribute name="id">
115
+ <data type="ID"/>
116
+ </attribute>
117
+ <optional>
118
+ <attribute name="align">
119
+ <ref name="Alignments"/>
120
+ </attribute>
121
+ </optional>
122
+ <zeroOrMore>
123
+ <ref name="TextElement"/>
124
+ </zeroOrMore>
125
+ <zeroOrMore>
126
+ <ref name="note"/>
127
+ </zeroOrMore>
128
+ </define>
129
+ <define name="paragraph-with-footnote">
130
+ <element name="p">
131
+ <attribute name="id">
132
+ <data type="ID"/>
133
+ </attribute>
134
+ <optional>
135
+ <attribute name="align">
136
+ <ref name="Alignments"/>
137
+ </attribute>
138
+ </optional>
139
+ <zeroOrMore>
140
+ <choice>
141
+ <ref name="TextElement"/>
142
+ <ref name="fn"/>
143
+ </choice>
144
+ </zeroOrMore>
145
+ <zeroOrMore>
146
+ <ref name="note"/>
147
+ </zeroOrMore>
148
+ </element>
149
+ </define>
150
+ <define name="note">
151
+ <element name="note">
152
+ <attribute name="id">
153
+ <data type="ID"/>
154
+ </attribute>
155
+ <oneOrMore>
156
+ <ref name="paragraph"/>
157
+ </oneOrMore>
158
+ </element>
159
+ </define>
160
+ <define name="review">
161
+ <element name="review">
162
+ <attribute name="id">
163
+ <data type="ID"/>
164
+ </attribute>
165
+ <attribute name="reviewer"/>
166
+ <optional>
167
+ <attribute name="date">
168
+ <data type="dateTime"/>
169
+ </attribute>
170
+ </optional>
171
+ <optional>
172
+ <attribute name="from">
173
+ <data type="IDREF"/>
174
+ </attribute>
175
+ </optional>
176
+ <optional>
177
+ <attribute name="to">
178
+ <data type="IDREF"/>
179
+ </attribute>
180
+ </optional>
181
+ <oneOrMore>
182
+ <ref name="paragraph"/>
183
+ </oneOrMore>
184
+ </element>
185
+ </define>
186
+ <define name="formula">
187
+ <element name="formula">
188
+ <attribute name="id">
189
+ <data type="ID"/>
190
+ </attribute>
191
+ <optional>
192
+ <attribute name="unnumbered">
193
+ <data type="boolean"/>
194
+ </attribute>
195
+ </optional>
196
+ <optional>
197
+ <attribute name="subsequence"/>
198
+ </optional>
199
+ <optional>
200
+ <attribute name="inequality">
201
+ <data type="boolean"/>
202
+ </attribute>
203
+ </optional>
204
+ <ref name="stem"/>
205
+ <optional>
206
+ <ref name="dl"/>
207
+ </optional>
208
+ <zeroOrMore>
209
+ <ref name="note"/>
210
+ </zeroOrMore>
211
+ </element>
212
+ </define>
213
+ <define name="quote">
214
+ <element name="quote">
215
+ <attribute name="id">
216
+ <data type="ID"/>
217
+ </attribute>
218
+ <optional>
219
+ <attribute name="alignment">
220
+ <ref name="Alignments"/>
221
+ </attribute>
222
+ </optional>
223
+ <optional>
224
+ <ref name="quote-source"/>
225
+ </optional>
226
+ <optional>
227
+ <ref name="quote-author"/>
228
+ </optional>
229
+ <oneOrMore>
230
+ <ref name="paragraph-with-footnote"/>
231
+ </oneOrMore>
232
+ <zeroOrMore>
233
+ <ref name="note"/>
234
+ </zeroOrMore>
235
+ </element>
236
+ </define>
237
+ <define name="quote-source">
238
+ <element name="source">
239
+ <ref name="erefType"/>
240
+ </element>
241
+ </define>
242
+ <define name="quote-author">
243
+ <element name="author">
244
+ <text/>
245
+ </element>
246
+ </define>
247
+ <define name="sourcecode">
248
+ <element name="sourcecode">
249
+ <attribute name="id">
250
+ <data type="ID"/>
251
+ </attribute>
252
+ <optional>
253
+ <attribute name="unnumbered">
254
+ <data type="boolean"/>
255
+ </attribute>
256
+ </optional>
257
+ <optional>
258
+ <attribute name="subsequence"/>
259
+ </optional>
260
+ <optional>
261
+ <attribute name="lang"/>
262
+ </optional>
263
+ <optional>
264
+ <ref name="tname"/>
265
+ </optional>
266
+ <oneOrMore>
267
+ <choice>
268
+ <text/>
269
+ <ref name="callout"/>
270
+ </choice>
271
+ </oneOrMore>
272
+ <zeroOrMore>
273
+ <ref name="annotation"/>
274
+ </zeroOrMore>
275
+ <zeroOrMore>
276
+ <ref name="note"/>
277
+ </zeroOrMore>
278
+ </element>
279
+ </define>
280
+ <define name="pre">
281
+ <element name="pre">
282
+ <attribute name="id">
283
+ <data type="ID"/>
284
+ </attribute>
285
+ <optional>
286
+ <attribute name="alt"/>
287
+ </optional>
288
+ <optional>
289
+ <ref name="tname"/>
290
+ </optional>
291
+ <text/>
292
+ <zeroOrMore>
293
+ <ref name="note"/>
294
+ </zeroOrMore>
295
+ </element>
296
+ </define>
297
+ <define name="table">
298
+ <element name="table">
299
+ <attribute name="id">
300
+ <data type="ID"/>
301
+ </attribute>
302
+ <optional>
303
+ <attribute name="unnumbered">
304
+ <data type="boolean"/>
305
+ </attribute>
306
+ </optional>
307
+ <optional>
308
+ <attribute name="subsequence"/>
309
+ </optional>
310
+ <optional>
311
+ <attribute name="alt"/>
312
+ </optional>
313
+ <optional>
314
+ <attribute name="summary"/>
315
+ </optional>
316
+ <optional>
317
+ <attribute name="uri">
318
+ <data type="anyURI"/>
319
+ </attribute>
320
+ </optional>
321
+ <optional>
322
+ <ref name="tname"/>
323
+ </optional>
324
+ <optional>
325
+ <ref name="thead"/>
326
+ </optional>
327
+ <ref name="tbody"/>
328
+ <optional>
329
+ <ref name="tfoot"/>
330
+ </optional>
331
+ <zeroOrMore>
332
+ <ref name="table-note"/>
333
+ </zeroOrMore>
334
+ <optional>
335
+ <ref name="dl"/>
336
+ </optional>
337
+ </element>
338
+ </define>
339
+ <define name="tname">
340
+ <element name="name">
341
+ <oneOrMore>
342
+ <choice>
343
+ <ref name="PureTextElement"/>
344
+ <ref name="eref"/>
345
+ <ref name="stem"/>
346
+ <ref name="keyword"/>
347
+ <ref name="xref"/>
348
+ <ref name="hyperlink"/>
349
+ <ref name="index"/>
350
+ <ref name="index-xref"/>
351
+ </choice>
352
+ </oneOrMore>
353
+ </element>
354
+ </define>
355
+ <define name="thead">
356
+ <element name="thead">
357
+ <ref name="tr"/>
358
+ </element>
359
+ </define>
360
+ <define name="tfoot">
361
+ <element name="tfoot">
362
+ <ref name="tr"/>
363
+ </element>
364
+ </define>
365
+ <define name="tbody">
366
+ <element name="tbody">
367
+ <oneOrMore>
368
+ <ref name="tr"/>
369
+ </oneOrMore>
370
+ </element>
371
+ </define>
372
+ <define name="table-note">
373
+ <element name="note">
374
+ <ref name="paragraph"/>
375
+ </element>
376
+ </define>
377
+ <define name="tr">
378
+ <element name="tr">
379
+ <oneOrMore>
380
+ <choice>
381
+ <ref name="td"/>
382
+ <ref name="th"/>
383
+ </choice>
384
+ </oneOrMore>
385
+ </element>
386
+ </define>
387
+ <define name="td">
388
+ <element name="td">
389
+ <optional>
390
+ <attribute name="colspan"/>
391
+ </optional>
392
+ <optional>
393
+ <attribute name="rowspan"/>
394
+ </optional>
395
+ <optional>
396
+ <attribute name="align">
397
+ <choice>
398
+ <value>left</value>
399
+ <value>right</value>
400
+ <value>center</value>
401
+ </choice>
402
+ </attribute>
403
+ </optional>
404
+ <optional>
405
+ <attribute name="valign">
406
+ <choice>
407
+ <value>top</value>
408
+ <value>middle</value>
409
+ <value>bottom</value>
410
+ <value>baseline</value>
411
+ </choice>
412
+ </attribute>
413
+ </optional>
414
+ <choice>
415
+ <zeroOrMore>
416
+ <ref name="TextElement"/>
417
+ </zeroOrMore>
418
+ <oneOrMore>
419
+ <ref name="paragraph-with-footnote"/>
420
+ </oneOrMore>
421
+ </choice>
422
+ </element>
423
+ </define>
424
+ <define name="th">
425
+ <element name="th">
426
+ <optional>
427
+ <attribute name="colspan"/>
428
+ </optional>
429
+ <optional>
430
+ <attribute name="rowspan"/>
431
+ </optional>
432
+ <optional>
433
+ <attribute name="align">
434
+ <choice>
435
+ <value>left</value>
436
+ <value>right</value>
437
+ <value>center</value>
438
+ </choice>
439
+ </attribute>
440
+ </optional>
441
+ <optional>
442
+ <attribute name="valign">
443
+ <choice>
444
+ <value>top</value>
445
+ <value>middle</value>
446
+ <value>bottom</value>
447
+ <value>baseline</value>
448
+ </choice>
449
+ </attribute>
450
+ </optional>
451
+ <choice>
452
+ <zeroOrMore>
453
+ <ref name="TextElement"/>
454
+ </zeroOrMore>
455
+ <oneOrMore>
456
+ <ref name="paragraph-with-footnote"/>
457
+ </oneOrMore>
458
+ </choice>
459
+ </element>
460
+ </define>
461
+ <define name="example">
462
+ <element name="example">
463
+ <attribute name="id">
464
+ <data type="ID"/>
465
+ </attribute>
466
+ <optional>
467
+ <attribute name="unnumbered">
468
+ <data type="boolean"/>
469
+ </attribute>
470
+ </optional>
471
+ <optional>
472
+ <attribute name="subsequence"/>
473
+ </optional>
474
+ <optional>
475
+ <ref name="tname"/>
476
+ </optional>
477
+ <oneOrMore>
478
+ <choice>
479
+ <ref name="formula"/>
480
+ <ref name="ul"/>
481
+ <ref name="ol"/>
482
+ <ref name="dl"/>
483
+ <ref name="quote"/>
484
+ <ref name="sourcecode"/>
485
+ <ref name="paragraph-with-footnote"/>
486
+ </choice>
487
+ </oneOrMore>
488
+ <zeroOrMore>
489
+ <ref name="note"/>
490
+ </zeroOrMore>
491
+ </element>
492
+ </define>
493
+ <define name="admonition">
494
+ <element name="admonition">
495
+ <attribute name="type">
496
+ <ref name="AdmonitionType"/>
497
+ </attribute>
498
+ <optional>
499
+ <attribute name="class"/>
500
+ </optional>
501
+ <attribute name="id">
502
+ <data type="ID"/>
503
+ </attribute>
504
+ <optional>
505
+ <attribute name="uri">
506
+ <data type="anyURI"/>
507
+ </attribute>
508
+ </optional>
509
+ <optional>
510
+ <ref name="tname"/>
511
+ </optional>
512
+ <zeroOrMore>
513
+ <ref name="paragraph-with-footnote"/>
514
+ </zeroOrMore>
515
+ <zeroOrMore>
516
+ <ref name="note"/>
517
+ </zeroOrMore>
518
+ </element>
519
+ </define>
520
+ <define name="AdmonitionType">
521
+ <choice>
522
+ <value>warning</value>
523
+ <value>note</value>
524
+ <value>tip</value>
525
+ <value>important</value>
526
+ <value>caution</value>
527
+ </choice>
528
+ </define>
529
+ <define name="figure">
530
+ <element name="figure">
531
+ <attribute name="id">
532
+ <data type="ID"/>
533
+ </attribute>
534
+ <optional>
535
+ <attribute name="unnumbered">
536
+ <data type="boolean"/>
537
+ </attribute>
538
+ </optional>
539
+ <optional>
540
+ <attribute name="subsequence"/>
541
+ </optional>
542
+ <optional>
543
+ <attribute name="class"/>
544
+ </optional>
545
+ <optional>
546
+ <ref name="source"/>
547
+ </optional>
548
+ <optional>
549
+ <ref name="tname"/>
550
+ </optional>
551
+ <choice>
552
+ <ref name="image"/>
553
+ <ref name="video"/>
554
+ <ref name="audio"/>
555
+ <ref name="pre"/>
556
+ <oneOrMore>
557
+ <ref name="paragraph-with-footnote"/>
558
+ </oneOrMore>
559
+ <zeroOrMore>
560
+ <ref name="figure"/>
561
+ </zeroOrMore>
562
+ </choice>
563
+ <zeroOrMore>
564
+ <ref name="fn"/>
565
+ </zeroOrMore>
566
+ <optional>
567
+ <ref name="dl"/>
568
+ </optional>
569
+ <zeroOrMore>
570
+ <ref name="note"/>
571
+ </zeroOrMore>
572
+ </element>
573
+ </define>
574
+ <define name="TextElement">
575
+ <choice>
576
+ <text/>
577
+ <ref name="em"/>
578
+ <ref name="eref"/>
579
+ <ref name="strong"/>
580
+ <ref name="stem"/>
581
+ <ref name="sub"/>
582
+ <ref name="sup"/>
583
+ <ref name="tt"/>
584
+ <ref name="underline"/>
585
+ <ref name="keyword"/>
586
+ <ref name="ruby"/>
587
+ <ref name="strike"/>
588
+ <ref name="smallcap"/>
589
+ <ref name="xref"/>
590
+ <ref name="br"/>
591
+ <ref name="hyperlink"/>
592
+ <ref name="hr"/>
593
+ <ref name="pagebreak"/>
594
+ <ref name="bookmark"/>
595
+ <ref name="image"/>
596
+ <ref name="index"/>
597
+ <ref name="index-xref"/>
598
+ </choice>
599
+ </define>
600
+ <define name="PureTextElement">
601
+ <choice>
602
+ <text/>
603
+ <ref name="em"/>
604
+ <ref name="strong"/>
605
+ <ref name="sub"/>
606
+ <ref name="sup"/>
607
+ <ref name="tt"/>
608
+ <ref name="underline"/>
609
+ <ref name="strike"/>
610
+ <ref name="smallcap"/>
611
+ <ref name="br"/>
612
+ </choice>
613
+ </define>
614
+ <define name="source">
615
+ <element name="source">
616
+ <ref name="TypedUri"/>
617
+ </element>
618
+ </define>
619
+ <define name="em">
620
+ <element name="em">
621
+ <zeroOrMore>
622
+ <choice>
623
+ <ref name="PureTextElement"/>
624
+ <ref name="stem"/>
625
+ <ref name="eref"/>
626
+ <ref name="xref"/>
627
+ <ref name="hyperlink"/>
628
+ <ref name="index"/>
629
+ <ref name="index-xref"/>
630
+ </choice>
631
+ </zeroOrMore>
632
+ </element>
633
+ </define>
634
+ <define name="strong">
635
+ <element name="strong">
636
+ <zeroOrMore>
637
+ <choice>
638
+ <ref name="PureTextElement"/>
639
+ <ref name="stem"/>
640
+ <ref name="eref"/>
641
+ <ref name="xref"/>
642
+ <ref name="hyperlink"/>
643
+ <ref name="index"/>
644
+ <ref name="index-xref"/>
645
+ </choice>
646
+ </zeroOrMore>
647
+ </element>
648
+ </define>
649
+ <define name="tt">
650
+ <element name="tt">
651
+ <zeroOrMore>
652
+ <choice>
653
+ <ref name="PureTextElement"/>
654
+ <ref name="eref"/>
655
+ <ref name="xref"/>
656
+ <ref name="hyperlink"/>
657
+ <ref name="index"/>
658
+ <ref name="index-xref"/>
659
+ </choice>
660
+ </zeroOrMore>
661
+ </element>
662
+ </define>
663
+ <define name="keyword">
664
+ <element name="keyword">
665
+ <zeroOrMore>
666
+ <choice>
667
+ <ref name="PureTextElement"/>
668
+ <ref name="index"/>
669
+ <ref name="index-xref"/>
670
+ </choice>
671
+ </zeroOrMore>
672
+ </element>
673
+ </define>
674
+ <define name="sub">
675
+ <element name="sub">
676
+ <zeroOrMore>
677
+ <ref name="PureTextElement"/>
678
+ </zeroOrMore>
679
+ </element>
680
+ </define>
681
+ <define name="sup">
682
+ <element name="sup">
683
+ <zeroOrMore>
684
+ <ref name="PureTextElement"/>
685
+ </zeroOrMore>
686
+ </element>
687
+ </define>
688
+ <define name="strike">
689
+ <element name="strike">
690
+ <zeroOrMore>
691
+ <choice>
692
+ <ref name="PureTextElement"/>
693
+ <ref name="index"/>
694
+ <ref name="index-xref"/>
695
+ </choice>
696
+ </zeroOrMore>
697
+ </element>
698
+ </define>
699
+ <define name="underline">
700
+ <element name="underline">
701
+ <optional>
702
+ <attribute name="style"/>
703
+ </optional>
704
+ <zeroOrMore>
705
+ <ref name="PureTextElement"/>
706
+ </zeroOrMore>
707
+ </element>
708
+ </define>
709
+ <define name="smallcap">
710
+ <element name="smallcap">
711
+ <zeroOrMore>
712
+ <ref name="PureTextElement"/>
713
+ </zeroOrMore>
714
+ </element>
715
+ </define>
716
+ <define name="ruby">
717
+ <element name="ruby">
718
+ <zeroOrMore>
719
+ <choice>
720
+ <ref name="PureTextElement"/>
721
+ <ref name="rp"/>
722
+ <ref name="rt"/>
723
+ </choice>
724
+ </zeroOrMore>
725
+ </element>
726
+ </define>
727
+ <define name="rp">
728
+ <element name="rp">
729
+ <zeroOrMore>
730
+ <ref name="PureTextElement"/>
731
+ </zeroOrMore>
732
+ </element>
733
+ </define>
734
+ <define name="rt">
735
+ <element name="rt">
736
+ <zeroOrMore>
737
+ <ref name="PureTextElement"/>
738
+ </zeroOrMore>
739
+ </element>
740
+ </define>
741
+ <define name="br">
742
+ <element name="br">
743
+ <empty/>
744
+ </element>
745
+ </define>
746
+ <define name="hr">
747
+ <element name="hr">
748
+ <empty/>
749
+ </element>
750
+ </define>
751
+ <define name="pagebreak">
752
+ <element name="pagebreak">
753
+ <empty/>
754
+ </element>
755
+ </define>
756
+ <define name="index">
757
+ <element name="index">
758
+ <optional>
759
+ <attribute name="to">
760
+ <data type="IDREF"/>
761
+ </attribute>
762
+ </optional>
763
+ <element name="primary">
764
+ <oneOrMore>
765
+ <ref name="PureTextElement"/>
766
+ </oneOrMore>
767
+ </element>
768
+ <optional>
769
+ <element name="secondary">
770
+ <oneOrMore>
771
+ <ref name="PureTextElement"/>
772
+ </oneOrMore>
773
+ </element>
774
+ </optional>
775
+ <optional>
776
+ <element name="tertiary">
777
+ <oneOrMore>
778
+ <ref name="PureTextElement"/>
779
+ </oneOrMore>
780
+ </element>
781
+ </optional>
782
+ </element>
783
+ </define>
784
+ <define name="index-xref">
785
+ <element name="index-xref">
786
+ <attribute name="also">
787
+ <data type="boolean"/>
788
+ </attribute>
789
+ <element name="primary">
790
+ <oneOrMore>
791
+ <ref name="PureTextElement"/>
792
+ </oneOrMore>
793
+ </element>
794
+ <optional>
795
+ <element name="secondary">
796
+ <oneOrMore>
797
+ <ref name="PureTextElement"/>
798
+ </oneOrMore>
799
+ </element>
800
+ </optional>
801
+ <optional>
802
+ <element name="tertiary">
803
+ <oneOrMore>
804
+ <ref name="PureTextElement"/>
805
+ </oneOrMore>
806
+ </element>
807
+ </optional>
808
+ <element name="target">
809
+ <oneOrMore>
810
+ <ref name="PureTextElement"/>
811
+ </oneOrMore>
812
+ </element>
813
+ </element>
814
+ </define>
815
+ <!-- bare ID element, used for referencing arbitrary spans of text -->
816
+ <define name="bookmark">
817
+ <element name="bookmark">
818
+ <attribute name="id">
819
+ <data type="ID"/>
820
+ </attribute>
821
+ <empty/>
822
+ </element>
823
+ </define>
824
+ <define name="ReferenceFormat">
825
+ <choice>
826
+ <value>external</value>
827
+ <value>inline</value>
828
+ <value>footnote</value>
829
+ <value>callout</value>
830
+ </choice>
831
+ </define>
832
+ <define name="eref">
833
+ <element name="eref">
834
+ <ref name="erefType"/>
835
+ </element>
836
+ </define>
837
+ <define name="erefType">
838
+ <optional>
839
+ <attribute name="normative">
840
+ <data type="boolean"/>
841
+ </attribute>
842
+ </optional>
843
+ <attribute name="citeas"/>
844
+ <attribute name="type">
845
+ <ref name="ReferenceFormat"/>
846
+ </attribute>
847
+ <optional>
848
+ <attribute name="alt"/>
849
+ </optional>
850
+ <ref name="CitationType"/>
851
+ <oneOrMore>
852
+ <ref name="PureTextElement"/>
853
+ </oneOrMore>
854
+ </define>
855
+ <define name="hyperlink">
856
+ <element name="link">
857
+ <attribute name="target">
858
+ <data type="anyURI"/>
859
+ </attribute>
860
+ <attribute name="type">
861
+ <ref name="ReferenceFormat"/>
862
+ </attribute>
863
+ <optional>
864
+ <attribute name="alt"/>
865
+ </optional>
866
+ <oneOrMore>
867
+ <ref name="PureTextElement"/>
868
+ </oneOrMore>
869
+ </element>
870
+ </define>
871
+ <define name="xref">
872
+ <element name="xref">
873
+ <attribute name="target">
874
+ <data type="IDREF"/>
875
+ </attribute>
876
+ <attribute name="type">
877
+ <ref name="ReferenceFormat"/>
878
+ </attribute>
879
+ <optional>
880
+ <attribute name="alt"/>
881
+ </optional>
882
+ <oneOrMore>
883
+ <ref name="PureTextElement"/>
884
+ </oneOrMore>
885
+ </element>
886
+ </define>
887
+ <define name="fn">
888
+ <element name="fn">
889
+ <attribute name="reference"/>
890
+ <oneOrMore>
891
+ <ref name="paragraph"/>
892
+ </oneOrMore>
893
+ </element>
894
+ </define>
895
+ <!--
896
+ This is xref with fixed @type="footnote", and @target built in as paragraph+
897
+ @reference replaces ReferenceElement/text
898
+ so <fn reference="2"><p>This is a footnote</p></fn>
899
+ corresponds to
900
+ <eref type="footnote" target="fn2">2</xref> <p id="fn2">This is a footnote</p>
901
+ -->
902
+ <define name="callout">
903
+ <element name="callout">
904
+ <attribute name="target">
905
+ <data type="IDREF"/>
906
+ </attribute>
907
+ <text/>
908
+ </element>
909
+ </define>
910
+ <!--
911
+ This is xref with fixed @type="callout"; the target by convention is in an annotation in the same source code snippet
912
+ so <callout target="xyz">1</callout>
913
+ corresponds to <xref type="callout" target="xyz">1</xref>
914
+ -->
915
+ <define name="image">
916
+ <element name="image">
917
+ <ref name="Image"/>
918
+ </element>
919
+ </define>
920
+ <define name="Image">
921
+ <attribute name="id">
922
+ <data type="ID"/>
923
+ </attribute>
924
+ <attribute name="src">
925
+ <data type="anyURI"/>
926
+ </attribute>
927
+ <attribute name="mimetype"/>
928
+ <optional>
929
+ <attribute name="filename"/>
930
+ </optional>
931
+ <optional>
932
+ <attribute name="width">
933
+ <choice>
934
+ <data type="int"/>
935
+ <value>auto</value>
936
+ </choice>
937
+ </attribute>
938
+ </optional>
939
+ <optional>
940
+ <attribute name="height">
941
+ <choice>
942
+ <data type="int"/>
943
+ <value>auto</value>
944
+ </choice>
945
+ </attribute>
946
+ </optional>
947
+ <optional>
948
+ <attribute name="alt"/>
949
+ </optional>
950
+ <optional>
951
+ <attribute name="title"/>
952
+ </optional>
953
+ <optional>
954
+ <attribute name="longdesc">
955
+ <data type="anyURI"/>
956
+ </attribute>
957
+ </optional>
958
+ </define>
959
+ <define name="video">
960
+ <element name="video">
961
+ <attribute name="id">
962
+ <data type="ID"/>
963
+ </attribute>
964
+ <attribute name="src">
965
+ <data type="anyURI"/>
966
+ </attribute>
967
+ <attribute name="mimetype"/>
968
+ <optional>
969
+ <attribute name="filename"/>
970
+ </optional>
971
+ <optional>
972
+ <attribute name="width">
973
+ <choice>
974
+ <data type="int"/>
975
+ <value>auto</value>
976
+ </choice>
977
+ </attribute>
978
+ </optional>
979
+ <optional>
980
+ <attribute name="height">
981
+ <choice>
982
+ <data type="int"/>
983
+ <value>auto</value>
984
+ </choice>
985
+ </attribute>
986
+ </optional>
987
+ <optional>
988
+ <attribute name="alt"/>
989
+ </optional>
990
+ <optional>
991
+ <attribute name="title"/>
992
+ </optional>
993
+ <optional>
994
+ <attribute name="longdesc">
995
+ <data type="anyURI"/>
996
+ </attribute>
997
+ </optional>
998
+ <zeroOrMore>
999
+ <ref name="altsource"/>
1000
+ </zeroOrMore>
1001
+ </element>
1002
+ </define>
1003
+ <define name="audio">
1004
+ <element name="audio">
1005
+ <attribute name="id">
1006
+ <data type="ID"/>
1007
+ </attribute>
1008
+ <attribute name="src">
1009
+ <data type="anyURI"/>
1010
+ </attribute>
1011
+ <attribute name="mimetype"/>
1012
+ <optional>
1013
+ <attribute name="filename"/>
1014
+ </optional>
1015
+ <optional>
1016
+ <attribute name="alt"/>
1017
+ </optional>
1018
+ <optional>
1019
+ <attribute name="title"/>
1020
+ </optional>
1021
+ <optional>
1022
+ <attribute name="longdesc">
1023
+ <data type="anyURI"/>
1024
+ </attribute>
1025
+ </optional>
1026
+ <zeroOrMore>
1027
+ <ref name="altsource"/>
1028
+ </zeroOrMore>
1029
+ </element>
1030
+ </define>
1031
+ <define name="altsource">
1032
+ <element name="altsource">
1033
+ <attribute name="src">
1034
+ <data type="anyURI"/>
1035
+ </attribute>
1036
+ <attribute name="mimetype"/>
1037
+ <optional>
1038
+ <attribute name="filename"/>
1039
+ </optional>
1040
+ </element>
1041
+ </define>
1042
+ <define name="stem">
1043
+ <element name="stem">
1044
+ <attribute name="type">
1045
+ <choice>
1046
+ <value>MathML</value>
1047
+ <value>AsciiMath</value>
1048
+ </choice>
1049
+ </attribute>
1050
+ <oneOrMore>
1051
+ <choice>
1052
+ <text/>
1053
+ <ref name="AnyElement"/>
1054
+ </choice>
1055
+ </oneOrMore>
1056
+ </element>
1057
+ </define>
1058
+ <define name="annotation">
1059
+ <element name="annotation">
1060
+ <attribute name="id">
1061
+ <data type="ID"/>
1062
+ </attribute>
1063
+ <ref name="paragraph"/>
1064
+ </element>
1065
+ </define>
1066
+ <define name="ul">
1067
+ <element name="ul">
1068
+ <attribute name="id">
1069
+ <data type="ID"/>
1070
+ </attribute>
1071
+ <oneOrMore>
1072
+ <ref name="li"/>
1073
+ </oneOrMore>
1074
+ <zeroOrMore>
1075
+ <ref name="note"/>
1076
+ </zeroOrMore>
1077
+ </element>
1078
+ </define>
1079
+ <define name="li">
1080
+ <element name="li">
1081
+ <optional>
1082
+ <attribute name="id">
1083
+ <data type="ID"/>
1084
+ </attribute>
1085
+ </optional>
1086
+ <oneOrMore>
1087
+ <ref name="paragraph-with-footnote"/>
1088
+ </oneOrMore>
1089
+ </element>
1090
+ </define>
1091
+ <define name="ol">
1092
+ <element name="ol">
1093
+ <attribute name="id">
1094
+ <data type="ID"/>
1095
+ </attribute>
1096
+ <attribute name="type">
1097
+ <choice>
1098
+ <value>roman</value>
1099
+ <value>alphabet</value>
1100
+ <value>arabic</value>
1101
+ <value>roman_upper</value>
1102
+ <value>alphabet_upper</value>
1103
+ </choice>
1104
+ </attribute>
1105
+ <optional>
1106
+ <attribute name="start"/>
1107
+ </optional>
1108
+ <oneOrMore>
1109
+ <ref name="li"/>
1110
+ </oneOrMore>
1111
+ <zeroOrMore>
1112
+ <ref name="note"/>
1113
+ </zeroOrMore>
1114
+ </element>
1115
+ </define>
1116
+ <define name="dl">
1117
+ <element name="dl">
1118
+ <attribute name="id">
1119
+ <data type="ID"/>
1120
+ </attribute>
1121
+ <oneOrMore>
1122
+ <ref name="dt"/>
1123
+ <ref name="dd"/>
1124
+ </oneOrMore>
1125
+ <zeroOrMore>
1126
+ <ref name="note"/>
1127
+ </zeroOrMore>
1128
+ </element>
1129
+ </define>
1130
+ <define name="dt">
1131
+ <element name="dt">
1132
+ <zeroOrMore>
1133
+ <ref name="TextElement"/>
1134
+ </zeroOrMore>
1135
+ </element>
1136
+ </define>
1137
+ <define name="dd">
1138
+ <element name="dd">
1139
+ <zeroOrMore>
1140
+ <ref name="paragraph-with-footnote"/>
1141
+ </zeroOrMore>
1142
+ </element>
1143
+ </define>
1144
+ </grammar>