metanorma-sample 1.0.10 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>