metanorma-iso 1.6.1 → 1.7.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +11 -41
- data/.gitignore +2 -0
- data/.rubocop.yml +6 -2
- data/lib/asciidoctor/iso/base.rb +13 -13
- data/lib/asciidoctor/iso/basicdoc.rng +5 -3
- data/lib/asciidoctor/iso/biblio.rng +4 -6
- data/lib/asciidoctor/iso/cleanup.rb +1 -1
- data/lib/asciidoctor/iso/front.rb +6 -6
- data/lib/asciidoctor/iso/front_id.rb +30 -25
- data/lib/asciidoctor/iso/isodoc.rng +108 -2
- data/lib/asciidoctor/iso/isostandard-amd.rng +3 -0
- data/lib/asciidoctor/iso/isostandard.rng +17 -97
- data/lib/asciidoctor/iso/validate.rb +68 -1
- data/lib/asciidoctor/iso/validate_title.rb +21 -13
- data/lib/isodoc/iso/base_convert.rb +11 -0
- data/lib/isodoc/iso/html/header.html +12 -12
- data/lib/isodoc/iso/html/html_iso_intro.html +1 -1
- data/lib/isodoc/iso/html/html_iso_titlepage.html +1 -1
- data/lib/isodoc/iso/html/word_iso_intro.html +1 -1
- data/lib/isodoc/iso/html/word_iso_titlepage.html +1 -1
- data/lib/isodoc/iso/html_convert.rb +2 -2
- data/lib/isodoc/iso/i18n-en.yaml +6 -0
- data/lib/isodoc/iso/i18n-fr.yaml +4 -0
- data/lib/isodoc/iso/i18n-zh-Hans.yaml +4 -0
- data/lib/isodoc/iso/index.rb +140 -0
- data/lib/isodoc/iso/iso.amendment.xsl +1009 -321
- data/lib/isodoc/iso/iso.international-standard.xsl +1009 -321
- data/lib/isodoc/iso/presentation_xml_convert.rb +1 -4
- data/lib/isodoc/iso/word_convert.rb +2 -2
- data/lib/isodoc/iso/xref.rb +5 -0
- data/lib/metanorma/iso/version.rb +1 -1
- data/metanorma-iso.gemspec +4 -4
- data/spec/asciidoctor/amd_spec.rb +696 -0
- data/spec/asciidoctor/base_spec.rb +704 -0
- data/spec/asciidoctor/blocks_spec.rb +527 -0
- data/spec/asciidoctor/cleanup_spec.rb +1134 -0
- data/spec/asciidoctor/inline_spec.rb +195 -0
- data/spec/asciidoctor/lists_spec.rb +197 -0
- data/spec/asciidoctor/refs_spec.rb +375 -0
- data/spec/asciidoctor/section_spec.rb +393 -0
- data/spec/asciidoctor/table_spec.rb +329 -0
- data/spec/asciidoctor/validate_spec.rb +1572 -0
- data/spec/isodoc/amd_spec.rb +967 -946
- data/spec/isodoc/blocks_spec.rb +530 -507
- data/spec/isodoc/i18n_spec.rb +953 -911
- data/spec/isodoc/inline_spec.rb +355 -293
- data/spec/isodoc/iso_spec.rb +340 -316
- data/spec/isodoc/metadata_spec.rb +392 -382
- data/spec/isodoc/postproc_spec.rb +834 -656
- data/spec/isodoc/ref_spec.rb +374 -331
- data/spec/isodoc/section_spec.rb +821 -519
- data/spec/isodoc/table_spec.rb +472 -411
- data/spec/isodoc/terms_spec.rb +209 -185
- data/spec/isodoc/xref_spec.rb +1370 -1236
- data/spec/metanorma/processor_spec.rb +28 -26
- data/spec/spec_helper.rb +186 -189
- metadata +26 -27
- data/.rubocop.ribose.yml +0 -66
- data/spec/asciidoctor-iso/amd_spec.rb +0 -694
- data/spec/asciidoctor-iso/base_spec.rb +0 -713
- data/spec/asciidoctor-iso/blocks_spec.rb +0 -482
- data/spec/asciidoctor-iso/cleanup_spec.rb +0 -1025
- data/spec/asciidoctor-iso/inline_spec.rb +0 -170
- data/spec/asciidoctor-iso/lists_spec.rb +0 -190
- data/spec/asciidoctor-iso/refs_spec.rb +0 -317
- data/spec/asciidoctor-iso/section_spec.rb +0 -362
- data/spec/asciidoctor-iso/table_spec.rb +0 -313
- data/spec/asciidoctor-iso/validate_spec.rb +0 -1550
- data/spec/assets/xref_error.adoc +0 -7
@@ -0,0 +1,1134 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
RSpec.describe Asciidoctor::ISO do
|
4
|
+
it "removes empty text elements" do
|
5
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
6
|
+
#{ASCIIDOC_BLANK_HDR}
|
7
|
+
== {blank}
|
8
|
+
INPUT
|
9
|
+
#{BLANK_HDR}
|
10
|
+
<sections>
|
11
|
+
<clause id="_" inline-header="false" obligation="normative"/>
|
12
|
+
</sections>
|
13
|
+
</iso-standard>
|
14
|
+
OUTPUT
|
15
|
+
end
|
16
|
+
|
17
|
+
it "processes stem-only terms as admitted" do
|
18
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
19
|
+
#{ASCIIDOC_BLANK_HDR}
|
20
|
+
== Terms and Definitions
|
21
|
+
|
22
|
+
=== stem:[t_90]
|
23
|
+
|
24
|
+
stem:[t_91]
|
25
|
+
|
26
|
+
Time
|
27
|
+
INPUT
|
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>
|
68
|
+
OUTPUT
|
69
|
+
end
|
70
|
+
|
71
|
+
it "moves term domains out of the term definition paragraph" do
|
72
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
73
|
+
#{ASCIIDOC_BLANK_HDR}
|
74
|
+
== Terms and Definitions
|
75
|
+
|
76
|
+
=== Tempus
|
77
|
+
|
78
|
+
domain:[relativity] Time
|
79
|
+
INPUT
|
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>
|
94
|
+
OUTPUT
|
95
|
+
end
|
96
|
+
|
97
|
+
it "permits multiple blocks in term definition paragraph" do
|
98
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
99
|
+
= Document title
|
100
|
+
Author
|
101
|
+
:docfile: test.adoc
|
102
|
+
:nodoc:
|
103
|
+
:novalid:
|
104
|
+
:stem:
|
105
|
+
:no-isobib:
|
106
|
+
|
107
|
+
== Terms and Definitions
|
108
|
+
|
109
|
+
=== stem:[t_90]
|
110
|
+
|
111
|
+
[stem]
|
112
|
+
++++
|
113
|
+
t_A
|
114
|
+
++++
|
115
|
+
|
116
|
+
This paragraph is extraneous
|
117
|
+
INPUT
|
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>
|
157
|
+
</iso-standard>
|
158
|
+
OUTPUT
|
159
|
+
end
|
160
|
+
|
161
|
+
it "keeps any initial boilerplate from terms and definitions" do
|
162
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
163
|
+
#{ASCIIDOC_BLANK_HDR}
|
164
|
+
== Terms and Definitions
|
165
|
+
|
166
|
+
I am boilerplate
|
167
|
+
|
168
|
+
* So am I
|
169
|
+
|
170
|
+
=== Time
|
171
|
+
|
172
|
+
This paragraph is extraneous
|
173
|
+
INPUT
|
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>
|
193
|
+
OUTPUT
|
194
|
+
end
|
195
|
+
|
196
|
+
it "moves notes inside preceding blocks, if they are not at clause end, and the blocks are not delimited" do
|
197
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
198
|
+
#{ASCIIDOC_BLANK_HDR}
|
199
|
+
[stem]
|
200
|
+
++++
|
201
|
+
r = 1 %
|
202
|
+
r = 1 %
|
203
|
+
++++
|
204
|
+
|
205
|
+
NOTE: That formula does not do much
|
206
|
+
|
207
|
+
Indeed.
|
208
|
+
INPUT
|
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>
|
231
|
+
OUTPUT
|
232
|
+
end
|
233
|
+
|
234
|
+
it "does not move notes inside preceding blocks, if they are at clause end" do
|
235
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
236
|
+
#{ASCIIDOC_BLANK_HDR}
|
237
|
+
[source,ruby]
|
238
|
+
[1...x].each do |y|
|
239
|
+
puts y
|
240
|
+
end
|
241
|
+
|
242
|
+
NOTE: That loop does not do much
|
243
|
+
INPUT
|
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>
|
254
|
+
OUTPUT
|
255
|
+
end
|
256
|
+
|
257
|
+
it "converts xrefs to references into erefs" do
|
258
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
259
|
+
#{ASCIIDOC_BLANK_HDR}
|
260
|
+
<<iso216>>
|
261
|
+
|
262
|
+
[bibliography]
|
263
|
+
== Normative References
|
264
|
+
* [[[iso216,ISO 216:2001]]], _Reference_
|
265
|
+
INPUT
|
266
|
+
#{BLANK_HDR}
|
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>
|
298
|
+
</iso-standard>
|
299
|
+
OUTPUT
|
300
|
+
end
|
301
|
+
|
302
|
+
it "extracts localities from erefs" do
|
303
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
304
|
+
#{ASCIIDOC_BLANK_HDR}
|
305
|
+
<<iso216,whole,clause=3,example=9-11,locality:prelude=33,locality:entirety:the reference>>
|
306
|
+
|
307
|
+
[bibliography]
|
308
|
+
== Normative References
|
309
|
+
* [[[iso216,ISO 216]]], _Reference_
|
310
|
+
INPUT
|
311
|
+
#{BLANK_HDR}
|
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>
|
354
|
+
</iso-standard>
|
355
|
+
OUTPUT
|
356
|
+
end
|
357
|
+
|
358
|
+
it "strips type from xrefs" do
|
359
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
360
|
+
#{ASCIIDOC_BLANK_HDR}
|
361
|
+
<<iso216>>
|
362
|
+
|
363
|
+
[bibliography]
|
364
|
+
== Clause
|
365
|
+
* [[[iso216,ISO 216]]], _Reference_
|
366
|
+
INPUT
|
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>
|
396
|
+
OUTPUT
|
397
|
+
end
|
398
|
+
|
399
|
+
it "processes localities in term sources" do
|
400
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
401
|
+
#{ASCIIDOC_BLANK_HDR}
|
402
|
+
== Terms and Definitions
|
403
|
+
|
404
|
+
=== Term1
|
405
|
+
|
406
|
+
[.source]
|
407
|
+
<<ISO2191,section=1>>
|
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
|
429
|
+
end
|
430
|
+
|
431
|
+
it "removes extraneous material from Normative References" do
|
432
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
433
|
+
#{ASCIIDOC_BLANK_HDR}
|
434
|
+
[bibliography]
|
435
|
+
== Normative References
|
436
|
+
|
437
|
+
This is extraneous information
|
438
|
+
|
439
|
+
* [[[iso216,ISO 216]]], _Reference_
|
440
|
+
INPUT
|
441
|
+
#{BLANK_HDR}
|
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>
|
461
|
+
</iso-standard>
|
462
|
+
OUTPUT
|
463
|
+
end
|
464
|
+
|
465
|
+
it "inserts IDs into paragraphs" do
|
466
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
467
|
+
#{ASCIIDOC_BLANK_HDR}
|
468
|
+
Paragraph
|
469
|
+
INPUT
|
470
|
+
#{BLANK_HDR}
|
471
|
+
<sections>
|
472
|
+
<p id="_">Paragraph</p>
|
473
|
+
</sections>
|
474
|
+
</iso-standard>
|
475
|
+
OUTPUT
|
476
|
+
end
|
477
|
+
|
478
|
+
it "inserts IDs into notes" do
|
479
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
480
|
+
#{ASCIIDOC_BLANK_HDR}
|
481
|
+
[example]
|
482
|
+
====
|
483
|
+
NOTE: This note has no ID
|
484
|
+
====
|
485
|
+
INPUT
|
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>
|
495
|
+
OUTPUT
|
496
|
+
end
|
497
|
+
|
498
|
+
it "moves table key inside table" do
|
499
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
500
|
+
#{ASCIIDOC_BLANK_HDR}
|
501
|
+
|===
|
502
|
+
|a |b |c
|
503
|
+
|===
|
504
|
+
|
505
|
+
Key
|
506
|
+
|
507
|
+
a:: b
|
508
|
+
INPUT
|
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>
|
528
|
+
OUTPUT
|
529
|
+
end
|
530
|
+
|
531
|
+
it "processes headerrows attribute for table without header rows" do
|
532
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
533
|
+
#{ASCIIDOC_BLANK_HDR}
|
534
|
+
[headerrows=3]
|
535
|
+
|===
|
536
|
+
|a |b |c
|
537
|
+
|a |b |c
|
538
|
+
|a |b |c
|
539
|
+
|a |b |c
|
540
|
+
|===
|
541
|
+
INPUT
|
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>
|
572
|
+
OUTPUT
|
573
|
+
end
|
574
|
+
|
575
|
+
it "processes headerrows attribute for table with header rows" do
|
576
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
577
|
+
#{ASCIIDOC_BLANK_HDR}
|
578
|
+
[headerrows=3]
|
579
|
+
|===
|
580
|
+
|a |b |c
|
581
|
+
|
582
|
+
|a |b |c
|
583
|
+
|a |b |c
|
584
|
+
|a |b |c
|
585
|
+
|===
|
586
|
+
INPUT
|
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>
|
617
|
+
OUTPUT
|
618
|
+
end
|
619
|
+
|
620
|
+
it "moves table notes inside table" do
|
621
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
622
|
+
#{ASCIIDOC_BLANK_HDR}
|
623
|
+
|===
|
624
|
+
|a |b |c
|
625
|
+
|===
|
626
|
+
|
627
|
+
NOTE: Note 1
|
628
|
+
|
629
|
+
NOTE: Note 2
|
630
|
+
INPUT
|
631
|
+
#{BLANK_HDR}
|
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>
|
650
|
+
OUTPUT
|
651
|
+
end
|
652
|
+
|
653
|
+
it "moves formula key inside formula" do
|
654
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
655
|
+
#{ASCIIDOC_BLANK_HDR}
|
656
|
+
[stem]
|
657
|
+
++++
|
658
|
+
Formula
|
659
|
+
++++
|
660
|
+
|
661
|
+
where
|
662
|
+
|
663
|
+
a:: b
|
664
|
+
INPUT
|
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>
|
686
|
+
OUTPUT
|
687
|
+
end
|
688
|
+
|
689
|
+
it "moves footnotes inside figures" do
|
690
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
691
|
+
#{ASCIIDOC_BLANK_HDR}
|
692
|
+
image::spec/examples/rice_images/rice_image1.png[]
|
693
|
+
|
694
|
+
footnote:[This is a footnote to a figure]
|
695
|
+
|
696
|
+
footnote:[This is another footnote to a figure]
|
697
|
+
INPUT
|
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>
|
711
|
+
OUTPUT
|
712
|
+
end
|
713
|
+
|
714
|
+
it "moves figure key inside figure" do
|
715
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
716
|
+
#{ASCIIDOC_BLANK_HDR}
|
717
|
+
image::spec/examples/rice_images/rice_image1.png[]
|
718
|
+
|
719
|
+
Key
|
720
|
+
|
721
|
+
a:: b
|
722
|
+
INPUT
|
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>
|
736
|
+
OUTPUT
|
737
|
+
end
|
738
|
+
|
739
|
+
it "numbers bibliographic notes and footnotes sequentially" do
|
740
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
741
|
+
#{ASCIIDOC_BLANK_HDR}
|
742
|
+
footnote:[Footnote]
|
743
|
+
|
744
|
+
[bibliography]
|
745
|
+
== Normative References
|
746
|
+
|
747
|
+
* [[[iso123,ISO 123:--]]] footnote:[The standard is in press] _Standard_
|
748
|
+
|
749
|
+
== Clause
|
750
|
+
footnote:[Footnote2]
|
751
|
+
INPUT
|
752
|
+
#{BLANK_HDR}
|
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>
|
795
|
+
</iso-standard>
|
796
|
+
OUTPUT
|
797
|
+
end
|
798
|
+
|
799
|
+
it "defaults section obligations" do
|
800
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
801
|
+
#{ASCIIDOC_BLANK_HDR}
|
802
|
+
|
803
|
+
== Clause
|
804
|
+
Text
|
805
|
+
|
806
|
+
[appendix]
|
807
|
+
== Clause
|
808
|
+
|
809
|
+
Text
|
810
|
+
INPUT
|
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>
|
823
|
+
OUTPUT
|
824
|
+
end
|
825
|
+
|
826
|
+
it "extends clause levels past 5" do
|
827
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
|
828
|
+
#{ASCIIDOC_BLANK_HDR}
|
829
|
+
|
830
|
+
== Clause1
|
831
|
+
|
832
|
+
=== Clause2
|
833
|
+
|
834
|
+
==== Clause3
|
835
|
+
|
836
|
+
===== Clause4
|
837
|
+
|
838
|
+
====== Clause 5
|
839
|
+
|
840
|
+
[level=6]
|
841
|
+
====== Clause 6
|
842
|
+
|
843
|
+
[level=7]
|
844
|
+
====== Clause 7A
|
845
|
+
|
846
|
+
[level=7]
|
847
|
+
====== Clause 7B
|
848
|
+
|
849
|
+
[level=6]
|
850
|
+
====== Clause 6B
|
851
|
+
|
852
|
+
====== Clause 5B
|
853
|
+
|
854
|
+
INPUT
|
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>
|
889
|
+
OUTPUT
|
890
|
+
end
|
891
|
+
|
892
|
+
it "reorders references in bibliography, and renumbers citations accordingly" do
|
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_
|
934
|
+
INPUT
|
935
|
+
#{BLANK_HDR}
|
936
|
+
<sections>
|
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>
|
1132
|
+
OUTPUT
|
1133
|
+
end
|
1134
|
+
end
|