metanorma-iec 1.0.3 → 1.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +8 -7
  3. data/.github/workflows/ubuntu.yml +12 -9
  4. data/.github/workflows/windows.yml +8 -8
  5. data/lib/asciidoctor/iec/biblio.rng +142 -37
  6. data/lib/asciidoctor/iec/converter.rb +22 -130
  7. data/lib/asciidoctor/iec/front.rb +220 -0
  8. data/lib/asciidoctor/iec/isodoc.rng +48 -2
  9. data/lib/asciidoctor/iec/isostandard.rng +17 -1
  10. data/lib/isodoc/iec/base_convert.rb +157 -0
  11. data/lib/isodoc/iec/html/htmlstyle.scss +11 -8
  12. data/lib/isodoc/iec/html/isodoc.scss +15 -9
  13. data/lib/isodoc/iec/html/scripts.html +23 -21
  14. data/lib/isodoc/iec/html/wordstyle.scss +0 -3
  15. data/lib/isodoc/iec/html_convert.rb +8 -0
  16. data/lib/isodoc/iec/i18n-en.yaml +2 -0
  17. data/lib/isodoc/iec/i18n-fr.yaml +2 -0
  18. data/lib/isodoc/iec/iec.international-standard.xsl +4133 -0
  19. data/lib/isodoc/iec/metadata.rb +3 -52
  20. data/lib/isodoc/iec/pdf_convert.rb +31 -0
  21. data/lib/isodoc/iec/word_convert.rb +17 -6
  22. data/lib/metanorma-iec.rb +1 -0
  23. data/lib/metanorma/iec/processor.rb +12 -1
  24. data/lib/metanorma/iec/version.rb +1 -1
  25. data/spec/asciidoctor-iec/base_spec.rb +20 -29
  26. data/spec/asciidoctor-iec/blocks_spec.rb +15 -7
  27. data/spec/asciidoctor-iec/cleanup_spec.rb +13 -7
  28. data/spec/asciidoctor-iec/iev_spec.rb +161 -0
  29. data/spec/asciidoctor-iec/inline_spec.rb +2 -1
  30. data/spec/asciidoctor-iec/section_spec.rb +8 -8
  31. data/spec/assets/iso.xml +65 -2
  32. data/spec/examples/rice.html +5 -5
  33. data/spec/examples/rice_img/rice_image1.png +0 -0
  34. data/spec/examples/rice_img/rice_image2.png +0 -0
  35. data/spec/examples/rice_img/rice_image3_1.png +0 -0
  36. data/spec/examples/rice_img/rice_image3_2.png +0 -0
  37. data/spec/examples/rice_img/rice_image3_3.png +0 -0
  38. data/spec/isodoc/blocks_spec.rb +160 -0
  39. data/spec/isodoc/i18n_spec.rb +15 -22
  40. data/spec/isodoc/iev_spec.rb +360 -0
  41. data/spec/isodoc/inline_spec.rb +2 -2
  42. data/spec/isodoc/iso_spec.rb +2 -19
  43. data/spec/isodoc/metadata_spec.rb +92 -9
  44. data/spec/isodoc/postproc_spec.rb +8 -2
  45. data/spec/isodoc/ref_spec.rb +249 -0
  46. data/spec/isodoc/section_spec.rb +49 -14
  47. data/spec/isodoc/terms_spec.rb +2 -2
  48. data/spec/metanorma/processor_spec.rb +3 -3
  49. data/spec/spec_helper.rb +3 -2
  50. metadata +14 -2
@@ -158,7 +158,7 @@ RSpec.describe IsoDoc do
158
158
  <eref type="inline" bibitemid="ISO712" citeas="ISO 712">A</stem>
159
159
  </p>
160
160
  </foreword></preface>
161
- <bibliography><references id="_normative_references" obligation="informative"><title>Normative References</title>
161
+ <bibliography><references id="_normative_references" obligation="informative" normative="true"><title>Normative References</title>
162
162
  <bibitem id="ISO712" type="standard">
163
163
  <title format="text/plain">Cereals and cereal products</title>
164
164
  <docidentifier>ISO 712</docidentifier>
@@ -213,7 +213,7 @@ RSpec.describe IsoDoc do
213
213
  <eref type="inline" bibitemid="ISO712" citeas="ISO 712">A</eref>
214
214
  </p>
215
215
  </foreword></preface>
216
- <bibliography><references id="_normative_references" obligation="informative"><title>Normative References</title>
216
+ <bibliography><references id="_normative_references" obligation="informative" normative="true"><title>Normative References</title>
217
217
  <bibitem id="ISO712" type="standard">
218
218
  <title format="text/plain">Cereals and cereal products</title>
219
219
  <docidentifier>ISO 712</docidentifier>
@@ -15,25 +15,8 @@ RSpec.describe IsoDoc::Iec do
15
15
  INPUT
16
16
  html = File.read("test.html", encoding: "utf-8")
17
17
  expect(html).to match(%r[\bpre[^{]+\{[^{]+font-family: "Courier New", monospace;]m)
18
- expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "Cambria", serif;]m)
19
- expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Cambria", serif;]m)
20
- end
21
-
22
- it "processes isodoc as ISO: alt HTML output" do
23
- FileUtils.rm_f "test.html"
24
- IsoDoc::Iec::HtmlConvert.new({alt: true}).convert("test", <<~"INPUT", false)
25
- <iso-standard xmlns="http://riboseinc.com/isoxml">
26
- <preface><foreword>
27
- <note>
28
- <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">These results are based on a study carried out on three different types of kernel.</p>
29
- </note>
30
- </foreword></preface>
31
- </iso-standard>
32
- INPUT
33
- html = File.read("test.html", encoding: "utf-8")
34
- expect(html).to match(%r[\bpre[^{]+\{[^{]+font-family: "Space Mono", monospace;]m)
35
- expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
36
- expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Lato", sans-serif;]m)
18
+ expect(html).to match(%r[blockquote[^{]+\{[^{]+font-family: "Arial", sans-serif;]m)
19
+ expect(html).to match(%r[\.h2Annex[^{]+\{[^{]+font-family: "Arial", sans-serif;]m)
37
20
  end
38
21
 
39
22
  it "processes isodoc as ISO: Chinese HTML output" do
@@ -5,9 +5,9 @@ RSpec.describe IsoDoc::Iec::Metadata do
5
5
  it "processes IsoXML metadata" do
6
6
  c = IsoDoc::Iec::HtmlConvert.new({})
7
7
  arr = c.convert_init(<<~"INPUT", "test", false)
8
- <iso-standard xmlns="http://riboseinc.com/isoxml">
8
+ <iec-standard xmlns="http://riboseinc.com/isoxml">
9
9
  INPUT
10
- expect(Hash[c.info(Nokogiri::XML(<<~"INPUT"), nil).sort]).to be_equivalent_to <<~"OUTPUT"
10
+ expect(Hash[c.info(Nokogiri::XML(<<~"INPUT"), nil).sort].to_s.gsub(/, :/, ",\n:")).to be_equivalent_to <<~"OUTPUT"
11
11
  <iso-standard xmlns="http://riboseinc.com/isoxml">
12
12
  <bibdata type="standard">
13
13
  <title type="title-intro" language="en" format="text/plain">Cereals and pulses</title>
@@ -46,8 +46,8 @@ RSpec.describe IsoDoc::Iec::Metadata do
46
46
  <language>en</language>
47
47
  <script>Latn</script>
48
48
  <status>
49
- <stage>35</stage>
50
- <substage>20</substage>
49
+ <stage abbreviation="CD">35</stage>
50
+ <substage abbreviation="3CD">20</substage>
51
51
  <iteration>3</iteration>
52
52
  </status>
53
53
  <copyright>
@@ -73,7 +73,51 @@ RSpec.describe IsoDoc::Iec::Metadata do
73
73
  </bibdata>
74
74
  </iso-standard>
75
75
  INPUT
76
- {:accesseddate=>"2012", :activateddate=>"2013", :agency=>"ISO", :authors=>[], :authors_affiliations=>{}, :createddate=>"2010&ndash;2011", :docnumber=>"ISO/PreCD3 17301-1", :docnumeric=>"1730", :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1: Riz", :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses", :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie&nbsp;1", :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part&nbsp;1", :doctype=>"International Standard", :docyear=>"2016", :draft=>"0.4", :draftinfo=>" (draft 0.4, 2016-05-01)", :edition=>"2", :editorialgroup=>["TC 34", "SC 4", "WG 3"], :ics=>"XXX", :obsoleteddate=>"2014", :obsoletes=>nil, :obsoletes_part=>nil, :publisheddate=>"2011", :publisher=>"International Organization for Standardization", :revdate=>"2016-05-01", :revdate_monthyear=>"May 2016", :sc=>"SC 4", :secretariat=>"GB", :stage=>"35", :stage_int=>35, :stageabbr=>"CD", :statusabbr=>"3CD", :tc=>"TC 34", :tc_docnumber=>["17301"], :unpublished=>true, :wg=>"WG 3"}
76
+ {:accesseddate=>"2012",
77
+ :activateddate=>"2013",
78
+ :agency=>"ISO",
79
+ :authors=>[],
80
+ :authors_affiliations=>{},
81
+ :createddate=>"2010&ndash;2011",
82
+ :docnumber=>"ISO/PreCD3 17301-1",
83
+ :docnumber_lang=>nil,
84
+ :docnumber_reference=>nil,
85
+ :docnumeric=>"1730",
86
+ :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1: Riz",
87
+ :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses",
88
+ :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai",
89
+ :docsubtitlepart=>"Riz",
90
+ :docsubtitlepartlabel=>"Partie&nbsp;1",
91
+ :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1: Rice",
92
+ :doctitleintro=>"Cereals and pulses",
93
+ :doctitlemain=>"Specifications and test methods",
94
+ :doctitlepart=>"Rice",
95
+ :doctitlepartlabel=>"Part&nbsp;1",
96
+ :doctype=>"International Standard",
97
+ :docyear=>"2016",
98
+ :draft=>"0.4",
99
+ :draftinfo=>" (draft 0.4, 2016-05-01)",
100
+ :edition=>"2",
101
+ :editorialgroup=>["TC 34", "SC 4", "WG 3"],
102
+ :ics=>nil,
103
+ :keywords=>[],
104
+ :obsoleteddate=>"2014",
105
+ :obsoletes=>nil,
106
+ :obsoletes_part=>nil,
107
+ :publisheddate=>"2011",
108
+ :publisher=>"International Organization for Standardization",
109
+ :revdate=>"2016-05-01",
110
+ :revdate_monthyear=>"May 2016",
111
+ :sc=>"SC 4",
112
+ :secretariat=>"GB",
113
+ :stage=>"35",
114
+ :stage_int=>35,
115
+ :stageabbr=>"CD",
116
+ :statusabbr=>"3CD",
117
+ :tc=>"TC 34",
118
+ :tc_docnumber=>["17301"],
119
+ :unpublished=>true,
120
+ :wg=>"WG 3"}
77
121
  OUTPUT
78
122
  end
79
123
 
@@ -82,7 +126,7 @@ OUTPUT
82
126
  arr = c.convert_init(<<~"INPUT", "test", false)
83
127
  <iso-standard xmlns="http://riboseinc.com/isoxml">
84
128
  INPUT
85
- expect(Hash[c.info(Nokogiri::XML(<<~"INPUT"), nil).sort]).to be_equivalent_to <<~"OUTPUT"
129
+ expect(Hash[c.info(Nokogiri::XML(<<~"INPUT"), nil).sort].to_s.gsub(/, :/, ",\n:")).to be_equivalent_to <<~"OUTPUT"
86
130
  <iso-standard xmlns="http://riboseinc.com/isoxml">
87
131
  <bibdata type="standard">
88
132
  <title>
@@ -121,8 +165,8 @@ OUTPUT
121
165
  <language>en</language>
122
166
  <script>Latn</script>
123
167
  <status>
124
- <stage>50</stage>
125
- <substage>20</substage>
168
+ <stage abbreviation="FDIS">50</stage>
169
+ <substage abbreviation="CFDIS">20</substage>
126
170
  </status>
127
171
  <copyright>
128
172
  <from>2016</from>
@@ -152,7 +196,46 @@ OUTPUT
152
196
  </bibdata>
153
197
  </iso-standard>
154
198
  INPUT
155
- {:agency=>"ISO/IEC", :authors=>[], :authors_affiliations=>{}, :docnumber=>"ISO/IEC/CD 17301-1-3", :docnumeric=>nil, :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1&ndash;3: Riz", :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses", :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai", :docsubtitlepart=>"Riz", :docsubtitlepartlabel=>"Partie&nbsp;1&ndash;3", :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1&ndash;3: Rice", :doctitleintro=>"Cereals and pulses", :doctitlemain=>"Specifications and test methods", :doctitlepart=>"Rice", :doctitlepartlabel=>"Part&nbsp;1&ndash;3", :doctype=>"Technical Report", :docyear=>"2016", :draft=>nil, :draftinfo=>"", :edition=>nil, :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"], :ics=>"1.2.3, 1.2.3", :obsoletes=>"IEC 8121", :obsoletes_part=>"3.1", :publisher=>"International Organization for Standardization and International Electrotechnical Commission", :revdate=>nil, :revdate_monthyear=>nil, :sc=>"DEF 4", :secretariat=>"XXXX", :stage=>"50", :stage_int=>50, :stageabbr=>"RFDIS", :statusabbr=>"CFDIS", :tc=>"ABC 34", :tc_docnumber=>["17301"], :unpublished=>true, :wg=>"GHI 3"}
199
+ {:agency=>"ISO/IEC",
200
+ :authors=>[],
201
+ :authors_affiliations=>{},
202
+ :docnumber=>"ISO/IEC/CD 17301-1-3",
203
+ :docnumber_lang=>nil,
204
+ :docnumber_reference=>nil,
205
+ :docnumeric=>nil,
206
+ :docsubtitle=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses&nbsp;&mdash; Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai&nbsp;&mdash; Partie&nbsp;1&ndash;3: Riz",
207
+ :docsubtitleintro=>"C&#xe9;r&#xe9;ales et l&#xe9;gumineuses",
208
+ :docsubtitlemain=>"Sp&#xe9;cification et m&#xe9;thodes d&#x27;essai",
209
+ :docsubtitlepart=>"Riz",
210
+ :docsubtitlepartlabel=>"Partie&nbsp;1&ndash;3",
211
+ :doctitle=>"Cereals and pulses&nbsp;&mdash; Specifications and test methods&nbsp;&mdash; Part&nbsp;1&ndash;3: Rice",
212
+ :doctitleintro=>"Cereals and pulses",
213
+ :doctitlemain=>"Specifications and test methods",
214
+ :doctitlepart=>"Rice",
215
+ :doctitlepartlabel=>"Part&nbsp;1&ndash;3",
216
+ :doctype=>"Technical Report",
217
+ :docyear=>"2016",
218
+ :draft=>nil,
219
+ :draftinfo=>"",
220
+ :edition=>nil,
221
+ :editorialgroup=>["ABC 34", "DEF 4", "GHI 3"],
222
+ :ics=>"1.2.3, 1.2.3",
223
+ :keywords=>[],
224
+ :obsoletes=>"IEC 8121",
225
+ :obsoletes_part=>"3.1",
226
+ :publisher=>"International Organization for Standardization and International Electrotechnical Commission",
227
+ :revdate=>nil,
228
+ :revdate_monthyear=>nil,
229
+ :sc=>"DEF 4",
230
+ :secretariat=>"XXXX",
231
+ :stage=>"50",
232
+ :stage_int=>50,
233
+ :stageabbr=>"FDIS",
234
+ :statusabbr=>"CFDIS",
235
+ :tc=>"ABC 34",
236
+ :tc_docnumber=>["17301"],
237
+ :unpublished=>true,
238
+ :wg=>"GHI 3"}
156
239
  OUTPUT
157
240
  end
158
241
 
@@ -91,6 +91,12 @@ RSpec.describe IsoDoc do
91
91
  expect(word).to match(/<style>/)
92
92
  end
93
93
 
94
+ it "generates Pdf output docs with null configuration from file" do
95
+ FileUtils.rm_f "spec/assets/iso.pdf"
96
+ IsoDoc::Iec::PdfConvert.new({wordstylesheet: "spec/assets/word.css", htmlstylesheet: "spec/assets/html.css"}).convert("spec/assets/iso.xml", nil, false)
97
+ expect(File.exist?("spec/assets/iso.pdf")).to be true
98
+ end
99
+
94
100
  it "populates Word template with terms reference labels" do
95
101
  FileUtils.rm_f "test.doc"
96
102
  FileUtils.rm_f "test.html"
@@ -117,8 +123,8 @@ RSpec.describe IsoDoc do
117
123
  sub(%r{<br.*$}m, "")
118
124
  expect(xmlpp(word)).to be_equivalent_to xmlpp(<<~"OUTPUT")
119
125
  <div class="WordSection3">
120
- #{IEC_TITLE}
121
- <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1 class="main">1<span style="mso-tab-count:1">&#xA0; </span>Terms and definitions</h1>
126
+ #{IEC_TITLE.gsub(/\&#160;/, "&#xA0;")}
127
+ <div><a name="_terms_and_definitions" id="_terms_and_definitions"></a><h1 class="main">1<span style="mso-tab-count:1">&#xA0; </span>Terms and Definitions</h1>
122
128
  <p class="TermNum"><a name="paddy1" id="paddy1"></a>1.1</p><p class="Terms" style="text-align:left;">paddy</p>
123
129
  <p class="MsoNormal"><a name="_eb29b35e-123e-4d1c-b50b-2714d41e747f" id="_eb29b35e-123e-4d1c-b50b-2714d41e747f"></a>rice retaining its husk after threshing</p>
124
130
  <p class="MsoNormal">[SOURCE: <a href="#ISO7301">ISO 7301:2011, 3.1</a>, modified &#x2014; The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here]</p></div>
@@ -0,0 +1,249 @@
1
+ require "spec_helper"
2
+
3
+ RSpec.describe IsoDoc::Iec do
4
+ it "processes IsoXML bibliographies" do
5
+ expect(xmlpp(IsoDoc::Iec::HtmlConvert.new({}).convert("test", <<~"INPUT", true))).to be_equivalent_to xmlpp(<<~"OUTPUT")
6
+ <iso-standard xmlns="http://riboseinc.com/isoxml">
7
+ <bibdata>
8
+ <language>en</language>
9
+ </bibdata>
10
+ <preface><foreword>
11
+ <p id="_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f">
12
+ <eref bibitemid="ISO712"/>
13
+ <eref bibitemid="ISBN"/>
14
+ <eref bibitemid="ISSN"/>
15
+ <eref bibitemid="ISO16634"/>
16
+ <eref bibitemid="ref1"/>
17
+ <eref bibitemid="ref10"/>
18
+ <eref bibitemid="ref12"/>
19
+ <eref bibitemid="zip_ffs"/>
20
+ </p>
21
+ </foreword></preface>
22
+ <bibliography><references id="_normative_references" obligation="informative" normative="true"><title>Normative References</title>
23
+ <p>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>
24
+ <bibitem id="ISO712" type="standard">
25
+ <title format="text/plain">Cereals or cereal products</title>
26
+ <title type="main" format="text/plain">Cereals and cereal products</title>
27
+ <docidentifier type="ISO">ISO 712</docidentifier>
28
+ <docidentifier type="metanorma">[110]</docidentifier>
29
+ <contributor>
30
+ <role type="publisher"/>
31
+ <organization>
32
+ <name>International Organization for Standardization</name>
33
+ </organization>
34
+ </contributor>
35
+ </bibitem>
36
+ <bibitem id="ISO16634" type="standard">
37
+ <title language="x" format="text/plain">Cereals, pulses, milled cereal products, xxxx, oilseeds and animal feeding stuffs</title>
38
+ <title language="en" format="text/plain">Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</title>
39
+ <docidentifier type="ISO">ISO 16634:-- (all parts)</docidentifier>
40
+ <date type="published"><on>--</on></date>
41
+ <contributor>
42
+ <role type="publisher"/>
43
+ <organization>
44
+ <abbreviation>ISO</abbreviation>
45
+ </organization>
46
+ </contributor>
47
+ <note format="text/plain" reference="1">ISO DATE: Under preparation. (Stage at the time of publication ISO/DIS 16634)</note>
48
+ <extent type="part">
49
+ <referenceFrom>all</referenceFrom>
50
+ </extent>
51
+
52
+ </bibitem>
53
+ <bibitem id="ISO20483" type="standard">
54
+ <title format="text/plain">Cereals and pulses</title>
55
+ <docidentifier type="ISO">ISO 20483:2013-2014</docidentifier>
56
+ <date type="published"><from>2013</from><to>2014</to></date>
57
+ <contributor>
58
+ <role type="publisher"/>
59
+ <organization>
60
+ <name>International Organization for Standardization</name>
61
+ </organization>
62
+ </contributor>
63
+ </bibitem>
64
+ <bibitem id="ref1">
65
+ <formattedref format="application/x-isodoc+xml"><smallcap>Standard No I.C.C 167</smallcap>. <em>Determination of the protein content in cereal and cereal products for food and animal feeding stuffs according to the Dumas combustion method</em> (see <link target="http://www.icc.or.at"/>)</formattedref>
66
+ <docidentifier type="ICC">167</docidentifier>
67
+ </bibitem>
68
+ <note><p>This is an annotation of ISO 20483:2013-2014</p></note>
69
+ <bibitem id="zip_ffs"><formattedref format="application/x-isodoc+xml">Title 5</formattedref><docidentifier type="metanorma">[5]</docidentifier></bibitem>
70
+
71
+
72
+ </references><references id="_bibliography" obligation="informative" normative="false">
73
+ <title>Bibliography</title>
74
+ <bibitem id="ISBN" type="ISBN">
75
+ <title format="text/plain">Chemicals for analytical laboratory use</title>
76
+ <docidentifier type="ISBN">ISBN</docidentifier>
77
+ <docidentifier type="metanorma">[1]</docidentifier>
78
+ <contributor>
79
+ <role type="publisher"/>
80
+ <organization>
81
+ <abbreviation>ISBN</abbreviation>
82
+ </organization>
83
+ </contributor>
84
+ </bibitem>
85
+ <bibitem id="ISSN" type="ISSN">
86
+ <title format="text/plain">Instruments for analytical laboratory use</title>
87
+ <docidentifier type="ISSN">ISSN</docidentifier>
88
+ <docidentifier type="metanorma">[2]</docidentifier>
89
+ <contributor>
90
+ <role type="publisher"/>
91
+ <organization>
92
+ <abbreviation>ISSN</abbreviation>
93
+ </organization>
94
+ </contributor>
95
+ </bibitem>
96
+ <note><p>This is an annotation of document ISSN.</p></note>
97
+ <note><p>This is another annotation of document ISSN.</p></note>
98
+ <bibitem id="ISO3696" type="standard">
99
+ <title format="text/plain">Water for analytical laboratory use</title>
100
+ <docidentifier type="ISO">ISO 3696</docidentifier>
101
+ <contributor>
102
+ <role type="publisher"/>
103
+ <organization>
104
+ <abbreviation>ISO</abbreviation>
105
+ </organization>
106
+ </contributor>
107
+ </bibitem>
108
+ <bibitem id="ref10">
109
+ <formattedref format="application/x-isodoc+xml"><smallcap>Standard No I.C.C 167</smallcap>. <em>Determination of the protein content in cereal and cereal products for food and animal feeding stuffs according to the Dumas combustion method</em> (see <link target="http://www.icc.or.at"/>)</formattedref>
110
+ <docidentifier type="metanorma">[10]</docidentifier>
111
+ </bibitem>
112
+ <bibitem id="ref11">
113
+ <title>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</title>
114
+ <docidentifier type="IETF">RFC 10</docidentifier>
115
+ </bibitem>
116
+ <bibitem id="ref12">
117
+ <formattedref format="application/x-isodoc+xml">CitationWorks. 2019. <em>How to cite a reference</em>.</formattedref>
118
+ <docidentifier type="metanorma">[Citn]</docidentifier>
119
+ <docidentifier type="IETF">RFC 20</docidentifier>
120
+ </bibitem>
121
+
122
+
123
+ </references>
124
+ </bibliography>
125
+ </iso-standard>
126
+ INPUT
127
+ #{HTML_HDR}
128
+ <div>
129
+ <h1 class='ForewordTitle'>FOREWORD</h1>
130
+ <div class='boilerplate_legal'/>
131
+ <p id='_f06fd0d1-a203-4f3d-a515-0bdba0f8d83f'>
132
+ <a href='#ISO712'>[110]</a>
133
+ <a href='#ISBN'>[1]</a>
134
+ <a href='#ISSN'>[2]</a>
135
+ <a href='#ISO16634'>ISO 16634:--</a>
136
+ <a href='#ref1'>ICC 167</a>
137
+ <a href='#ref10'>[10]</a>
138
+ <a href='#ref12'>Citn</a>
139
+ <a href='#zip_ffs'>[5]</a>
140
+ </p>
141
+ </div>
142
+ #{IEC_TITLE}
143
+ <div>
144
+ <h1>1&#160; Normative references</h1>
145
+ <p>
146
+ The following documents are referred to in the text in such a way that
147
+ some or all of their content constitutes requirements of this
148
+ document. For dated references, only the edition cited applies. For
149
+ undated references, the latest edition of the referenced document
150
+ (including any amendments) applies.
151
+ </p>
152
+ <p id='ISO712' class='NormRef'>
153
+ [110], ISO 712,
154
+ <i>Cereals and cereal products</i>
155
+ </p>
156
+ <p id='ISO16634' class='NormRef'>
157
+ ISO 16634:-- (all parts)
158
+ <a class='FootnoteRef' href='#fn:1'>
159
+ <sup>1</sup>
160
+ </a>
161
+ ,
162
+ <i>Cereals, pulses, milled cereal products, oilseeds and animal feeding stuffs</i>
163
+ </p>
164
+ <p id='ISO20483' class='NormRef'>
165
+ ISO 20483:2013-2014,
166
+ <i>Cereals and pulses</i>
167
+ </p>
168
+ <p id='ref1' class='NormRef'>
169
+ ICC 167,
170
+ <span style='font-variant:small-caps;'>Standard No I.C.C 167</span>
171
+ .
172
+ <i>
173
+ Determination of the protein content in cereal and cereal products
174
+ for food and animal feeding stuffs according to the Dumas combustion
175
+ method
176
+ </i>
177
+ (see
178
+ <a href='http://www.icc.or.at'>http://www.icc.or.at</a>
179
+ )
180
+ </p>
181
+ <div id='' class='Note'>
182
+ <p>
183
+ <span class='note_label'>NOTE</span>
184
+ &#160; This is an annotation of ISO 20483:2013-2014
185
+ </p>
186
+ </div>
187
+ <p id='zip_ffs' class='NormRef'>[5], Title 5</p>
188
+ </div>
189
+ <br/>
190
+ <div>
191
+ <h1 class='Section3'>Bibliography</h1>
192
+ <p id='ISBN' class='NormRef'>
193
+ [1],
194
+ <i>Chemicals for analytical laboratory use</i>
195
+ </p>
196
+ <p id='ISSN' class='NormRef'>
197
+ [2],
198
+ <i>Instruments for analytical laboratory use</i>
199
+ </p>
200
+ <div id='' class='Note'>
201
+ <p>
202
+ <span class='note_label'>NOTE</span>
203
+ &#160; This is an annotation of document ISSN.
204
+ </p>
205
+ </div>
206
+ <div id='' class='Note'>
207
+ <p>
208
+ <span class='note_label'>NOTE</span>
209
+ &#160; This is another annotation of document ISSN.
210
+ </p>
211
+ </div>
212
+ <p id='ISO3696' class='NormRef'>
213
+ ISO 3696,
214
+ <i>Water for analytical laboratory use</i>
215
+ </p>
216
+ <p id='ref10' class='NormRef'>
217
+ [10],
218
+ <span style='font-variant:small-caps;'>Standard No I.C.C 167</span>
219
+ .
220
+ <i>
221
+ Determination of the protein content in cereal and cereal products
222
+ for food and animal feeding stuffs according to the Dumas combustion
223
+ method
224
+ </i>
225
+ (see
226
+ <a href='http://www.icc.or.at'>http://www.icc.or.at</a>
227
+ )
228
+ </p>
229
+ <p id='ref11' class='NormRef'>
230
+ IETF RFC 10,
231
+ <i>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</i>
232
+ </p>
233
+ <p id='ref12' class='NormRef'>
234
+ Citn, IETF RFC 20, CitationWorks. 2019.
235
+ <i>How to cite a reference</i>
236
+ .
237
+ </p>
238
+ </div>
239
+ <aside id='fn:1' class='footnote'>
240
+ <p>Under preparation. (Stage at the time of publication ISO/DIS 16634)</p>
241
+ </aside>
242
+ </div>
243
+ </body>
244
+ </html>
245
+
246
+ OUTPUT
247
+ end
248
+
249
+ end