metanorma-itu 1.0.0 → 1.0.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a01b41f5c9f8d50fb914d13b31886549d419b83e8d034c0ca4e5d9e994761432
4
- data.tar.gz: e800c96be0ffd2c15c1843a2f40a43b794db520d7ce4f49eb00bab5ad83f3598
3
+ metadata.gz: 8428b24638465674a0d1f8293c70b9d2f366a8f53f0e9d2946e4a2c5b00541db
4
+ data.tar.gz: 6b31cb5abca3974cdb4ce3ffef0a15e44b60d3607e1ad52b1a19a9f4d2314c44
5
5
  SHA512:
6
- metadata.gz: e3c84c117a175f638dc17acd752d9fa6009e0d211b7b2c36490c53f4d6325515ec901790266ad3f3222d20a0f47a9c2cf899b0d90fa9c395f3e5c31b546d3d91
7
- data.tar.gz: 8b72c08d2ff1bd1933c1bb0227d99768b202f2671d217b556e39de208f67d112f09c1ebba12d4f90699ecc3be02c04e384aae470687c235b24a1b8a711e66b33
6
+ metadata.gz: 2444ab1721eb5243c81bb02dc1e734325e98ad0851eb21783ee6dc19b378364bebf3c933d5c6a88bd055d8815b6d9361e0464e17d87e00babd25191d0e900cdb
7
+ data.tar.gz: 1e19bd8c35cf2accb986c7d6f1f9367a4a4064f81cf496e83b73a148ffc9a4b8bb02ac1d7490c2507b6b80330a73916204551c07897b660ca438ba86751054b9
@@ -2,13 +2,18 @@
2
2
  # use ci-master https://github.com/metanorma/metanorma-build-scripts
3
3
  name: macos
4
4
 
5
- on: [push]
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
9
+ branches: [ '**' ]
6
10
 
7
11
  jobs:
8
12
  test-macos:
9
13
  name: Test on Ruby ${{ matrix.ruby }} macOS
10
14
  runs-on: macos-latest
11
15
  strategy:
16
+ fail-fast: false
12
17
  matrix:
13
18
  ruby: [ '2.6', '2.5', '2.4' ]
14
19
  steps:
@@ -20,7 +25,7 @@ jobs:
20
25
  architecture: 'x64'
21
26
  - name: Update gems
22
27
  run: |
23
- sudo gem install bundler -v "~> 2" --force
28
+ sudo gem install bundler --force
24
29
  bundle install --jobs 4 --retry 3
25
30
  - name: Use Node
26
31
  uses: actions/setup-node@v1
@@ -2,13 +2,18 @@
2
2
  # use ci-master https://github.com/metanorma/metanorma-build-scripts
3
3
  name: ubuntu
4
4
 
5
- on: [push]
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
9
+ branches: [ '**' ]
6
10
 
7
11
  jobs:
8
12
  test-linux:
9
13
  name: Test on Ruby ${{ matrix.ruby }} Ubuntu
10
14
  runs-on: ubuntu-latest
11
15
  strategy:
16
+ fail-fast: false
12
17
  matrix:
13
18
  ruby: [ '2.6', '2.5', '2.4' ]
14
19
  steps:
@@ -20,7 +25,7 @@ jobs:
20
25
  architecture: 'x64'
21
26
  - name: Update gems
22
27
  run: |
23
- gem install bundler -v "~> 2"
28
+ gem install bundler
24
29
  bundle install --jobs 4 --retry 3
25
30
  - name: Use Node
26
31
  uses: actions/setup-node@v1
@@ -2,13 +2,18 @@
2
2
  # use ci-master https://github.com/metanorma/metanorma-build-scripts
3
3
  name: windows
4
4
 
5
- on: [push]
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
9
+ branches: [ '**' ]
6
10
 
7
11
  jobs:
8
12
  test-windows:
9
13
  name: Test on Ruby ${{ matrix.ruby }} Windows
10
14
  runs-on: windows-latest
11
15
  strategy:
16
+ fail-fast: false
12
17
  matrix:
13
18
  ruby: [ '2.6', '2.5', '2.4' ]
14
19
  steps:
@@ -21,7 +26,7 @@ jobs:
21
26
  - name: Update gems
22
27
  shell: pwsh
23
28
  run: |
24
- gem install bundler -v "~> 2"
29
+ gem install bundler
25
30
  bundle config --local path vendor/bundle
26
31
  bundle update
27
32
  bundle install --jobs 4 --retry 3
@@ -66,7 +66,6 @@ See https://www.metanorma.com/author/itu/[Write ITU-T documents with Metanorma].
66
66
 
67
67
  == Examples
68
68
 
69
- * link:spec/examples/rfc6350.adoc[] is an Metanorma Asciidoctor version of https://tools.ietf.org/html/rfc6350[RFC 6350].
70
- * link:spec/examples/rfc6350.html[] is an HTML file generated from the Asciidoctor.
71
- * link:spec/examples/rfc6350.doc[] is a Word document generated from the Asciidoctor.
69
+ * Example documents are avalable at the https://github.com/metanorma/mn-samples-itu[mn-samples-itu] repository.
70
+ * Document templates are available at the https://github.com/metanorma/mn-templates-itu[mn-templates-itu] repository.
72
71
 
@@ -52,11 +52,8 @@
52
52
  <optional>
53
53
  <ref name="section-title"/>
54
54
  </optional>
55
- <optional>
56
- <ref name="BasicBlock"/>
57
- </optional>
58
55
  <zeroOrMore>
59
- <ref name="note"/>
56
+ <ref name="BasicBlock"/>
60
57
  </zeroOrMore>
61
58
  </define>
62
59
  <define name="references">
@@ -99,6 +96,10 @@
99
96
  <ref name="example"/>
100
97
  <ref name="review"/>
101
98
  <ref name="pre"/>
99
+ <ref name="note"/>
100
+ <ref name="pagebreak"/>
101
+ <ref name="hr"/>
102
+ <ref name="bookmark"/>
102
103
  </choice>
103
104
  </define>
104
105
  <define name="paragraph">
@@ -284,6 +285,9 @@
284
285
  <attribute name="id">
285
286
  <data type="ID"/>
286
287
  </attribute>
288
+ <optional>
289
+ <attribute name="alt"/>
290
+ </optional>
287
291
  <optional>
288
292
  <ref name="tname"/>
289
293
  </optional>
@@ -338,7 +342,14 @@
338
342
  <define name="tname">
339
343
  <element name="name">
340
344
  <oneOrMore>
341
- <ref name="PureTextElement"/>
345
+ <choice>
346
+ <ref name="PureTextElement"/>
347
+ <ref name="eref"/>
348
+ <ref name="stem"/>
349
+ <ref name="keyword"/>
350
+ <ref name="xref"/>
351
+ <ref name="hyperlink"/>
352
+ </choice>
342
353
  </oneOrMore>
343
354
  </element>
344
355
  </define>
@@ -564,6 +575,7 @@
564
575
  <ref name="pagebreak"/>
565
576
  <ref name="bookmark"/>
566
577
  <ref name="image"/>
578
+ <ref name="index"/>
567
579
  </choice>
568
580
  </define>
569
581
  <define name="PureTextElement">
@@ -588,14 +600,20 @@
588
600
  <define name="em">
589
601
  <element name="em">
590
602
  <zeroOrMore>
591
- <ref name="PureTextElement"/>
603
+ <choice>
604
+ <ref name="PureTextElement"/>
605
+ <ref name="stem"/>
606
+ </choice>
592
607
  </zeroOrMore>
593
608
  </element>
594
609
  </define>
595
610
  <define name="strong">
596
611
  <element name="strong">
597
612
  <zeroOrMore>
598
- <ref name="PureTextElement"/>
613
+ <choice>
614
+ <ref name="PureTextElement"/>
615
+ <ref name="stem"/>
616
+ </choice>
599
617
  </zeroOrMore>
600
618
  </element>
601
619
  </define>
@@ -688,6 +706,17 @@
688
706
  <empty/>
689
707
  </element>
690
708
  </define>
709
+ <define name="index">
710
+ <element name="index">
711
+ <attribute name="primary"/>
712
+ <optional>
713
+ <attribute name="secondary"/>
714
+ </optional>
715
+ <optional>
716
+ <attribute name="tertiary"/>
717
+ </optional>
718
+ </element>
719
+ </define>
691
720
  <!-- bare ID element, used for referencing arbitrary spans of text -->
692
721
  <define name="bookmark">
693
722
  <element name="bookmark">
@@ -278,10 +278,12 @@
278
278
  </define>
279
279
  <define name="organization">
280
280
  <element name="organization">
281
- <ref name="orgname"/>
282
- <optional>
281
+ <oneOrMore>
282
+ <ref name="orgname"/>
283
+ </oneOrMore>
284
+ <zeroOrMore>
283
285
  <ref name="subdivision"/>
284
- </optional>
286
+ </zeroOrMore>
285
287
  <optional>
286
288
  <ref name="abbreviation"/>
287
289
  </optional>
@@ -357,6 +359,9 @@
357
359
  </define>
358
360
  <define name="phone">
359
361
  <element name="phone">
362
+ <optional>
363
+ <attribute name="type"/>
364
+ </optional>
360
365
  <text/>
361
366
  </element>
362
367
  </define>
@@ -633,9 +638,9 @@
633
638
  <zeroOrMore>
634
639
  <ref name="license"/>
635
640
  </zeroOrMore>
636
- <optional>
641
+ <zeroOrMore>
637
642
  <ref name="bclassification"/>
638
- </optional>
643
+ </zeroOrMore>
639
644
  <zeroOrMore>
640
645
  <ref name="bkeyword"/>
641
646
  </zeroOrMore>
@@ -1024,6 +1029,8 @@
1024
1029
  <value>correctedBy</value>
1025
1030
  <value>revises</value>
1026
1031
  <value>revisedBy</value>
1032
+ <value>describes</value>
1033
+ <value>describedBy</value>
1027
1034
  </choice>
1028
1035
  </define>
1029
1036
  <define name="docrelation">
@@ -88,6 +88,31 @@ module Asciidoctor
88
88
  biblio_reorder1(r)
89
89
  end
90
90
  end
91
+
92
+ def boilerplate_cleanup(xmldoc)
93
+ super
94
+ initial_boilerplate(xmldoc)
95
+ end
96
+
97
+ def initial_boilerplate(x)
98
+ return if x.at("//boilerplate")
99
+ preface = x.at("//preface") || x.at("//sections") || x.at("//annex") ||
100
+ x.at("//references") || return
101
+ preface.previous = boilerplate(x)
102
+ end
103
+
104
+ def boilerplate(x_orig)
105
+ x = x_orig.dup
106
+ # TODO variable
107
+ x.root.add_namespace(nil, Metanorma::ITU::DOCUMENT_NAMESPACE)
108
+ x = Nokogiri::XML(x.to_xml)
109
+ conv = IsoDoc::ITU::HtmlConvert.new({})
110
+ conv.metadata_init("en", "Latn", {})
111
+ conv.info(x, nil)
112
+ file = @boilerplateauthority ? "#{@localdir}/#{@boilerplateauthority}" :
113
+ File.join(File.dirname(__FILE__), "itu_intro.xml")
114
+ conv.populate_template((File.read(file, encoding: "UTF-8")), nil)
115
+ end
91
116
  end
92
117
  end
93
118
  end
@@ -43,7 +43,9 @@ module Asciidoctor
43
43
  end
44
44
 
45
45
  def doctype(node)
46
- node.attr("doctype") || "recommendation"
46
+ ret = node.attr("doctype") || "recommendation"
47
+ ret = "recommendation" if ret == "article"
48
+ ret
47
49
  end
48
50
 
49
51
  def olist(node)
@@ -24,8 +24,79 @@
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
+ <text/>
57
+ </element>
58
+ </define>
59
+ <define name="example">
60
+ <element name="example">
61
+ <attribute name="id">
62
+ <data type="ID"/>
63
+ </attribute>
64
+ <optional>
65
+ <attribute name="unnumbered">
66
+ <data type="boolean"/>
67
+ </attribute>
68
+ </optional>
69
+ <optional>
70
+ <attribute name="subsequence"/>
71
+ </optional>
72
+ <optional>
73
+ <ref name="tname"/>
74
+ </optional>
75
+ <oneOrMore>
76
+ <choice>
77
+ <ref name="formula"/>
78
+ <ref name="ul"/>
79
+ <ref name="ol"/>
80
+ <ref name="dl"/>
81
+ <ref name="quote"/>
82
+ <ref name="sourcecode"/>
83
+ <ref name="paragraph-with-footnote"/>
84
+ <ref name="figure"/>
85
+ </choice>
86
+ </oneOrMore>
87
+ <zeroOrMore>
88
+ <ref name="note"/>
89
+ </zeroOrMore>
90
+ </element>
91
+ </define>
27
92
  <define name="BibDataExtensionType">
28
93
  <ref name="doctype"/>
94
+ <optional>
95
+ <ref name="editorialgroup"/>
96
+ </optional>
97
+ <zeroOrMore>
98
+ <ref name="ics"/>
99
+ </zeroOrMore>
29
100
  <zeroOrMore>
30
101
  <ref name="structuredidentifier"/>
31
102
  </zeroOrMore>
@@ -39,6 +110,7 @@
39
110
  <choice>
40
111
  <ref name="clause"/>
41
112
  <ref name="terms"/>
113
+ <ref name="term-clause"/>
42
114
  <ref name="definitions"/>
43
115
  </choice>
44
116
  </oneOrMore>
@@ -51,21 +123,285 @@
51
123
  <data type="ID"/>
52
124
  </attribute>
53
125
  </optional>
126
+ <optional>
127
+ <attribute name="obligation">
128
+ <choice>
129
+ <value>normative</value>
130
+ <value>informative</value>
131
+ </choice>
132
+ </attribute>
133
+ </optional>
54
134
  <optional>
55
135
  <ref name="section-title"/>
56
136
  </optional>
57
137
  <zeroOrMore>
58
138
  <ref name="BasicBlock"/>
59
139
  </zeroOrMore>
140
+ <zeroOrMore>
141
+ <ref name="note"/>
142
+ </zeroOrMore>
60
143
  <zeroOrMore>
61
144
  <ref name="bibitem"/>
62
145
  <zeroOrMore>
63
146
  <ref name="note"/>
64
147
  </zeroOrMore>
65
148
  </zeroOrMore>
149
+ <zeroOrMore>
150
+ <ref name="references"/>
151
+ </zeroOrMore>
152
+ </element>
153
+ </define>
154
+ <define name="note">
155
+ <element name="note">
156
+ <attribute name="id">
157
+ <data type="ID"/>
158
+ </attribute>
159
+ <oneOrMore>
160
+ <choice>
161
+ <ref name="paragraph"/>
162
+ <ref name="ul"/>
163
+ <ref name="ol"/>
164
+ <ref name="dl"/>
165
+ <ref name="formula"/>
166
+ </choice>
167
+ </oneOrMore>
168
+ </element>
169
+ </define>
170
+ <define name="Basic-Section">
171
+ <optional>
172
+ <attribute name="id">
173
+ <data type="ID"/>
174
+ </attribute>
175
+ </optional>
176
+ <optional>
177
+ <attribute name="language"/>
178
+ </optional>
179
+ <optional>
180
+ <attribute name="script"/>
181
+ </optional>
182
+ <optional>
183
+ <attribute name="obligation">
184
+ <choice>
185
+ <value>normative</value>
186
+ <value>informative</value>
187
+ </choice>
188
+ </attribute>
189
+ </optional>
190
+ <optional>
191
+ <ref name="section-title"/>
192
+ </optional>
193
+ <group>
194
+ <oneOrMore>
195
+ <ref name="BasicBlock"/>
196
+ </oneOrMore>
197
+ <zeroOrMore>
198
+ <ref name="note"/>
199
+ </zeroOrMore>
200
+ </group>
201
+ </define>
202
+ <define name="li">
203
+ <element name="li">
204
+ <group>
205
+ <optional>
206
+ <attribute name="id">
207
+ <data type="ID"/>
208
+ </attribute>
209
+ </optional>
210
+ <oneOrMore>
211
+ <ref name="BasicBlock"/>
212
+ </oneOrMore>
213
+ </group>
214
+ <!-- exclude figures? -->
215
+ </element>
216
+ </define>
217
+ <define name="dd">
218
+ <element name="dd">
219
+ <zeroOrMore>
220
+ <!-- exclude figures? -->
221
+ <ref name="BasicBlock"/>
222
+ </zeroOrMore>
223
+ </element>
224
+ </define>
225
+ <define name="thead">
226
+ <element name="thead">
227
+ <oneOrMore>
228
+ <ref name="tr"/>
229
+ </oneOrMore>
230
+ </element>
231
+ </define>
232
+ <define name="td">
233
+ <element name="td">
234
+ <optional>
235
+ <attribute name="colspan"/>
236
+ </optional>
237
+ <optional>
238
+ <attribute name="rowspan"/>
239
+ </optional>
240
+ <optional>
241
+ <attribute name="align">
242
+ <choice>
243
+ <value>left</value>
244
+ <value>right</value>
245
+ <value>center</value>
246
+ </choice>
247
+ </attribute>
248
+ </optional>
249
+ <choice>
250
+ <zeroOrMore>
251
+ <choice>
252
+ <ref name="TextElement"/>
253
+ <ref name="fn"/>
254
+ </choice>
255
+ </zeroOrMore>
256
+ <oneOrMore>
257
+ <choice>
258
+ <ref name="paragraph-with-footnote"/>
259
+ <ref name="dl"/>
260
+ <ref name="ul"/>
261
+ <ref name="ol"/>
262
+ <ref name="figure"/>
263
+ </choice>
264
+ </oneOrMore>
265
+ </choice>
266
+ </element>
267
+ </define>
268
+ <define name="th">
269
+ <element name="th">
270
+ <optional>
271
+ <attribute name="colspan"/>
272
+ </optional>
273
+ <optional>
274
+ <attribute name="rowspan"/>
275
+ </optional>
276
+ <optional>
277
+ <attribute name="align">
278
+ <choice>
279
+ <value>left</value>
280
+ <value>right</value>
281
+ <value>center</value>
282
+ </choice>
283
+ </attribute>
284
+ </optional>
285
+ <choice>
286
+ <zeroOrMore>
287
+ <choice>
288
+ <ref name="TextElement"/>
289
+ <ref name="fn"/>
290
+ </choice>
291
+ </zeroOrMore>
292
+ <oneOrMore>
293
+ <ref name="paragraph-with-footnote"/>
294
+ </oneOrMore>
295
+ </choice>
296
+ </element>
297
+ </define>
298
+ <define name="table-note">
299
+ <element name="note">
300
+ <optional>
301
+ <attribute name="id">
302
+ <data type="ID"/>
303
+ </attribute>
304
+ </optional>
305
+ <ref name="paragraph"/>
66
306
  </element>
67
307
  </define>
68
308
  </include>
309
+ <!-- end overrides -->
310
+ <define name="BasicBlock" combine="choice">
311
+ <choice>
312
+ <ref name="requirement"/>
313
+ <ref name="recommendation"/>
314
+ <ref name="permission"/>
315
+ </choice>
316
+ </define>
317
+ <define name="bibliography">
318
+ <element name="bibliography">
319
+ <oneOrMore>
320
+ <choice>
321
+ <ref name="references"/>
322
+ <ref name="reference-clause"/>
323
+ </choice>
324
+ </oneOrMore>
325
+ </element>
326
+ </define>
327
+ <define name="reference-clause">
328
+ <element name="clause">
329
+ <optional>
330
+ <attribute name="id">
331
+ <data type="ID"/>
332
+ </attribute>
333
+ </optional>
334
+ <optional>
335
+ <attribute name="language"/>
336
+ </optional>
337
+ <optional>
338
+ <attribute name="script"/>
339
+ </optional>
340
+ <optional>
341
+ <attribute name="inline-header">
342
+ <data type="boolean"/>
343
+ </attribute>
344
+ </optional>
345
+ <optional>
346
+ <attribute name="obligation">
347
+ <choice>
348
+ <value>normative</value>
349
+ <value>informative</value>
350
+ </choice>
351
+ </attribute>
352
+ </optional>
353
+ <optional>
354
+ <ref name="section-title"/>
355
+ </optional>
356
+ <zeroOrMore>
357
+ <ref name="BasicBlock"/>
358
+ </zeroOrMore>
359
+ <zeroOrMore>
360
+ <ref name="note"/>
361
+ </zeroOrMore>
362
+ <choice>
363
+ <oneOrMore>
364
+ <ref name="reference-clause"/>
365
+ </oneOrMore>
366
+ <zeroOrMore>
367
+ <ref name="references"/>
368
+ </zeroOrMore>
369
+ </choice>
370
+ </element>
371
+ </define>
372
+ <define name="editorialgroup">
373
+ <element name="editorialgroup">
374
+ <oneOrMore>
375
+ <ref name="technical-committee"/>
376
+ </oneOrMore>
377
+ </element>
378
+ </define>
379
+ <define name="technical-committee">
380
+ <element name="technical-committee">
381
+ <ref name="IsoWorkgroup"/>
382
+ </element>
383
+ </define>
384
+ <define name="IsoWorkgroup">
385
+ <optional>
386
+ <attribute name="number">
387
+ <data type="int"/>
388
+ </attribute>
389
+ </optional>
390
+ <optional>
391
+ <attribute name="type"/>
392
+ </optional>
393
+ <text/>
394
+ </define>
395
+ <define name="ics">
396
+ <element name="ics">
397
+ <element name="code">
398
+ <text/>
399
+ </element>
400
+ <element name="text">
401
+ <text/>
402
+ </element>
403
+ </element>
404
+ </define>
69
405
  <define name="standard-document">
70
406
  <element name="standard-document">
71
407
  <ref name="bibdata"/>
@@ -89,7 +425,7 @@
89
425
  <oneOrMore>
90
426
  <choice>
91
427
  <ref name="content"/>
92
- <ref name="abstract"/>
428
+ <ref name="preface_abstract"/>
93
429
  <ref name="foreword"/>
94
430
  <ref name="introduction"/>
95
431
  <ref name="acknowledgements"/>
@@ -156,6 +492,14 @@
156
492
  <optional>
157
493
  <attribute name="script"/>
158
494
  </optional>
495
+ <optional>
496
+ <attribute name="obligation">
497
+ <choice>
498
+ <value>normative</value>
499
+ <value>informative</value>
500
+ </choice>
501
+ </attribute>
502
+ </optional>
159
503
  <optional>
160
504
  <ref name="section-title"/>
161
505
  </optional>
@@ -163,6 +507,9 @@
163
507
  <zeroOrMore>
164
508
  <ref name="BasicBlock"/>
165
509
  </zeroOrMore>
510
+ <zeroOrMore>
511
+ <ref name="note"/>
512
+ </zeroOrMore>
166
513
  <ref name="dl"/>
167
514
  </oneOrMore>
168
515
  </element>
@@ -202,22 +549,35 @@
202
549
  <optional>
203
550
  <attribute name="script"/>
204
551
  </optional>
552
+ <optional>
553
+ <attribute name="inline-header">
554
+ <data type="boolean"/>
555
+ </attribute>
556
+ </optional>
557
+ <optional>
558
+ <attribute name="obligation">
559
+ <choice>
560
+ <value>normative</value>
561
+ <value>informative</value>
562
+ </choice>
563
+ </attribute>
564
+ </optional>
205
565
  <optional>
206
566
  <ref name="section-title"/>
207
567
  </optional>
208
- <choice>
568
+ <group>
209
569
  <group>
210
- <optional>
570
+ <zeroOrMore>
211
571
  <ref name="BasicBlock"/>
212
- </optional>
572
+ </zeroOrMore>
213
573
  <zeroOrMore>
214
574
  <ref name="note"/>
215
575
  </zeroOrMore>
216
576
  </group>
217
- <oneOrMore>
577
+ <zeroOrMore>
218
578
  <ref name="content-subsection"/>
219
- </oneOrMore>
220
- </choice>
579
+ </zeroOrMore>
580
+ </group>
221
581
  </define>
222
582
  <define name="clause">
223
583
  <element name="clause">
@@ -239,32 +599,92 @@
239
599
  <optional>
240
600
  <attribute name="script"/>
241
601
  </optional>
602
+ <optional>
603
+ <attribute name="inline-header">
604
+ <data type="boolean"/>
605
+ </attribute>
606
+ </optional>
607
+ <optional>
608
+ <attribute name="obligation">
609
+ <choice>
610
+ <value>normative</value>
611
+ <value>informative</value>
612
+ </choice>
613
+ </attribute>
614
+ </optional>
242
615
  <optional>
243
616
  <ref name="section-title"/>
244
617
  </optional>
245
- <choice>
618
+ <group>
246
619
  <group>
247
- <optional>
620
+ <zeroOrMore>
248
621
  <ref name="BasicBlock"/>
249
- </optional>
622
+ </zeroOrMore>
250
623
  <zeroOrMore>
251
624
  <ref name="note"/>
252
625
  </zeroOrMore>
253
626
  </group>
254
- <oneOrMore>
627
+ <zeroOrMore>
255
628
  <choice>
256
629
  <ref name="clause-subsection"/>
257
630
  <ref name="terms"/>
258
631
  <ref name="definitions"/>
259
632
  </choice>
260
- </oneOrMore>
261
- </choice>
633
+ </zeroOrMore>
634
+ </group>
635
+ </define>
636
+ <define name="Annex-Section">
637
+ <optional>
638
+ <attribute name="id">
639
+ <data type="ID"/>
640
+ </attribute>
641
+ </optional>
642
+ <optional>
643
+ <attribute name="language"/>
644
+ </optional>
645
+ <optional>
646
+ <attribute name="script"/>
647
+ </optional>
648
+ <optional>
649
+ <attribute name="obligation">
650
+ <choice>
651
+ <value>normative</value>
652
+ <value>informative</value>
653
+ </choice>
654
+ </attribute>
655
+ </optional>
656
+ <optional>
657
+ <ref name="section-title"/>
658
+ </optional>
659
+ <group>
660
+ <group>
661
+ <zeroOrMore>
662
+ <ref name="BasicBlock"/>
663
+ </zeroOrMore>
664
+ <zeroOrMore>
665
+ <ref name="note"/>
666
+ </zeroOrMore>
667
+ </group>
668
+ <zeroOrMore>
669
+ <choice>
670
+ <ref name="annex-subsection"/>
671
+ <ref name="terms"/>
672
+ <ref name="definitions"/>
673
+ <ref name="references"/>
674
+ </choice>
675
+ </zeroOrMore>
676
+ </group>
262
677
  </define>
263
678
  <define name="clause-subsection">
264
679
  <element name="clause">
265
680
  <ref name="Clause-Section"/>
266
681
  </element>
267
682
  </define>
683
+ <define name="annex-subsection">
684
+ <element name="clause">
685
+ <ref name="Annex-Section"/>
686
+ </element>
687
+ </define>
268
688
  <define name="annex">
269
689
  <element name="annex">
270
690
  <optional>
@@ -278,6 +698,11 @@
278
698
  <optional>
279
699
  <attribute name="script"/>
280
700
  </optional>
701
+ <optional>
702
+ <attribute name="inline-header">
703
+ <data type="boolean"/>
704
+ </attribute>
705
+ </optional>
281
706
  <attribute name="obligation">
282
707
  <choice>
283
708
  <value>normative</value>
@@ -287,19 +712,24 @@
287
712
  <optional>
288
713
  <ref name="section-title"/>
289
714
  </optional>
290
- <choice>
715
+ <group>
291
716
  <group>
292
- <optional>
717
+ <zeroOrMore>
293
718
  <ref name="BasicBlock"/>
294
- </optional>
719
+ </zeroOrMore>
295
720
  <zeroOrMore>
296
721
  <ref name="note"/>
297
722
  </zeroOrMore>
298
723
  </group>
299
- <oneOrMore>
300
- <ref name="clause-subsection"/>
301
- </oneOrMore>
302
- </choice>
724
+ <zeroOrMore>
725
+ <choice>
726
+ <ref name="annex-subsection"/>
727
+ <ref name="terms"/>
728
+ <ref name="definitions"/>
729
+ <ref name="references"/>
730
+ </choice>
731
+ </zeroOrMore>
732
+ </group>
303
733
  </element>
304
734
  </define>
305
735
  <define name="terms">
@@ -315,12 +745,36 @@
315
745
  <optional>
316
746
  <attribute name="script"/>
317
747
  </optional>
748
+ <optional>
749
+ <attribute name="obligation">
750
+ <choice>
751
+ <value>normative</value>
752
+ <value>informative</value>
753
+ </choice>
754
+ </attribute>
755
+ </optional>
756
+ <optional>
757
+ <ref name="section-title"/>
758
+ </optional>
318
759
  <zeroOrMore>
319
760
  <ref name="BasicBlock"/>
320
761
  </zeroOrMore>
321
- <oneOrMore>
322
- <ref name="term"/>
323
- </oneOrMore>
762
+ <zeroOrMore>
763
+ <ref name="note"/>
764
+ </zeroOrMore>
765
+ <choice>
766
+ <oneOrMore>
767
+ <ref name="term"/>
768
+ </oneOrMore>
769
+ <group>
770
+ <zeroOrMore>
771
+ <ref name="terms"/>
772
+ </zeroOrMore>
773
+ <optional>
774
+ <ref name="definitions"/>
775
+ </optional>
776
+ </group>
777
+ </choice>
324
778
  </element>
325
779
  </define>
326
780
  <define name="term">
@@ -413,7 +867,13 @@
413
867
  </define>
414
868
  <define name="definition">
415
869
  <element name="definition">
416
- <ref name="paragraph"/>
870
+ <oneOrMore>
871
+ <choice>
872
+ <ref name="paragraph"/>
873
+ <ref name="figure"/>
874
+ <ref name="formula"/>
875
+ </choice>
876
+ </oneOrMore>
417
877
  </element>
418
878
  </define>
419
879
  <define name="termnote">
@@ -511,4 +971,58 @@
511
971
  </optional>
512
972
  </element>
513
973
  </define>
974
+ <define name="preface_abstract">
975
+ <element name="abstract">
976
+ <ref name="Basic-Section"/>
977
+ </element>
978
+ </define>
979
+ <define name="term-clause">
980
+ <element name="clause">
981
+ <optional>
982
+ <attribute name="id">
983
+ <data type="ID"/>
984
+ </attribute>
985
+ </optional>
986
+ <optional>
987
+ <attribute name="language"/>
988
+ </optional>
989
+ <optional>
990
+ <attribute name="script"/>
991
+ </optional>
992
+ <optional>
993
+ <attribute name="inline-header">
994
+ <data type="boolean"/>
995
+ </attribute>
996
+ </optional>
997
+ <optional>
998
+ <attribute name="obligation">
999
+ <choice>
1000
+ <value>normative</value>
1001
+ <value>informative</value>
1002
+ </choice>
1003
+ </attribute>
1004
+ </optional>
1005
+ <optional>
1006
+ <ref name="section-title"/>
1007
+ </optional>
1008
+ <zeroOrMore>
1009
+ <ref name="BasicBlock"/>
1010
+ </zeroOrMore>
1011
+ <zeroOrMore>
1012
+ <ref name="note"/>
1013
+ </zeroOrMore>
1014
+ <zeroOrMore>
1015
+ <choice>
1016
+ <ref name="term-clause"/>
1017
+ <ref name="terms"/>
1018
+ <ref name="definitions"/>
1019
+ </choice>
1020
+ </zeroOrMore>
1021
+ </element>
1022
+ </define>
1023
+ <define name="termdocsource">
1024
+ <element name="termdocsource">
1025
+ <ref name="CitationType"/>
1026
+ </element>
1027
+ </define>
514
1028
  </grammar>