asciidoctor-metanorma_sample 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/.travis.yml +13 -0
  4. data/CODE_OF_CONDUCT.md +74 -0
  5. data/Gemfile +8 -0
  6. data/LICENSE +25 -0
  7. data/README.adoc +13 -0
  8. data/Rakefile +6 -0
  9. data/asciidoctor-metanorma_sample.gemspec +46 -0
  10. data/bin/console +14 -0
  11. data/bin/rspec +18 -0
  12. data/bin/setup +8 -0
  13. data/lib/asciidoctor-sample.rb +10 -0
  14. data/lib/asciidoctor/sample.rb +9 -0
  15. data/lib/asciidoctor/sample/biblio.rng +631 -0
  16. data/lib/asciidoctor/sample/converter.rb +207 -0
  17. data/lib/asciidoctor/sample/isodoc.rng +1041 -0
  18. data/lib/asciidoctor/sample/isostandard.rng +1001 -0
  19. data/lib/asciidoctor/sample/pdf.js +31 -0
  20. data/lib/asciidoctor/sample/sample.rng +212 -0
  21. data/lib/asciidoctor/sample/version.rb +5 -0
  22. data/lib/isodoc/sample/html/header.html +184 -0
  23. data/lib/isodoc/sample/html/html_sample_intro.html +8 -0
  24. data/lib/isodoc/sample/html/html_sample_titlepage.html +106 -0
  25. data/lib/isodoc/sample/html/htmlstyle.scss +1028 -0
  26. data/lib/isodoc/sample/html/logo.jpg +0 -0
  27. data/lib/isodoc/sample/html/sample.scss +564 -0
  28. data/lib/isodoc/sample/html/scripts.html +82 -0
  29. data/lib/isodoc/sample/html/word_sample_intro.html +72 -0
  30. data/lib/isodoc/sample/html/word_sample_titlepage.html +75 -0
  31. data/lib/isodoc/sample/html/wordstyle.scss +1096 -0
  32. data/lib/isodoc/sample/html_convert.rb +198 -0
  33. data/lib/isodoc/sample/metadata.rb +85 -0
  34. data/lib/isodoc/sample/pdf_convert.rb +196 -0
  35. data/lib/isodoc/sample/word_convert.rb +155 -0
  36. data/lib/metanorma/sample.rb +7 -0
  37. data/lib/metanorma/sample/processor.rb +51 -0
  38. metadata +307 -0
@@ -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
+ </include>
685
+ <!-- end overrides -->
686
+ <!--
687
+ We display the Normative References between scope and terms; but to keep the
688
+ grammar simple, we keep the references together
689
+ -->
690
+ <define name="iso-standard">
691
+ <element name="iso-standard">
692
+ <ref name="bibdata"/>
693
+ <optional>
694
+ <ref name="version"/>
695
+ </optional>
696
+ <zeroOrMore>
697
+ <ref name="termdocsource"/>
698
+ </zeroOrMore>
699
+ <ref name="preface"/>
700
+ <oneOrMore>
701
+ <ref name="sections"/>
702
+ </oneOrMore>
703
+ <zeroOrMore>
704
+ <ref name="annex"/>
705
+ </zeroOrMore>
706
+ <ref name="bibliography"/>
707
+ </element>
708
+ </define>
709
+ <define name="preface">
710
+ <element name="preface">
711
+ <ref name="foreword"/>
712
+ <optional>
713
+ <ref name="introduction"/>
714
+ </optional>
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>