metanorma-iso 1.2.4 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: eb8e2d8ba55d114b48bbf4439f9cc41cc5a81a849e381f036e1fcf891cb8ea28
4
- data.tar.gz: 4a9af511a463c8a6cb671b9f35c29484cd9db28bcb5bfd18aa37f8f90379e269
3
+ metadata.gz: 74f562a97f61ede014047ff5de43c57d8bb2533f5f6af5c66c5dffb6e1d3258d
4
+ data.tar.gz: 8b1580aec30059481d83adf7332739af65e401829aafb0231733c38d108c1dc5
5
5
  SHA512:
6
- metadata.gz: 48c16952ec194912088f9c1659118a1a6afa744f589cc9c7300b194612d5a011380f3d26954356db43289e70a9558143b2f0d18f59c84560926794edf9bfa789
7
- data.tar.gz: 8dcd77c06ab8e11eb0ca051a11ea7760b8d7355e0488891f2c45026f30fd74de1d733ff9f83d10b04d999fd443e8b871819c5b5edfcabb95a57062aa12ee8921
6
+ metadata.gz: 7a410beff5aa39e6d68283e207d16e9ee8d35e593bac34475aa8b8b22bc134dcf6394fc11dee3f5fc7495fb28ec3685167d5da848927d8ae8778e3b04ff76e7a
7
+ data.tar.gz: 2e5a08f9f9d6da7bc9bf72fa0352324c38eaac424bc5decbf133550ed5adf662a1d8bcc944e1316809132a0528ca581d8511f73af12160d25049a7e35052488f
@@ -52,9 +52,44 @@ module Asciidoctor
52
52
  prefix = get_id_prefix(xmldoc)
53
53
  id = xmldoc.at("//bibdata/docidentifier[@type = 'iso']") or return
54
54
  id.content = id_prefix(prefix, id)
55
- id = xmldoc.at("//bibdata/ext/structuredidentifier/project-number") or return
55
+ id = xmldoc.at("//bibdata/ext/structuredidentifier/project-number") or
56
+ return
56
57
  id.content = id_prefix(prefix, id)
57
58
  end
59
+
60
+ PUBLISHER = "./contributor[role/@type = 'publisher']/organization".freeze
61
+
62
+ def pub_class(bib)
63
+ return 1 if bib.at("#{PUBLISHER}[abbreviation = 'ISO']")
64
+ return 1 if bib.at("#{PUBLISHER}[name = 'International Organization "\
65
+ "for Standardization']")
66
+ return 2 if bib.at("#{PUBLISHER}[abbreviation = 'IEC']")
67
+ return 2 if bib.at("#{PUBLISHER}[name = 'International "\
68
+ "Electrotechnical Commission']")
69
+ return 3 if bib.at("./docidentifier[@type][not(@type = 'DOI')]"\
70
+ "[not(@type = 'metanorma')]")
71
+ return 3 if bib.at("./docidentifier[not(@type)]") &&
72
+ !bib.at("./docidentifier[@type]")
73
+ 4
74
+ end
75
+
76
+ def sort_biblio(bib)
77
+ bib.sort do |a, b|
78
+ sort_biblio_key(a) <=> sort_biblio_key(b)
79
+ end
80
+ end
81
+
82
+ # TODO sort by authors
83
+ def sort_biblio_key(bib)
84
+ pubclass = pub_class(bib)
85
+ num = bib&.at("./docnumber")&.text
86
+ id = bib&.at("./docidentifier[not(@type = 'metanorma')]"\
87
+ "[not(@type = 'DOI')]")
88
+ type = id['type'] if id
89
+ title = bib&.at("./title[@type = 'main']")&.text ||
90
+ bib&.at("./title")&.text || bib&.at("./formattedref")&.text
91
+ "#{pubclass} :: #{num} :: #{type} :: #{id&.text} :: #{title}"
92
+ end
58
93
  end
59
94
  end
60
95
  end
@@ -87,7 +87,7 @@
87
87
  </element>
88
88
  </define>
89
89
  <define name="reqinherit">
90
- <element name="subject">
90
+ <element name="inherit">
91
91
  <text/>
92
92
  </element>
93
93
  </define>
@@ -41,6 +41,7 @@ module Asciidoctor
41
41
  warn("No French Title Part!")
42
42
  end
43
43
 
44
+ # ISO/IEC DIR 2, 11.4
44
45
  def title_subpart_validate(root)
45
46
  docid = root.at("//bibdata/docidentifier[@type = 'iso']")
46
47
  subpart = /-\d+-\d+/.match docid
@@ -50,6 +51,7 @@ module Asciidoctor
50
51
  warn("Subpart defined on non-IEC document!") if subpart && !iec
51
52
  end
52
53
 
54
+ # ISO/IEC DIR 2, 11.5.2
53
55
  def title_names_type_validate(root)
54
56
  doctypes = /International\sStandard | Technical\sSpecification |
55
57
  Publicly\sAvailable\sSpecification | Technical\sReport | Guide /xi
@@ -63,6 +65,7 @@ module Asciidoctor
63
65
  end
64
66
  end
65
67
 
68
+ # ISO/IEC DIR 2, 22.2
66
69
  def title_first_level_validate(root)
67
70
  root.xpath(SECTIONS_XPATH).each do |s|
68
71
  title = s&.at("./title")&.text || s.name
@@ -74,6 +77,7 @@ module Asciidoctor
74
77
  end
75
78
  end
76
79
 
80
+ # ISO/IEC DIR 2, 22.2
77
81
  def title_all_siblings(xpath, label)
78
82
  notitle = false
79
83
  withtitle = false
@@ -98,6 +102,7 @@ module Asciidoctor
98
102
  title_all_siblings(root.xpath(SECTIONS_XPATH), "(top level)")
99
103
  end
100
104
 
105
+ # ISO/IEC DIR 2, 22.3.2
101
106
  def onlychild_clause_validate(root)
102
107
  root.xpath(Standoc::Utils::SUBCLAUSE_XPATH).each do |c|
103
108
  next unless c.xpath("../clause").size == 1
@@ -121,11 +126,12 @@ module Asciidoctor
121
126
  end
122
127
  end
123
128
 
129
+ # ISO/IEC DIR 2, 15.5.3
124
130
  def see_xrefs_validate(root)
125
131
  root.xpath("//xref").each do |t|
126
132
  # does not deal with preceding text marked up
127
133
  preceding = t.at("./preceding-sibling::text()[last()]")
128
- next unless !preceding.nil? && /\bsee\s*$/mi.match(preceding)
134
+ next unless !preceding.nil? && /\b(see| refer to)\s*$/mi.match(preceding)
129
135
  (target = root.at("//*[@id = '#{t['target']}']")) || next
130
136
  if target&.at("./ancestor-or-self::*[@obligation = 'normative']")
131
137
  warn "ISO: 'see #{t['target']}' is pointing to a normative section"
@@ -133,10 +139,11 @@ module Asciidoctor
133
139
  end
134
140
  end
135
141
 
142
+ # ISO/IEC DIR 2, 15.5.3
136
143
  def see_erefs_validate(root)
137
144
  root.xpath("//eref").each do |t|
138
145
  preceding = t.at("./preceding-sibling::text()[last()]")
139
- next unless !preceding.nil? && /\bsee\s*$/mi.match(preceding)
146
+ next unless !preceding.nil? && /\b(see|refer to)\s*$/mi.match(preceding)
140
147
  unless target = root.at("//*[@id = '#{t['bibitemid']}']")
141
148
  warn "ISO: '#{t} is not pointing to a real reference"
142
149
  next
@@ -148,6 +155,7 @@ module Asciidoctor
148
155
  end
149
156
  end
150
157
 
158
+ # ISO/IEC DIR 2, 10.4
151
159
  def locality_erefs_validate(root)
152
160
  root.xpath("//eref[locality]").each do |t|
153
161
  if /^(ISO|IEC)/.match t["citeas"]
@@ -163,6 +171,7 @@ module Asciidoctor
163
171
  re.match(text) && warn("ISO style: #{term}: #{msg}")
164
172
  end
165
173
 
174
+ # ISO/IEC DIR 2, 16.5.6
166
175
  def termdef_style(xmldoc)
167
176
  xmldoc.xpath("//term").each do |t|
168
177
  para = t.at("./definition") || return
@@ -175,6 +184,7 @@ module Asciidoctor
175
184
  cited_term_style(xmldoc)
176
185
  end
177
186
 
187
+ # ISO/IEC DIR 2, 16.5.10
178
188
  def cited_term_style(xmldoc)
179
189
  xmldoc.xpath("//term//xref").each do |x|
180
190
  next unless xmldoc.at("//term[@id = '#{x['target']}']")
@@ -13,12 +13,14 @@ module Asciidoctor
13
13
  super
14
14
  end
15
15
 
16
+ # ISO/IEC DIR 2, 12.4
16
17
  def foreword_validate(root)
17
18
  f = root.at("//foreword") || return
18
19
  s = f.at("./clause")
19
20
  warn "ISO style: foreword contains subclauses" unless s.nil?
20
21
  end
21
22
 
23
+ # ISO/IEC DIR 2, 15.4
22
24
  def normref_validate(root)
23
25
  f = root.at("//references[title = 'Normative References']") || return
24
26
  f.at("./references | ./clause") &&
@@ -150,13 +152,14 @@ module Asciidoctor
150
152
  end
151
153
 
152
154
  NORM_ISO_WARN = "non-ISO/IEC reference not expected as normative".freeze
153
- SCOPE_WARN = "Scope contains subclauses: should be succint".freeze
155
+ SCOPE_WARN = "Scope contains subclauses: should be succinct".freeze
154
156
 
155
157
  def section_style(root)
156
158
  foreword_style(root.at("//foreword"))
157
159
  introduction_style(root.at("//introduction"))
158
160
  scope_style(root.at("//clause[title = 'Scope']"))
159
161
  scope = root.at("//clause[title = 'Scope']/clause")
162
+ # ISO/IEC DIR 2, 14.4
160
163
  scope.nil? || style_warning(scope, SCOPE_WARN, nil)
161
164
  end
162
165
 
@@ -167,6 +170,7 @@ module Asciidoctor
167
170
  NORM_BIBITEMS =
168
171
  "//references[title = 'Normative References']/bibitem".freeze
169
172
 
173
+ # ISO/IEC DIR 2, 10.2
170
174
  def norm_bibitem_style(root)
171
175
  root.xpath(NORM_BIBITEMS).each do |b|
172
176
  if b.at(Standoc::Converter::ISO_PUBLISHER_XPATH).nil?
@@ -14,40 +14,48 @@ module Asciidoctor
14
14
  ret
15
15
  end
16
16
 
17
+ # ISO/IEC DIR 2, 12.2
17
18
  def foreword_style(node)
18
19
  return if @novalid
19
20
  style_no_guidance(node, extract_text(node), "Foreword")
20
21
  end
21
22
 
23
+ # ISO/IEC DIR 2, 14.2
22
24
  def scope_style(node)
23
25
  return if @novalid
24
26
  style_no_guidance(node, extract_text(node), "Scope")
25
27
  end
26
28
 
29
+ # ISO/IEC DIR 2, 13.2
27
30
  def introduction_style(node)
28
31
  return if @novalid
29
32
  r = requirement_check(extract_text(node))
30
33
  style_warning(node, "Introduction may contain requirement", r) if r
31
34
  end
32
35
 
36
+ # ISO/IEC DIR 2, 16.5.6
33
37
  def definition_style(node)
34
38
  return if @novalid
35
39
  r = requirement_check(extract_text(node))
36
40
  style_warning(node, "Definition may contain requirement", r) if r
37
41
  end
38
42
 
43
+ # ISO/IEC DIR 2, 16.5.7
44
+ # ISO/IEC DIR 2, 25.5
39
45
  def example_style(node)
40
46
  return if @novalid
41
- style_no_guidance(node, extract_text(node), "Term Example")
47
+ style_no_guidance(node, extract_text(node), "Example")
42
48
  style(node, extract_text(node))
43
49
  end
44
50
 
51
+ # ISO/IEC DIR 2, 24.5
45
52
  def note_style(node)
46
53
  return if @novalid
47
54
  style_no_guidance(node, extract_text(node), "Note")
48
55
  style(node, extract_text(node))
49
56
  end
50
57
 
58
+ # ISO/IEC DIR 2, 26.5
51
59
  def footnote_style(node)
52
60
  return if @novalid
53
61
  style_no_guidance(node, extract_text(node), "Footnote")
@@ -80,6 +88,8 @@ module Asciidoctor
80
88
  style_units(n, t)
81
89
  end
82
90
 
91
+ # ISO/IEC DIR 2, 9.1
92
+ # ISO/IEC DIR 2, Table B.1
83
93
  def style_number(n, t)
84
94
  style_two_regex_not_prev(n, t, /^(?<num>-?[0-9]{4,}[,0-9]*)$/,
85
95
  %r{(\bISO|\bIEC|\bIEEE/)$},
@@ -90,6 +100,7 @@ module Asciidoctor
90
100
  "ambiguous number", n, t)
91
101
  end
92
102
 
103
+ # ISO/IEC DIR 2, 9.2.1
93
104
  def style_percent(n, t)
94
105
  style_regex(/\b(?<num>[0-9.,]+%)/,
95
106
  "no space before percent sign", n, t)
@@ -97,6 +108,8 @@ module Asciidoctor
97
108
  "unbracketed tolerance before percent sign", n, t)
98
109
  end
99
110
 
111
+ # ISO/IEC DIR 2, 8.4
112
+ # ISO/IEC DIR 2, 9.3
100
113
  def style_abbrev(n, t)
101
114
  style_regex(/(^|\s)(?!e\.g\.|i\.e\.)
102
115
  (?<num>[a-z]{1,2}\.([a-z]{1,2}|\.))\b/ix,
@@ -110,6 +123,7 @@ module Asciidoctor
110
123
  "V|kV|W|MW|kW|F|μF|Ω|Wb|°C|lm|lx|Bq|Gy|Sv|kat|l|t|eV|u|Np|Bd|"\
111
124
  "bit|kB|MB|Hart|nat|Sh|var)".freeze
112
125
 
126
+ # ISO/IEC DIR 2, 9.3
113
127
  def style_units(n, t)
114
128
  style_regex(/\b(?<num>[0-9][0-9,]*\s+[\u00b0\u2032\u2033])/,
115
129
  "space between number and degrees/minutes/seconds", n, t)
@@ -123,6 +137,7 @@ module Asciidoctor
123
137
  "lit": "l", "amp": "A", "amps": "A", "rpm": "r/min"
124
138
  }.freeze
125
139
 
140
+ # ISO/IEC DIR 2, 9.3
126
141
  def style_non_std_units(n, t)
127
142
  NONSTD_UNITS.each do |k, v|
128
143
  style_regex(/\b(?<num>[0-9][0-9,]*\s+#{k})\b/,
@@ -1,4 +1,4 @@
1
- <div id='toggle'> <span>•</span> </div>
1
+ <div id='toggle'> <span>•</span> </div>
2
2
  {% if tc_docnumber %}
3
3
  <p class="coverpage_docnumber">{{ tc_docnumber }}</p>
4
4
  {% else %}
@@ -44,7 +44,7 @@ name="CVP_Secretariat_Loca">Secretariat</a>: {{ secretariat }}</p>
44
44
  <div class="coverpage_warning">
45
45
 
46
46
  <p>Warning for WDs
47
- and CDs<o:p></o:p></span></b></p>
47
+ and CDs</p>
48
48
 
49
49
  <p>This
50
50
  document is not an ISO International Standard. It is distributed for review and
@@ -55,8 +55,6 @@ an International Standard.</p>
55
55
  of this draft are invited to submit, with their comments, notification of any
56
56
  relevant patent rights of which they are aware and to provide supporting
57
57
  documentation.</p>
58
- {% endif %}
59
58
 
60
59
  </div>
61
-
62
-
60
+ {% endif %}
@@ -489,7 +489,7 @@ p.document-type, p.document-stage {
489
489
  letter-spacing: 0.05em;
490
490
  margin:0;
491
491
  margin-left: 6px;
492
- writing-mode:tb-rl;
492
+ writing-mode:vertical-rl;
493
493
  -webkit-transform:rotate(180deg);
494
494
  -moz-transform:rotate(180deg);
495
495
  -o-transform: rotate(180deg);
@@ -482,7 +482,7 @@ p.document-type, p.document-stage {
482
482
  letter-spacing: 0.05em;
483
483
  margin:0;
484
484
  margin-left: 6px;
485
- writing-mode:tb-rl;
485
+ writing-mode:vertical-rl;
486
486
  -webkit-transform:rotate(180deg);
487
487
  -moz-transform:rotate(180deg);
488
488
  -o-transform: rotate(180deg);
@@ -268,6 +268,7 @@ h2
268
268
  tab-stops:list 36.0pt left 44.0pt;
269
269
  font-size:11.0pt;
270
270
  font-family:$headerfont;
271
+ font-weight:bold;
271
272
  mso-fareast-font-family:$headerfont;
272
273
  mso-ansi-language:EN-GB;
273
274
  mso-fareast-language:JA;
@@ -293,6 +294,7 @@ h3 {mso-list:l1 level3 lfo6;}
293
294
  tab-stops:51.05pt 57.0pt 68.0pt;
294
295
  font-size:11.0pt;
295
296
  font-family:$headerfont;
297
+ font-weight:bold;
296
298
  mso-fareast-font-family:$headerfont;
297
299
  mso-ansi-language:EN-GB;
298
300
  mso-fareast-language:JA;
@@ -318,6 +320,7 @@ h4 {mso-list:l1 level4 lfo6;}
318
320
  tab-stops:51.05pt list 54.0pt;
319
321
  font-size:11.0pt;
320
322
  font-family:$headerfont;
323
+ font-weight:bold;
321
324
  mso-fareast-font-family:$headerfont;
322
325
  mso-ansi-language:EN-GB;
323
326
  mso-fareast-language:JA;
@@ -343,6 +346,7 @@ h6
343
346
  tab-stops:51.05pt list 72.0pt;
344
347
  font-size:11.0pt;
345
348
  font-family:$headerfont;
349
+ font-weight:bold;
346
350
  mso-fareast-font-family:$headerfont;
347
351
  mso-ansi-language:EN-GB;
348
352
  mso-fareast-language:JA;
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "1.2.4".freeze
3
+ VERSION = "1.3.0".freeze
4
4
  end
5
5
  end
@@ -31,8 +31,8 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  spec.add_dependency "asciidoctor", "~> 1.5.7"
33
33
  spec.add_dependency "ruby-jing"
34
- spec.add_dependency "isodoc", "~> 0.10.0"
35
- spec.add_dependency "metanorma-standoc", "~> 1.2.0"
34
+ spec.add_dependency "isodoc", "~> 1.0.0"
35
+ spec.add_dependency "metanorma-standoc", "~> 1.3.0"
36
36
 
37
37
  spec.add_development_dependency "bundler", "~> 2.0.1"
38
38
  spec.add_development_dependency "byebug"
@@ -763,4 +763,167 @@ r = 1 %</stem>
763
763
  </iso-standard>
764
764
  OUTPUT
765
765
  end
766
+
767
+ it "reorders references in bibliography, and renumbers citations accordingly" do
768
+ expect(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true))).to be_equivalent_to <<~"OUTPUT"
769
+ #{ASCIIDOC_BLANK_HDR}
770
+
771
+ == Clause 1
772
+ <<ref1>>
773
+ <<ref2>>
774
+ <<ref3>>
775
+ <<ref4>>
776
+ <<ref5>>
777
+ <<ref6>>
778
+ <<ref7>>
779
+ <<ref8>>
780
+ <<ref9>>
781
+ <<ref10>>
782
+
783
+ [bibliography]
784
+ == Bibliography
785
+
786
+ [bibliography]
787
+ === Clause 1
788
+ * [[[ref3,IEC 123]]], _Standard IEC 123_
789
+ * [[[ref5,20]]], _Standard 10_
790
+ * [[[ref1,ISO 123]]], _Standard ISO 123_
791
+ * [[[ref4,GB 123]]], _Standard GB 123_
792
+ * [[[ref2,ISO/IEC 123]]], _Standard ISO/IEC 123_
793
+
794
+ [bibliography]
795
+ === {blank}
796
+ * [[[ref10,20]]], _Standard 10_
797
+ * [[[ref9,GB 123]]], _Standard GB 123_
798
+ * [[[ref8,IEC 123]]], _Standard IEC 123_
799
+ * [[[ref7,ISO 123]]], _Standard ISO 123_
800
+ * [[[ref6,ISO/IEC 123]]], _Standard ISO/IEC 123_
801
+ INPUT
802
+ #{BLANK_HDR}
803
+ <sections><clause id="_" inline-header="false" obligation="normative">
804
+ <title>Clause 1</title>
805
+ <p id="_"><eref type="inline" bibitemid="ref1" citeas="ISO 123"/>
806
+ <eref type="inline" bibitemid="ref2" citeas="ISO/IEC 123"/>
807
+ <eref type="inline" bibitemid="ref3" citeas="IEC 123"/>
808
+ <eref type="inline" bibitemid="ref4" citeas="GB 123"/>
809
+ <eref type="inline" bibitemid="ref5" citeas="[5]"/>
810
+ <eref type="inline" bibitemid="ref6" citeas="ISO/IEC 123"/>
811
+ <eref type="inline" bibitemid="ref7" citeas="ISO 123"/>
812
+ <eref type="inline" bibitemid="ref8" citeas="IEC 123"/>
813
+ <eref type="inline" bibitemid="ref9" citeas="GB 123"/>
814
+ <eref type="inline" bibitemid="ref10" citeas="[10]"/></p>
815
+ </clause>
816
+ </sections><bibliography><clause id="_" obligation="informative"><title>Bibliography</title><references id="_" obligation="informative">
817
+ <title>Clause 1</title><bibitem id="ref1" type="standard">
818
+ <title format="text/plain">Standard ISO 123</title>
819
+ <docidentifier>ISO 123</docidentifier>
820
+ <contributor>
821
+ <role type="publisher"/>
822
+ <organization>
823
+ <name>International Organization for Standardization</name>
824
+ <abbreviation>ISO</abbreviation>
825
+ </organization>
826
+ </contributor>
827
+ </bibitem><bibitem id="ref2" type="standard">
828
+ <title format="text/plain">Standard ISO/IEC 123</title>
829
+ <docidentifier>ISO/IEC 123</docidentifier>
830
+ <contributor>
831
+ <role type="publisher"/>
832
+ <organization>
833
+ <name>International Organization for Standardization</name>
834
+ <abbreviation>ISO</abbreviation>
835
+ </organization>
836
+ </contributor>
837
+ <contributor>
838
+ <role type="publisher"/>
839
+ <organization>
840
+ <name>International Electrotechnical Commission</name>
841
+ <abbreviation>IEC</abbreviation>
842
+ </organization>
843
+ </contributor>
844
+ </bibitem><bibitem id="ref3" type="standard">
845
+ <title format="text/plain">Standard IEC 123</title>
846
+ <docidentifier>IEC 123</docidentifier>
847
+ <contributor>
848
+ <role type="publisher"/>
849
+ <organization>
850
+ <name>International Electrotechnical Commission</name>
851
+ <abbreviation>IEC</abbreviation>
852
+ </organization>
853
+ </contributor>
854
+ </bibitem><bibitem id="ref4">
855
+ <formattedref format="application/x-isodoc+xml">
856
+ <em>Standard GB 123</em>
857
+ </formattedref>
858
+ <docidentifier>GB 123</docidentifier>
859
+ </bibitem><bibitem id="ref5">
860
+ <formattedref format="application/x-isodoc+xml">
861
+ <em>Standard 10</em>
862
+ </formattedref>
863
+ <docidentifier type="metanorma">[5]</docidentifier>
864
+ </bibitem>
865
+
866
+
867
+
868
+
869
+
870
+ </references>
871
+ <references id="_" obligation="informative">
872
+ <bibitem id="ref7" type="standard">
873
+ <title format="text/plain">Standard ISO 123</title>
874
+ <docidentifier>ISO 123</docidentifier>
875
+ <contributor>
876
+ <role type="publisher"/>
877
+ <organization>
878
+ <name>International Organization for Standardization</name>
879
+ <abbreviation>ISO</abbreviation>
880
+ </organization>
881
+ </contributor>
882
+ </bibitem><bibitem id="ref6" type="standard">
883
+ <title format="text/plain">Standard ISO/IEC 123</title>
884
+ <docidentifier>ISO/IEC 123</docidentifier>
885
+ <contributor>
886
+ <role type="publisher"/>
887
+ <organization>
888
+ <name>International Organization for Standardization</name>
889
+ <abbreviation>ISO</abbreviation>
890
+ </organization>
891
+ </contributor>
892
+ <contributor>
893
+ <role type="publisher"/>
894
+ <organization>
895
+ <name>International Electrotechnical Commission</name>
896
+ <abbreviation>IEC</abbreviation>
897
+ </organization>
898
+ </contributor>
899
+ </bibitem><bibitem id="ref8" type="standard">
900
+ <title format="text/plain">Standard IEC 123</title>
901
+ <docidentifier>IEC 123</docidentifier>
902
+ <contributor>
903
+ <role type="publisher"/>
904
+ <organization>
905
+ <name>International Electrotechnical Commission</name>
906
+ <abbreviation>IEC</abbreviation>
907
+ </organization>
908
+ </contributor>
909
+ </bibitem><bibitem id="ref9">
910
+ <formattedref format="application/x-isodoc+xml">
911
+ <em>Standard GB 123</em>
912
+ </formattedref>
913
+ <docidentifier>GB 123</docidentifier>
914
+ </bibitem><bibitem id="ref10">
915
+ <formattedref format="application/x-isodoc+xml">
916
+ <em>Standard 10</em>
917
+ </formattedref>
918
+ <docidentifier type="metanorma">[10]</docidentifier>
919
+ </bibitem>
920
+
921
+
922
+
923
+
924
+
925
+ </references></clause></bibliography>
926
+ </iso-standard>
927
+ OUTPUT
928
+ end
766
929
  end