metanorma-iso 1.7.1 → 1.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +0 -4
  3. data/lib/asciidoctor/iso/base.rb +12 -12
  4. data/lib/asciidoctor/iso/cleanup.rb +1 -1
  5. data/lib/asciidoctor/iso/isodoc.rng +19 -1
  6. data/lib/asciidoctor/iso/isostandard-amd.rng +3 -0
  7. data/lib/asciidoctor/iso/isostandard.rng +6 -0
  8. data/lib/metanorma/iso/version.rb +1 -1
  9. data/spec/asciidoctor-iso/amd_spec.rb +575 -573
  10. data/spec/asciidoctor-iso/base_spec.rb +445 -454
  11. data/spec/asciidoctor-iso/blocks_spec.rb +333 -288
  12. data/spec/asciidoctor-iso/cleanup_spec.rb +813 -704
  13. data/spec/asciidoctor-iso/inline_spec.rb +116 -91
  14. data/spec/asciidoctor-iso/lists_spec.rb +128 -121
  15. data/spec/asciidoctor-iso/refs_spec.rb +308 -250
  16. data/spec/asciidoctor-iso/section_spec.rb +273 -242
  17. data/spec/asciidoctor-iso/table_spec.rb +258 -242
  18. data/spec/asciidoctor-iso/validate_spec.rb +1099 -1165
  19. data/spec/isodoc/amd_spec.rb +967 -946
  20. data/spec/isodoc/blocks_spec.rb +530 -507
  21. data/spec/isodoc/i18n_spec.rb +953 -911
  22. data/spec/isodoc/inline_spec.rb +355 -293
  23. data/spec/isodoc/iso_spec.rb +338 -314
  24. data/spec/isodoc/metadata_spec.rb +392 -382
  25. data/spec/isodoc/postproc_spec.rb +833 -656
  26. data/spec/isodoc/ref_spec.rb +374 -331
  27. data/spec/isodoc/section_spec.rb +608 -525
  28. data/spec/isodoc/table_spec.rb +472 -411
  29. data/spec/isodoc/terms_spec.rb +209 -185
  30. data/spec/isodoc/xref_spec.rb +1370 -1236
  31. data/spec/metanorma/processor_spec.rb +28 -26
  32. data/spec/spec_helper.rb +176 -193
  33. metadata +2 -4
  34. data/.rubocop.ribose.yml +0 -66
  35. data/spec/assets/xref_error.adoc +0 -7
@@ -2,22 +2,20 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe Asciidoctor::ISO do
4
4
  it "removes empty text elements" do
5
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
5
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
6
6
  #{ASCIIDOC_BLANK_HDR}
7
7
  == {blank}
8
8
  INPUT
9
- #{BLANK_HDR}
10
- <sections>
11
- <clause id="_" inline-header="false" obligation="normative">
12
-
13
- </clause>
14
- </sections>
15
- </iso-standard>
9
+ #{BLANK_HDR}
10
+ <sections>
11
+ <clause id="_" inline-header="false" obligation="normative"/>
12
+ </sections>
13
+ </iso-standard>
16
14
  OUTPUT
17
15
  end
18
16
 
19
17
  it "processes stem-only terms as admitted" do
20
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
18
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
21
19
  #{ASCIIDOC_BLANK_HDR}
22
20
  == Terms and Definitions
23
21
 
@@ -27,33 +25,51 @@ RSpec.describe Asciidoctor::ISO do
27
25
 
28
26
  Time
29
27
  INPUT
30
- #{BLANK_HDR}
31
- <sections>
32
- <terms id="_" obligation="normative">
33
- <title>Terms and definitions</title>
34
- #{TERM_BOILERPLATE}
35
- <term id="term-t90"><preferred><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mrow>
36
- <mi>t</mi>
37
- </mrow>
38
- <mrow>
39
- <mn>90</mn>
40
- </mrow>
41
- </msub></math></stem></preferred><admitted><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mrow>
42
- <mi>t</mi>
43
- </mrow>
44
- <mrow>
45
- <mn>91</mn>
46
- </mrow>
47
- </msub></math></stem></admitted>
48
- <definition><p id="_">Time</p></definition></term>
49
- </terms>
50
- </sections>
51
- </iso-standard>
28
+ #{BLANK_HDR}
29
+ <sections>
30
+ <terms id="_" obligation="normative">
31
+ <title>Terms and definitions</title>
32
+ #{TERM_BOILERPLATE}
33
+ <term id="term-t90">
34
+ <preferred>
35
+ <stem type="MathML">
36
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
37
+ <msub>
38
+ <mrow>
39
+ <mi>t</mi></mrow>
40
+ <mrow>
41
+ <mn>90</mn>
42
+ </mrow>
43
+ </msub>
44
+ </math>
45
+ </stem>
46
+ </preferred>
47
+ <admitted>
48
+ <stem type="MathML">
49
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
50
+ <msub>
51
+ <mrow>
52
+ <mi>t</mi>
53
+ </mrow>
54
+ <mrow>
55
+ <mn>91</mn>
56
+ </mrow>
57
+ </msub>
58
+ </math>
59
+ </stem>
60
+ </admitted>
61
+ <definition>
62
+ <p id="_">Time</p>
63
+ </definition>
64
+ </term>
65
+ </terms>
66
+ </sections>
67
+ </iso-standard>
52
68
  OUTPUT
53
69
  end
54
70
 
55
71
  it "moves term domains out of the term definition paragraph" do
56
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
72
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
57
73
  #{ASCIIDOC_BLANK_HDR}
58
74
  == Terms and Definitions
59
75
 
@@ -61,23 +77,25 @@ RSpec.describe Asciidoctor::ISO do
61
77
 
62
78
  domain:[relativity] Time
63
79
  INPUT
64
- #{BLANK_HDR}
65
- <sections>
66
- <terms id="_" obligation="normative">
67
- <title>Terms and definitions</title>
68
- #{TERM_BOILERPLATE}
69
- <term id="term-tempus">
70
- <preferred>Tempus</preferred>
71
- <domain>relativity</domain><definition><p id="_"> Time</p></definition>
72
- </term>
73
- </terms>
74
- </sections>
75
- </iso-standard>
80
+ #{BLANK_HDR}
81
+ <sections>
82
+ <terms id="_" obligation="normative">
83
+ <title>Terms and definitions</title>#{TERM_BOILERPLATE}
84
+
85
+ <term id="term-tempus">
86
+ <preferred>Tempus</preferred>
87
+ <domain>relativity</domain>
88
+ <definition>
89
+ <p id="_">Time</p></definition>
90
+ </term>
91
+ </terms>
92
+ </sections>
93
+ </iso-standard>
76
94
  OUTPUT
77
95
  end
78
96
 
79
97
  it "permits multiple blocks in term definition paragraph" do
80
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
98
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
81
99
  = Document title
82
100
  Author
83
101
  :docfile: test.adoc
@@ -97,35 +115,51 @@ RSpec.describe Asciidoctor::ISO do
97
115
 
98
116
  This paragraph is extraneous
99
117
  INPUT
100
- #{BLANK_HDR}
101
- <sections>
102
- <terms id="_" obligation="normative">
103
- <title>Terms and definitions</title>
104
- #{TERM_BOILERPLATE}
105
- <term id="term-t90"><preferred><stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mrow>
106
- <mi>t</mi>
107
- </mrow>
108
- <mrow>
109
- <mn>90</mn>
110
- </mrow>
111
- </msub></math></stem></preferred><definition><formula id="_">
112
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mrow>
113
- <mi>t</mi>
114
- </mrow>
115
- <mrow>
116
- <mi>A</mi>
117
- </mrow>
118
- </msub></math></stem>
119
- </formula><p id="_">This paragraph is extraneous</p></definition>
120
- </term>
121
- </terms>
122
- </sections>
118
+ #{BLANK_HDR}
119
+ <sections>
120
+ <terms id="_" obligation="normative">
121
+ <title>Terms and definitions</title>
122
+ #{TERM_BOILERPLATE}
123
+ <term id="term-t90">
124
+ <preferred>
125
+ <stem type="MathML">
126
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
127
+ <msub>
128
+ <mrow>
129
+ <mi>t</mi></mrow>
130
+ <mrow>
131
+ <mn>90</mn>
132
+ </mrow>
133
+ </msub>
134
+ </math>
135
+ </stem>
136
+ </preferred>
137
+ <definition>
138
+ <formula id="_">
139
+ <stem type="MathML">
140
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
141
+ <msub>
142
+ <mrow>
143
+ <mi>t</mi>
144
+ </mrow>
145
+ <mrow>
146
+ <mi>A</mi>
147
+ </mrow>
148
+ </msub>
149
+ </math>
150
+ </stem>
151
+ </formula>
152
+ <p id="_">This paragraph is extraneous</p>
153
+ </definition>
154
+ </term>
155
+ </terms>
156
+ </sections>
123
157
  </iso-standard>
124
158
  OUTPUT
125
159
  end
126
160
 
127
161
  it "keeps any initial boilerplate from terms and definitions" do
128
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
162
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
129
163
  #{ASCIIDOC_BLANK_HDR}
130
164
  == Terms and Definitions
131
165
 
@@ -137,28 +171,30 @@ RSpec.describe Asciidoctor::ISO do
137
171
 
138
172
  This paragraph is extraneous
139
173
  INPUT
140
- #{BLANK_HDR}
141
- <sections>
142
- <terms id="_" obligation="normative"><title>Terms and definitions</title>
143
-
144
- #{TERM_BOILERPLATE}
145
- <p id='_'>I am boilerplate</p>
146
- <ul id='_'>
147
- <li>
148
- <p id='_'>So am I</p>
149
- </li>
150
- </ul>
151
- <term id="term-time">
152
- <preferred>Time</preferred>
153
- <definition><p id="_">This paragraph is extraneous</p></definition>
154
- </term></terms>
155
- </sections>
156
- </iso-standard>
174
+ #{BLANK_HDR}
175
+ <sections>
176
+ <terms id="_" obligation="normative">
177
+ <title>Terms and definitions</title>#{TERM_BOILERPLATE}
178
+
179
+ <p id="_">I am boilerplate</p>
180
+ <ul id="_">
181
+ <li>
182
+ <p id="_">So am I</p></li>
183
+ </ul>
184
+ <term id="term-time">
185
+ <preferred>Time</preferred>
186
+ <definition>
187
+ <p id="_">This paragraph is extraneous</p>
188
+ </definition>
189
+ </term>
190
+ </terms>
191
+ </sections>
192
+ </iso-standard>
157
193
  OUTPUT
158
194
  end
159
195
 
160
196
  it "moves notes inside preceding blocks, if they are not at clause end, and the blocks are not delimited" do
161
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
197
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
162
198
  #{ASCIIDOC_BLANK_HDR}
163
199
  [stem]
164
200
  ++++
@@ -170,20 +206,33 @@ RSpec.describe Asciidoctor::ISO do
170
206
 
171
207
  Indeed.
172
208
  INPUT
173
- #{BLANK_HDR}
174
- <sections><formula id="_">
175
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>r</mi><mo>=</mo><mn>1</mn><mi>%</mi><mi>r</mi><mo>=</mo><mn>1</mn><mi>%</mi></math></stem>
176
- <note id="_">
177
- <p id="_">That formula does not do much</p>
178
- </note></formula>
179
-
180
- <p id="_">Indeed.</p></sections>
181
- </iso-standard>
209
+ #{BLANK_HDR}
210
+ <sections>
211
+ <formula id="_">
212
+ <stem type="MathML">
213
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
214
+ <mi>r</mi>
215
+ <mo>=</mo>
216
+ <mn>1</mn>
217
+ <mi>%</mi>
218
+ <mi>r</mi>
219
+ <mo>=</mo>
220
+ <mn>1</mn>
221
+ <mi>%</mi>
222
+ </math>
223
+ </stem>
224
+ <note id="_">
225
+ <p id="_">That formula does not do much</p>
226
+ </note>
227
+ </formula>
228
+ <p id="_">Indeed.</p>
229
+ </sections>
230
+ </iso-standard>
182
231
  OUTPUT
183
232
  end
184
233
 
185
234
  it "does not move notes inside preceding blocks, if they are at clause end" do
186
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
235
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
187
236
  #{ASCIIDOC_BLANK_HDR}
188
237
  [source,ruby]
189
238
  [1...x].each do |y|
@@ -192,19 +241,21 @@ RSpec.describe Asciidoctor::ISO do
192
241
 
193
242
  NOTE: That loop does not do much
194
243
  INPUT
195
- #{BLANK_HDR}
196
- <sections><sourcecode lang="ruby" id="_">[1...x].each do |y|
197
- puts y
198
- end</sourcecode>
199
- <note id="_">
200
- <p id="_">That loop does not do much</p>
201
- </note></sections>
202
- </iso-standard>
244
+ #{BLANK_HDR}
245
+ <sections>
246
+ <sourcecode id="_" lang="ruby">[1...x].each do |y|
247
+ puts y
248
+ end</sourcecode>
249
+ <note id="_">
250
+ <p id="_">That loop does not do much</p>
251
+ </note>
252
+ </sections>
253
+ </iso-standard>
203
254
  OUTPUT
204
255
  end
205
256
 
206
257
  it "converts xrefs to references into erefs" do
207
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
258
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
208
259
  #{ASCIIDOC_BLANK_HDR}
209
260
  <<iso216>>
210
261
 
@@ -213,38 +264,43 @@ RSpec.describe Asciidoctor::ISO do
213
264
  * [[[iso216,ISO 216:2001]]], _Reference_
214
265
  INPUT
215
266
  #{BLANK_HDR}
216
- <preface><foreword id='_' obligation="informative">
217
- <title>Foreword</title>
218
- <p id="_">
219
- <eref type="inline" bibitemid="iso216" citeas="ISO 216:2001"/>
220
- </p>
221
- </foreword></preface><sections>
222
- </sections><bibliography><references id="_" obligation="informative" normative="true">
223
- <title>Normative references</title>
224
- <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
225
- <bibitem id="iso216" type="standard">
226
- <title format="text/plain">Reference</title>
227
- <docidentifier>ISO 216:2001</docidentifier>
228
- <docnumber>216</docnumber>
229
- <date type="published">
230
- <on>2001</on>
231
- </date>
232
- <contributor>
233
- <role type="publisher"/>
234
- <organization>
235
- <name>International Organization for Standardization</name>
236
- <abbreviation>ISO</abbreviation>
237
- </organization>
238
- </contributor>
239
- </bibitem>
240
- </references>
241
- </bibliography>
267
+ <preface>
268
+ <foreword id="_" obligation="informative">
269
+ <title>Foreword</title>
270
+ <p id="_">
271
+ <eref bibitemid="iso216" citeas="ISO 216:2001" type="inline"/>
272
+ </p>
273
+ </foreword>
274
+ </preface>
275
+ <sections>
276
+ </sections>
277
+ <bibliography>
278
+ <references id="_" normative="true" obligation="informative">
279
+ <title>Normative references</title>
280
+ <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
281
+ <bibitem id="iso216" type="standard">
282
+ <title format="text/plain">Reference</title>
283
+ <docidentifier>ISO 216:2001</docidentifier>
284
+ <docnumber>216</docnumber>
285
+ <date type="published">
286
+ <on>2001</on>
287
+ </date>
288
+ <contributor>
289
+ <role type="publisher"/>
290
+ <organization>
291
+ <name>International Organization for Standardization</name>
292
+ <abbreviation>ISO</abbreviation>
293
+ </organization>
294
+ </contributor>
295
+ </bibitem>
296
+ </references>
297
+ </bibliography>
242
298
  </iso-standard>
243
299
  OUTPUT
244
300
  end
245
301
 
246
302
  it "extracts localities from erefs" do
247
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
303
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
248
304
  #{ASCIIDOC_BLANK_HDR}
249
305
  <<iso216,whole,clause=3,example=9-11,locality:prelude=33,locality:entirety:the reference>>
250
306
 
@@ -253,39 +309,54 @@ RSpec.describe Asciidoctor::ISO do
253
309
  * [[[iso216,ISO 216]]], _Reference_
254
310
  INPUT
255
311
  #{BLANK_HDR}
256
- <preface><foreword id='_' obligation="informative">
257
- <title>Foreword</title>
258
- <p id="_">
259
- <eref type="inline" bibitemid="iso216" citeas="ISO 216">
260
- <localityStack>
261
- <locality type="whole"/><locality type="clause"><referenceFrom>3</referenceFrom></locality><locality type="example"><referenceFrom>9</referenceFrom><referenceTo>11</referenceTo></locality><locality type="locality:prelude"><referenceFrom>33</referenceFrom></locality><locality type="locality:entirety"/>
262
- </localityStack>the reference</eref>
263
- </p>
264
- </foreword></preface><sections>
265
- </sections><bibliography><references id="_" obligation="informative" normative="true">
266
- <title>Normative references</title>
267
- <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
268
- <bibitem id="iso216" type="standard">
269
- <title format="text/plain">Reference</title>
270
- <docidentifier>ISO 216</docidentifier>
271
- <docnumber>216</docnumber>
272
- <contributor>
273
- <role type="publisher"/>
274
- <organization>
275
- <name>International Organization for Standardization</name>
276
- <abbreviation>ISO</abbreviation>
277
- </organization>
278
- </contributor>
279
- </bibitem>
280
- </references>
281
- </bibliography>
312
+ <preface>
313
+ <foreword id="_" obligation="informative">
314
+ <title>Foreword</title>
315
+ <p id="_">
316
+ <eref bibitemid="iso216" citeas="ISO 216" type="inline">
317
+ <localityStack>
318
+ <locality type="whole"/>
319
+ <locality type="clause">
320
+ <referenceFrom>3</referenceFrom>
321
+ </locality>
322
+ <locality type="example">
323
+ <referenceFrom>9</referenceFrom>
324
+ <referenceTo>11</referenceTo>
325
+ </locality>
326
+ <locality type="locality:prelude">
327
+ <referenceFrom>33</referenceFrom>
328
+ </locality>
329
+ <locality type="locality:entirety"/>
330
+ </localityStack>the reference</eref>
331
+ </p>
332
+ </foreword>
333
+ </preface>
334
+ <sections>
335
+ </sections>
336
+ <bibliography>
337
+ <references id="_" normative="true" obligation="informative">
338
+ <title>Normative references</title>
339
+ <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
340
+ <bibitem id="iso216" type="standard">
341
+ <title format="text/plain">Reference</title>
342
+ <docidentifier>ISO 216</docidentifier>
343
+ <docnumber>216</docnumber>
344
+ <contributor>
345
+ <role type="publisher"/>
346
+ <organization>
347
+ <name>International Organization for Standardization</name>
348
+ <abbreviation>ISO</abbreviation>
349
+ </organization>
350
+ </contributor>
351
+ </bibitem>
352
+ </references>
353
+ </bibliography>
282
354
  </iso-standard>
283
355
  OUTPUT
284
356
  end
285
357
 
286
-
287
358
  it "strips type from xrefs" do
288
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
359
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
289
360
  #{ASCIIDOC_BLANK_HDR}
290
361
  <<iso216>>
291
362
 
@@ -293,35 +364,40 @@ RSpec.describe Asciidoctor::ISO do
293
364
  == Clause
294
365
  * [[[iso216,ISO 216]]], _Reference_
295
366
  INPUT
296
- #{BLANK_HDR}
297
- <preface>
298
- <foreword id='_' obligation="informative">
299
- <title>Foreword</title>
300
- <p id="_">
301
- <eref type="inline" bibitemid="iso216" citeas="ISO 216"/>
302
- </p>
303
- </foreword></preface><sections>
304
- </sections><bibliography><references id="_" obligation="informative" normative="false">
305
- <title>Bibliography</title>
306
- <bibitem id="iso216" type="standard">
307
- <title format="text/plain">Reference</title>
308
- <docidentifier>ISO 216</docidentifier>
309
- <docnumber>216</docnumber>
310
- <contributor>
311
- <role type="publisher"/>
312
- <organization>
313
- <name>International Organization for Standardization</name>
314
- <abbreviation>ISO</abbreviation>
315
- </organization>
316
- </contributor>
317
- </bibitem>
318
- </references></bibliography>
319
- </iso-standard>
367
+ #{BLANK_HDR}
368
+ <preface>
369
+ <foreword id="_" obligation="informative">
370
+ <title>Foreword</title>
371
+ <p id="_">
372
+ <eref bibitemid="iso216" citeas="ISO 216" type="inline"/>
373
+ </p>
374
+ </foreword>
375
+ </preface>
376
+ <sections>
377
+ </sections>
378
+ <bibliography>
379
+ <references id="_" normative="false" obligation="informative">
380
+ <title>Bibliography</title>
381
+ <bibitem id="iso216" type="standard">
382
+ <title format="text/plain">Reference</title>
383
+ <docidentifier>ISO 216</docidentifier>
384
+ <docnumber>216</docnumber>
385
+ <contributor>
386
+ <role type="publisher"/>
387
+ <organization>
388
+ <name>International Organization for Standardization</name>
389
+ <abbreviation>ISO</abbreviation>
390
+ </organization>
391
+ </contributor>
392
+ </bibitem>
393
+ </references>
394
+ </bibliography>
395
+ </iso-standard>
320
396
  OUTPUT
321
397
  end
322
398
 
323
399
  it "processes localities in term sources" do
324
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
400
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
325
401
  #{ASCIIDOC_BLANK_HDR}
326
402
  == Terms and Definitions
327
403
 
@@ -329,30 +405,31 @@ RSpec.describe Asciidoctor::ISO do
329
405
 
330
406
  [.source]
331
407
  <<ISO2191,section=1>>
332
- INPUT
333
- #{BLANK_HDR}
334
- <sections>
335
- <terms id="_" obligation="normative">
336
- <title>Terms and definitions</title>
337
- #{TERM_BOILERPLATE}
338
- <term id="term-term1">
339
- <preferred>Term1</preferred>
340
- <termsource status="identical">
341
- <origin bibitemid="ISO2191" type="inline" citeas="">
342
- <localityStack>
343
- <locality type="section"><referenceFrom>1</referenceFrom></locality>
344
- </localityStack>
345
- </origin>
346
- </termsource>
347
- </term>
348
- </terms>
349
- </sections>
350
- </iso-standard>
351
- OUTPUT
408
+ INPUT
409
+ #{BLANK_HDR}
410
+ <sections>
411
+ <terms id="_" obligation="normative">
412
+ <title>Terms and definitions</title>
413
+ #{TERM_BOILERPLATE}
414
+ <term id="term-term1">
415
+ <preferred>Term1</preferred>
416
+ <termsource status="identical">
417
+ <origin bibitemid="ISO2191" citeas="" type="inline">
418
+ <localityStack>
419
+ <locality type="section">
420
+ <referenceFrom>1</referenceFrom></locality>
421
+ </localityStack>
422
+ </origin>
423
+ </termsource>
424
+ </term>
425
+ </terms>
426
+ </sections>
427
+ </iso-standard>
428
+ OUTPUT
352
429
  end
353
430
 
354
431
  it "removes extraneous material from Normative References" do
355
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
432
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
356
433
  #{ASCIIDOC_BLANK_HDR}
357
434
  [bibliography]
358
435
  == Normative References
@@ -362,62 +439,64 @@ RSpec.describe Asciidoctor::ISO do
362
439
  * [[[iso216,ISO 216]]], _Reference_
363
440
  INPUT
364
441
  #{BLANK_HDR}
365
- <sections></sections>
366
- <bibliography><references id="_" obligation="informative" normative="true"><title>Normative references</title>
367
- <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
368
- <bibitem id="iso216" type="standard">
369
- <title format="text/plain">Reference</title>
370
- <docidentifier>ISO 216</docidentifier>
371
- <docnumber>216</docnumber>
372
- <contributor>
373
- <role type="publisher"/>
374
- <organization>
375
- <name>International Organization for Standardization</name>
376
- <abbreviation>ISO</abbreviation>
377
- </organization>
378
- </contributor>
379
- </bibitem>
380
- </references>
381
- </bibliography>
442
+ <sections></sections>
443
+ <bibliography>
444
+ <references id="_" normative="true" obligation="informative">
445
+ <title>Normative references</title>
446
+ <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
447
+ <bibitem id="iso216" type="standard">
448
+ <title format="text/plain">Reference</title>
449
+ <docidentifier>ISO 216</docidentifier>
450
+ <docnumber>216</docnumber>
451
+ <contributor>
452
+ <role type="publisher"/>
453
+ <organization>
454
+ <name>International Organization for Standardization</name>
455
+ <abbreviation>ISO</abbreviation>
456
+ </organization>
457
+ </contributor>
458
+ </bibitem>
459
+ </references>
460
+ </bibliography>
382
461
  </iso-standard>
383
462
  OUTPUT
384
463
  end
385
464
 
386
465
  it "inserts IDs into paragraphs" do
387
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
466
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
388
467
  #{ASCIIDOC_BLANK_HDR}
389
468
  Paragraph
390
469
  INPUT
391
- #{BLANK_HDR}
392
- <sections>
393
- <p id="_">Paragraph</p>
394
- </sections>
395
- </iso-standard>
470
+ #{BLANK_HDR}
471
+ <sections>
472
+ <p id="_">Paragraph</p>
473
+ </sections>
474
+ </iso-standard>
396
475
  OUTPUT
397
476
  end
398
477
 
399
478
  it "inserts IDs into notes" do
400
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
479
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
401
480
  #{ASCIIDOC_BLANK_HDR}
402
481
  [example]
403
482
  ====
404
483
  NOTE: This note has no ID
405
484
  ====
406
485
  INPUT
407
- #{BLANK_HDR}
408
- <sections>
409
- <example id="_">
410
- <note id="_">
411
- <p id="_">This note has no ID</p>
412
- </note>
413
- </example>
414
- </sections>
415
- </iso-standard>
486
+ #{BLANK_HDR}
487
+ <sections>
488
+ <example id="_">
489
+ <note id="_">
490
+ <p id="_">This note has no ID</p>
491
+ </note>
492
+ </example>
493
+ </sections>
494
+ </iso-standard>
416
495
  OUTPUT
417
496
  end
418
497
 
419
498
  it "moves table key inside table" do
420
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
499
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
421
500
  #{ASCIIDOC_BLANK_HDR}
422
501
  |===
423
502
  |a |b |c
@@ -427,29 +506,30 @@ RSpec.describe Asciidoctor::ISO do
427
506
 
428
507
  a:: b
429
508
  INPUT
430
- #{BLANK_HDR}
431
- <sections><table id="_">
432
- <tbody>
433
- <tr>
434
- <td valign="top" align="left">a</td>
435
- <td valign="top" align="left">b</td>
436
- <td valign="top" align="left">c</td>
437
- </tr>
438
- </tbody>
439
- <dl id="_" key="true">
440
- <dt>a</dt>
441
- <dd>
442
- <p id="_">b</p>
443
- </dd>
444
- </dl></table>
445
-
446
- </sections>
447
- </iso-standard>
509
+ #{BLANK_HDR}
510
+ <sections>
511
+ <table id="_">
512
+ <tbody>
513
+ <tr>
514
+ <td align="left" valign="top">a</td>
515
+ <td align="left" valign="top">b</td>
516
+ <td align="left" valign="top">c</td>
517
+ </tr>
518
+ </tbody>
519
+ <dl id="_" key="true">
520
+ <dt>a</dt>
521
+ <dd>
522
+ <p id="_">b</p>
523
+ </dd>
524
+ </dl>
525
+ </table>
526
+ </sections>
527
+ </iso-standard>
448
528
  OUTPUT
449
529
  end
450
530
 
451
531
  it "processes headerrows attribute for table without header rows" do
452
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
532
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
453
533
  #{ASCIIDOC_BLANK_HDR}
454
534
  [headerrows=3]
455
535
  |===
@@ -459,36 +539,41 @@ RSpec.describe Asciidoctor::ISO do
459
539
  |a |b |c
460
540
  |===
461
541
  INPUT
462
- #{BLANK_HDR}
463
- <sections>
464
- <table id="_"><thead><tr>
465
- <th valign="top" align="left">a</th>
466
- <th valign="top" align="left">b</th>
467
- <th valign="top" align="left">c</th>
468
- </tr><tr>
469
- <th valign="top" align="left">a</th>
470
- <th valign="top" align="left">b</th>
471
- <th valign="top" align="left">c</th>
472
- </tr><tr>
473
- <th valign="top" align="left">a</th>
474
- <th valign="top" align="left">b</th>
475
- <th valign="top" align="left">c</th>
476
- </tr></thead>
477
- <tbody>
478
- <tr>
479
- <td valign="top" align="left">a</td>
480
- <td valign="top" align="left">b</td>
481
- <td valign="top" align="left">c</td>
482
- </tr>
483
- </tbody>
484
- </table>
485
- </sections>
486
- </iso-standard>
542
+ #{BLANK_HDR}
543
+ <sections>
544
+ <table id="_">
545
+ <thead>
546
+ <tr>
547
+ <th align="left" valign="top">a</th>
548
+ <th align="left" valign="top">b</th>
549
+ <th align="left" valign="top">c</th>
550
+ </tr>
551
+ <tr>
552
+ <th align="left" valign="top">a</th>
553
+ <th align="left" valign="top">b</th>
554
+ <th align="left" valign="top">c</th>
555
+ </tr>
556
+ <tr>
557
+ <th align="left" valign="top">a</th>
558
+ <th align="left" valign="top">b</th>
559
+ <th align="left" valign="top">c</th>
560
+ </tr>
561
+ </thead>
562
+ <tbody>
563
+ <tr>
564
+ <td align="left" valign="top">a</td>
565
+ <td align="left" valign="top">b</td>
566
+ <td align="left" valign="top">c</td>
567
+ </tr>
568
+ </tbody>
569
+ </table>
570
+ </sections>
571
+ </iso-standard>
487
572
  OUTPUT
488
573
  end
489
574
 
490
575
  it "processes headerrows attribute for table with header rows" do
491
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
576
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
492
577
  #{ASCIIDOC_BLANK_HDR}
493
578
  [headerrows=3]
494
579
  |===
@@ -499,41 +584,41 @@ RSpec.describe Asciidoctor::ISO do
499
584
  |a |b |c
500
585
  |===
501
586
  INPUT
502
- #{BLANK_HDR}
503
- <sections>
504
- <table id="_">
505
- <thead>
506
- <tr>
507
- <th valign="top" align="left">a</th>
508
- <th valign="top" align="left">b</th>
509
- <th valign="top" align="left">c</th>
510
- </tr>
511
- <tr>
512
- <th valign="top" align="left">a</th>
513
- <th valign="top" align="left">b</th>
514
- <th valign="top" align="left">c</th>
515
- </tr><tr>
516
- <th valign="top" align="left">a</th>
517
- <th valign="top" align="left">b</th>
518
- <th valign="top" align="left">c</th>
519
- </tr></thead>
520
- <tbody>
521
-
522
-
523
- <tr>
524
- <td valign="top" align="left">a</td>
525
- <td valign="top" align="left">b</td>
526
- <td valign="top" align="left">c</td>
527
- </tr>
528
- </tbody>
529
- </table>
530
- </sections>
531
- </iso-standard>
587
+ #{BLANK_HDR}
588
+ <sections>
589
+ <table id="_">
590
+ <thead>
591
+ <tr>
592
+ <th align="left" valign="top">a</th>
593
+ <th align="left" valign="top">b</th>
594
+ <th align="left" valign="top">c</th>
595
+ </tr>
596
+ <tr>
597
+ <th align="left" valign="top">a</th>
598
+ <th align="left" valign="top">b</th>
599
+ <th align="left" valign="top">c</th>
600
+ </tr>
601
+ <tr>
602
+ <th align="left" valign="top">a</th>
603
+ <th align="left" valign="top">b</th>
604
+ <th align="left" valign="top">c</th>
605
+ </tr>
606
+ </thead>
607
+ <tbody>
608
+ <tr>
609
+ <td align="left" valign="top">a</td>
610
+ <td align="left" valign="top">b</td>
611
+ <td align="left" valign="top">c</td>
612
+ </tr>
613
+ </tbody>
614
+ </table>
615
+ </sections>
616
+ </iso-standard>
532
617
  OUTPUT
533
618
  end
534
619
 
535
620
  it "moves table notes inside table" do
536
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
621
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
537
622
  #{ASCIIDOC_BLANK_HDR}
538
623
  |===
539
624
  |a |b |c
@@ -544,27 +629,29 @@ RSpec.describe Asciidoctor::ISO do
544
629
  NOTE: Note 2
545
630
  INPUT
546
631
  #{BLANK_HDR}
547
- <sections><table id="_">
548
- <tbody>
549
- <tr>
550
- <td valign="top" align="left">a</td>
551
- <td valign="top" align="left">b</td>
552
- <td valign="top" align="left">c</td>
553
- </tr>
554
- </tbody>
555
- <note id="_">
556
- <p id="_">Note 1</p>
557
- </note><note id="_">
558
- <p id="_">Note 2</p>
559
- </note></table>
560
-
561
- </sections>
562
- </iso-standard>
632
+ <sections>
633
+ <table id="_">
634
+ <tbody>
635
+ <tr>
636
+ <td align="left" valign="top">a</td>
637
+ <td align="left" valign="top">b</td>
638
+ <td align="left" valign="top">c</td>
639
+ </tr>
640
+ </tbody>
641
+ <note id="_">
642
+ <p id="_">Note 1</p>
643
+ </note>
644
+ <note id="_">
645
+ <p id="_">Note 2</p>
646
+ </note>
647
+ </table>
648
+ </sections>
649
+ </iso-standard>
563
650
  OUTPUT
564
651
  end
565
652
 
566
653
  it "moves formula key inside formula" do
567
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
654
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
568
655
  #{ASCIIDOC_BLANK_HDR}
569
656
  [stem]
570
657
  ++++
@@ -575,23 +662,32 @@ RSpec.describe Asciidoctor::ISO do
575
662
 
576
663
  a:: b
577
664
  INPUT
578
- #{BLANK_HDR}
579
- <sections><formula id="_">
580
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><mi>F</mi><mi>or</mi><mi>μ</mi><mi>l</mi><mi>a</mi></math></stem>
581
- <dl id="_" key="true">
582
- <dt>a</dt>
583
- <dd>
584
- <p id="_">b</p>
585
- </dd>
586
- </dl></formula>
587
-
588
- </sections>
589
- </iso-standard>
665
+ #{BLANK_HDR}
666
+ <sections>
667
+ <formula id="_">
668
+ <stem type="MathML">
669
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
670
+ <mi>F</mi>
671
+ <mi>or</mi>
672
+ <mi>μ</mi>
673
+ <mi>l</mi>
674
+ <mi>a</mi>
675
+ </math>
676
+ </stem>
677
+ <dl id="_" key="true">
678
+ <dt>a</dt>
679
+ <dd>
680
+ <p id="_">b</p>
681
+ </dd>
682
+ </dl>
683
+ </formula>
684
+ </sections>
685
+ </iso-standard>
590
686
  OUTPUT
591
687
  end
592
688
 
593
689
  it "moves footnotes inside figures" do
594
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
690
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
595
691
  #{ASCIIDOC_BLANK_HDR}
596
692
  image::spec/examples/rice_images/rice_image1.png[]
597
693
 
@@ -599,23 +695,24 @@ RSpec.describe Asciidoctor::ISO do
599
695
 
600
696
  footnote:[This is another footnote to a figure]
601
697
  INPUT
602
- #{BLANK_HDR}
603
- <sections><figure id="_">
604
- <image src="spec/examples/rice_images/rice_image1.png" id="_" mimetype="image/png" height="auto" width="auto"/>
605
- <fn reference="a">
606
- <p id="_">This is a footnote to a figure</p>
607
- </fn><fn reference="b">
608
- <p id="_">This is another footnote to a figure</p>
609
- </fn></figure>
610
-
611
- </sections>
612
-
613
- </iso-standard>
698
+ #{BLANK_HDR}
699
+ <sections>
700
+ <figure id="_">
701
+ <image height="auto" id="_" mimetype="image/png" src="spec/examples/rice_images/rice_image1.png" width="auto"/>
702
+ <fn reference="a">
703
+ <p id="_">This is a footnote to a figure</p>
704
+ </fn>
705
+ <fn reference="b">
706
+ <p id="_">This is another footnote to a figure</p>
707
+ </fn>
708
+ </figure>
709
+ </sections>
710
+ </iso-standard>
614
711
  OUTPUT
615
712
  end
616
713
 
617
714
  it "moves figure key inside figure" do
618
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
715
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
619
716
  #{ASCIIDOC_BLANK_HDR}
620
717
  image::spec/examples/rice_images/rice_image1.png[]
621
718
 
@@ -623,24 +720,24 @@ RSpec.describe Asciidoctor::ISO do
623
720
 
624
721
  a:: b
625
722
  INPUT
626
- #{BLANK_HDR}
627
- <sections><figure id="_">
628
- <image src="spec/examples/rice_images/rice_image1.png" id="_" mimetype="image/png" height="auto" width="auto"/>
629
- <dl id="_" key="true">
630
- <dt>a</dt>
631
- <dd>
632
- <p id="_">b</p>
633
- </dd>
634
- </dl></figure>
635
-
636
- </sections>
637
-
638
- </iso-standard>
723
+ #{BLANK_HDR}
724
+ <sections>
725
+ <figure id="_">
726
+ <image height="auto" id="_" mimetype="image/png" src="spec/examples/rice_images/rice_image1.png" width="auto"/>
727
+ <dl id="_" key="true">
728
+ <dt>a</dt>
729
+ <dd>
730
+ <p id="_">b</p>
731
+ </dd>
732
+ </dl>
733
+ </figure>
734
+ </sections>
735
+ </iso-standard>
639
736
  OUTPUT
640
737
  end
641
738
 
642
739
  it "numbers bibliographic notes and footnotes sequentially" do
643
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
740
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
644
741
  #{ASCIIDOC_BLANK_HDR}
645
742
  footnote:[Footnote]
646
743
 
@@ -653,47 +750,54 @@ RSpec.describe Asciidoctor::ISO do
653
750
  footnote:[Footnote2]
654
751
  INPUT
655
752
  #{BLANK_HDR}
656
- <preface><foreword id='_' obligation="informative">
657
- <title>Foreword</title>
658
- <p id="_"><fn reference="1">
659
- <p id="_">Footnote</p>
660
- </fn>
661
- </p>
662
- </foreword></preface><sections>
663
-
664
- <clause id="_" inline-header="false" obligation="normative">
665
- <title>Clause</title>
666
- <p id="_"><fn reference="2">
667
- <p id="_">Footnote2</p>
668
- </fn>
669
- </p>
670
- </clause></sections><bibliography><references id="_" obligation="informative" normative="true">
671
- <title>Normative references</title>
672
- <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
673
- <bibitem id="iso123" type="standard">
674
- <title format="text/plain">Standard</title>
675
- <docidentifier>ISO 123:—</docidentifier>
676
- <docnumber>123</docnumber>
677
- <date type="published">
678
- <on>–</on>
679
- </date>
680
- <contributor>
681
- <role type="publisher"/>
682
- <organization>
683
- <name>International Organization for Standardization</name>
684
- <abbreviation>ISO</abbreviation>
685
- </organization>
686
- </contributor>
687
- <note format="text/plain" type="Unpublished-Status">The standard is in press</note>
688
- </bibitem>
689
- </references>
690
- </bibliography>
753
+ <preface>
754
+ <foreword id="_" obligation="informative">
755
+ <title>Foreword</title>
756
+ <p id="_">
757
+ <fn reference="1">
758
+ <p id="_">Footnote</p>
759
+ </fn>
760
+ </p>
761
+ </foreword>
762
+ </preface>
763
+ <sections>
764
+ <clause id="_" inline-header="false" obligation="normative">
765
+ <title>Clause</title>
766
+ <p id="_">
767
+ <fn reference="2">
768
+ <p id="_">Footnote2</p>
769
+ </fn>
770
+ </p>
771
+ </clause>
772
+ </sections>
773
+ <bibliography>
774
+ <references id="_" normative="true" obligation="informative">
775
+ <title>Normative references</title>
776
+ <p id="_">The following documents are referred to in the text in such a way that some or all of their content constitutes requirements of this document. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies.</p>
777
+ <bibitem id="iso123" type="standard">
778
+ <title format="text/plain">Standard</title>
779
+ <docidentifier>ISO 123:—</docidentifier>
780
+ <docnumber>123</docnumber>
781
+ <date type="published">
782
+ <on>–</on>
783
+ </date>
784
+ <contributor>
785
+ <role type="publisher"/>
786
+ <organization>
787
+ <name>International Organization for Standardization</name>
788
+ <abbreviation>ISO</abbreviation>
789
+ </organization>
790
+ </contributor>
791
+ <note format="text/plain" type="Unpublished-Status">The standard is in press</note>
792
+ </bibitem>
793
+ </references>
794
+ </bibliography>
691
795
  </iso-standard>
692
796
  OUTPUT
693
797
  end
694
798
 
695
799
  it "defaults section obligations" do
696
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
800
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
697
801
  #{ASCIIDOC_BLANK_HDR}
698
802
 
699
803
  == Clause
@@ -704,322 +808,327 @@ RSpec.describe Asciidoctor::ISO do
704
808
 
705
809
  Text
706
810
  INPUT
707
- #{BLANK_HDR}
708
- <sections><clause id="_" inline-header="false" obligation="normative">
709
- <title>Clause</title>
710
- <p id="_">Text</p>
711
- </clause>
712
- </sections><annex id="_" inline-header="false" obligation="normative">
713
- <title>Clause</title>
714
- <p id="_">Text</p>
715
- </annex>
716
- </iso-standard>
811
+ #{BLANK_HDR}
812
+ <sections>
813
+ <clause id="_" inline-header="false" obligation="normative">
814
+ <title>Clause</title>
815
+ <p id="_">Text</p>
816
+ </clause>
817
+ </sections>
818
+ <annex id="_" inline-header="false" obligation="normative">
819
+ <title>Clause</title>
820
+ <p id="_">Text</p>
821
+ </annex>
822
+ </iso-standard>
717
823
  OUTPUT
718
824
  end
719
825
 
720
826
  it "extends clause levels past 5" do
721
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
722
- #{ASCIIDOC_BLANK_HDR}
827
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
828
+ #{ASCIIDOC_BLANK_HDR}
723
829
 
724
- == Clause1
830
+ == Clause1
725
831
 
726
- === Clause2
832
+ === Clause2
727
833
 
728
- ==== Clause3
834
+ ==== Clause3
729
835
 
730
- ===== Clause4
836
+ ===== Clause4
731
837
 
732
- ====== Clause 5
838
+ ====== Clause 5
733
839
 
734
- [level=6]
735
- ====== Clause 6
840
+ [level=6]
841
+ ====== Clause 6
736
842
 
737
- [level=7]
738
- ====== Clause 7A
843
+ [level=7]
844
+ ====== Clause 7A
739
845
 
740
- [level=7]
741
- ====== Clause 7B
846
+ [level=7]
847
+ ====== Clause 7B
742
848
 
743
- [level=6]
744
- ====== Clause 6B
849
+ [level=6]
850
+ ====== Clause 6B
745
851
 
746
- ====== Clause 5B
852
+ ====== Clause 5B
747
853
 
748
854
  INPUT
749
- #{BLANK_HDR}
750
- <sections>
751
- <clause id="_" inline-header="false" obligation="normative">
752
- <title>Clause1</title>
753
- <clause id="_" inline-header="false" obligation="normative">
754
- <title>Clause2</title>
755
- <clause id="_" inline-header="false" obligation="normative">
756
- <title>Clause3</title>
757
- <clause id="_" inline-header="false" obligation="normative"><title>Clause4</title><clause id="_" inline-header="false" obligation="normative">
758
- <title>Clause 5</title>
759
- <clause id="_" inline-header="false" obligation="normative">
760
- <title>Clause 6</title>
761
- <clause id="_" inline-header="false" obligation="normative">
762
- <title>Clause 7A</title>
763
- </clause><clause id="_" inline-header="false" obligation="normative">
764
- <title>Clause 7B</title>
765
- </clause></clause><clause id="_" inline-header="false" obligation="normative">
766
- <title>Clause 6B</title>
767
- </clause></clause>
768
-
769
-
770
-
771
-
772
- <clause id="_" inline-header="false" obligation="normative">
773
- <title>Clause 5B</title>
774
- </clause></clause>
775
- </clause>
776
- </clause>
777
- </clause>
778
- </sections>
779
- </iso-standard>
855
+ #{BLANK_HDR}
856
+ <sections>
857
+ <clause id="_" inline-header="false" obligation="normative">
858
+ <title>Clause1</title>
859
+ <clause id="_" inline-header="false" obligation="normative">
860
+ <title>Clause2</title>
861
+ <clause id="_" inline-header="false" obligation="normative">
862
+ <title>Clause3</title>
863
+ <clause id="_" inline-header="false" obligation="normative">
864
+ <title>Clause4</title>
865
+ <clause id="_" inline-header="false" obligation="normative">
866
+ <title>Clause 5</title>
867
+ <clause id="_" inline-header="false" obligation="normative">
868
+ <title>Clause 6</title>
869
+ <clause id="_" inline-header="false" obligation="normative">
870
+ <title>Clause 7A</title>
871
+ </clause>
872
+ <clause id="_" inline-header="false" obligation="normative">
873
+ <title>Clause 7B</title>
874
+ </clause>
875
+ </clause>
876
+ <clause id="_" inline-header="false" obligation="normative">
877
+ <title>Clause 6B</title>
878
+ </clause>
879
+ </clause>
880
+ <clause id="_" inline-header="false" obligation="normative">
881
+ <title>Clause 5B</title>
882
+ </clause>
883
+ </clause>
884
+ </clause>
885
+ </clause>
886
+ </clause>
887
+ </sections>
888
+ </iso-standard>
780
889
  OUTPUT
781
890
  end
782
891
 
783
892
  it "reorders references in bibliography, and renumbers citations accordingly" do
784
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
785
- #{ASCIIDOC_BLANK_HDR}
786
-
787
- == Clause 1
788
- <<ref1>>
789
- <<ref1a>>
790
- <<ref1b>>
791
- <<ref2>>
792
- <<ref3>>
793
- <<ref4>>
794
- <<ref5>>
795
- <<ref6>>
796
- <<ref7>>
797
- <<ref8>>
798
- <<ref9>>
799
- <<ref10>>
800
-
801
- [bibliography]
802
- == Bibliography
803
-
804
- [bibliography]
805
- === Clause 1
806
- * [[[ref3,IEC 123]]], _Standard IEC 123_
807
- * [[[ref5,20]]], _Standard 10_
808
- * [[[ref1,ISO 123]]], _Standard ISO 123_
809
- * [[[ref1a,ISO 123-100]]], _Standard ISO 123_
810
- * [[[ref1b,ISO/TS 123-1]]], _Standard ISO 123_
811
- * [[[ref4,GB 123]]], _Standard GB 123_
812
- * [[[ref2,ISO/IEC 123]]], _Standard ISO/IEC 123_
813
- * [[[ref6,(B)]]], _Standard 20_
814
- * [[[ref7,(A)]]], _Standard 30_
815
-
816
- [bibliography]
817
- === {blank}
818
- * [[[ref15,20]]], _Standard 10_
819
- * [[[ref14,GB 123]]], _Standard GB 123_
820
- * [[[ref13,IEC 123]]], _Standard IEC 123_
821
- * [[[ref11,ISO 123]]], _Standard ISO 123_
822
- * [[[ref10,ISO/IEC 123]]], _Standard ISO/IEC 123_
823
- * [[[ref16,(B)]]], _Standard 20_
824
- * [[[ref17,(A)]]], _Standard 30_
893
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
894
+ #{ASCIIDOC_BLANK_HDR}
895
+
896
+ == Clause 1
897
+ <<ref1>>
898
+ <<ref1a>>
899
+ <<ref1b>>
900
+ <<ref2>>
901
+ <<ref3>>
902
+ <<ref4>>
903
+ <<ref5>>
904
+ <<ref6>>
905
+ <<ref7>>
906
+ <<ref8>>
907
+ <<ref9>>
908
+ <<ref10>>
909
+
910
+ [bibliography]
911
+ == Bibliography
912
+
913
+ [bibliography]
914
+ === Clause 1
915
+ * [[[ref3,IEC 123]]], _Standard IEC 123_
916
+ * [[[ref5,20]]], _Standard 10_
917
+ * [[[ref1,ISO 123]]], _Standard ISO 123_
918
+ * [[[ref1a,ISO 123-100]]], _Standard ISO 123_
919
+ * [[[ref1b,ISO/TS 123-1]]], _Standard ISO 123_
920
+ * [[[ref4,GB 123]]], _Standard GB 123_
921
+ * [[[ref2,ISO/IEC 123]]], _Standard ISO/IEC 123_
922
+ * [[[ref6,(B)]]], _Standard 20_
923
+ * [[[ref7,(A)]]], _Standard 30_
924
+
925
+ [bibliography]
926
+ === {blank}
927
+ * [[[ref15,20]]], _Standard 10_
928
+ * [[[ref14,GB 123]]], _Standard GB 123_
929
+ * [[[ref13,IEC 123]]], _Standard IEC 123_
930
+ * [[[ref11,ISO 123]]], _Standard ISO 123_
931
+ * [[[ref10,ISO/IEC 123]]], _Standard ISO/IEC 123_
932
+ * [[[ref16,(B)]]], _Standard 20_
933
+ * [[[ref17,(A)]]], _Standard 30_
825
934
  INPUT
826
- #{BLANK_HDR}
935
+ #{BLANK_HDR}
827
936
  <sections>
828
- <clause id='_' inline-header='false' obligation='normative'>
829
- <title>Clause 1</title>
830
- <p id='_'>
831
- <eref type='inline' bibitemid='ref1' citeas='ISO 123'/>
832
- <eref type='inline' bibitemid='ref1a' citeas='ISO 123-100'/>
833
- <eref type='inline' bibitemid='ref1b' citeas='ISO/TS 123-1'/>
834
- <eref type='inline' bibitemid='ref2' citeas='ISO/IEC 123'/>
835
- <eref type='inline' bibitemid='ref3' citeas='IEC 123'/>
836
- <eref type='inline' bibitemid='ref4' citeas='GB 123'/>
837
- <eref type='inline' bibitemid='ref5' citeas='[6]'/>
838
- <eref type='inline' bibitemid='ref6' citeas='[B]'/>
839
- <eref type='inline' bibitemid='ref7' citeas='[A]'/>
840
- <xref target='ref8'/>
841
- <xref target='ref9'/>
842
- <eref type='inline' bibitemid='ref10' citeas='ISO/IEC 123'/>
843
- </p>
844
- </clause>
845
- </sections>
846
- <bibliography>
847
- <clause id='_' obligation='informative'>
848
- <title>Bibliography</title>
849
- <references id='_' obligation='informative' normative="false">
850
- <title>Clause 1</title>
851
- <bibitem id='ref1' type='standard'>
852
- <title format='text/plain'>Standard ISO 123</title>
853
- <docidentifier>ISO 123</docidentifier>
854
- <docnumber>123</docnumber>
855
- <contributor>
856
- <role type='publisher'/>
857
- <organization>
858
- <name>International Organization for Standardization</name>
859
- <abbreviation>ISO</abbreviation>
860
- </organization>
861
- </contributor>
862
- </bibitem>
863
- <bibitem id='ref2' type='standard'>
864
- <title format='text/plain'>Standard ISO/IEC 123</title>
865
- <docidentifier>ISO/IEC 123</docidentifier>
866
- <docnumber>123</docnumber>
867
- <contributor>
868
- <role type='publisher'/>
869
- <organization>
870
- <name>International Organization for Standardization</name>
871
- <abbreviation>ISO</abbreviation>
872
- </organization>
873
- </contributor>
874
- <contributor>
875
- <role type='publisher'/>
876
- <organization>
877
- <name>International Electrotechnical Commission</name>
878
- <abbreviation>IEC</abbreviation>
879
- </organization>
880
- </contributor>
881
- </bibitem>
882
- <bibitem id='ref1b' type='standard'>
883
- <title format='text/plain'>Standard ISO 123</title>
884
- <docidentifier>ISO/TS 123-1</docidentifier>
885
- <docnumber>123-1</docnumber>
886
- <contributor>
887
- <role type='publisher'/>
888
- <organization>
889
- <name>International Organization for Standardization</name>
890
- <abbreviation>ISO</abbreviation>
891
- </organization>
892
- </contributor>
893
- <contributor>
894
- <role type='publisher'/>
895
- <organization>
896
- <name>TS</name>
897
- </organization>
898
- </contributor>
899
- </bibitem>
900
- <bibitem id='ref1a' type='standard'>
901
- <title format='text/plain'>Standard ISO 123</title>
902
- <docidentifier>ISO 123-100</docidentifier>
903
- <docnumber>123-100</docnumber>
904
- <contributor>
905
- <role type='publisher'/>
906
- <organization>
907
- <name>International Organization for Standardization</name>
908
- <abbreviation>ISO</abbreviation>
909
- </organization>
910
- </contributor>
911
- </bibitem>
912
- <bibitem id='ref3' type='standard'>
913
- <title format='text/plain'>Standard IEC 123</title>
914
- <docidentifier>IEC 123</docidentifier>
915
- <docnumber>123</docnumber>
916
- <contributor>
917
- <role type='publisher'/>
918
- <organization>
919
- <name>International Electrotechnical Commission</name>
920
- <abbreviation>IEC</abbreviation>
921
- </organization>
922
- </contributor>
923
- </bibitem>
924
- <bibitem id='ref5'>
925
- <formattedref format='application/x-isodoc+xml'>
926
- <em>Standard 10</em>
927
- </formattedref>
928
- <docidentifier type='metanorma'>[6]</docidentifier>
929
- </bibitem>
930
- <bibitem id='ref6'>
931
- <formattedref format='application/x-isodoc+xml'>
932
- <em>Standard 20</em>
933
- </formattedref>
934
- <docidentifier type='metanorma'>[B]</docidentifier>
935
- </bibitem>
936
- <bibitem id='ref7'>
937
- <formattedref format='application/x-isodoc+xml'>
938
- <em>Standard 30</em>
939
- </formattedref>
940
- <docidentifier type='metanorma'>[A]</docidentifier>
941
- </bibitem>
942
- <bibitem id='ref4'>
943
- <formattedref format='application/x-isodoc+xml'>
944
- <em>Standard GB 123</em>
945
- </formattedref>
946
- <docidentifier>GB 123</docidentifier>
947
- <docnumber>123</docnumber>
948
- </bibitem>
949
- </references>
950
- <references id='_' obligation='informative' normative="false">
951
- <bibitem id='ref11' type='standard'>
952
- <title format='text/plain'>Standard ISO 123</title>
953
- <docidentifier>ISO 123</docidentifier>
954
- <docnumber>123</docnumber>
955
- <contributor>
956
- <role type='publisher'/>
957
- <organization>
958
- <name>International Organization for Standardization</name>
959
- <abbreviation>ISO</abbreviation>
960
- </organization>
961
- </contributor>
962
- </bibitem>
963
- <bibitem id='ref10' type='standard'>
964
- <title format='text/plain'>Standard ISO/IEC 123</title>
965
- <docidentifier>ISO/IEC 123</docidentifier>
966
- <docnumber>123</docnumber>
967
- <contributor>
968
- <role type='publisher'/>
969
- <organization>
970
- <name>International Organization for Standardization</name>
971
- <abbreviation>ISO</abbreviation>
972
- </organization>
973
- </contributor>
974
- <contributor>
975
- <role type='publisher'/>
976
- <organization>
977
- <name>International Electrotechnical Commission</name>
978
- <abbreviation>IEC</abbreviation>
979
- </organization>
980
- </contributor>
981
- </bibitem>
982
- <bibitem id='ref13' type='standard'>
983
- <title format='text/plain'>Standard IEC 123</title>
984
- <docidentifier>IEC 123</docidentifier>
985
- <docnumber>123</docnumber>
986
- <contributor>
987
- <role type='publisher'/>
988
- <organization>
989
- <name>International Electrotechnical Commission</name>
990
- <abbreviation>IEC</abbreviation>
991
- </organization>
992
- </contributor>
993
- </bibitem>
994
- <bibitem id='ref15'>
995
- <formattedref format='application/x-isodoc+xml'>
996
- <em>Standard 10</em>
997
- </formattedref>
998
- <docidentifier type='metanorma'>[13]</docidentifier>
999
- </bibitem>
1000
- <bibitem id='ref16'>
1001
- <formattedref format='application/x-isodoc+xml'>
1002
- <em>Standard 20</em>
1003
- </formattedref>
1004
- <docidentifier type='metanorma'>[B]</docidentifier>
1005
- </bibitem>
1006
- <bibitem id='ref17'>
1007
- <formattedref format='application/x-isodoc+xml'>
1008
- <em>Standard 30</em>
1009
- </formattedref>
1010
- <docidentifier type='metanorma'>[A]</docidentifier>
1011
- </bibitem>
1012
- <bibitem id='ref14'>
1013
- <formattedref format='application/x-isodoc+xml'>
1014
- <em>Standard GB 123</em>
1015
- </formattedref>
1016
- <docidentifier>GB 123</docidentifier>
1017
- <docnumber>123</docnumber>
1018
- </bibitem>
1019
- </references>
1020
- </clause>
1021
- </bibliography>
1022
- </iso-standard>
937
+ <clause id="_" inline-header="false" obligation="normative">
938
+ <title>Clause 1</title>
939
+ <p id="_">
940
+ <eref bibitemid="ref1" citeas="ISO 123" type="inline"/>
941
+ <eref bibitemid="ref1a" citeas="ISO 123-100" type="inline"/>
942
+ <eref bibitemid="ref1b" citeas="ISO/TS 123-1" type="inline"/>
943
+ <eref bibitemid="ref2" citeas="ISO/IEC 123" type="inline"/>
944
+ <eref bibitemid="ref3" citeas="IEC 123" type="inline"/>
945
+ <eref bibitemid="ref4" citeas="GB 123" type="inline"/>
946
+ <eref bibitemid="ref5" citeas="[6]" type="inline"/>
947
+ <eref bibitemid="ref6" citeas="[B]" type="inline"/>
948
+ <eref bibitemid="ref7" citeas="[A]" type="inline"/>
949
+ <xref target="ref8"/>
950
+ <xref target="ref9"/>
951
+ <eref bibitemid="ref10" citeas="ISO/IEC 123" type="inline"/>
952
+ </p>
953
+ </clause>
954
+ </sections>
955
+ <bibliography>
956
+ <clause id="_" obligation="informative">
957
+ <title>Bibliography</title>
958
+ <references id="_" normative="false" obligation="informative">
959
+ <title>Clause 1</title>
960
+ <bibitem id="ref1" type="standard">
961
+ <title format="text/plain">Standard ISO 123</title>
962
+ <docidentifier>ISO 123</docidentifier>
963
+ <docnumber>123</docnumber>
964
+ <contributor>
965
+ <role type="publisher"/>
966
+ <organization>
967
+ <name>International Organization for Standardization</name>
968
+ <abbreviation>ISO</abbreviation>
969
+ </organization>
970
+ </contributor>
971
+ </bibitem>
972
+ <bibitem id="ref2" type="standard">
973
+ <title format="text/plain">Standard ISO/IEC 123</title>
974
+ <docidentifier>ISO/IEC 123</docidentifier>
975
+ <docnumber>123</docnumber>
976
+ <contributor>
977
+ <role type="publisher"/>
978
+ <organization>
979
+ <name>International Organization for Standardization</name>
980
+ <abbreviation>ISO</abbreviation>
981
+ </organization>
982
+ </contributor>
983
+ <contributor>
984
+ <role type="publisher"/>
985
+ <organization>
986
+ <name>International Electrotechnical Commission</name>
987
+ <abbreviation>IEC</abbreviation>
988
+ </organization>
989
+ </contributor>
990
+ </bibitem>
991
+ <bibitem id="ref1b" type="standard">
992
+ <title format="text/plain">Standard ISO 123</title>
993
+ <docidentifier>ISO/TS 123-1</docidentifier>
994
+ <docnumber>123-1</docnumber>
995
+ <contributor>
996
+ <role type="publisher"/>
997
+ <organization>
998
+ <name>International Organization for Standardization</name>
999
+ <abbreviation>ISO</abbreviation>
1000
+ </organization>
1001
+ </contributor>
1002
+ <contributor>
1003
+ <role type="publisher"/>
1004
+ <organization>
1005
+ <name>TS</name>
1006
+ </organization>
1007
+ </contributor>
1008
+ </bibitem>
1009
+ <bibitem id="ref1a" type="standard">
1010
+ <title format="text/plain">Standard ISO 123</title>
1011
+ <docidentifier>ISO 123-100</docidentifier>
1012
+ <docnumber>123-100</docnumber>
1013
+ <contributor>
1014
+ <role type="publisher"/>
1015
+ <organization>
1016
+ <name>International Organization for Standardization</name>
1017
+ <abbreviation>ISO</abbreviation>
1018
+ </organization>
1019
+ </contributor>
1020
+ </bibitem>
1021
+ <bibitem id="ref3" type="standard">
1022
+ <title format="text/plain">Standard IEC 123</title>
1023
+ <docidentifier>IEC 123</docidentifier>
1024
+ <docnumber>123</docnumber>
1025
+ <contributor>
1026
+ <role type="publisher"/>
1027
+ <organization>
1028
+ <name>International Electrotechnical Commission</name>
1029
+ <abbreviation>IEC</abbreviation>
1030
+ </organization>
1031
+ </contributor>
1032
+ </bibitem>
1033
+ <bibitem id="ref5">
1034
+ <formattedref format="application/x-isodoc+xml">
1035
+ <em>Standard 10</em>
1036
+ </formattedref>
1037
+ <docidentifier type="metanorma">[6]</docidentifier>
1038
+ </bibitem>
1039
+ <bibitem id="ref6">
1040
+ <formattedref format="application/x-isodoc+xml">
1041
+ <em>Standard 20</em>
1042
+ </formattedref>
1043
+ <docidentifier type="metanorma">[B]</docidentifier>
1044
+ </bibitem>
1045
+ <bibitem id="ref7">
1046
+ <formattedref format="application/x-isodoc+xml">
1047
+ <em>Standard 30</em>
1048
+ </formattedref>
1049
+ <docidentifier type="metanorma">[A]</docidentifier>
1050
+ </bibitem>
1051
+ <bibitem id="ref4">
1052
+ <formattedref format="application/x-isodoc+xml">
1053
+ <em>Standard GB 123</em>
1054
+ </formattedref>
1055
+ <docidentifier>GB 123</docidentifier>
1056
+ <docnumber>123</docnumber>
1057
+ </bibitem>
1058
+ </references>
1059
+ <references id="_" normative="false" obligation="informative">
1060
+ <bibitem id="ref11" type="standard">
1061
+ <title format="text/plain">Standard ISO 123</title>
1062
+ <docidentifier>ISO 123</docidentifier>
1063
+ <docnumber>123</docnumber>
1064
+ <contributor>
1065
+ <role type="publisher"/>
1066
+ <organization>
1067
+ <name>International Organization for Standardization</name>
1068
+ <abbreviation>ISO</abbreviation>
1069
+ </organization>
1070
+ </contributor>
1071
+ </bibitem>
1072
+ <bibitem id="ref10" type="standard">
1073
+ <title format="text/plain">Standard ISO/IEC 123</title>
1074
+ <docidentifier>ISO/IEC 123</docidentifier>
1075
+ <docnumber>123</docnumber>
1076
+ <contributor>
1077
+ <role type="publisher"/>
1078
+ <organization>
1079
+ <name>International Organization for Standardization</name>
1080
+ <abbreviation>ISO</abbreviation>
1081
+ </organization>
1082
+ </contributor>
1083
+ <contributor>
1084
+ <role type="publisher"/>
1085
+ <organization>
1086
+ <name>International Electrotechnical Commission</name>
1087
+ <abbreviation>IEC</abbreviation>
1088
+ </organization>
1089
+ </contributor>
1090
+ </bibitem>
1091
+ <bibitem id="ref13" type="standard">
1092
+ <title format="text/plain">Standard IEC 123</title>
1093
+ <docidentifier>IEC 123</docidentifier>
1094
+ <docnumber>123</docnumber>
1095
+ <contributor>
1096
+ <role type="publisher"/>
1097
+ <organization>
1098
+ <name>International Electrotechnical Commission</name>
1099
+ <abbreviation>IEC</abbreviation>
1100
+ </organization>
1101
+ </contributor>
1102
+ </bibitem>
1103
+ <bibitem id="ref15">
1104
+ <formattedref format="application/x-isodoc+xml">
1105
+ <em>Standard 10</em>
1106
+ </formattedref>
1107
+ <docidentifier type="metanorma">[13]</docidentifier>
1108
+ </bibitem>
1109
+ <bibitem id="ref16">
1110
+ <formattedref format="application/x-isodoc+xml">
1111
+ <em>Standard 20</em>
1112
+ </formattedref>
1113
+ <docidentifier type="metanorma">[B]</docidentifier>
1114
+ </bibitem>
1115
+ <bibitem id="ref17">
1116
+ <formattedref format="application/x-isodoc+xml">
1117
+ <em>Standard 30</em>
1118
+ </formattedref>
1119
+ <docidentifier type="metanorma">[A]</docidentifier>
1120
+ </bibitem>
1121
+ <bibitem id="ref14">
1122
+ <formattedref format="application/x-isodoc+xml">
1123
+ <em>Standard GB 123</em>
1124
+ </formattedref>
1125
+ <docidentifier>GB 123</docidentifier>
1126
+ <docnumber>123</docnumber>
1127
+ </bibitem>
1128
+ </references>
1129
+ </clause>
1130
+ </bibliography>
1131
+ </iso-standard>
1023
1132
  OUTPUT
1024
1133
  end
1025
1134
  end