metanorma-nist 0.1.3 → 0.1.4

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