relaton-gb 0.12.0 → 1.2.0

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.
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
- <!-- default namespace = "http://riboseinc.com/gbstandard" -->
3
+ <!-- default namespace = "https://www.metanorma.com/ns/gb" -->
4
4
  <!--
5
5
  Currently we inherit from a namespaced grammar, isostandard. Unless we inherit from isodoc,
6
6
  we cannot have a new default namespace: we will end up with a grammar with two different
@@ -67,6 +67,9 @@
67
67
  <ref name="ics"/>
68
68
  </zeroOrMore>
69
69
  <ref name="structuredidentifier"/>
70
+ <optional>
71
+ <ref name="stagename"/>
72
+ </optional>
70
73
  <ref name="gbtype"/>
71
74
  <oneOrMore>
72
75
  <ref name="gbccs"/>
@@ -24,48 +24,814 @@
24
24
  <start>
25
25
  <ref name="standard-document"/>
26
26
  </start>
27
+ <define name="hyperlink">
28
+ <element name="link">
29
+ <attribute name="target">
30
+ <data type="anyURI"/>
31
+ </attribute>
32
+ <optional>
33
+ <attribute name="type">
34
+ <ref name="ReferenceFormat"/>
35
+ </attribute>
36
+ </optional>
37
+ <optional>
38
+ <attribute name="alt"/>
39
+ </optional>
40
+ <text/>
41
+ </element>
42
+ </define>
43
+ <define name="xref">
44
+ <element name="xref">
45
+ <attribute name="target">
46
+ <data type="IDREF"/>
47
+ </attribute>
48
+ <optional>
49
+ <attribute name="type">
50
+ <ref name="ReferenceFormat"/>
51
+ </attribute>
52
+ </optional>
53
+ <optional>
54
+ <attribute name="alt"/>
55
+ </optional>
56
+ <optional>
57
+ <attribute name="case">
58
+ <choice>
59
+ <value>capital</value>
60
+ <value>lowercase</value>
61
+ </choice>
62
+ </attribute>
63
+ </optional>
64
+ <text/>
65
+ </element>
66
+ </define>
67
+ <define name="ul">
68
+ <element name="ul">
69
+ <attribute name="id">
70
+ <data type="ID"/>
71
+ </attribute>
72
+ <optional>
73
+ <attribute name="keep-with-next">
74
+ <data type="boolean"/>
75
+ </attribute>
76
+ </optional>
77
+ <optional>
78
+ <attribute name="keep-lines-together">
79
+ <data type="boolean"/>
80
+ </attribute>
81
+ </optional>
82
+ <oneOrMore>
83
+ <ref name="li"/>
84
+ </oneOrMore>
85
+ <zeroOrMore>
86
+ <ref name="note"/>
87
+ </zeroOrMore>
88
+ </element>
89
+ </define>
90
+ <define name="ol">
91
+ <element name="ol">
92
+ <attribute name="id">
93
+ <data type="ID"/>
94
+ </attribute>
95
+ <optional>
96
+ <attribute name="keep-with-next">
97
+ <data type="boolean"/>
98
+ </attribute>
99
+ </optional>
100
+ <optional>
101
+ <attribute name="keep-lines-together">
102
+ <data type="boolean"/>
103
+ </attribute>
104
+ </optional>
105
+ <attribute name="type">
106
+ <choice>
107
+ <value>roman</value>
108
+ <value>alphabet</value>
109
+ <value>arabic</value>
110
+ <value>roman_upper</value>
111
+ <value>alphabet_upper</value>
112
+ </choice>
113
+ </attribute>
114
+ <oneOrMore>
115
+ <ref name="li"/>
116
+ </oneOrMore>
117
+ <zeroOrMore>
118
+ <ref name="note"/>
119
+ </zeroOrMore>
120
+ </element>
121
+ </define>
122
+ <define name="dl">
123
+ <element name="dl">
124
+ <attribute name="id">
125
+ <data type="ID"/>
126
+ </attribute>
127
+ <optional>
128
+ <attribute name="keep-with-next">
129
+ <data type="boolean"/>
130
+ </attribute>
131
+ </optional>
132
+ <optional>
133
+ <attribute name="keep-lines-together">
134
+ <data type="boolean"/>
135
+ </attribute>
136
+ </optional>
137
+ <oneOrMore>
138
+ <ref name="dt"/>
139
+ <ref name="dd"/>
140
+ </oneOrMore>
141
+ <zeroOrMore>
142
+ <ref name="note"/>
143
+ </zeroOrMore>
144
+ </element>
145
+ </define>
146
+ <define name="example">
147
+ <element name="example">
148
+ <attribute name="id">
149
+ <data type="ID"/>
150
+ </attribute>
151
+ <optional>
152
+ <attribute name="unnumbered">
153
+ <data type="boolean"/>
154
+ </attribute>
155
+ </optional>
156
+ <optional>
157
+ <attribute name="subsequence"/>
158
+ </optional>
159
+ <optional>
160
+ <attribute name="number"/>
161
+ </optional>
162
+ <optional>
163
+ <attribute name="keep-with-next">
164
+ <data type="boolean"/>
165
+ </attribute>
166
+ </optional>
167
+ <optional>
168
+ <attribute name="keep-lines-together">
169
+ <data type="boolean"/>
170
+ </attribute>
171
+ </optional>
172
+ <optional>
173
+ <ref name="tname"/>
174
+ </optional>
175
+ <oneOrMore>
176
+ <choice>
177
+ <ref name="formula"/>
178
+ <ref name="ul"/>
179
+ <ref name="ol"/>
180
+ <ref name="dl"/>
181
+ <ref name="quote"/>
182
+ <ref name="sourcecode"/>
183
+ <ref name="paragraph-with-footnote"/>
184
+ <ref name="figure"/>
185
+ </choice>
186
+ </oneOrMore>
187
+ <zeroOrMore>
188
+ <ref name="note"/>
189
+ </zeroOrMore>
190
+ </element>
191
+ </define>
192
+ <define name="table">
193
+ <element name="table">
194
+ <attribute name="id">
195
+ <data type="ID"/>
196
+ </attribute>
197
+ <optional>
198
+ <attribute name="unnumbered">
199
+ <data type="boolean"/>
200
+ </attribute>
201
+ </optional>
202
+ <optional>
203
+ <attribute name="number"/>
204
+ </optional>
205
+ <optional>
206
+ <attribute name="subsequence"/>
207
+ </optional>
208
+ <optional>
209
+ <attribute name="alt"/>
210
+ </optional>
211
+ <optional>
212
+ <attribute name="summary"/>
213
+ </optional>
214
+ <optional>
215
+ <attribute name="uri">
216
+ <data type="anyURI"/>
217
+ </attribute>
218
+ </optional>
219
+ <optional>
220
+ <attribute name="keep-with-next">
221
+ <data type="boolean"/>
222
+ </attribute>
223
+ </optional>
224
+ <optional>
225
+ <attribute name="keep-lines-together">
226
+ <data type="boolean"/>
227
+ </attribute>
228
+ </optional>
229
+ <optional>
230
+ <ref name="tname"/>
231
+ </optional>
232
+ <optional>
233
+ <ref name="thead"/>
234
+ </optional>
235
+ <ref name="tbody"/>
236
+ <optional>
237
+ <ref name="tfoot"/>
238
+ </optional>
239
+ <zeroOrMore>
240
+ <ref name="table-note"/>
241
+ </zeroOrMore>
242
+ <optional>
243
+ <ref name="dl"/>
244
+ </optional>
245
+ </element>
246
+ </define>
247
+ <define name="figure">
248
+ <element name="figure">
249
+ <attribute name="id">
250
+ <data type="ID"/>
251
+ </attribute>
252
+ <optional>
253
+ <attribute name="unnumbered">
254
+ <data type="boolean"/>
255
+ </attribute>
256
+ </optional>
257
+ <optional>
258
+ <attribute name="number"/>
259
+ </optional>
260
+ <optional>
261
+ <attribute name="subsequence"/>
262
+ </optional>
263
+ <optional>
264
+ <attribute name="keep-with-next">
265
+ <data type="boolean"/>
266
+ </attribute>
267
+ </optional>
268
+ <optional>
269
+ <attribute name="keep-lines-together">
270
+ <data type="boolean"/>
271
+ </attribute>
272
+ </optional>
273
+ <optional>
274
+ <attribute name="class"/>
275
+ </optional>
276
+ <optional>
277
+ <ref name="source"/>
278
+ </optional>
279
+ <optional>
280
+ <ref name="tname"/>
281
+ </optional>
282
+ <choice>
283
+ <ref name="image"/>
284
+ <ref name="video"/>
285
+ <ref name="audio"/>
286
+ <ref name="pre"/>
287
+ <oneOrMore>
288
+ <ref name="paragraph-with-footnote"/>
289
+ </oneOrMore>
290
+ <zeroOrMore>
291
+ <ref name="figure"/>
292
+ </zeroOrMore>
293
+ </choice>
294
+ <zeroOrMore>
295
+ <ref name="fn"/>
296
+ </zeroOrMore>
297
+ <optional>
298
+ <ref name="dl"/>
299
+ </optional>
300
+ <zeroOrMore>
301
+ <ref name="note"/>
302
+ </zeroOrMore>
303
+ </element>
304
+ </define>
305
+ <define name="sourcecode">
306
+ <element name="sourcecode">
307
+ <attribute name="id">
308
+ <data type="ID"/>
309
+ </attribute>
310
+ <optional>
311
+ <attribute name="unnumbered">
312
+ <data type="boolean"/>
313
+ </attribute>
314
+ </optional>
315
+ <optional>
316
+ <attribute name="number"/>
317
+ </optional>
318
+ <optional>
319
+ <attribute name="subsequence"/>
320
+ </optional>
321
+ <optional>
322
+ <attribute name="keep-with-next">
323
+ <data type="boolean"/>
324
+ </attribute>
325
+ </optional>
326
+ <optional>
327
+ <attribute name="keep-lines-together">
328
+ <data type="boolean"/>
329
+ </attribute>
330
+ </optional>
331
+ <optional>
332
+ <attribute name="lang"/>
333
+ </optional>
334
+ <optional>
335
+ <ref name="tname"/>
336
+ </optional>
337
+ <oneOrMore>
338
+ <choice>
339
+ <text/>
340
+ <ref name="callout"/>
341
+ </choice>
342
+ </oneOrMore>
343
+ <zeroOrMore>
344
+ <ref name="annotation"/>
345
+ </zeroOrMore>
346
+ <zeroOrMore>
347
+ <ref name="note"/>
348
+ </zeroOrMore>
349
+ </element>
350
+ </define>
351
+ <define name="formula">
352
+ <element name="formula">
353
+ <attribute name="id">
354
+ <data type="ID"/>
355
+ </attribute>
356
+ <optional>
357
+ <attribute name="unnumbered">
358
+ <data type="boolean"/>
359
+ </attribute>
360
+ </optional>
361
+ <optional>
362
+ <attribute name="number"/>
363
+ </optional>
364
+ <optional>
365
+ <attribute name="subsequence"/>
366
+ </optional>
367
+ <optional>
368
+ <attribute name="keep-with-next">
369
+ <data type="boolean"/>
370
+ </attribute>
371
+ </optional>
372
+ <optional>
373
+ <attribute name="keep-lines-together">
374
+ <data type="boolean"/>
375
+ </attribute>
376
+ </optional>
377
+ <optional>
378
+ <attribute name="inequality">
379
+ <data type="boolean"/>
380
+ </attribute>
381
+ </optional>
382
+ <ref name="stem"/>
383
+ <optional>
384
+ <ref name="dl"/>
385
+ </optional>
386
+ <zeroOrMore>
387
+ <ref name="note"/>
388
+ </zeroOrMore>
389
+ </element>
390
+ </define>
391
+ <define name="ParagraphType">
392
+ <attribute name="id">
393
+ <data type="ID"/>
394
+ </attribute>
395
+ <optional>
396
+ <attribute name="align">
397
+ <ref name="Alignments"/>
398
+ </attribute>
399
+ </optional>
400
+ <optional>
401
+ <attribute name="keep-with-next">
402
+ <data type="boolean"/>
403
+ </attribute>
404
+ </optional>
405
+ <optional>
406
+ <attribute name="keep-lines-together">
407
+ <data type="boolean"/>
408
+ </attribute>
409
+ </optional>
410
+ <zeroOrMore>
411
+ <ref name="TextElement"/>
412
+ </zeroOrMore>
413
+ <zeroOrMore>
414
+ <ref name="note"/>
415
+ </zeroOrMore>
416
+ </define>
417
+ <define name="paragraph-with-footnote">
418
+ <element name="p">
419
+ <attribute name="id">
420
+ <data type="ID"/>
421
+ </attribute>
422
+ <optional>
423
+ <attribute name="align">
424
+ <ref name="Alignments"/>
425
+ </attribute>
426
+ </optional>
427
+ <optional>
428
+ <attribute name="keep-with-next">
429
+ <data type="boolean"/>
430
+ </attribute>
431
+ </optional>
432
+ <optional>
433
+ <attribute name="keep-lines-together">
434
+ <data type="boolean"/>
435
+ </attribute>
436
+ </optional>
437
+ <zeroOrMore>
438
+ <choice>
439
+ <ref name="TextElement"/>
440
+ <ref name="fn"/>
441
+ </choice>
442
+ </zeroOrMore>
443
+ <zeroOrMore>
444
+ <ref name="note"/>
445
+ </zeroOrMore>
446
+ </element>
447
+ </define>
448
+ <define name="quote">
449
+ <element name="quote">
450
+ <attribute name="id">
451
+ <data type="ID"/>
452
+ </attribute>
453
+ <optional>
454
+ <attribute name="alignment">
455
+ <ref name="Alignments"/>
456
+ </attribute>
457
+ </optional>
458
+ <optional>
459
+ <attribute name="keep-with-next">
460
+ <data type="boolean"/>
461
+ </attribute>
462
+ </optional>
463
+ <optional>
464
+ <attribute name="keep-lines-together">
465
+ <data type="boolean"/>
466
+ </attribute>
467
+ </optional>
468
+ <optional>
469
+ <ref name="quote-source"/>
470
+ </optional>
471
+ <optional>
472
+ <ref name="quote-author"/>
473
+ </optional>
474
+ <oneOrMore>
475
+ <ref name="paragraph-with-footnote"/>
476
+ </oneOrMore>
477
+ <zeroOrMore>
478
+ <ref name="note"/>
479
+ </zeroOrMore>
480
+ </element>
481
+ </define>
27
482
  <define name="BibDataExtensionType">
28
483
  <ref name="doctype"/>
484
+ <optional>
485
+ <ref name="editorialgroup"/>
486
+ </optional>
487
+ <zeroOrMore>
488
+ <ref name="ics"/>
489
+ </zeroOrMore>
29
490
  <zeroOrMore>
30
491
  <ref name="structuredidentifier"/>
31
492
  </zeroOrMore>
32
493
  </define>
33
- <define name="TitleType">
34
- <text/>
35
- </define>
494
+ <!-- TitleType = text -->
36
495
  <define name="sections">
37
496
  <element name="sections">
38
497
  <oneOrMore>
39
- <choice>
40
- <ref name="clause"/>
41
- <ref name="terms"/>
42
- <ref name="definitions"/>
43
- </choice>
498
+ <choice>
499
+ <ref name="clause"/>
500
+ <ref name="terms"/>
501
+ <ref name="term-clause"/>
502
+ <ref name="definitions"/>
503
+ </choice>
504
+ </oneOrMore>
505
+ </element>
506
+ </define>
507
+ <define name="references">
508
+ <element name="references">
509
+ <optional>
510
+ <attribute name="id">
511
+ <data type="ID"/>
512
+ </attribute>
513
+ </optional>
514
+ <optional>
515
+ <attribute name="obligation">
516
+ <choice>
517
+ <value>normative</value>
518
+ <value>informative</value>
519
+ </choice>
520
+ </attribute>
521
+ </optional>
522
+ <attribute name="normative">
523
+ <data type="boolean"/>
524
+ </attribute>
525
+ <optional>
526
+ <ref name="section-title"/>
527
+ </optional>
528
+ <zeroOrMore>
529
+ <ref name="BasicBlock"/>
530
+ </zeroOrMore>
531
+ <zeroOrMore>
532
+ <ref name="note"/>
533
+ </zeroOrMore>
534
+ <zeroOrMore>
535
+ <ref name="bibitem"/>
536
+ <zeroOrMore>
537
+ <ref name="note"/>
538
+ </zeroOrMore>
539
+ </zeroOrMore>
540
+ <zeroOrMore>
541
+ <ref name="references"/>
542
+ </zeroOrMore>
543
+ </element>
544
+ </define>
545
+ <define name="note">
546
+ <element name="note">
547
+ <attribute name="id">
548
+ <data type="ID"/>
549
+ </attribute>
550
+ <optional>
551
+ <attribute name="unnumbered">
552
+ <data type="boolean"/>
553
+ </attribute>
554
+ </optional>
555
+ <optional>
556
+ <attribute name="number"/>
557
+ </optional>
558
+ <optional>
559
+ <attribute name="subsequence"/>
560
+ </optional>
561
+ <optional>
562
+ <attribute name="keep-with-next">
563
+ <data type="boolean"/>
564
+ </attribute>
565
+ </optional>
566
+ <optional>
567
+ <attribute name="keep-lines-together">
568
+ <data type="boolean"/>
569
+ </attribute>
570
+ </optional>
571
+ <optional>
572
+ <attribute name="type"/>
573
+ </optional>
574
+ <oneOrMore>
575
+ <choice>
576
+ <ref name="paragraph"/>
577
+ <ref name="ul"/>
578
+ <ref name="ol"/>
579
+ <ref name="dl"/>
580
+ <ref name="formula"/>
581
+ </choice>
582
+ </oneOrMore>
583
+ </element>
584
+ </define>
585
+ <define name="Basic-Section">
586
+ <optional>
587
+ <attribute name="id">
588
+ <data type="ID"/>
589
+ </attribute>
590
+ </optional>
591
+ <optional>
592
+ <attribute name="language"/>
593
+ </optional>
594
+ <optional>
595
+ <attribute name="script"/>
596
+ </optional>
597
+ <optional>
598
+ <attribute name="obligation">
599
+ <choice>
600
+ <value>normative</value>
601
+ <value>informative</value>
602
+ </choice>
603
+ </attribute>
604
+ </optional>
605
+ <optional>
606
+ <ref name="section-title"/>
607
+ </optional>
608
+ <group>
609
+ <oneOrMore>
610
+ <ref name="BasicBlock"/>
611
+ </oneOrMore>
612
+ <zeroOrMore>
613
+ <ref name="note"/>
614
+ </zeroOrMore>
615
+ </group>
616
+ </define>
617
+ <define name="li">
618
+ <element name="li">
619
+ <group>
620
+ <optional>
621
+ <attribute name="id">
622
+ <data type="ID"/>
623
+ </attribute>
624
+ </optional>
625
+ <oneOrMore>
626
+ <ref name="BasicBlock"/>
627
+ </oneOrMore>
628
+ </group>
629
+ <!-- exclude figures? -->
630
+ </element>
631
+ </define>
632
+ <define name="dd">
633
+ <element name="dd">
634
+ <zeroOrMore>
635
+ <!-- exclude figures? -->
636
+ <ref name="BasicBlock"/>
637
+ </zeroOrMore>
638
+ </element>
639
+ </define>
640
+ <define name="thead">
641
+ <element name="thead">
642
+ <oneOrMore>
643
+ <ref name="tr"/>
644
+ </oneOrMore>
645
+ </element>
646
+ </define>
647
+ <define name="td">
648
+ <element name="td">
649
+ <optional>
650
+ <attribute name="colspan"/>
651
+ </optional>
652
+ <optional>
653
+ <attribute name="rowspan"/>
654
+ </optional>
655
+ <optional>
656
+ <attribute name="align">
657
+ <choice>
658
+ <value>left</value>
659
+ <value>right</value>
660
+ <value>center</value>
661
+ </choice>
662
+ </attribute>
663
+ </optional>
664
+ <choice>
665
+ <zeroOrMore>
666
+ <choice>
667
+ <ref name="TextElement"/>
668
+ <ref name="fn"/>
669
+ </choice>
670
+ </zeroOrMore>
671
+ <oneOrMore>
672
+ <choice>
673
+ <ref name="paragraph-with-footnote"/>
674
+ <ref name="dl"/>
675
+ <ref name="ul"/>
676
+ <ref name="ol"/>
677
+ <ref name="figure"/>
678
+ </choice>
679
+ </oneOrMore>
680
+ </choice>
681
+ </element>
682
+ </define>
683
+ <define name="th">
684
+ <element name="th">
685
+ <optional>
686
+ <attribute name="colspan"/>
687
+ </optional>
688
+ <optional>
689
+ <attribute name="rowspan"/>
690
+ </optional>
691
+ <optional>
692
+ <attribute name="align">
693
+ <choice>
694
+ <value>left</value>
695
+ <value>right</value>
696
+ <value>center</value>
697
+ </choice>
698
+ </attribute>
699
+ </optional>
700
+ <choice>
701
+ <zeroOrMore>
702
+ <choice>
703
+ <ref name="TextElement"/>
704
+ <ref name="fn"/>
705
+ </choice>
706
+ </zeroOrMore>
707
+ <oneOrMore>
708
+ <ref name="paragraph-with-footnote"/>
709
+ </oneOrMore>
710
+ </choice>
711
+ </element>
712
+ </define>
713
+ <define name="table-note">
714
+ <element name="note">
715
+ <optional>
716
+ <attribute name="id">
717
+ <data type="ID"/>
718
+ </attribute>
719
+ </optional>
720
+ <ref name="paragraph"/>
721
+ </element>
722
+ </define>
723
+ </include>
724
+ <!-- end overrides -->
725
+ <define name="TextElement" combine="choice">
726
+ <ref name="concept"/>
727
+ </define>
728
+ <define name="concept">
729
+ <element name="concept">
730
+ <optional>
731
+ <attribute name="term"/>
732
+ </optional>
733
+ <choice>
734
+ <ref name="eref"/>
735
+ <ref name="xref"/>
736
+ <ref name="termref"/>
737
+ </choice>
738
+ </element>
739
+ </define>
740
+ <define name="BasicBlock" combine="choice">
741
+ <choice>
742
+ <ref name="requirement"/>
743
+ <ref name="recommendation"/>
744
+ <ref name="permission"/>
745
+ </choice>
746
+ </define>
747
+ <define name="bibliography">
748
+ <element name="bibliography">
749
+ <oneOrMore>
750
+ <choice>
751
+ <ref name="references"/>
752
+ <ref name="reference-clause"/>
753
+ </choice>
754
+ </oneOrMore>
755
+ </element>
756
+ </define>
757
+ <define name="reference-clause">
758
+ <element name="clause">
759
+ <optional>
760
+ <attribute name="id">
761
+ <data type="ID"/>
762
+ </attribute>
763
+ </optional>
764
+ <optional>
765
+ <attribute name="language"/>
766
+ </optional>
767
+ <optional>
768
+ <attribute name="script"/>
769
+ </optional>
770
+ <optional>
771
+ <attribute name="inline-header">
772
+ <data type="boolean"/>
773
+ </attribute>
774
+ </optional>
775
+ <optional>
776
+ <attribute name="obligation">
777
+ <choice>
778
+ <value>normative</value>
779
+ <value>informative</value>
780
+ </choice>
781
+ </attribute>
782
+ </optional>
783
+ <optional>
784
+ <ref name="section-title"/>
785
+ </optional>
786
+ <zeroOrMore>
787
+ <ref name="BasicBlock"/>
788
+ </zeroOrMore>
789
+ <zeroOrMore>
790
+ <ref name="note"/>
791
+ </zeroOrMore>
792
+ <choice>
793
+ <oneOrMore>
794
+ <ref name="reference-clause"/>
44
795
  </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
796
  <zeroOrMore>
61
- <ref name="bibitem"/>
62
- <zeroOrMore>
63
- <ref name="note"/>
64
- </zeroOrMore>
797
+ <ref name="references"/>
65
798
  </zeroOrMore>
799
+ </choice>
800
+ </element>
801
+ </define>
802
+ <define name="editorialgroup">
803
+ <element name="editorialgroup">
804
+ <oneOrMore>
805
+ <ref name="technical-committee"/>
806
+ </oneOrMore>
807
+ </element>
808
+ </define>
809
+ <define name="technical-committee">
810
+ <element name="technical-committee">
811
+ <ref name="IsoWorkgroup"/>
812
+ </element>
813
+ </define>
814
+ <define name="IsoWorkgroup">
815
+ <optional>
816
+ <attribute name="number">
817
+ <data type="int"/>
818
+ </attribute>
819
+ </optional>
820
+ <optional>
821
+ <attribute name="type"/>
822
+ </optional>
823
+ <text/>
824
+ </define>
825
+ <define name="ics">
826
+ <element name="ics">
827
+ <element name="code">
828
+ <text/>
66
829
  </element>
67
- </define>
68
- </include>
830
+ <element name="text">
831
+ <text/>
832
+ </element>
833
+ </element>
834
+ </define>
69
835
  <define name="standard-document">
70
836
  <element name="standard-document">
71
837
  <ref name="bibdata"/>
@@ -89,7 +855,7 @@
89
855
  <oneOrMore>
90
856
  <choice>
91
857
  <ref name="content"/>
92
- <ref name="abstract"/>
858
+ <ref name="preface_abstract"/>
93
859
  <ref name="foreword"/>
94
860
  <ref name="introduction"/>
95
861
  <ref name="acknowledgements"/>
@@ -156,6 +922,14 @@
156
922
  <optional>
157
923
  <attribute name="script"/>
158
924
  </optional>
925
+ <optional>
926
+ <attribute name="obligation">
927
+ <choice>
928
+ <value>normative</value>
929
+ <value>informative</value>
930
+ </choice>
931
+ </attribute>
932
+ </optional>
159
933
  <optional>
160
934
  <ref name="section-title"/>
161
935
  </optional>
@@ -163,6 +937,9 @@
163
937
  <zeroOrMore>
164
938
  <ref name="BasicBlock"/>
165
939
  </zeroOrMore>
940
+ <zeroOrMore>
941
+ <ref name="note"/>
942
+ </zeroOrMore>
166
943
  <ref name="dl"/>
167
944
  </oneOrMore>
168
945
  </element>
@@ -202,22 +979,35 @@
202
979
  <optional>
203
980
  <attribute name="script"/>
204
981
  </optional>
982
+ <optional>
983
+ <attribute name="inline-header">
984
+ <data type="boolean"/>
985
+ </attribute>
986
+ </optional>
987
+ <optional>
988
+ <attribute name="obligation">
989
+ <choice>
990
+ <value>normative</value>
991
+ <value>informative</value>
992
+ </choice>
993
+ </attribute>
994
+ </optional>
205
995
  <optional>
206
996
  <ref name="section-title"/>
207
997
  </optional>
208
- <choice>
998
+ <group>
209
999
  <group>
210
- <optional>
1000
+ <zeroOrMore>
211
1001
  <ref name="BasicBlock"/>
212
- </optional>
1002
+ </zeroOrMore>
213
1003
  <zeroOrMore>
214
1004
  <ref name="note"/>
215
1005
  </zeroOrMore>
216
1006
  </group>
217
- <oneOrMore>
1007
+ <zeroOrMore>
218
1008
  <ref name="content-subsection"/>
219
- </oneOrMore>
220
- </choice>
1009
+ </zeroOrMore>
1010
+ </group>
221
1011
  </define>
222
1012
  <define name="clause">
223
1013
  <element name="clause">
@@ -239,32 +1029,97 @@
239
1029
  <optional>
240
1030
  <attribute name="script"/>
241
1031
  </optional>
1032
+ <optional>
1033
+ <attribute name="inline-header">
1034
+ <data type="boolean"/>
1035
+ </attribute>
1036
+ </optional>
1037
+ <optional>
1038
+ <attribute name="obligation">
1039
+ <choice>
1040
+ <value>normative</value>
1041
+ <value>informative</value>
1042
+ </choice>
1043
+ </attribute>
1044
+ </optional>
242
1045
  <optional>
243
1046
  <ref name="section-title"/>
244
1047
  </optional>
245
- <choice>
1048
+ <group>
246
1049
  <group>
247
- <optional>
1050
+ <zeroOrMore>
248
1051
  <ref name="BasicBlock"/>
249
- </optional>
1052
+ </zeroOrMore>
250
1053
  <zeroOrMore>
251
1054
  <ref name="note"/>
252
1055
  </zeroOrMore>
253
1056
  </group>
254
- <oneOrMore>
1057
+ <zeroOrMore>
255
1058
  <choice>
256
1059
  <ref name="clause-subsection"/>
257
1060
  <ref name="terms"/>
258
1061
  <ref name="definitions"/>
259
1062
  </choice>
260
- </oneOrMore>
261
- </choice>
1063
+ </zeroOrMore>
1064
+ </group>
1065
+ </define>
1066
+ <define name="Annex-Section">
1067
+ <optional>
1068
+ <attribute name="id">
1069
+ <data type="ID"/>
1070
+ </attribute>
1071
+ </optional>
1072
+ <optional>
1073
+ <attribute name="language"/>
1074
+ </optional>
1075
+ <optional>
1076
+ <attribute name="script"/>
1077
+ </optional>
1078
+ <optional>
1079
+ <attribute name="inline-header">
1080
+ <data type="boolean"/>
1081
+ </attribute>
1082
+ </optional>
1083
+ <optional>
1084
+ <attribute name="obligation">
1085
+ <choice>
1086
+ <value>normative</value>
1087
+ <value>informative</value>
1088
+ </choice>
1089
+ </attribute>
1090
+ </optional>
1091
+ <optional>
1092
+ <ref name="section-title"/>
1093
+ </optional>
1094
+ <group>
1095
+ <group>
1096
+ <zeroOrMore>
1097
+ <ref name="BasicBlock"/>
1098
+ </zeroOrMore>
1099
+ <zeroOrMore>
1100
+ <ref name="note"/>
1101
+ </zeroOrMore>
1102
+ </group>
1103
+ <zeroOrMore>
1104
+ <choice>
1105
+ <ref name="annex-subsection"/>
1106
+ <ref name="terms"/>
1107
+ <ref name="definitions"/>
1108
+ <ref name="references"/>
1109
+ </choice>
1110
+ </zeroOrMore>
1111
+ </group>
262
1112
  </define>
263
1113
  <define name="clause-subsection">
264
1114
  <element name="clause">
265
1115
  <ref name="Clause-Section"/>
266
1116
  </element>
267
1117
  </define>
1118
+ <define name="annex-subsection">
1119
+ <element name="clause">
1120
+ <ref name="Annex-Section"/>
1121
+ </element>
1122
+ </define>
268
1123
  <define name="annex">
269
1124
  <element name="annex">
270
1125
  <optional>
@@ -278,6 +1133,11 @@
278
1133
  <optional>
279
1134
  <attribute name="script"/>
280
1135
  </optional>
1136
+ <optional>
1137
+ <attribute name="inline-header">
1138
+ <data type="boolean"/>
1139
+ </attribute>
1140
+ </optional>
281
1141
  <attribute name="obligation">
282
1142
  <choice>
283
1143
  <value>normative</value>
@@ -287,19 +1147,24 @@
287
1147
  <optional>
288
1148
  <ref name="section-title"/>
289
1149
  </optional>
290
- <choice>
1150
+ <group>
291
1151
  <group>
292
- <optional>
1152
+ <zeroOrMore>
293
1153
  <ref name="BasicBlock"/>
294
- </optional>
1154
+ </zeroOrMore>
295
1155
  <zeroOrMore>
296
1156
  <ref name="note"/>
297
1157
  </zeroOrMore>
298
1158
  </group>
299
- <oneOrMore>
300
- <ref name="clause-subsection"/>
301
- </oneOrMore>
302
- </choice>
1159
+ <zeroOrMore>
1160
+ <choice>
1161
+ <ref name="annex-subsection"/>
1162
+ <ref name="terms"/>
1163
+ <ref name="definitions"/>
1164
+ <ref name="references"/>
1165
+ </choice>
1166
+ </zeroOrMore>
1167
+ </group>
303
1168
  </element>
304
1169
  </define>
305
1170
  <define name="terms">
@@ -315,12 +1180,36 @@
315
1180
  <optional>
316
1181
  <attribute name="script"/>
317
1182
  </optional>
1183
+ <optional>
1184
+ <attribute name="obligation">
1185
+ <choice>
1186
+ <value>normative</value>
1187
+ <value>informative</value>
1188
+ </choice>
1189
+ </attribute>
1190
+ </optional>
1191
+ <optional>
1192
+ <ref name="section-title"/>
1193
+ </optional>
318
1194
  <zeroOrMore>
319
1195
  <ref name="BasicBlock"/>
320
1196
  </zeroOrMore>
321
- <oneOrMore>
322
- <ref name="term"/>
323
- </oneOrMore>
1197
+ <zeroOrMore>
1198
+ <ref name="note"/>
1199
+ </zeroOrMore>
1200
+ <choice>
1201
+ <oneOrMore>
1202
+ <ref name="term"/>
1203
+ </oneOrMore>
1204
+ <group>
1205
+ <zeroOrMore>
1206
+ <ref name="terms"/>
1207
+ </zeroOrMore>
1208
+ <optional>
1209
+ <ref name="definitions"/>
1210
+ </optional>
1211
+ </group>
1212
+ </choice>
324
1213
  </element>
325
1214
  </define>
326
1215
  <define name="term">
@@ -413,7 +1302,13 @@
413
1302
  </define>
414
1303
  <define name="definition">
415
1304
  <element name="definition">
416
- <ref name="paragraph"/>
1305
+ <oneOrMore>
1306
+ <choice>
1307
+ <ref name="paragraph"/>
1308
+ <ref name="figure"/>
1309
+ <ref name="formula"/>
1310
+ </choice>
1311
+ </oneOrMore>
417
1312
  </element>
418
1313
  </define>
419
1314
  <define name="termnote">
@@ -421,7 +1316,36 @@
421
1316
  <attribute name="id">
422
1317
  <data type="ID"/>
423
1318
  </attribute>
424
- <ref name="paragraph"/>
1319
+ <optional>
1320
+ <attribute name="unnumbered">
1321
+ <data type="boolean"/>
1322
+ </attribute>
1323
+ </optional>
1324
+ <optional>
1325
+ <attribute name="number"/>
1326
+ </optional>
1327
+ <optional>
1328
+ <attribute name="subsequence"/>
1329
+ </optional>
1330
+ <optional>
1331
+ <attribute name="keep-with-next">
1332
+ <data type="boolean"/>
1333
+ </attribute>
1334
+ </optional>
1335
+ <optional>
1336
+ <attribute name="keep-lines-together">
1337
+ <data type="boolean"/>
1338
+ </attribute>
1339
+ </optional>
1340
+ <oneOrMore>
1341
+ <choice>
1342
+ <ref name="paragraph"/>
1343
+ <ref name="ul"/>
1344
+ <ref name="ol"/>
1345
+ <ref name="dl"/>
1346
+ <ref name="formula"/>
1347
+ </choice>
1348
+ </oneOrMore>
425
1349
  </element>
426
1350
  </define>
427
1351
  <define name="termexample">
@@ -448,7 +1372,10 @@
448
1372
  </define>
449
1373
  <define name="origin">
450
1374
  <element name="origin">
451
- <ref name="erefType"/>
1375
+ <choice>
1376
+ <ref name="erefType"/>
1377
+ <ref name="termref"/>
1378
+ </choice>
452
1379
  </element>
453
1380
  </define>
454
1381
  <define name="modification">
@@ -456,6 +1383,15 @@
456
1383
  <ref name="paragraph"/>
457
1384
  </element>
458
1385
  </define>
1386
+ <define name="termref">
1387
+ <element name="termref">
1388
+ <attribute name="base"/>
1389
+ <attribute name="target"/>
1390
+ <optional>
1391
+ <text/>
1392
+ </optional>
1393
+ </element>
1394
+ </define>
459
1395
  <define name="structuredidentifier">
460
1396
  <element name="structuredidentifier">
461
1397
  <optional>
@@ -511,4 +1447,58 @@
511
1447
  </optional>
512
1448
  </element>
513
1449
  </define>
1450
+ <define name="preface_abstract">
1451
+ <element name="abstract">
1452
+ <ref name="Basic-Section"/>
1453
+ </element>
1454
+ </define>
1455
+ <define name="term-clause">
1456
+ <element name="clause">
1457
+ <optional>
1458
+ <attribute name="id">
1459
+ <data type="ID"/>
1460
+ </attribute>
1461
+ </optional>
1462
+ <optional>
1463
+ <attribute name="language"/>
1464
+ </optional>
1465
+ <optional>
1466
+ <attribute name="script"/>
1467
+ </optional>
1468
+ <optional>
1469
+ <attribute name="inline-header">
1470
+ <data type="boolean"/>
1471
+ </attribute>
1472
+ </optional>
1473
+ <optional>
1474
+ <attribute name="obligation">
1475
+ <choice>
1476
+ <value>normative</value>
1477
+ <value>informative</value>
1478
+ </choice>
1479
+ </attribute>
1480
+ </optional>
1481
+ <optional>
1482
+ <ref name="section-title"/>
1483
+ </optional>
1484
+ <zeroOrMore>
1485
+ <ref name="BasicBlock"/>
1486
+ </zeroOrMore>
1487
+ <zeroOrMore>
1488
+ <ref name="note"/>
1489
+ </zeroOrMore>
1490
+ <zeroOrMore>
1491
+ <choice>
1492
+ <ref name="term-clause"/>
1493
+ <ref name="terms"/>
1494
+ <ref name="definitions"/>
1495
+ </choice>
1496
+ </zeroOrMore>
1497
+ </element>
1498
+ </define>
1499
+ <define name="termdocsource">
1500
+ <element name="termdocsource">
1501
+ <ref name="CitationType"/>
1502
+ </element>
1503
+ </define>
514
1504
  </grammar>