metanorma-sample 1.0.10 → 1.3.8

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