metanorma-ieee 0.0.1

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