relaton-omg 1.13.0 → 1.14.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1126 @@
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
+ </choice>
350
+ </oneOrMore>
351
+ </element>
352
+ </define>
353
+ <define name="thead">
354
+ <element name="thead">
355
+ <ref name="tr"/>
356
+ </element>
357
+ </define>
358
+ <define name="tfoot">
359
+ <element name="tfoot">
360
+ <ref name="tr"/>
361
+ </element>
362
+ </define>
363
+ <define name="tbody">
364
+ <element name="tbody">
365
+ <oneOrMore>
366
+ <ref name="tr"/>
367
+ </oneOrMore>
368
+ </element>
369
+ </define>
370
+ <define name="table-note">
371
+ <element name="note">
372
+ <ref name="paragraph"/>
373
+ </element>
374
+ </define>
375
+ <define name="tr">
376
+ <element name="tr">
377
+ <oneOrMore>
378
+ <choice>
379
+ <ref name="td"/>
380
+ <ref name="th"/>
381
+ </choice>
382
+ </oneOrMore>
383
+ </element>
384
+ </define>
385
+ <define name="td">
386
+ <element name="td">
387
+ <optional>
388
+ <attribute name="colspan"/>
389
+ </optional>
390
+ <optional>
391
+ <attribute name="rowspan"/>
392
+ </optional>
393
+ <optional>
394
+ <attribute name="align">
395
+ <choice>
396
+ <value>left</value>
397
+ <value>right</value>
398
+ <value>center</value>
399
+ </choice>
400
+ </attribute>
401
+ </optional>
402
+ <optional>
403
+ <attribute name="valign">
404
+ <choice>
405
+ <value>top</value>
406
+ <value>middle</value>
407
+ <value>bottom</value>
408
+ <value>baseline</value>
409
+ </choice>
410
+ </attribute>
411
+ </optional>
412
+ <choice>
413
+ <zeroOrMore>
414
+ <ref name="TextElement"/>
415
+ </zeroOrMore>
416
+ <oneOrMore>
417
+ <ref name="paragraph-with-footnote"/>
418
+ </oneOrMore>
419
+ </choice>
420
+ </element>
421
+ </define>
422
+ <define name="th">
423
+ <element name="th">
424
+ <optional>
425
+ <attribute name="colspan"/>
426
+ </optional>
427
+ <optional>
428
+ <attribute name="rowspan"/>
429
+ </optional>
430
+ <optional>
431
+ <attribute name="align">
432
+ <choice>
433
+ <value>left</value>
434
+ <value>right</value>
435
+ <value>center</value>
436
+ </choice>
437
+ </attribute>
438
+ </optional>
439
+ <optional>
440
+ <attribute name="valign">
441
+ <choice>
442
+ <value>top</value>
443
+ <value>middle</value>
444
+ <value>bottom</value>
445
+ <value>baseline</value>
446
+ </choice>
447
+ </attribute>
448
+ </optional>
449
+ <choice>
450
+ <zeroOrMore>
451
+ <ref name="TextElement"/>
452
+ </zeroOrMore>
453
+ <oneOrMore>
454
+ <ref name="paragraph-with-footnote"/>
455
+ </oneOrMore>
456
+ </choice>
457
+ </element>
458
+ </define>
459
+ <define name="example">
460
+ <element name="example">
461
+ <attribute name="id">
462
+ <data type="ID"/>
463
+ </attribute>
464
+ <optional>
465
+ <attribute name="unnumbered">
466
+ <data type="boolean"/>
467
+ </attribute>
468
+ </optional>
469
+ <optional>
470
+ <attribute name="subsequence"/>
471
+ </optional>
472
+ <optional>
473
+ <ref name="tname"/>
474
+ </optional>
475
+ <oneOrMore>
476
+ <choice>
477
+ <ref name="formula"/>
478
+ <ref name="ul"/>
479
+ <ref name="ol"/>
480
+ <ref name="dl"/>
481
+ <ref name="quote"/>
482
+ <ref name="sourcecode"/>
483
+ <ref name="paragraph-with-footnote"/>
484
+ </choice>
485
+ </oneOrMore>
486
+ <zeroOrMore>
487
+ <ref name="note"/>
488
+ </zeroOrMore>
489
+ </element>
490
+ </define>
491
+ <define name="admonition">
492
+ <element name="admonition">
493
+ <attribute name="type">
494
+ <ref name="AdmonitionType"/>
495
+ </attribute>
496
+ <optional>
497
+ <attribute name="class"/>
498
+ </optional>
499
+ <attribute name="id">
500
+ <data type="ID"/>
501
+ </attribute>
502
+ <optional>
503
+ <attribute name="uri">
504
+ <data type="anyURI"/>
505
+ </attribute>
506
+ </optional>
507
+ <optional>
508
+ <ref name="tname"/>
509
+ </optional>
510
+ <zeroOrMore>
511
+ <ref name="paragraph-with-footnote"/>
512
+ </zeroOrMore>
513
+ <zeroOrMore>
514
+ <ref name="note"/>
515
+ </zeroOrMore>
516
+ </element>
517
+ </define>
518
+ <define name="AdmonitionType">
519
+ <choice>
520
+ <value>warning</value>
521
+ <value>note</value>
522
+ <value>tip</value>
523
+ <value>important</value>
524
+ <value>caution</value>
525
+ <value>statement</value>
526
+ </choice>
527
+ </define>
528
+ <define name="figure">
529
+ <element name="figure">
530
+ <attribute name="id">
531
+ <data type="ID"/>
532
+ </attribute>
533
+ <optional>
534
+ <attribute name="unnumbered">
535
+ <data type="boolean"/>
536
+ </attribute>
537
+ </optional>
538
+ <optional>
539
+ <attribute name="subsequence"/>
540
+ </optional>
541
+ <optional>
542
+ <attribute name="class"/>
543
+ </optional>
544
+ <optional>
545
+ <ref name="source"/>
546
+ </optional>
547
+ <optional>
548
+ <ref name="tname"/>
549
+ </optional>
550
+ <choice>
551
+ <ref name="image"/>
552
+ <ref name="video"/>
553
+ <ref name="audio"/>
554
+ <ref name="pre"/>
555
+ <oneOrMore>
556
+ <ref name="paragraph-with-footnote"/>
557
+ </oneOrMore>
558
+ <zeroOrMore>
559
+ <ref name="figure"/>
560
+ </zeroOrMore>
561
+ </choice>
562
+ <zeroOrMore>
563
+ <ref name="fn"/>
564
+ </zeroOrMore>
565
+ <optional>
566
+ <ref name="dl"/>
567
+ </optional>
568
+ <zeroOrMore>
569
+ <ref name="note"/>
570
+ </zeroOrMore>
571
+ </element>
572
+ </define>
573
+ <define name="TextElement">
574
+ <choice>
575
+ <text/>
576
+ <ref name="em"/>
577
+ <ref name="eref"/>
578
+ <ref name="strong"/>
579
+ <ref name="stem"/>
580
+ <ref name="sub"/>
581
+ <ref name="sup"/>
582
+ <ref name="tt"/>
583
+ <ref name="underline"/>
584
+ <ref name="keyword"/>
585
+ <ref name="ruby"/>
586
+ <ref name="strike"/>
587
+ <ref name="smallcap"/>
588
+ <ref name="xref"/>
589
+ <ref name="br"/>
590
+ <ref name="hyperlink"/>
591
+ <ref name="hr"/>
592
+ <ref name="pagebreak"/>
593
+ <ref name="bookmark"/>
594
+ <ref name="image"/>
595
+ <ref name="index"/>
596
+ <ref name="index-xref"/>
597
+ </choice>
598
+ </define>
599
+ <define name="PureTextElement">
600
+ <choice>
601
+ <text/>
602
+ <ref name="em"/>
603
+ <ref name="strong"/>
604
+ <ref name="sub"/>
605
+ <ref name="sup"/>
606
+ <ref name="tt"/>
607
+ <ref name="underline"/>
608
+ <ref name="strike"/>
609
+ <ref name="smallcap"/>
610
+ <ref name="br"/>
611
+ </choice>
612
+ </define>
613
+ <define name="source">
614
+ <element name="source">
615
+ <ref name="TypedUri"/>
616
+ </element>
617
+ </define>
618
+ <define name="em">
619
+ <element name="em">
620
+ <zeroOrMore>
621
+ <choice>
622
+ <ref name="PureTextElement"/>
623
+ <ref name="stem"/>
624
+ <ref name="eref"/>
625
+ <ref name="xref"/>
626
+ <ref name="hyperlink"/>
627
+ </choice>
628
+ </zeroOrMore>
629
+ </element>
630
+ </define>
631
+ <define name="strong">
632
+ <element name="strong">
633
+ <zeroOrMore>
634
+ <choice>
635
+ <ref name="PureTextElement"/>
636
+ <ref name="stem"/>
637
+ <ref name="eref"/>
638
+ <ref name="xref"/>
639
+ <ref name="hyperlink"/>
640
+ </choice>
641
+ </zeroOrMore>
642
+ </element>
643
+ </define>
644
+ <define name="tt">
645
+ <element name="tt">
646
+ <zeroOrMore>
647
+ <choice>
648
+ <ref name="PureTextElement"/>
649
+ <ref name="eref"/>
650
+ <ref name="xref"/>
651
+ <ref name="hyperlink"/>
652
+ </choice>
653
+ </zeroOrMore>
654
+ </element>
655
+ </define>
656
+ <define name="keyword">
657
+ <element name="keyword">
658
+ <zeroOrMore>
659
+ <ref name="PureTextElement"/>
660
+ </zeroOrMore>
661
+ </element>
662
+ </define>
663
+ <define name="sub">
664
+ <element name="sub">
665
+ <zeroOrMore>
666
+ <ref name="PureTextElement"/>
667
+ </zeroOrMore>
668
+ </element>
669
+ </define>
670
+ <define name="sup">
671
+ <element name="sup">
672
+ <zeroOrMore>
673
+ <ref name="PureTextElement"/>
674
+ </zeroOrMore>
675
+ </element>
676
+ </define>
677
+ <define name="strike">
678
+ <element name="strike">
679
+ <zeroOrMore>
680
+ <ref name="PureTextElement"/>
681
+ </zeroOrMore>
682
+ </element>
683
+ </define>
684
+ <define name="underline">
685
+ <element name="underline">
686
+ <optional>
687
+ <attribute name="style"/>
688
+ </optional>
689
+ <zeroOrMore>
690
+ <ref name="PureTextElement"/>
691
+ </zeroOrMore>
692
+ </element>
693
+ </define>
694
+ <define name="smallcap">
695
+ <element name="smallcap">
696
+ <zeroOrMore>
697
+ <ref name="PureTextElement"/>
698
+ </zeroOrMore>
699
+ </element>
700
+ </define>
701
+ <define name="ruby">
702
+ <element name="ruby">
703
+ <zeroOrMore>
704
+ <choice>
705
+ <ref name="PureTextElement"/>
706
+ <ref name="rp"/>
707
+ <ref name="rt"/>
708
+ </choice>
709
+ </zeroOrMore>
710
+ </element>
711
+ </define>
712
+ <define name="rp">
713
+ <element name="rp">
714
+ <zeroOrMore>
715
+ <ref name="PureTextElement"/>
716
+ </zeroOrMore>
717
+ </element>
718
+ </define>
719
+ <define name="rt">
720
+ <element name="rt">
721
+ <zeroOrMore>
722
+ <ref name="PureTextElement"/>
723
+ </zeroOrMore>
724
+ </element>
725
+ </define>
726
+ <define name="br">
727
+ <element name="br">
728
+ <empty/>
729
+ </element>
730
+ </define>
731
+ <define name="hr">
732
+ <element name="hr">
733
+ <empty/>
734
+ </element>
735
+ </define>
736
+ <define name="pagebreak">
737
+ <element name="pagebreak">
738
+ <empty/>
739
+ </element>
740
+ </define>
741
+ <define name="index">
742
+ <element name="index">
743
+ <optional>
744
+ <attribute name="to">
745
+ <data type="IDREF"/>
746
+ </attribute>
747
+ </optional>
748
+ <element name="primary">
749
+ <oneOrMore>
750
+ <ref name="PureTextElement"/>
751
+ </oneOrMore>
752
+ </element>
753
+ <optional>
754
+ <element name="secondary">
755
+ <oneOrMore>
756
+ <ref name="PureTextElement"/>
757
+ </oneOrMore>
758
+ </element>
759
+ </optional>
760
+ <optional>
761
+ <element name="tertiary">
762
+ <oneOrMore>
763
+ <ref name="PureTextElement"/>
764
+ </oneOrMore>
765
+ </element>
766
+ </optional>
767
+ </element>
768
+ </define>
769
+ <define name="index-xref">
770
+ <element name="index-xref">
771
+ <attribute name="also">
772
+ <data type="boolean"/>
773
+ </attribute>
774
+ <element name="primary">
775
+ <oneOrMore>
776
+ <ref name="PureTextElement"/>
777
+ </oneOrMore>
778
+ </element>
779
+ <optional>
780
+ <element name="secondary">
781
+ <oneOrMore>
782
+ <ref name="PureTextElement"/>
783
+ </oneOrMore>
784
+ </element>
785
+ </optional>
786
+ <optional>
787
+ <element name="tertiary">
788
+ <oneOrMore>
789
+ <ref name="PureTextElement"/>
790
+ </oneOrMore>
791
+ </element>
792
+ </optional>
793
+ <element name="target">
794
+ <oneOrMore>
795
+ <ref name="PureTextElement"/>
796
+ </oneOrMore>
797
+ </element>
798
+ </element>
799
+ </define>
800
+ <!-- bare ID element, used for referencing arbitrary spans of text -->
801
+ <define name="bookmark">
802
+ <element name="bookmark">
803
+ <attribute name="id">
804
+ <data type="ID"/>
805
+ </attribute>
806
+ <empty/>
807
+ </element>
808
+ </define>
809
+ <define name="ReferenceFormat">
810
+ <choice>
811
+ <value>external</value>
812
+ <value>inline</value>
813
+ <value>footnote</value>
814
+ <value>callout</value>
815
+ </choice>
816
+ </define>
817
+ <define name="eref">
818
+ <element name="eref">
819
+ <ref name="erefType"/>
820
+ </element>
821
+ </define>
822
+ <define name="erefType">
823
+ <optional>
824
+ <attribute name="normative">
825
+ <data type="boolean"/>
826
+ </attribute>
827
+ </optional>
828
+ <attribute name="citeas"/>
829
+ <attribute name="type">
830
+ <ref name="ReferenceFormat"/>
831
+ </attribute>
832
+ <optional>
833
+ <attribute name="alt"/>
834
+ </optional>
835
+ <ref name="CitationType"/>
836
+ <oneOrMore>
837
+ <ref name="PureTextElement"/>
838
+ </oneOrMore>
839
+ </define>
840
+ <define name="hyperlink">
841
+ <element name="link">
842
+ <attribute name="target">
843
+ <data type="anyURI"/>
844
+ </attribute>
845
+ <attribute name="type">
846
+ <ref name="ReferenceFormat"/>
847
+ </attribute>
848
+ <optional>
849
+ <attribute name="alt"/>
850
+ </optional>
851
+ <oneOrMore>
852
+ <ref name="PureTextElement"/>
853
+ </oneOrMore>
854
+ </element>
855
+ </define>
856
+ <define name="xref">
857
+ <element name="xref">
858
+ <attribute name="target">
859
+ <data type="IDREF"/>
860
+ </attribute>
861
+ <attribute name="type">
862
+ <ref name="ReferenceFormat"/>
863
+ </attribute>
864
+ <optional>
865
+ <attribute name="alt"/>
866
+ </optional>
867
+ <oneOrMore>
868
+ <ref name="PureTextElement"/>
869
+ </oneOrMore>
870
+ </element>
871
+ </define>
872
+ <define name="fn">
873
+ <element name="fn">
874
+ <attribute name="reference"/>
875
+ <oneOrMore>
876
+ <ref name="paragraph"/>
877
+ </oneOrMore>
878
+ </element>
879
+ </define>
880
+ <!--
881
+ This is xref with fixed @type="footnote", and @target built in as paragraph+
882
+ @reference replaces ReferenceElement/text
883
+ so <fn reference="2"><p>This is a footnote</p></fn>
884
+ corresponds to
885
+ <eref type="footnote" target="fn2">2</xref> <p id="fn2">This is a footnote</p>
886
+ -->
887
+ <define name="callout">
888
+ <element name="callout">
889
+ <attribute name="target">
890
+ <data type="IDREF"/>
891
+ </attribute>
892
+ <text/>
893
+ </element>
894
+ </define>
895
+ <!--
896
+ This is xref with fixed @type="callout"; the target by convention is in an annotation in the same source code snippet
897
+ so <callout target="xyz">1</callout>
898
+ corresponds to <xref type="callout" target="xyz">1</xref>
899
+ -->
900
+ <define name="image">
901
+ <element name="image">
902
+ <attribute name="id">
903
+ <data type="ID"/>
904
+ </attribute>
905
+ <attribute name="src">
906
+ <data type="anyURI"/>
907
+ </attribute>
908
+ <attribute name="mimetype"/>
909
+ <optional>
910
+ <attribute name="filename"/>
911
+ </optional>
912
+ <optional>
913
+ <attribute name="width">
914
+ <choice>
915
+ <data type="int"/>
916
+ <value>auto</value>
917
+ </choice>
918
+ </attribute>
919
+ </optional>
920
+ <optional>
921
+ <attribute name="height">
922
+ <choice>
923
+ <data type="int"/>
924
+ <value>auto</value>
925
+ </choice>
926
+ </attribute>
927
+ </optional>
928
+ <optional>
929
+ <attribute name="alt"/>
930
+ </optional>
931
+ <optional>
932
+ <attribute name="title"/>
933
+ </optional>
934
+ <optional>
935
+ <attribute name="longdesc">
936
+ <data type="anyURI"/>
937
+ </attribute>
938
+ </optional>
939
+ </element>
940
+ </define>
941
+ <define name="video">
942
+ <element name="video">
943
+ <attribute name="id">
944
+ <data type="ID"/>
945
+ </attribute>
946
+ <attribute name="src">
947
+ <data type="anyURI"/>
948
+ </attribute>
949
+ <attribute name="mimetype"/>
950
+ <optional>
951
+ <attribute name="filename"/>
952
+ </optional>
953
+ <optional>
954
+ <attribute name="width">
955
+ <choice>
956
+ <data type="int"/>
957
+ <value>auto</value>
958
+ </choice>
959
+ </attribute>
960
+ </optional>
961
+ <optional>
962
+ <attribute name="height">
963
+ <choice>
964
+ <data type="int"/>
965
+ <value>auto</value>
966
+ </choice>
967
+ </attribute>
968
+ </optional>
969
+ <optional>
970
+ <attribute name="alt"/>
971
+ </optional>
972
+ <optional>
973
+ <attribute name="title"/>
974
+ </optional>
975
+ <optional>
976
+ <attribute name="longdesc">
977
+ <data type="anyURI"/>
978
+ </attribute>
979
+ </optional>
980
+ <zeroOrMore>
981
+ <ref name="altsource"/>
982
+ </zeroOrMore>
983
+ </element>
984
+ </define>
985
+ <define name="audio">
986
+ <element name="audio">
987
+ <attribute name="id">
988
+ <data type="ID"/>
989
+ </attribute>
990
+ <attribute name="src">
991
+ <data type="anyURI"/>
992
+ </attribute>
993
+ <attribute name="mimetype"/>
994
+ <optional>
995
+ <attribute name="filename"/>
996
+ </optional>
997
+ <optional>
998
+ <attribute name="alt"/>
999
+ </optional>
1000
+ <optional>
1001
+ <attribute name="title"/>
1002
+ </optional>
1003
+ <optional>
1004
+ <attribute name="longdesc">
1005
+ <data type="anyURI"/>
1006
+ </attribute>
1007
+ </optional>
1008
+ <zeroOrMore>
1009
+ <ref name="altsource"/>
1010
+ </zeroOrMore>
1011
+ </element>
1012
+ </define>
1013
+ <define name="altsource">
1014
+ <element name="altsource">
1015
+ <attribute name="src">
1016
+ <data type="anyURI"/>
1017
+ </attribute>
1018
+ <attribute name="mimetype"/>
1019
+ <optional>
1020
+ <attribute name="filename"/>
1021
+ </optional>
1022
+ </element>
1023
+ </define>
1024
+ <define name="stem">
1025
+ <element name="stem">
1026
+ <attribute name="type">
1027
+ <choice>
1028
+ <value>MathML</value>
1029
+ <value>AsciiMath</value>
1030
+ </choice>
1031
+ </attribute>
1032
+ <oneOrMore>
1033
+ <choice>
1034
+ <text/>
1035
+ <ref name="AnyElement"/>
1036
+ </choice>
1037
+ </oneOrMore>
1038
+ </element>
1039
+ </define>
1040
+ <define name="annotation">
1041
+ <element name="annotation">
1042
+ <attribute name="id">
1043
+ <data type="ID"/>
1044
+ </attribute>
1045
+ <ref name="paragraph"/>
1046
+ </element>
1047
+ </define>
1048
+ <define name="ul">
1049
+ <element name="ul">
1050
+ <attribute name="id">
1051
+ <data type="ID"/>
1052
+ </attribute>
1053
+ <oneOrMore>
1054
+ <ref name="li"/>
1055
+ </oneOrMore>
1056
+ <zeroOrMore>
1057
+ <ref name="note"/>
1058
+ </zeroOrMore>
1059
+ </element>
1060
+ </define>
1061
+ <define name="li">
1062
+ <element name="li">
1063
+ <optional>
1064
+ <attribute name="id">
1065
+ <data type="ID"/>
1066
+ </attribute>
1067
+ </optional>
1068
+ <oneOrMore>
1069
+ <ref name="paragraph-with-footnote"/>
1070
+ </oneOrMore>
1071
+ </element>
1072
+ </define>
1073
+ <define name="ol">
1074
+ <element name="ol">
1075
+ <attribute name="id">
1076
+ <data type="ID"/>
1077
+ </attribute>
1078
+ <attribute name="type">
1079
+ <choice>
1080
+ <value>roman</value>
1081
+ <value>alphabet</value>
1082
+ <value>arabic</value>
1083
+ <value>roman_upper</value>
1084
+ <value>alphabet_upper</value>
1085
+ </choice>
1086
+ </attribute>
1087
+ <optional>
1088
+ <attribute name="start"/>
1089
+ </optional>
1090
+ <oneOrMore>
1091
+ <ref name="li"/>
1092
+ </oneOrMore>
1093
+ <zeroOrMore>
1094
+ <ref name="note"/>
1095
+ </zeroOrMore>
1096
+ </element>
1097
+ </define>
1098
+ <define name="dl">
1099
+ <element name="dl">
1100
+ <attribute name="id">
1101
+ <data type="ID"/>
1102
+ </attribute>
1103
+ <oneOrMore>
1104
+ <ref name="dt"/>
1105
+ <ref name="dd"/>
1106
+ </oneOrMore>
1107
+ <zeroOrMore>
1108
+ <ref name="note"/>
1109
+ </zeroOrMore>
1110
+ </element>
1111
+ </define>
1112
+ <define name="dt">
1113
+ <element name="dt">
1114
+ <zeroOrMore>
1115
+ <ref name="TextElement"/>
1116
+ </zeroOrMore>
1117
+ </element>
1118
+ </define>
1119
+ <define name="dd">
1120
+ <element name="dd">
1121
+ <zeroOrMore>
1122
+ <ref name="paragraph-with-footnote"/>
1123
+ </zeroOrMore>
1124
+ </element>
1125
+ </define>
1126
+ </grammar>