metanorma-iso 1.2.4 → 1.3.0

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.
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