metanorma-csd 1.0.1

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.
@@ -0,0 +1,1001 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
+ <include href="isodoc.rng">
4
+ <start>
5
+ <ref name="iso-standard"/>
6
+ </start>
7
+ <define name="language">
8
+ <element name="language">
9
+ <choice>
10
+ <value>en</value>
11
+ <value>fr</value>
12
+ </choice>
13
+ </element>
14
+ </define>
15
+ <define name="script">
16
+ <element name="script">
17
+ <value>Latn</value>
18
+ </element>
19
+ </define>
20
+ <!-- add type to docidentifier in isodoc? -->
21
+ <define name="docidentifier">
22
+ <element name="docidentifier">
23
+ <choice>
24
+ <text/>
25
+ <group>
26
+ <ref name="documentnumber"/>
27
+ <optional>
28
+ <ref name="tc-documentnumber"/>
29
+ </optional>
30
+ </group>
31
+ </choice>
32
+ </element>
33
+ </define>
34
+ <define name="organization">
35
+ <element name="organization">
36
+ <ref name="orgname"/>
37
+ <optional>
38
+ <ref name="abbreviation"/>
39
+ </optional>
40
+ <optional>
41
+ <ref name="uri"/>
42
+ </optional>
43
+ <zeroOrMore>
44
+ <ref name="org-identifier"/>
45
+ </zeroOrMore>
46
+ <zeroOrMore>
47
+ <ref name="contact"/>
48
+ </zeroOrMore>
49
+ <optional>
50
+ <ref name="technical-committee"/>
51
+ </optional>
52
+ <optional>
53
+ <ref name="subcommittee"/>
54
+ </optional>
55
+ <optional>
56
+ <ref name="workgroup"/>
57
+ </optional>
58
+ <optional>
59
+ <ref name="secretariat"/>
60
+ </optional>
61
+ </element>
62
+ </define>
63
+ <define name="BibliographicItem">
64
+ <optional>
65
+ <attribute name="type">
66
+ <ref name="BibItemType"/>
67
+ </attribute>
68
+ </optional>
69
+ <choice>
70
+ <oneOrMore>
71
+ <ref name="btitle"/>
72
+ </oneOrMore>
73
+ <ref name="formattedref"/>
74
+ </choice>
75
+ <zeroOrMore>
76
+ <ref name="bsource"/>
77
+ </zeroOrMore>
78
+ <zeroOrMore>
79
+ <ref name="docidentifier"/>
80
+ </zeroOrMore>
81
+ <zeroOrMore>
82
+ <ref name="bdate"/>
83
+ </zeroOrMore>
84
+ <zeroOrMore>
85
+ <ref name="contributor"/>
86
+ </zeroOrMore>
87
+ <optional>
88
+ <ref name="edition"/>
89
+ </optional>
90
+ <zeroOrMore>
91
+ <ref name="biblionote"/>
92
+ </zeroOrMore>
93
+ <zeroOrMore>
94
+ <ref name="language"/>
95
+ </zeroOrMore>
96
+ <zeroOrMore>
97
+ <ref name="script"/>
98
+ </zeroOrMore>
99
+ <zeroOrMore>
100
+ <ref name="abstract"/>
101
+ </zeroOrMore>
102
+ <optional>
103
+ <ref name="status"/>
104
+ </optional>
105
+ <optional>
106
+ <ref name="copyright"/>
107
+ </optional>
108
+ <zeroOrMore>
109
+ <ref name="docrelation"/>
110
+ </zeroOrMore>
111
+ <optional>
112
+ <ref name="editorialgroup"/>
113
+ </optional>
114
+ <zeroOrMore>
115
+ <ref name="ics"/>
116
+ </zeroOrMore>
117
+ <optional>
118
+ <ref name="allParts"/>
119
+ </optional>
120
+ </define>
121
+ <define name="BibData">
122
+ <optional>
123
+ <attribute name="type">
124
+ <ref name="BibItemType"/>
125
+ </attribute>
126
+ </optional>
127
+ <oneOrMore>
128
+ <ref name="btitle"/>
129
+ </oneOrMore>
130
+ <optional>
131
+ <ref name="formattedref"/>
132
+ </optional>
133
+ <zeroOrMore>
134
+ <ref name="bsource"/>
135
+ </zeroOrMore>
136
+ <zeroOrMore>
137
+ <ref name="docidentifier"/>
138
+ </zeroOrMore>
139
+ <zeroOrMore>
140
+ <ref name="bdate"/>
141
+ </zeroOrMore>
142
+ <zeroOrMore>
143
+ <ref name="contributor"/>
144
+ </zeroOrMore>
145
+ <optional>
146
+ <ref name="edition"/>
147
+ </optional>
148
+ <zeroOrMore>
149
+ <ref name="biblionote"/>
150
+ </zeroOrMore>
151
+ <zeroOrMore>
152
+ <ref name="language"/>
153
+ </zeroOrMore>
154
+ <zeroOrMore>
155
+ <ref name="script"/>
156
+ </zeroOrMore>
157
+ <zeroOrMore>
158
+ <ref name="abstract"/>
159
+ </zeroOrMore>
160
+ <optional>
161
+ <ref name="status"/>
162
+ </optional>
163
+ <ref name="copyright"/>
164
+ <zeroOrMore>
165
+ <ref name="docrelation"/>
166
+ </zeroOrMore>
167
+ <ref name="editorialgroup"/>
168
+ <zeroOrMore>
169
+ <ref name="ics"/>
170
+ </zeroOrMore>
171
+ <optional>
172
+ <ref name="allParts"/>
173
+ </optional>
174
+ </define>
175
+ <define name="bdate">
176
+ <element name="date">
177
+ <attribute name="type">
178
+ <choice>
179
+ <value>published</value>
180
+ <value>accessed</value>
181
+ <value>created</value>
182
+ <value>implemented</value>
183
+ <value>obsoleted</value>
184
+ <value>confirmed</value>
185
+ <value>updated</value>
186
+ <value>issued</value>
187
+ </choice>
188
+ </attribute>
189
+ <!-- ( ( bfrom, bto? ) | date_on ) -->
190
+ <choice>
191
+ <group>
192
+ <element name="from">
193
+ <choice>
194
+ <data type="gYear"/>
195
+ <data type="date"/>
196
+ </choice>
197
+ </element>
198
+ <optional>
199
+ <element name="to">
200
+ <choice>
201
+ <data type="gYear"/>
202
+ <data type="date"/>
203
+ </choice>
204
+ </element>
205
+ </optional>
206
+ </group>
207
+ <element name="on">
208
+ <choice>
209
+ <data type="gYear"/>
210
+ <data type="date"/>
211
+ <value>--</value>
212
+ </choice>
213
+ </element>
214
+ </choice>
215
+ </element>
216
+ </define>
217
+ <define name="biblionote">
218
+ <element name="note">
219
+ <optional>
220
+ <!-- Biblio date notes can be footnoted -->
221
+ <attribute name="reference"/>
222
+ </optional>
223
+ <ref name="FormattedString"/>
224
+ </element>
225
+ </define>
226
+ <define name="status">
227
+ <element name="status">
228
+ <choice>
229
+ <ref name="FormattedString"/>
230
+ <group>
231
+ <ref name="stage"/>
232
+ <optional>
233
+ <ref name="substage"/>
234
+ </optional>
235
+ <optional>
236
+ <ref name="iteration"/>
237
+ </optional>
238
+ </group>
239
+ </choice>
240
+ </element>
241
+ </define>
242
+ <define name="btitle">
243
+ <element name="title">
244
+ <choice>
245
+ <ref name="FormattedString"/>
246
+ <group>
247
+ <optional>
248
+ <ref name="title-intro"/>
249
+ </optional>
250
+ <ref name="title-main"/>
251
+ <optional>
252
+ <ref name="title-part"/>
253
+ </optional>
254
+ </group>
255
+ </choice>
256
+ </element>
257
+ </define>
258
+ <define name="sections">
259
+ <element name="sections">
260
+ <ref name="clause"/>
261
+ <choice>
262
+ <ref name="term-clause"/>
263
+ <ref name="terms"/>
264
+ </choice>
265
+ <optional>
266
+ <ref name="definitions"/>
267
+ </optional>
268
+ <oneOrMore>
269
+ <ref name="clause"/>
270
+ </oneOrMore>
271
+ </element>
272
+ </define>
273
+ <define name="Basic-Section">
274
+ <optional>
275
+ <attribute name="id">
276
+ <data type="ID"/>
277
+ </attribute>
278
+ </optional>
279
+ <optional>
280
+ <attribute name="obligation">
281
+ <choice>
282
+ <value>normative</value>
283
+ <value>informative</value>
284
+ </choice>
285
+ </attribute>
286
+ </optional>
287
+ <optional>
288
+ <ref name="section-title"/>
289
+ </optional>
290
+ <group>
291
+ <oneOrMore>
292
+ <ref name="BasicBlock"/>
293
+ </oneOrMore>
294
+ <zeroOrMore>
295
+ <ref name="note"/>
296
+ </zeroOrMore>
297
+ </group>
298
+ </define>
299
+ <define name="Content-Section">
300
+ <optional>
301
+ <attribute name="id">
302
+ <data type="ID"/>
303
+ </attribute>
304
+ </optional>
305
+ <optional>
306
+ <attribute name="obligation">
307
+ <choice>
308
+ <value>normative</value>
309
+ <value>informative</value>
310
+ </choice>
311
+ </attribute>
312
+ </optional>
313
+ <optional>
314
+ <ref name="section-title"/>
315
+ </optional>
316
+ <choice>
317
+ <group>
318
+ <oneOrMore>
319
+ <ref name="BasicBlock"/>
320
+ </oneOrMore>
321
+ <zeroOrMore>
322
+ <ref name="note"/>
323
+ </zeroOrMore>
324
+ </group>
325
+ <oneOrMore>
326
+ <ref name="content-subsection"/>
327
+ </oneOrMore>
328
+ </choice>
329
+ </define>
330
+ <define name="Clause-Section">
331
+ <optional>
332
+ <attribute name="id">
333
+ <data type="ID"/>
334
+ </attribute>
335
+ </optional>
336
+ <optional>
337
+ <attribute name="inline-header">
338
+ <data type="boolean"/>
339
+ </attribute>
340
+ </optional>
341
+ <optional>
342
+ <attribute name="obligation">
343
+ <choice>
344
+ <value>normative</value>
345
+ <value>informative</value>
346
+ </choice>
347
+ </attribute>
348
+ </optional>
349
+ <optional>
350
+ <ref name="section-title"/>
351
+ </optional>
352
+ <choice>
353
+ <group>
354
+ <oneOrMore>
355
+ <ref name="BasicBlock"/>
356
+ </oneOrMore>
357
+ <zeroOrMore>
358
+ <ref name="note"/>
359
+ </zeroOrMore>
360
+ </group>
361
+ <oneOrMore>
362
+ <ref name="clause-subsection"/>
363
+ </oneOrMore>
364
+ </choice>
365
+ </define>
366
+ <define name="references">
367
+ <element name="references">
368
+ <optional>
369
+ <attribute name="id">
370
+ <data type="ID"/>
371
+ </attribute>
372
+ </optional>
373
+ <optional>
374
+ <attribute name="obligation">
375
+ <choice>
376
+ <value>normative</value>
377
+ <value>informative</value>
378
+ </choice>
379
+ </attribute>
380
+ </optional>
381
+ <optional>
382
+ <ref name="section-title"/>
383
+ </optional>
384
+ <zeroOrMore>
385
+ <ref name="bibitem"/>
386
+ </zeroOrMore>
387
+ <zeroOrMore>
388
+ <ref name="references"/>
389
+ </zeroOrMore>
390
+ </element>
391
+ </define>
392
+ <define name="definitions">
393
+ <element name="definitions">
394
+ <optional>
395
+ <attribute name="id">
396
+ <data type="ID"/>
397
+ </attribute>
398
+ </optional>
399
+ <optional>
400
+ <attribute name="obligation">
401
+ <choice>
402
+ <value>normative</value>
403
+ <value>informative</value>
404
+ </choice>
405
+ </attribute>
406
+ </optional>
407
+ <ref name="dl"/>
408
+ </element>
409
+ </define>
410
+ <define name="terms">
411
+ <element name="terms">
412
+ <optional>
413
+ <attribute name="id">
414
+ <data type="ID"/>
415
+ </attribute>
416
+ </optional>
417
+ <optional>
418
+ <attribute name="obligation">
419
+ <choice>
420
+ <value>normative</value>
421
+ <value>informative</value>
422
+ </choice>
423
+ </attribute>
424
+ </optional>
425
+ <optional>
426
+ <ref name="section-title"/>
427
+ </optional>
428
+ <choice>
429
+ <oneOrMore>
430
+ <ref name="term"/>
431
+ </oneOrMore>
432
+ <group>
433
+ <zeroOrMore>
434
+ <ref name="terms"/>
435
+ </zeroOrMore>
436
+ <optional>
437
+ <ref name="definitions"/>
438
+ </optional>
439
+ </group>
440
+ </choice>
441
+ </element>
442
+ </define>
443
+ <define name="term">
444
+ <element name="term">
445
+ <optional>
446
+ <attribute name="id">
447
+ <data type="ID"/>
448
+ </attribute>
449
+ </optional>
450
+ <ref name="preferred"/>
451
+ <zeroOrMore>
452
+ <ref name="admitted"/>
453
+ </zeroOrMore>
454
+ <zeroOrMore>
455
+ <ref name="deprecates"/>
456
+ </zeroOrMore>
457
+ <optional>
458
+ <ref name="termdomain"/>
459
+ </optional>
460
+ <ref name="definition"/>
461
+ <zeroOrMore>
462
+ <ref name="termnote"/>
463
+ </zeroOrMore>
464
+ <zeroOrMore>
465
+ <ref name="termexample"/>
466
+ </zeroOrMore>
467
+ <zeroOrMore>
468
+ <ref name="termsource"/>
469
+ </zeroOrMore>
470
+ </element>
471
+ </define>
472
+ <define name="definition">
473
+ <element name="definition">
474
+ <oneOrMore>
475
+ <choice>
476
+ <ref name="paragraph"/>
477
+ <ref name="figure"/>
478
+ <ref name="formula"/>
479
+ </choice>
480
+ </oneOrMore>
481
+ </element>
482
+ </define>
483
+ <define name="annex">
484
+ <element name="annex">
485
+ <optional>
486
+ <attribute name="id">
487
+ <data type="ID"/>
488
+ </attribute>
489
+ </optional>
490
+ <optional>
491
+ <attribute name="inline-header">
492
+ <data type="boolean"/>
493
+ </attribute>
494
+ </optional>
495
+ <optional>
496
+ <attribute name="obligation">
497
+ <choice>
498
+ <value>normative</value>
499
+ <value>informative</value>
500
+ </choice>
501
+ </attribute>
502
+ </optional>
503
+ <optional>
504
+ <ref name="section-title"/>
505
+ </optional>
506
+ <zeroOrMore>
507
+ <!--
508
+ allow hanging paragraps in annexes: they introduce lists
509
+ ( paragraph-with-footnote | table | note | formula | admonition | ol | ul | dl | figure | quote | sourcecode | review | example )*,
510
+ -->
511
+ <ref name="BasicBlock"/>
512
+ </zeroOrMore>
513
+ <zeroOrMore>
514
+ <ref name="note"/>
515
+ </zeroOrMore>
516
+ <zeroOrMore>
517
+ <ref name="clause-hanging-paragraph-with-footnote"/>
518
+ </zeroOrMore>
519
+ <zeroOrMore>
520
+ <ref name="annex-appendix"/>
521
+ </zeroOrMore>
522
+ </element>
523
+ </define>
524
+ <define name="figure">
525
+ <element name="figure">
526
+ <attribute name="id">
527
+ <data type="ID"/>
528
+ </attribute>
529
+ <optional>
530
+ <ref name="tname"/>
531
+ </optional>
532
+ <choice>
533
+ <ref name="image"/>
534
+ <oneOrMore>
535
+ <ref name="subfigure"/>
536
+ </oneOrMore>
537
+ </choice>
538
+ <zeroOrMore>
539
+ <ref name="fn"/>
540
+ </zeroOrMore>
541
+ <optional>
542
+ <ref name="dl"/>
543
+ </optional>
544
+ <zeroOrMore>
545
+ <ref name="note"/>
546
+ </zeroOrMore>
547
+ </element>
548
+ </define>
549
+ <define name="li">
550
+ <element name="li">
551
+ <oneOrMore>
552
+ <!-- ( paragraph-with-footnote | table | note | formula | admonition | ol | ul | dl | quote | sourcecode | review | example )+ -->
553
+ <ref name="BasicBlock"/>
554
+ </oneOrMore>
555
+ <!-- exclude figures? -->
556
+ </element>
557
+ </define>
558
+ <define name="dd">
559
+ <element name="dd">
560
+ <zeroOrMore>
561
+ <!--
562
+ ( paragraph-with-footnote | table | note | formula | admonition | ol | ul | dl | quote | sourcecode | review | example )*
563
+ exclude figures?
564
+ -->
565
+ <ref name="BasicBlock"/>
566
+ </zeroOrMore>
567
+ </element>
568
+ </define>
569
+ <define name="admonition">
570
+ <element name="admonition">
571
+ <attribute name="id">
572
+ <data type="ID"/>
573
+ </attribute>
574
+ <attribute name="type">
575
+ <choice>
576
+ <value>danger</value>
577
+ <value>caution</value>
578
+ <value>warning</value>
579
+ <value>important</value>
580
+ <value>safety precautions</value>
581
+ </choice>
582
+ </attribute>
583
+ <oneOrMore>
584
+ <ref name="paragraph-with-footnote"/>
585
+ </oneOrMore>
586
+ <zeroOrMore>
587
+ <ref name="note"/>
588
+ </zeroOrMore>
589
+ </element>
590
+ </define>
591
+ <define name="xref">
592
+ <element name="xref">
593
+ <attribute name="target">
594
+ <data type="IDREF"/>
595
+ </attribute>
596
+ <text/>
597
+ </element>
598
+ </define>
599
+ <define name="hyperlink">
600
+ <element name="link">
601
+ <attribute name="target">
602
+ <data type="anyURI"/>
603
+ </attribute>
604
+ <text/>
605
+ </element>
606
+ </define>
607
+ <define name="thead">
608
+ <element name="thead">
609
+ <oneOrMore>
610
+ <ref name="tr"/>
611
+ </oneOrMore>
612
+ </element>
613
+ </define>
614
+ <define name="td">
615
+ <element name="td">
616
+ <optional>
617
+ <attribute name="colspan"/>
618
+ </optional>
619
+ <optional>
620
+ <attribute name="rowspan"/>
621
+ </optional>
622
+ <optional>
623
+ <attribute name="align">
624
+ <choice>
625
+ <value>left</value>
626
+ <value>right</value>
627
+ <value>center</value>
628
+ </choice>
629
+ </attribute>
630
+ </optional>
631
+ <choice>
632
+ <zeroOrMore>
633
+ <choice>
634
+ <ref name="TextElement"/>
635
+ <ref name="fn"/>
636
+ </choice>
637
+ </zeroOrMore>
638
+ <oneOrMore>
639
+ <ref name="paragraph-with-footnote"/>
640
+ </oneOrMore>
641
+ </choice>
642
+ </element>
643
+ </define>
644
+ <define name="th">
645
+ <element name="th">
646
+ <optional>
647
+ <attribute name="colspan"/>
648
+ </optional>
649
+ <optional>
650
+ <attribute name="rowspan"/>
651
+ </optional>
652
+ <optional>
653
+ <attribute name="align">
654
+ <choice>
655
+ <value>left</value>
656
+ <value>right</value>
657
+ <value>center</value>
658
+ </choice>
659
+ </attribute>
660
+ </optional>
661
+ <choice>
662
+ <zeroOrMore>
663
+ <choice>
664
+ <ref name="TextElement"/>
665
+ <ref name="fn"/>
666
+ </choice>
667
+ </zeroOrMore>
668
+ <oneOrMore>
669
+ <ref name="paragraph-with-footnote"/>
670
+ </oneOrMore>
671
+ </choice>
672
+ </element>
673
+ </define>
674
+ <define name="table-note">
675
+ <element name="note">
676
+ <optional>
677
+ <attribute name="id">
678
+ <data type="ID"/>
679
+ </attribute>
680
+ </optional>
681
+ <ref name="paragraph"/>
682
+ </element>
683
+ </define>
684
+ <define name="preface">
685
+ <element name="preface">
686
+ <ref name="foreword"/>
687
+ <optional>
688
+ <ref name="introduction"/>
689
+ </optional>
690
+ </element>
691
+ </define>
692
+ </include>
693
+ <!-- end overrides -->
694
+ <!--
695
+ We display the Normative References between scope and terms; but to keep the
696
+ grammar simple, we keep the references together
697
+ -->
698
+ <define name="iso-standard">
699
+ <element name="iso-standard">
700
+ <ref name="bibdata"/>
701
+ <optional>
702
+ <ref name="version"/>
703
+ </optional>
704
+ <zeroOrMore>
705
+ <ref name="termdocsource"/>
706
+ </zeroOrMore>
707
+ <ref name="preface"/>
708
+ <oneOrMore>
709
+ <ref name="sections"/>
710
+ </oneOrMore>
711
+ <zeroOrMore>
712
+ <ref name="annex"/>
713
+ </zeroOrMore>
714
+ <ref name="bibliography"/>
715
+ </element>
716
+ </define>
717
+ <define name="bibliography">
718
+ <element name="bibliography">
719
+ <oneOrMore>
720
+ <choice>
721
+ <ref name="references"/>
722
+ <ref name="reference-clause"/>
723
+ </choice>
724
+ </oneOrMore>
725
+ </element>
726
+ </define>
727
+ <define name="BibItemType" combine="choice">
728
+ <choice>
729
+ <value>international-standard</value>
730
+ <value>technical-specification</value>
731
+ <value>technical-report</value>
732
+ <value>publicly-available-specification</value>
733
+ <value>international-workshop-agreement</value>
734
+ <value>guide</value>
735
+ </choice>
736
+ </define>
737
+ <define name="editorialgroup">
738
+ <element name="editorialgroup">
739
+ <ref name="technical-committee"/>
740
+ <optional>
741
+ <ref name="subcommittee"/>
742
+ </optional>
743
+ <optional>
744
+ <ref name="workgroup"/>
745
+ </optional>
746
+ <optional>
747
+ <ref name="secretariat"/>
748
+ </optional>
749
+ </element>
750
+ </define>
751
+ <define name="foreword">
752
+ <element name="foreword">
753
+ <ref name="Basic-Section"/>
754
+ </element>
755
+ </define>
756
+ <define name="introduction">
757
+ <element name="introduction">
758
+ <ref name="Content-Section"/>
759
+ </element>
760
+ </define>
761
+ <define name="stage">
762
+ <element name="stage">
763
+ <choice>
764
+ <value>00</value>
765
+ <value>10</value>
766
+ <value>20</value>
767
+ <value>30</value>
768
+ <value>40</value>
769
+ <value>50</value>
770
+ <value>60</value>
771
+ <value>90</value>
772
+ <value>95</value>
773
+ </choice>
774
+ </element>
775
+ </define>
776
+ <define name="substage">
777
+ <element name="substage">
778
+ <choice>
779
+ <value>00</value>
780
+ <value>20</value>
781
+ <value>60</value>
782
+ <value>90</value>
783
+ <value>92</value>
784
+ <value>93</value>
785
+ <value>98</value>
786
+ <value>99</value>
787
+ </choice>
788
+ </element>
789
+ </define>
790
+ <define name="iteration">
791
+ <element name="iteration">
792
+ <data type="int"/>
793
+ </element>
794
+ </define>
795
+ <define name="documentnumber">
796
+ <element name="project-number">
797
+ <optional>
798
+ <attribute name="part">
799
+ <data type="int"/>
800
+ </attribute>
801
+ </optional>
802
+ <optional>
803
+ <attribute name="subpart">
804
+ <data type="int"/>
805
+ </attribute>
806
+ </optional>
807
+ <text/>
808
+ </element>
809
+ </define>
810
+ <define name="tc-documentnumber">
811
+ <element name="tc-document-number">
812
+ <data type="int"/>
813
+ </element>
814
+ </define>
815
+ <define name="technical-committee">
816
+ <element name="technical-committee">
817
+ <ref name="IsoWorkgroup"/>
818
+ </element>
819
+ </define>
820
+ <define name="subcommittee">
821
+ <element name="subcommittee">
822
+ <ref name="IsoWorkgroup"/>
823
+ </element>
824
+ </define>
825
+ <define name="workgroup">
826
+ <element name="workgroup">
827
+ <ref name="IsoWorkgroup"/>
828
+ </element>
829
+ </define>
830
+ <define name="IsoWorkgroup">
831
+ <optional>
832
+ <attribute name="number">
833
+ <data type="int"/>
834
+ </attribute>
835
+ </optional>
836
+ <optional>
837
+ <attribute name="type"/>
838
+ </optional>
839
+ <text/>
840
+ </define>
841
+ <define name="secretariat">
842
+ <element name="secretariat">
843
+ <text/>
844
+ </element>
845
+ </define>
846
+ <define name="title-intro">
847
+ <element name="title-intro">
848
+ <ref name="FormattedString"/>
849
+ </element>
850
+ </define>
851
+ <define name="title-main">
852
+ <element name="title-main">
853
+ <ref name="FormattedString"/>
854
+ </element>
855
+ </define>
856
+ <define name="title-part">
857
+ <element name="title-part">
858
+ <ref name="FormattedString"/>
859
+ </element>
860
+ </define>
861
+ <define name="allParts">
862
+ <element name="allParts">
863
+ <data type="boolean"/>
864
+ </element>
865
+ </define>
866
+ <define name="clause-hanging-paragraph-with-footnote">
867
+ <element name="clause">
868
+ <optional>
869
+ <attribute name="id">
870
+ <data type="ID"/>
871
+ </attribute>
872
+ </optional>
873
+ <optional>
874
+ <attribute name="inline-header">
875
+ <data type="boolean"/>
876
+ </attribute>
877
+ </optional>
878
+ <optional>
879
+ <attribute name="obligation">
880
+ <choice>
881
+ <value>normative</value>
882
+ <value>informative</value>
883
+ </choice>
884
+ </attribute>
885
+ </optional>
886
+ <optional>
887
+ <ref name="section-title"/>
888
+ </optional>
889
+ <zeroOrMore>
890
+ <!-- allow hanging paragraphs in annexes: they introduce lists -->
891
+ <ref name="BasicBlock"/>
892
+ </zeroOrMore>
893
+ <zeroOrMore>
894
+ <ref name="note"/>
895
+ </zeroOrMore>
896
+ <zeroOrMore>
897
+ <ref name="clause-hanging-paragraph-with-footnote"/>
898
+ </zeroOrMore>
899
+ </element>
900
+ </define>
901
+ <define name="subfigure">
902
+ <element name="figure">
903
+ <attribute name="id">
904
+ <data type="ID"/>
905
+ </attribute>
906
+ <optional>
907
+ <ref name="tname"/>
908
+ </optional>
909
+ <ref name="image"/>
910
+ </element>
911
+ </define>
912
+ <define name="termdocsource">
913
+ <element name="termdocsource">
914
+ <ref name="CitationType"/>
915
+ </element>
916
+ </define>
917
+ <define name="ics">
918
+ <element name="ics">
919
+ <element name="code">
920
+ <text/>
921
+ </element>
922
+ <element name="text">
923
+ <text/>
924
+ </element>
925
+ </element>
926
+ </define>
927
+ <define name="term-clause">
928
+ <element name="clause">
929
+ <optional>
930
+ <attribute name="id">
931
+ <data type="ID"/>
932
+ </attribute>
933
+ </optional>
934
+ <optional>
935
+ <attribute name="inline-header">
936
+ <data type="boolean"/>
937
+ </attribute>
938
+ </optional>
939
+ <optional>
940
+ <attribute name="obligation">
941
+ <choice>
942
+ <value>normative</value>
943
+ <value>informative</value>
944
+ </choice>
945
+ </attribute>
946
+ </optional>
947
+ <optional>
948
+ <ref name="section-title"/>
949
+ </optional>
950
+ <choice>
951
+ <oneOrMore>
952
+ <ref name="term-clause"/>
953
+ </oneOrMore>
954
+ <zeroOrMore>
955
+ <choice>
956
+ <ref name="terms"/>
957
+ <ref name="definitions"/>
958
+ </choice>
959
+ </zeroOrMore>
960
+ </choice>
961
+ </element>
962
+ </define>
963
+ <define name="reference-clause">
964
+ <element name="clause">
965
+ <optional>
966
+ <attribute name="id">
967
+ <data type="ID"/>
968
+ </attribute>
969
+ </optional>
970
+ <optional>
971
+ <attribute name="inline-header">
972
+ <data type="boolean"/>
973
+ </attribute>
974
+ </optional>
975
+ <optional>
976
+ <attribute name="obligation">
977
+ <choice>
978
+ <value>normative</value>
979
+ <value>informative</value>
980
+ </choice>
981
+ </attribute>
982
+ </optional>
983
+ <optional>
984
+ <ref name="section-title"/>
985
+ </optional>
986
+ <choice>
987
+ <oneOrMore>
988
+ <ref name="reference-clause"/>
989
+ </oneOrMore>
990
+ <zeroOrMore>
991
+ <ref name="references"/>
992
+ </zeroOrMore>
993
+ </choice>
994
+ </element>
995
+ </define>
996
+ <define name="annex-appendix">
997
+ <element name="appendix">
998
+ <ref name="Clause-Section"/>
999
+ </element>
1000
+ </define>
1001
+ </grammar>