metanorma-iso 1.7.1 → 1.7.2

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.
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,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe Asciidoctor::ISO do
4
4
  it "processes sections" 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
  == Foreword
8
8
 
@@ -56,107 +56,119 @@ RSpec.describe Asciidoctor::ISO do
56
56
 
57
57
  === Bibliography Subsection
58
58
  INPUT
59
- #{BLANK_HDR}
60
- <preface><foreword id='_' obligation='informative'>
61
- <title>Foreword</title>
62
- <p id="_">Text</p>
63
- </foreword><introduction id="_" obligation="informative"><title>Introduction</title><clause id="_" inline-header="false" obligation="informative">
64
- <title>Introduction Subsection</title>
65
- </clause>
66
- </introduction>
67
- <acknowledgements id='_' obligation='informative'>
68
- <title>Acknowledgements</title>
69
- </acknowledgements>
70
- </preface><sections>
71
- <clause id="_" obligation="normative" inline-header='false' type="scope">
72
- <title>Scope</title>
73
- <p id="_">Text</p>
74
- </clause>
75
-
76
- <terms id="_" obligation="normative">
77
- <title>Terms and definitions</title>
78
- <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
79
- <p id="_">ISO and IEC maintain terminological databases for use in
80
- standardization at the following addresses:</p>
81
-
82
- <ul id="_">
83
- <li> <p id="_">ISO Online browsing platform: available at
84
- <link target="http://www.iso.org/obp"/></p> </li>
85
- <li> <p id="_">IEC Electropedia: available at
86
- <link target="http://www.electropedia.org"/>
87
- </p> </li> </ul>
88
-
89
- <term id="term-term1">
90
- <preferred>Term1</preferred>
91
- </term>
92
- </terms>
93
- <clause id="_" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title>
94
- <terms id="_" obligation="normative">
95
- <title>Normal Terms</title>
96
- <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
97
- <p id='_'>
98
- ISO and IEC maintain terminological databases for use in
99
- standardization at the following addresses:
100
- </p>
101
- <ul id='_'>
102
- <li>
103
- <p id='_'>
104
- ISO Online browsing platform: available at
105
- <link target='http://www.iso.org/obp'/>
106
- </p>
107
- </li>
108
- <li>
109
- <p id='_'>
110
- IEC Electropedia: available at
111
- <link target='http://www.electropedia.org'/>
112
- </p>
113
- </li>
114
- </ul>
115
- <term id="term-term2">
116
- <preferred>Term2</preferred>
117
- </term>
118
- </terms>
119
- <definitions id="_" obligation="normative">
120
- <title>Symbols and abbreviated terms</title></definitions></clause>
121
- <definitions id="_" obligation="normative">
122
- <title>Symbols and abbreviated terms</title></definitions>
123
- <clause id="_" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="_" inline-header="false" obligation="normative">
124
- <title>Introduction</title>
125
- </clause>
126
- <clause id="_" inline-header="false" obligation="normative">
127
- <title>Clause 4.2</title>
128
- </clause></clause>
129
- <clause id="_" inline-header="false" obligation="normative">
130
- <title>Terms and Definitions</title>
131
- </clause>
132
-
133
-
134
- </sections><annex id="_" inline-header="false" obligation="normative">
135
- <title>Annex</title>
136
- <clause id="_" inline-header="false" obligation="normative">
137
- <title>Annex A.1</title>
138
- </clause>
139
- <appendix id="_" inline-header="false" obligation="normative">
140
- <title>Appendix 1</title>
141
- <clause id='_' inline-header='false' obligation='normative'>
142
- <title>Appendix subclause</title>
143
- </clause>
144
- </appendix></annex><bibliography><references id="_" obligation="informative" normative="true">
145
- <title>Normative references</title>
146
- <p id="_">There are no normative references in this document.</p>
147
- </references><clause id="_" obligation="informative">
148
- <title>Bibliography</title>
149
- <references id="_" obligation="informative" normative="false">
150
- <title>Bibliography Subsection</title>
151
- </references>
152
- </clause>
153
- </bibliography>
154
- </iso-standard>
59
+ #{BLANK_HDR}
60
+ <preface>
61
+ <foreword id="_" obligation="informative">
62
+ <title>Foreword</title>
63
+ <p id="_">Text</p>
64
+ </foreword>
65
+ <introduction id="_" obligation="informative">
66
+ <title>Introduction</title>
67
+ <clause id="_" inline-header="false" obligation="informative">
68
+ <title>Introduction Subsection</title>
69
+ </clause>
70
+ </introduction>
71
+ <acknowledgements id="_" obligation="informative">
72
+ <title>Acknowledgements</title>
73
+ </acknowledgements>
74
+ </preface>
75
+ <sections>
76
+ <clause id="_" inline-header="false" obligation="normative" type="scope">
77
+ <title>Scope</title>
78
+ <p id="_">Text</p>
79
+ </clause>
80
+ <terms id="_" obligation="normative">
81
+ <title>Terms and definitions</title>
82
+ <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
83
+ <p id="_">ISO and IEC maintain terminological databases for use in standardization at the following addresses:</p>
84
+ <ul id="_">
85
+ <li>
86
+ <p id="_">ISO Online browsing platform: available at
87
+
88
+ <link target="http://www.iso.org/obp"/></p>
89
+ </li>
90
+ <li>
91
+ <p id="_">IEC Electropedia: available at
92
+
93
+ <link target="http://www.electropedia.org"/></p>
94
+ </li>
95
+ </ul>
96
+ <term id="term-term1">
97
+ <preferred>Term1</preferred>
98
+ </term>
99
+ </terms>
100
+ <clause id="_" obligation="normative">
101
+ <title>Terms, definitions, symbols and abbreviated terms</title>
102
+ <terms id="_" obligation="normative">
103
+ <title>Normal Terms</title>
104
+ <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
105
+ <p id="_">ISO and IEC maintain terminological databases for use in standardization at the following addresses:</p>
106
+ <ul id="_">
107
+ <li>
108
+ <p id="_">ISO Online browsing platform: available at
109
+
110
+ <link target="http://www.iso.org/obp"/></p>
111
+ </li>
112
+ <li>
113
+ <p id="_">IEC Electropedia: available at
114
+
115
+ <link target="http://www.electropedia.org"/></p>
116
+ </li>
117
+ </ul>
118
+ <term id="term-term2">
119
+ <preferred>Term2</preferred>
120
+ </term>
121
+ </terms>
122
+ <definitions id="_" obligation="normative">
123
+ <title>Symbols and abbreviated terms</title>
124
+ </definitions>
125
+ </clause>
126
+ <definitions id="_" obligation="normative">
127
+ <title>Symbols and abbreviated terms</title>
128
+ </definitions>
129
+ <clause id="_" inline-header="false" obligation="normative">
130
+ <title>Clause 4</title>
131
+ <clause id="_" inline-header="false" obligation="normative">
132
+ <title>Introduction</title>
133
+ </clause>
134
+ <clause id="_" inline-header="false" obligation="normative">
135
+ <title>Clause 4.2</title>
136
+ </clause>
137
+ </clause>
138
+ <clause id="_" inline-header="false" obligation="normative">
139
+ <title>Terms and Definitions</title>
140
+ </clause>
141
+ </sections>
142
+ <annex id="_" inline-header="false" obligation="normative">
143
+ <title>Annex</title>
144
+ <clause id="_" inline-header="false" obligation="normative">
145
+ <title>Annex A.1</title>
146
+ </clause>
147
+ <appendix id="_" inline-header="false" obligation="normative">
148
+ <title>Appendix 1</title>
149
+ <clause id="_" inline-header="false" obligation="normative">
150
+ <title>Appendix subclause</title>
151
+ </clause>
152
+ </appendix>
153
+ </annex>
154
+ <bibliography>
155
+ <references id="_" normative="true" obligation="informative">
156
+ <title>Normative references</title>
157
+ <p id="_">There are no normative references in this document.</p>
158
+ </references>
159
+ <clause id="_" obligation="informative">
160
+ <title>Bibliography</title>
161
+ <references id="_" normative="false" obligation="informative">
162
+ <title>Bibliography Subsection</title>
163
+ </references>
164
+ </clause>
165
+ </bibliography>
166
+ </iso-standard>
155
167
  OUTPUT
156
168
  end
157
169
 
158
170
  it "processes section obligations" do
159
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
171
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
160
172
  #{ASCIIDOC_BLANK_HDR}
161
173
  [obligation=informative]
162
174
  == Clause 1
@@ -168,26 +180,28 @@ standardization at the following addresses:</p>
168
180
 
169
181
  [appendix,obligation=informative]
170
182
  == Annex
171
- INPUT
172
- #{BLANK_HDR}
173
- <sections><clause id="_" inline-header="false" obligation="informative">
174
- <title>Clause 1</title>
175
- <clause id="_" inline-header="false" obligation="informative">
176
- <title>Clause 1a</title>
177
- </clause>
178
- </clause>
179
- <clause id="_" inline-header="false" obligation="normative">
180
- <title>Clause 2</title>
181
- </clause>
182
- </sections><annex id="_" inline-header="false" obligation="informative">
183
- <title>Annex</title>
184
- </annex>
185
- </iso-standard>
186
- OUTPUT
183
+ INPUT
184
+ #{BLANK_HDR}
185
+ <sections>
186
+ <clause id="_" inline-header="false" obligation="informative">
187
+ <title>Clause 1</title>
188
+ <clause id="_" inline-header="false" obligation="informative">
189
+ <title>Clause 1a</title>
190
+ </clause>
191
+ </clause>
192
+ <clause id="_" inline-header="false" obligation="normative">
193
+ <title>Clause 2</title>
194
+ </clause>
195
+ </sections>
196
+ <annex id="_" inline-header="false" obligation="informative">
197
+ <title>Annex</title>
198
+ </annex>
199
+ </iso-standard>
200
+ OUTPUT
187
201
  end
188
202
 
189
- it "processes inline headers" do
190
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
203
+ it "processes inline headers" do
204
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
191
205
  #{ASCIIDOC_BLANK_HDR}
192
206
  == Clause 1
193
207
 
@@ -199,46 +213,47 @@ standardization at the following addresses:</p>
199
213
 
200
214
  [%inline-header]
201
215
  === Clause Aa
202
- INPUT
203
- #{BLANK_HDR}
204
- <sections><clause id="_" inline-header="false" obligation="normative">
205
- <title>Clause 1</title>
206
- <clause id="_" inline-header="true" obligation="normative">
207
- <title>Clause 1a</title>
208
- </clause>
209
- </clause>
210
- </sections><annex id="_" inline-header="false" obligation="normative">
211
- <title>Annex A</title>
212
- <clause id="_" inline-header="true" obligation="normative">
213
- <title>Clause Aa</title>
214
- </clause>
215
- </annex>
216
- </iso-standard>
217
- OUTPUT
218
- end
216
+ INPUT
217
+ #{BLANK_HDR}
218
+ <sections>
219
+ <clause id="_" inline-header="false" obligation="normative">
220
+ <title>Clause 1</title>
221
+ <clause id="_" inline-header="true" obligation="normative">
222
+ <title>Clause 1a</title>
223
+ </clause>
224
+ </clause>
225
+ </sections>
226
+ <annex id="_" inline-header="false" obligation="normative">
227
+ <title>Annex A</title>
228
+ <clause id="_" inline-header="true" obligation="normative">
229
+ <title>Clause Aa</title>
230
+ </clause>
231
+ </annex>
232
+ </iso-standard>
233
+ OUTPUT
234
+ end
219
235
 
220
236
  it "processes blank headers" do
221
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
237
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
222
238
  #{ASCIIDOC_BLANK_HDR}
223
239
  == Clause 1
224
240
 
225
241
  === {blank}
226
242
 
227
- INPUT
228
- #{BLANK_HDR}
229
- <sections>
230
- <clause id="_" inline-header="false" obligation="normative">
231
- <title>Clause 1</title>
232
- <clause id="_" inline-header="false" obligation="normative">
233
- </clause>
234
- </clause>
235
- </sections>
236
- </iso-standard>
237
- OUTPUT
243
+ INPUT
244
+ #{BLANK_HDR}
245
+ <sections>
246
+ <clause id="_" inline-header="false" obligation="normative">
247
+ <title>Clause 1</title>
248
+ <clause id="_" inline-header="false" obligation="normative"/>
249
+ </clause>
250
+ </sections>
251
+ </iso-standard>
252
+ OUTPUT
238
253
  end
239
254
 
240
- it "processes terms & definitions with external source" do
241
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
255
+ it "processes terms & definitions with external source" do
256
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
242
257
  #{ASCIIDOC_BLANK_HDR}
243
258
 
244
259
  Foreword
@@ -248,36 +263,46 @@ standardization at the following addresses:</p>
248
263
 
249
264
  === Term1
250
265
 
251
- INPUT
252
- #{BLANK_HDR.sub(/<boilerplate>/, '<termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/><boilerplate>')}
253
- <preface><foreword id='_' obligation="informative">
254
- <title>Foreword</title>
255
- <p id="_">Foreword</p>
256
- </foreword></preface><sections>
257
- <terms id="_" obligation="normative">
258
- <title>Terms and definitions</title><p id="_">For the purposes of this document, the terms and definitions
259
- given in <eref bibitemid="iso1234"/> and <eref bibitemid="iso5678"/> and the following apply.</p>
260
- <p id="_">ISO and IEC maintain terminological databases for use in
261
- standardization at the following addresses:</p>
262
-
263
- <ul id="_">
264
- <li> <p id="_">ISO Online browsing platform: available at
265
- <link target="http://www.iso.org/obp"/></p> </li>
266
- <li> <p id="_">IEC Electropedia: available at
267
- <link target="http://www.electropedia.org"/>
268
- </p> </li> </ul>
269
-
270
- <term id="term-term1">
271
- <preferred>Term1</preferred>
272
- </term>
273
- </terms></sections>
274
- </iso-standard>
275
-
276
- OUTPUT
277
- end
278
-
279
- it "processes empty terms & definitions" do
280
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
266
+ INPUT
267
+ #{BLANK_HDR.sub(/<boilerplate>/, '<termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/><boilerplate>')}
268
+ <preface>
269
+ <foreword id="_" obligation="informative">
270
+ <title>Foreword</title>
271
+ <p id="_">Foreword</p>
272
+ </foreword>
273
+ </preface>
274
+ <sections>
275
+ <terms id="_" obligation="normative">
276
+ <title>Terms and definitions</title>
277
+ <p id="_">For the purposes of this document, the terms and definitions
278
+ given in <eref bibitemid="iso1234"/>
279
+ and <eref bibitemid="iso5678"/>
280
+ and the following apply.</p>
281
+ <p id="_">ISO and IEC maintain terminological databases for use in
282
+ standardization at the following addresses:</p>
283
+ <ul id="_">
284
+ <li>
285
+ <p id="_">ISO Online browsing platform: available at
286
+
287
+ <link target="http://www.iso.org/obp"/></p>
288
+ </li>
289
+ <li>
290
+ <p id="_">IEC Electropedia: available at
291
+
292
+ <link target="http://www.electropedia.org"/></p>
293
+ </li>
294
+ </ul>
295
+ <term id="term-term1">
296
+ <preferred>Term1</preferred>
297
+ </term>
298
+ </terms>
299
+ </sections>
300
+ </iso-standard>
301
+ OUTPUT
302
+ end
303
+
304
+ it "processes empty terms & definitions" do
305
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
281
306
  #{ASCIIDOC_BLANK_HDR}
282
307
 
283
308
  Foreword
@@ -285,45 +310,45 @@ standardization at the following addresses:</p>
285
310
  == Terms and Definitions
286
311
 
287
312
 
288
- INPUT
289
- #{BLANK_HDR}
290
- <preface>
291
- <foreword id='_' obligation='informative'>
292
- <title>Foreword</title>
293
- <p id='_'>Foreword</p>
294
- </foreword>
295
- </preface>
296
- <sections>
297
- <terms id='_' obligation='normative'>
298
- <title>Terms and definitions</title>
299
- <p id='_'>No terms and definitions are listed in this document.</p>
300
- <p id='_'>
301
- ISO and IEC maintain terminological databases for use in standardization
302
- at the following addresses:
303
- </p>
304
- <ul id='_'>
305
- <li>
306
- <p id='_'>
307
- ISO Online browsing platform: available at
308
- <link target='http://www.iso.org/obp'/>
309
- </p>
310
- </li>
311
- <li>
312
- <p id='_'>
313
- IEC Electropedia: available at
314
- <link target='http://www.electropedia.org'/>
315
- </p>
316
- </li>
317
- </ul>
318
- </terms>
319
- </sections>
320
- </iso-standard>
313
+ INPUT
314
+ #{BLANK_HDR}
315
+ <preface>
316
+ <foreword id="_" obligation="informative">
317
+ <title>Foreword</title>
318
+ <p id="_">Foreword</p>
319
+ </foreword>
320
+ </preface>
321
+ <sections>
322
+ <terms id='_' obligation='normative'>
323
+ <title>Terms and definitions</title>
324
+ <p id='_'>No terms and definitions are listed in this document.</p>
325
+ <p id='_'>
326
+ ISO and IEC maintain terminological databases for use in standardization
327
+ at the following addresses:
328
+ </p>
329
+ <ul id='_'>
330
+ <li>
331
+ <p id='_'>
332
+ ISO Online browsing platform: available at
333
+ <link target='http://www.iso.org/obp'/>
334
+ </p>
335
+ </li>
336
+ <li>
337
+ <p id='_'>
338
+ IEC Electropedia: available at
339
+ <link target='http://www.electropedia.org'/>
340
+ </p>
341
+ </li>
342
+ </ul>
343
+ </terms>
344
+ </sections>
345
+ </iso-standard>
321
346
 
322
- OUTPUT
323
- end
347
+ OUTPUT
348
+ end
324
349
 
325
- it "processes empty terms & definitions with external source" do
326
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
350
+ it "processes empty terms & definitions with external source" do
351
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
327
352
  #{ASCIIDOC_BLANK_HDR}
328
353
 
329
354
  Foreword
@@ -331,32 +356,38 @@ standardization at the following addresses:</p>
331
356
  [source="iso1234,iso5678"]
332
357
  == Terms and Definitions
333
358
 
334
- INPUT
335
- #{BLANK_HDR.sub(/<boilerplate>/, '<termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/><boilerplate>')}
336
- <preface><foreword id='_' obligation="informative">
337
- <title>Foreword</title>
338
- <p id="_">Foreword</p>
339
- </foreword></preface><sections>
340
- <terms id="_" obligation="normative">
341
- <title>Terms and definitions</title>
342
- <p id="_">For the purposes of this document,
343
- the terms and definitions given in <eref bibitemid="iso1234"/> and <eref bibitemid="iso5678"/> apply.</p>
344
- <p id="_">ISO and IEC maintain terminological databases for use in
345
- standardization at the following addresses:</p>
346
-
347
- <ul id="_">
348
- <li> <p id="_">ISO Online browsing platform: available at
349
- <link target="http://www.iso.org/obp"/></p> </li>
350
- <li> <p id="_">IEC Electropedia: available at
351
- <link target="http://www.electropedia.org"/>
352
- </p> </li> </ul>
353
-
354
-
355
-
356
- </terms></sections>
357
- </iso-standard>
358
-
359
- OUTPUT
360
- end
361
-
359
+ INPUT
360
+ #{BLANK_HDR.sub(/<boilerplate>/, '<termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/><boilerplate>')}
361
+ <preface>
362
+ <foreword id="_" obligation="informative">
363
+ <title>Foreword</title>
364
+ <p id="_">Foreword</p>
365
+ </foreword>
366
+ </preface>
367
+ <sections>
368
+ <terms id="_" obligation="normative">
369
+ <title>Terms and definitions</title>
370
+ <p id="_">For the purposes of this document,
371
+ the terms and definitions given in <eref bibitemid="iso1234"/>
372
+ and <eref bibitemid="iso5678"/>
373
+ apply.
374
+ </p>
375
+ <p id="_">ISO and IEC maintain terminological databases for use in standardization at the following addresses:</p>
376
+ <ul id="_">
377
+ <li>
378
+ <p id="_">ISO Online browsing platform: available at
379
+
380
+ <link target="http://www.iso.org/obp"/></p>
381
+ </li>
382
+ <li>
383
+ <p id="_">IEC Electropedia: available at
384
+
385
+ <link target="http://www.electropedia.org"/></p>
386
+ </li>
387
+ </ul>
388
+ </terms>
389
+ </sections>
390
+ </iso-standard>
391
+ OUTPUT
392
+ end
362
393
  end