metanorma-iso 2.1.7 → 2.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +3 -1
  3. data/.github/workflows/release.yml +24 -0
  4. data/lib/isodoc/iso/html/html_iso_titlepage.html +2 -2
  5. data/lib/isodoc/iso/html/style-human.scss +35 -1
  6. data/lib/isodoc/iso/html/style-iso.scss +36 -1
  7. data/lib/isodoc/iso/i18n-en.yaml +4 -0
  8. data/lib/isodoc/iso/i18n-fr.yaml +5 -0
  9. data/lib/isodoc/iso/i18n-ru.yaml +4 -0
  10. data/lib/isodoc/iso/i18n-zh-Hans.yaml +5 -0
  11. data/lib/isodoc/iso/init.rb +4 -0
  12. data/lib/isodoc/iso/iso.amendment.xsl +126 -162
  13. data/lib/isodoc/iso/iso.international-standard.xsl +126 -162
  14. data/lib/isodoc/iso/presentation_xml_convert.rb +18 -0
  15. data/lib/isodoc/iso/xref.rb +35 -4
  16. data/lib/metanorma/iso/base.rb +4 -0
  17. data/lib/metanorma/iso/biblio.rng +8 -5
  18. data/lib/metanorma/iso/cleanup.rb +5 -0
  19. data/lib/metanorma/iso/front_id.rb +59 -25
  20. data/lib/metanorma/iso/section.rb +5 -0
  21. data/lib/metanorma/iso/validate.rb +3 -2
  22. data/lib/metanorma/iso/version.rb +1 -1
  23. data/lib/metanorma/requirements/modspec.rb +60 -0
  24. data/lib/metanorma/requirements/requirements.rb +16 -0
  25. data/lib/metanorma-iso.rb +2 -1
  26. data/metanorma-iso.gemspec +1 -1
  27. data/spec/assets/iso.adoc +10 -0
  28. data/spec/examples/rice_img/1000-1_ed2amd3fig1a.png +0 -0
  29. data/spec/examples/rice_img/1000-1_ed2amd3fig1b.png +0 -0
  30. data/spec/examples/rice_img/1000-1_ed2amd3fig2.png +0 -0
  31. data/spec/examples/rice_img/1000-1_ed2amd3fig3.png +0 -0
  32. data/spec/examples/rice_img/1000-1_ed2amd3fig4.png +0 -0
  33. data/spec/examples/rice_img/1000-1_ed2amd3fig5_f.png +0 -0
  34. data/spec/examples/rice_img/1000-1_ed2amd3figA.png +0 -0
  35. data/spec/examples/rice_img/1000-1_ed2amd3figA1.png +0 -0
  36. data/spec/examples/rice_img/1000-1_ed2amd3figA2.png +0 -0
  37. data/spec/examples/rice_img/1000-1_ed2amd3figTab1.png +0 -0
  38. data/spec/examples/rice_img/1000-1_ed2amd3figTab2.png +0 -0
  39. data/spec/examples/rice_img/1001_ed2amd3fig1.png +0 -0
  40. data/spec/examples/rice_img/ISO_1213_1.png +0 -0
  41. data/spec/examples/rice_img/SL1000-1_ed2amd3fig1.png +0 -0
  42. data/spec/isodoc/ref_spec.rb +9 -9
  43. data/spec/metanorma/amd_spec.rb +0 -10
  44. data/spec/metanorma/base_spec.rb +0 -10
  45. data/spec/metanorma/cleanup_spec.rb +136 -0
  46. data/spec/metanorma/macros_spec.rb +99 -0
  47. data/spec/metanorma/processor_spec.rb +86 -86
  48. data/spec/metanorma/validate_spec.rb +41 -40
  49. data/spec/requirements/requirements_spec.rb +1299 -0
  50. data/spec/requirements/xref_spec.rb +1205 -0
  51. data/spec/vcr_cassettes/docrels.yml +385 -0
  52. metadata +40 -25
  53. data/lib/isodoc/iso/html/htmlstyle.css +0 -47
  54. data/lib/isodoc/iso/html/isodoc-dis.css +0 -4493
  55. data/lib/isodoc/iso/html/isodoc.css +0 -1346
  56. data/lib/isodoc/iso/html/style-human.css +0 -1030
  57. data/lib/isodoc/iso/html/style-iso.css +0 -1056
  58. data/lib/isodoc/iso/html/wordstyle-dis.css +0 -2280
  59. data/lib/isodoc/iso/html/wordstyle.css +0 -1728
@@ -4,11 +4,11 @@ module IsoDoc
4
4
  end
5
5
 
6
6
  class Xref < IsoDoc::Xref
7
+ attr_accessor :anchors_previous, :anchors
8
+
7
9
  def initial_anchor_names(doc)
8
- if @klass.amd(doc)
9
- initial_anchor_names_amd(doc)
10
- else
11
- initial_anchor_names1(doc)
10
+ if @klass.amd(doc) then initial_anchor_names_amd(doc)
11
+ else initial_anchor_names1(doc)
12
12
  end
13
13
  if @parse_settings.empty? || @parse_settings[:clauses]
14
14
  introduction_names(doc.at(ns("//introduction")))
@@ -217,6 +217,37 @@ module IsoDoc
217
217
  end
218
218
  true
219
219
  end
220
+
221
+ def sequential_table_names(clause)
222
+ super
223
+ modspec_table_xrefs(clause) if @anchors_previous
224
+ end
225
+
226
+ def modspec_table_xrefs(clause)
227
+ clause.xpath(ns(".//table[@class = 'modspec']")).noblank.each do |t|
228
+ (@anchors[t["id"]] && !@anchors[t["id"]][:modspec]) or next
229
+ n = @anchors[t["id"]][:xref]
230
+ @anchors[t["id"]][:modspec] = true
231
+ @anchors[t["id"]][:xref] =
232
+ l10n("#{n}, #{@anchors_previous[t['id']][:xref_bare]}")
233
+ modspec_table_components_xrefs(t, n)
234
+ end
235
+ end
236
+
237
+ def modspec_table_components_xrefs(table, table_label)
238
+ table.xpath(ns(".//tr[@id]")).each do |tr|
239
+ (@anchors[tr["id"]] && !@anchors[tr["id"]][:modspec]) or next
240
+ @anchors[tr["id"]][:modspec] = true
241
+ @anchors[tr["id"]][:xref] =
242
+ l10n("#{table_label}, #{@anchors_previous[tr['id']][:xref]}")
243
+ @anchors[tr["id"]].delete(:container)
244
+ end
245
+ end
246
+
247
+ def hierarchical_table_names(clause, _num)
248
+ super
249
+ modspec_table_xrefs(clause) if @anchors_previous
250
+ end
220
251
  end
221
252
  end
222
253
  end
@@ -12,6 +12,10 @@ module Metanorma
12
12
  XML_ROOT_TAG = "iso-standard".freeze
13
13
  XML_NAMESPACE = "https://www.metanorma.org/ns/iso".freeze
14
14
 
15
+ def requirements_processor
16
+ ::Metanorma::Requirements::Iso
17
+ end
18
+
15
19
  def html_converter(node)
16
20
  IsoDoc::Iso::HtmlConvert.new(html_extract_attributes(node))
17
21
  end
@@ -225,9 +225,9 @@
225
225
  <zeroOrMore>
226
226
  <ref name="forename"/>
227
227
  </zeroOrMore>
228
- <zeroOrMore>
229
- <ref name="initial"/>
230
- </zeroOrMore>
228
+ <optional>
229
+ <ref name="formatted-initials"/>
230
+ </optional>
231
231
  <ref name="surname"/>
232
232
  <zeroOrMore>
233
233
  <ref name="addition"/>
@@ -247,8 +247,8 @@
247
247
  <ref name="LocalizedString"/>
248
248
  </element>
249
249
  </define>
250
- <define name="initial">
251
- <element name="initial">
250
+ <define name="formatted-initials">
251
+ <element name="formatted-initials">
252
252
  <ref name="LocalizedString"/>
253
253
  </element>
254
254
  </define>
@@ -264,6 +264,9 @@
264
264
  </define>
265
265
  <define name="forename">
266
266
  <element name="forename">
267
+ <optional>
268
+ <attribute name="initial"/>
269
+ </optional>
267
270
  <ref name="LocalizedString"/>
268
271
  </element>
269
272
  </define>
@@ -204,6 +204,11 @@ module Metanorma
204
204
  super
205
205
  end
206
206
 
207
+ def term_children_cleanup(xmldoc)
208
+ @vocab and return
209
+ super
210
+ end
211
+
207
212
  def bibdata_cleanup(xmldoc)
208
213
  super
209
214
  approval_groups_rename(xmldoc)
@@ -80,33 +80,77 @@ module Metanorma
80
80
  iso_id_out(node, xml, dns)
81
81
  end
82
82
 
83
+ def iso_id_out(node, xml, dns)
84
+ xml.docidentifier dns[0], **attr_code(type: "ISO")
85
+ xml.docidentifier dns[2], **attr_code(type: "iso-undated")
86
+ xml.docidentifier(id_langsuffix(dns[0], node),
87
+ **attr_code(type: "iso-with-lang"))
88
+ xml.docidentifier(id_langsuffix(dns[1], node),
89
+ **attr_code(type: "iso-reference"))
90
+ end
91
+
92
+ def get_typeabbr(node, amd: false)
93
+ case doctype(node)
94
+ when "directive" then "DIR "
95
+ when "technical-report" then "TR "
96
+ when "technical-specification" then "TS "
97
+ when "amendment" then (amd ? "Amd " : "")
98
+ when "technical-corrigendum" then (amd ? "Cor " : "")
99
+ end
100
+ end
101
+
83
102
  =begin
84
- def iso_id(node, _xml)
103
+ def get_typeabbr(node, amd: false)
104
+ case doctype(node)
105
+ when "directive" then "DIR"
106
+ when "technical-report" then "TR"
107
+ when "technical-specification" then "TS"
108
+ else nil
109
+ end
110
+ end
111
+
112
+ def iso_id(node, xml)
85
113
  (!@amd && node.attr("docnumber")) || (@amd && node.attr("updates")) or
86
114
  return
115
+ stage = id_stage_abbr(get_stage(node), get_substage(node), node, true)&.strip
116
+ stage = nil if %w{IS (Review) (Withdrwal)}.include?(stage.strip)
117
+ urn_stage = "#{get_stage(node)}.#{get_substage(node)}"
118
+ pub = (node.attr("publisher") || "ISO").split(/[;,]/)
87
119
  params = {
88
- number: (@amd ? node.attr("updates") : node.attr("docnumber")),
120
+ number: node.attr("docnumber"), # (@amd ? node.attr("updates") : node.attr("docnumber")),
89
121
  part: node.attr("partnumber"),
90
- amendment_number: node.attr("amendment-number"),
91
- corrigendum_number: node.attr("corrigendum-number"),
92
122
  language: node.attr("language") || "en",
93
- urn_stage: "#{get_stage(node)}.#{get_substage(node)}",
94
- stage: id_stage_abbr(get_stage(node), get_substage(node), node, true),
95
- type: doctype(node),
123
+ type: get_typeabbr(node),
96
124
  year: node.attr("copyright-year") || node.attr("updated-date")&.sub(/-.*$/, ""),
97
- copublisher: node.attr("agency"),
98
- }
125
+ publisher: pub[0],
126
+ copublisher: pub[1..-1],
127
+ }.compact
128
+ if a = node.attr("amendment-number")
129
+ params[:amendments] = { number: a, stage: stage }
130
+ elsif a = node.attr("corrigendum-number")
131
+ params[:corrigendums] = { number: a, stage: stage }
132
+ else
133
+ params.merge!( { stage: stage, urn_stage: urn_stage }.compact )
134
+ end
135
+ iso_id_out(xml, params)
99
136
  end
100
- =end
101
137
 
102
- def iso_id_out(node, xml, dns)
103
- xml.docidentifier dns[0], **attr_code(type: "ISO")
104
- xml.docidentifier dns[2], **attr_code(type: "iso-undated")
105
- xml.docidentifier(id_langsuffix(dns[0], node),
138
+ def iso_id_out(xml, params)
139
+ params_nolang = params.dup.tap { |hs| hs.delete(:language) }
140
+ unpub = /^[0-5]/.match?(params[:urn_stage])
141
+ params1 = unpub ? params_nolang.dup.tap { |hs| hs.delete(:year) } : params_nolang
142
+ xml.docidentifier Pubid::Iso::Identifier.new(**params1), **attr_code(type: "ISO")
143
+ params2 = params_nolang.dup.tap { |hs| hs.delete(:year) }
144
+ xml.docidentifier Pubid::Iso::Identifier.new(**params2), **attr_code(type: "iso-undated")
145
+ params1 = unpub ? params.dup.tap { |hs| hs.delete(:year) } : params
146
+ xml.docidentifier(Pubid::Iso::Identifier.new(**params1),
106
147
  **attr_code(type: "iso-with-lang"))
107
- xml.docidentifier(id_langsuffix(dns[1], node),
148
+ warn params
149
+ warn "Generated: #{Pubid::Iso::Identifier.new(**params).to_s}"
150
+ xml.docidentifier(Pubid::Iso::Identifier.new(**params),
108
151
  **attr_code(type: "iso-reference"))
109
152
  end
153
+ =end
110
154
 
111
155
  def iso_id1(node)
112
156
  if @amd
@@ -250,16 +294,6 @@ module Metanorma
250
294
  ret = (stage == "60" ? "60" : "00") if ret.nil? || ret.empty?
251
295
  ret
252
296
  end
253
-
254
- def get_typeabbr(node, amd: false)
255
- case doctype(node)
256
- when "directive" then "DIR "
257
- when "technical-report" then "TR "
258
- when "technical-specification" then "TS "
259
- when "amendment" then (amd ? "Amd " : "")
260
- when "technical-corrigendum" then (amd ? "Cor " : "")
261
- end
262
- end
263
297
  end
264
298
  end
265
299
  end
@@ -44,6 +44,11 @@ module Metanorma
44
44
  return term_def_subclause_parse1(attrs, xml, node)
45
45
  super
46
46
  end
47
+
48
+ def term_contains_subclauses(node)
49
+ @vocab and return false # treat this as a term
50
+ super
51
+ end
47
52
  end
48
53
  end
49
54
  end
@@ -90,11 +90,12 @@ module Metanorma
90
90
  end
91
91
 
92
92
  def term_xrefs_validate1(xref, termids)
93
- (termids[xref["target"]] && !termids[xref.parent["id"]]) and
93
+ closest_id = xref.xpath("./ancestor::*[@id]")&.last or return
94
+ (termids[xref["target"]] && !termids[closest_id["id"]]) and
94
95
  @log.add("Style", xref,
95
96
  "only terms clauses can cross-reference terms clause "\
96
97
  "(#{xref['target']})")
97
- (!termids[xref["target"]] && termids[xref.parent["id"]]) and
98
+ (!termids[xref["target"]] && termids[closest_id["id"]]) and
98
99
  @log.add("Style", xref,
99
100
  "non-terms clauses cannot cross-reference terms clause "\
100
101
  "(#{xref['target']})")
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module ISO
3
- VERSION = "2.1.7".freeze
3
+ VERSION = "2.1.8".freeze
4
4
  end
5
5
  end
@@ -0,0 +1,60 @@
1
+ module Metanorma
2
+ class Requirements
3
+ class Modspec
4
+ # Don't want to inherit from Metanorma::Requirements::Modspec
5
+ class Iso < ::Metanorma::Requirements::Modspec
6
+ def recommendation_label(elem, type, xrefs)
7
+ lbl = super
8
+ title = elem.at(ns("./title"))
9
+ return lbl unless title # &&
10
+
11
+ # elem.ancestors("requirement, recommendation, permission").empty?
12
+
13
+ lbl += l10n(": ") if lbl
14
+ lbl += title.children.to_xml
15
+ lbl
16
+ end
17
+
18
+ # ISO labels modspec reqt as table, with reqt label as title
19
+ def recommendation_header(reqt, out)
20
+ n = reqt.at(ns("./name")) and out << n
21
+ out
22
+ end
23
+
24
+ def recommend_title(node, out)
25
+ label = node.at(ns("./identifier")) or return
26
+ out.add_child("<tr><td>#{@labels['modspec']['identifier']}</td>"\
27
+ "<td><tt>#{label.children.to_xml}</tt></td>")
28
+ end
29
+
30
+ def requirement_component_parse(node, out)
31
+ if node["exclude"] != "true" && node.name == "description"
32
+ lbl = "statement"
33
+ lbl = "declaration" if recommend_class(node) == "recommendclass"
34
+ out << "<tr><td>#{@labels['modspec'][lbl]}</td>"\
35
+ "<td>#{node.children.to_xml}</td></tr>"
36
+ else
37
+ super
38
+ end
39
+ end
40
+
41
+ def requirement_table_cleanup(table)
42
+ return table unless table["type"] == "recommendclass"
43
+
44
+ ins = table.at(ns("./tbody/tr[td/table]")) or return table
45
+ ins.replace("<tr><td>#{@labels['modspec']['provisions']}</td>" +
46
+ "<td>#{nested_tables_names(table)}</td></tr>")
47
+ table.xpath(ns("./tbody/tr[td/table]")).each(&:remove)
48
+ table
49
+ end
50
+
51
+ def nested_tables_names(table)
52
+ table.xpath(ns("./tbody/tr/td/table"))
53
+ .each_with_object([]) do |t, m|
54
+ m << t.at(ns("./name")).children.to_xml
55
+ end.join("<br/>")
56
+ end
57
+ end
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,16 @@
1
+ require "mn-requirements"
2
+ require_relative "modspec"
3
+
4
+ module Metanorma
5
+ class Requirements
6
+ class Iso < ::Metanorma::Requirements
7
+ def create(type)
8
+ case type
9
+ when :modspec, :ogc
10
+ ::Metanorma::Requirements::Modspec::Iso.new(parent: self)
11
+ else ::Metanorma::Requirements::Default.new(parent: self)
12
+ end
13
+ end
14
+ end
15
+ end
16
+ end
data/lib/metanorma-iso.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "asciidoctor" unless defined? Asciidoctor::Converter
2
2
  require_relative "metanorma/iso/converter"
3
3
  require_relative "metanorma/iso/version"
4
+ require_relative "metanorma/requirements/requirements"
4
5
  require_relative "isodoc/iso/html_convert"
5
6
  require_relative "isodoc/iso/word_convert"
6
7
  require_relative "isodoc/iso/pdf_convert"
@@ -10,7 +11,7 @@ require_relative "isodoc/iso/presentation_xml_convert"
10
11
  require_relative "html2doc/lists"
11
12
  require "asciidoctor/extensions"
12
13
 
13
- if defined? Metanorma
14
+ if defined? Metanorma::Registry
14
15
  require_relative "metanorma/iso"
15
16
  Metanorma::Registry.instance.register(Metanorma::Iso::Processor)
16
17
  end
@@ -31,10 +31,10 @@ Gem::Specification.new do |spec|
31
31
 
32
32
  spec.add_dependency "metanorma-standoc", "~> 2.2.0"
33
33
  spec.add_dependency "mnconvert", "~> 1.14"
34
+ spec.add_dependency "pubid-iso"
34
35
  spec.add_dependency "ruby-jing"
35
36
  spec.add_dependency "tokenizer", "~> 0.3.0"
36
37
  spec.add_dependency "twitter_cldr"
37
- spec.add_dependency "pubid-iso"
38
38
 
39
39
  spec.add_development_dependency "debug"
40
40
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
@@ -0,0 +1,10 @@
1
+ = X
2
+ A
3
+ :mn-document-class: iso
4
+ :title-main-en: Medical devices — Quality management systems — Requirements for regulatory purposes
5
+ :title-main-fr: Dispositifs médicaux — Systèmes de management de la qualité — Exigences à des fins réglementaires
6
+
7
+ == Clause 1
8
+
9
+ X
10
+
@@ -162,7 +162,7 @@ RSpec.describe IsoDoc do
162
162
  <eref bibitemid="ISSN">[2]</eref>
163
163
  <eref bibitemid="ISO16634">ISO 16634:--</eref>
164
164
  <eref bibitemid="ref1">ICC 167</eref>
165
- <eref bibitemid="ref10">[10]</eref>
165
+ <eref bibitemid="ref10">[4]</eref>
166
166
  <eref bibitemid="ref12">Citn</eref>
167
167
  </p>
168
168
  </foreword>
@@ -210,13 +210,13 @@ RSpec.describe IsoDoc do
210
210
  <title depth="1">Bibliography</title>
211
211
  <bibitem id="ISBN" type="book">
212
212
  <formattedref><em>Chemicals for analytical laboratory use</em>. n.p.: n.d. ISBN.</formattedref>
213
+ <docidentifier type="metanorma-ordinal">[1]</docidentifier>
213
214
  <docidentifier type="ISBN">ISBN</docidentifier>
214
- <docidentifier type="metanorma">[1]</docidentifier>
215
215
  </bibitem>
216
216
  <bibitem id="ISSN" type="journal">
217
217
  <formattedref><em>Instruments for analytical laboratory use</em>. n.d. ISSN.</formattedref>
218
+ <docidentifier type="metanorma-ordinal">[2]</docidentifier>
218
219
  <docidentifier type="ISSN">ISSN</docidentifier>
219
- <docidentifier type="metanorma">[2]</docidentifier>
220
220
  </bibitem>
221
221
  <note>
222
222
  <name>NOTE</name>
@@ -241,11 +241,11 @@ RSpec.describe IsoDoc do
241
241
 
242
242
  <link target="http://www.icc.or.at"/>
243
243
  )</formattedref>
244
- <docidentifier type="metanorma">[10]</docidentifier>
244
+ <docidentifier type="metanorma-ordinal">[4]</docidentifier>
245
245
  </bibitem>
246
246
  <bibitem id="ref11">
247
247
  <formattedref><em><span class="stddocTitle">Internet Calendaring and Scheduling Core Object Specification (iCalendar)</span></em></formattedref>
248
- <docidentifier type='metanorma-ordinal'>[4]</docidentifier>
248
+ <docidentifier type='metanorma-ordinal'>[5]</docidentifier>
249
249
  <docidentifier type="IETF">IETF RFC 10</docidentifier>
250
250
  </bibitem>
251
251
  <bibitem id="ref12">
@@ -270,7 +270,7 @@ RSpec.describe IsoDoc do
270
270
  <a href='#ISSN'>[2]</a>
271
271
  <a href='#ISO16634'>ISO 16634:--</a>
272
272
  <a href='#ref1'>ICC 167</a>
273
- <a href='#ref10'>[10]</a>
273
+ <a href='#ref10'>[4]</a>
274
274
  <a href='#ref12'>Citn</a>
275
275
  </p>
276
276
  </div>
@@ -350,7 +350,7 @@ RSpec.describe IsoDoc do
350
350
  <i>Water for analytical laboratory use</i>
351
351
  </p>
352
352
  <p id='ref10' class='Biblio'>
353
- [10
353
+ [4
354
354
  <span style='font-variant:small-caps;'>Standard No I.C.C 167</span>
355
355
  .
356
356
  <i>
@@ -363,7 +363,7 @@ RSpec.describe IsoDoc do
363
363
  )
364
364
  </p>
365
365
  <p id='ref11' class='Biblio'>
366
- [4]  IETF RFC 10,
366
+ [5]  IETF RFC 10,
367
367
  <i>Internet Calendaring and Scheduling Core Object Specification (iCalendar)</i>
368
368
  </p>
369
369
  <p id='ref12' class='Biblio'>
@@ -426,7 +426,7 @@ RSpec.describe IsoDoc do
426
426
  .
427
427
  </formattedref>
428
428
  <uri>https://registre.ign.fr/ign/IGNF/</uri>
429
- <docidentifier type='metanorma'>2</docidentifier>
429
+ <docidentifier type='metanorma-ordinal'>[1]</docidentifier>
430
430
  </bibitem>
431
431
  </references>
432
432
  </iso-standard>
@@ -174,7 +174,6 @@ RSpec.describe Metanorma::ISO do
174
174
  :title-intro-fr: Introduction Française
175
175
  :title-main-fr: Titre Principal
176
176
  :title-part-fr: Part du Titre
177
- :library-ics: 1,2,3
178
177
  :copyright-year: 2017
179
178
  :updates: ISO 17301-1:2016
180
179
  :created-date: 2016-05-01
@@ -273,15 +272,6 @@ RSpec.describe Metanorma::ISO do
273
272
  <workgroup number="3" type="C">WG</workgroup>
274
273
  <workgroup number="31" type="C1">WG1</workgroup>
275
274
  </approvalgroup>
276
- <ics>
277
- <code>1</code>
278
- </ics>
279
- <ics>
280
- <code>2</code>
281
- </ics>
282
- <ics>
283
- <code>3</code>
284
- </ics>
285
275
  <structuredidentifier>
286
276
  <project-number amendment="1" origyr="2016-05-01" part="1">17301</project-number>
287
277
  </structuredidentifier>
@@ -66,7 +66,6 @@ RSpec.describe Metanorma::ISO do
66
66
  :title-intro-fr: Introduction Française
67
67
  :title-main-fr: Titre Principal
68
68
  :title-part-fr: Part du Titre
69
- :library-ics: 1,2,3
70
69
  :copyright-year: 2000
71
70
  :horizontal: true
72
71
  INPUT
@@ -146,15 +145,6 @@ RSpec.describe Metanorma::ISO do
146
145
  <workgroup number="3a" type="Ca">WGa</workgroup>
147
146
  <workgroup number="31a" type="C1a">WG1a</workgroup>
148
147
  </approvalgroup>
149
- <ics>
150
- <code>1</code>
151
- </ics>
152
- <ics>
153
- <code>2</code>
154
- </ics>
155
- <ics>
156
- <code>3</code>
157
- </ics>
158
148
  <structuredidentifier>
159
149
  <project-number part="1">ISO 1000</project-number>
160
150
  </structuredidentifier>