metanorma-iso 2.1.2 → 2.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/html2doc/lists.rb +7 -4
- data/lib/isodoc/iso/html/isodoc-dis.css +3 -5
- data/lib/isodoc/iso/html/isodoc-dis.scss +3 -4
- data/lib/isodoc/iso/iso.amendment.xsl +302 -53
- data/lib/isodoc/iso/iso.international-standard.xsl +302 -53
- data/lib/isodoc/iso/presentation_xml_convert.rb +1 -1
- data/lib/metanorma/iso/biblio.rng +102 -5
- data/lib/metanorma/iso/cleanup.rb +29 -18
- data/lib/metanorma/iso/front.rb +13 -6
- data/lib/metanorma/iso/isodoc.rng +7 -0
- data/lib/metanorma/iso/validate_section.rb +0 -12
- data/lib/metanorma/iso/version.rb +1 -1
- data/spec/isodoc/section_spec.rb +2 -8
- data/spec/isodoc/word_dis_spec.rb +60 -0
- data/spec/metanorma/amd_spec.rb +4 -40
- data/spec/metanorma/base_spec.rb +55 -100
- data/spec/metanorma/validate_spec.rb +8 -19
- data/spec/spec_helper.rb +0 -6
- data/spec/vcr_cassettes/withdrawn_iso.yml +22 -22
- metadata +3 -3
@@ -38,7 +38,7 @@ module IsoDoc
|
|
38
38
|
lbl = if n.nil? || blank?(n[:label]) then @i18n.example
|
39
39
|
else l10n("#{@i18n.example} #{n[:label]}")
|
40
40
|
end
|
41
|
-
prefix_name(node,
|
41
|
+
prefix_name(node, block_delim, lbl, "name")
|
42
42
|
end
|
43
43
|
|
44
44
|
def example_span_label(_node, div, name)
|
@@ -623,6 +623,97 @@
|
|
623
623
|
<zeroOrMore>
|
624
624
|
<ref name="bsource"/>
|
625
625
|
</zeroOrMore>
|
626
|
+
<oneOrMore>
|
627
|
+
<ref name="docidentifier"/>
|
628
|
+
</oneOrMore>
|
629
|
+
<optional>
|
630
|
+
<ref name="docnumber"/>
|
631
|
+
</optional>
|
632
|
+
<zeroOrMore>
|
633
|
+
<ref name="bdate"/>
|
634
|
+
</zeroOrMore>
|
635
|
+
<zeroOrMore>
|
636
|
+
<ref name="contributor"/>
|
637
|
+
</zeroOrMore>
|
638
|
+
<optional>
|
639
|
+
<ref name="edition"/>
|
640
|
+
</optional>
|
641
|
+
<zeroOrMore>
|
642
|
+
<ref name="version"/>
|
643
|
+
</zeroOrMore>
|
644
|
+
<zeroOrMore>
|
645
|
+
<ref name="biblionote"/>
|
646
|
+
</zeroOrMore>
|
647
|
+
<zeroOrMore>
|
648
|
+
<ref name="language"/>
|
649
|
+
</zeroOrMore>
|
650
|
+
<zeroOrMore>
|
651
|
+
<ref name="script"/>
|
652
|
+
</zeroOrMore>
|
653
|
+
<zeroOrMore>
|
654
|
+
<ref name="bibabstract"/>
|
655
|
+
</zeroOrMore>
|
656
|
+
<optional>
|
657
|
+
<ref name="status"/>
|
658
|
+
</optional>
|
659
|
+
<zeroOrMore>
|
660
|
+
<ref name="copyright"/>
|
661
|
+
</zeroOrMore>
|
662
|
+
<zeroOrMore>
|
663
|
+
<ref name="docrelation"/>
|
664
|
+
</zeroOrMore>
|
665
|
+
<zeroOrMore>
|
666
|
+
<ref name="series"/>
|
667
|
+
</zeroOrMore>
|
668
|
+
<optional>
|
669
|
+
<ref name="medium"/>
|
670
|
+
</optional>
|
671
|
+
<zeroOrMore>
|
672
|
+
<ref name="bplace"/>
|
673
|
+
</zeroOrMore>
|
674
|
+
<zeroOrMore>
|
675
|
+
<ref name="bprice"/>
|
676
|
+
</zeroOrMore>
|
677
|
+
<zeroOrMore>
|
678
|
+
<ref name="extent"/>
|
679
|
+
</zeroOrMore>
|
680
|
+
<optional>
|
681
|
+
<ref name="bibliographic_size"/>
|
682
|
+
</optional>
|
683
|
+
<zeroOrMore>
|
684
|
+
<ref name="accesslocation"/>
|
685
|
+
</zeroOrMore>
|
686
|
+
<zeroOrMore>
|
687
|
+
<ref name="license"/>
|
688
|
+
</zeroOrMore>
|
689
|
+
<zeroOrMore>
|
690
|
+
<ref name="bclassification"/>
|
691
|
+
</zeroOrMore>
|
692
|
+
<zeroOrMore>
|
693
|
+
<ref name="bkeyword"/>
|
694
|
+
</zeroOrMore>
|
695
|
+
<optional>
|
696
|
+
<ref name="validity"/>
|
697
|
+
</optional>
|
698
|
+
</define>
|
699
|
+
<define name="ReducedBibliographicItem">
|
700
|
+
<optional>
|
701
|
+
<attribute name="type">
|
702
|
+
<ref name="BibItemType"/>
|
703
|
+
</attribute>
|
704
|
+
</optional>
|
705
|
+
<optional>
|
706
|
+
<ref name="fetched"/>
|
707
|
+
</optional>
|
708
|
+
<optional>
|
709
|
+
<ref name="formattedref"/>
|
710
|
+
</optional>
|
711
|
+
<zeroOrMore>
|
712
|
+
<ref name="btitle"/>
|
713
|
+
</zeroOrMore>
|
714
|
+
<zeroOrMore>
|
715
|
+
<ref name="bsource"/>
|
716
|
+
</zeroOrMore>
|
626
717
|
<zeroOrMore>
|
627
718
|
<ref name="docidentifier"/>
|
628
719
|
</zeroOrMore>
|
@@ -638,9 +729,9 @@
|
|
638
729
|
<optional>
|
639
730
|
<ref name="edition"/>
|
640
731
|
</optional>
|
641
|
-
<
|
732
|
+
<zeroOrMore>
|
642
733
|
<ref name="version"/>
|
643
|
-
</
|
734
|
+
</zeroOrMore>
|
644
735
|
<zeroOrMore>
|
645
736
|
<ref name="biblionote"/>
|
646
737
|
</zeroOrMore>
|
@@ -833,6 +924,12 @@
|
|
833
924
|
<data type="boolean"/>
|
834
925
|
</attribute>
|
835
926
|
</optional>
|
927
|
+
<optional>
|
928
|
+
<attribute name="language"/>
|
929
|
+
</optional>
|
930
|
+
<optional>
|
931
|
+
<attribute name="script"/>
|
932
|
+
</optional>
|
836
933
|
<text/>
|
837
934
|
</element>
|
838
935
|
</define>
|
@@ -1172,7 +1269,7 @@
|
|
1172
1269
|
</element>
|
1173
1270
|
</optional>
|
1174
1271
|
<element name="bibitem">
|
1175
|
-
<ref name="
|
1272
|
+
<ref name="ReducedBibliographicItem"/>
|
1176
1273
|
</element>
|
1177
1274
|
<choice>
|
1178
1275
|
<zeroOrMore>
|
@@ -1197,9 +1294,9 @@
|
|
1197
1294
|
<optional>
|
1198
1295
|
<ref name="revision-date"/>
|
1199
1296
|
</optional>
|
1200
|
-
<
|
1297
|
+
<optional>
|
1201
1298
|
<ref name="draft"/>
|
1202
|
-
</
|
1299
|
+
</optional>
|
1203
1300
|
</element>
|
1204
1301
|
</define>
|
1205
1302
|
<define name="vedition">
|
@@ -1,8 +1,5 @@
|
|
1
1
|
require "date"
|
2
|
-
require "nokogiri"
|
3
2
|
require "htmlentities"
|
4
|
-
require "json"
|
5
|
-
require "pathname"
|
6
3
|
|
7
4
|
module Metanorma
|
8
5
|
module ISO
|
@@ -15,8 +12,7 @@ module Metanorma
|
|
15
12
|
|
16
13
|
POST_NORMREF_FOOTNOTES =
|
17
14
|
"//sections//clause[not(@type = 'scope')]//fn | "\
|
18
|
-
"//annex//fn | "
|
19
|
-
"//references[@normative = 'false']//fn".freeze
|
15
|
+
"//annex//fn | //references[@normative = 'false']//fn".freeze
|
20
16
|
|
21
17
|
def other_footnote_renumber(xmldoc)
|
22
18
|
seen = {}
|
@@ -118,9 +114,7 @@ module Metanorma
|
|
118
114
|
super
|
119
115
|
return unless @amd
|
120
116
|
|
121
|
-
xml.xpath("//*[@inline-header]").each
|
122
|
-
h.delete("inline-header")
|
123
|
-
end
|
117
|
+
xml.xpath("//*[@inline-header]").each { |h| h.delete("inline-header") }
|
124
118
|
end
|
125
119
|
|
126
120
|
def boilerplate_file(_xmldoc)
|
@@ -170,8 +164,7 @@ module Metanorma
|
|
170
164
|
|
171
165
|
if id = replacement_standard(b)
|
172
166
|
insert_unpub_note(b, @i18n.cancelled_and_replaced.sub(/%/, id))
|
173
|
-
else
|
174
|
-
insert_unpub_note(b, @i18n.withdrawn)
|
167
|
+
else insert_unpub_note(b, @i18n.withdrawn)
|
175
168
|
end
|
176
169
|
end
|
177
170
|
end
|
@@ -214,25 +207,43 @@ module Metanorma
|
|
214
207
|
super
|
215
208
|
approval_groups_rename(xmldoc)
|
216
209
|
editorial_groups_agency(xmldoc)
|
210
|
+
editorial_group_types(xmldoc)
|
217
211
|
end
|
218
212
|
|
219
213
|
def approval_groups_rename(xmldoc)
|
220
214
|
%w(technical-committee subcommittee workgroup).each do |v|
|
221
|
-
xmldoc.xpath("//bibdata//approval-#{v}").each
|
222
|
-
a.name = v
|
223
|
-
end
|
215
|
+
xmldoc.xpath("//bibdata//approval-#{v}").each { |a| a.name = v }
|
224
216
|
end
|
225
217
|
end
|
226
218
|
|
227
219
|
def editorial_groups_agency(xmldoc)
|
228
|
-
pubs = xmldoc
|
229
|
-
|
220
|
+
pubs = extract_publishers(xmldoc)
|
221
|
+
xmldoc.xpath("//bibdata/ext/editorialgroup").each do |e|
|
222
|
+
pubs.reverse.each do |p|
|
223
|
+
if e.children.empty? then e << "<agency>#{p}</agency>"
|
224
|
+
else e.children.first.previous = "<agency>#{p}</agency>"
|
225
|
+
end
|
226
|
+
end
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
def extract_publishers(xmldoc)
|
231
|
+
xmldoc.xpath("//bibdata/contributor[role/@type = 'publisher']/"\
|
232
|
+
"organization").each_with_object([]) do |p, m|
|
230
233
|
x = p.at("./abbreviation") || p.at("./name") or next
|
231
234
|
m << x.text
|
232
235
|
end
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
+
end
|
237
|
+
|
238
|
+
DEFAULT_EDGROUP_TYPE = { "technical-committee": "TC",
|
239
|
+
subcommittee: "SC", workgroup: "WG" }.freeze
|
240
|
+
|
241
|
+
def editorial_group_types(xmldoc)
|
242
|
+
%w(technical-committee subcommittee workgroup).each do |v|
|
243
|
+
xmldoc.xpath("//bibdata//#{v} | //bibdata//approval-#{v}").each do |g|
|
244
|
+
next if g["type"]
|
245
|
+
|
246
|
+
g["type"] = DEFAULT_EDGROUP_TYPE[v.to_sym]
|
236
247
|
end
|
237
248
|
end
|
238
249
|
end
|
data/lib/metanorma/iso/front.rb
CHANGED
@@ -88,24 +88,31 @@ module Metanorma
|
|
88
88
|
def metadata_editorial_committee(node, xml)
|
89
89
|
xml.editorialgroup do |a|
|
90
90
|
%w(technical-committee subcommittee workgroup).each do |v|
|
91
|
-
committee_component(v, node, a)
|
91
|
+
node.attr("#{v}-number") and committee_component(v, node, a)
|
92
92
|
end
|
93
93
|
node.attr("secretariat") and a.secretariat(node.attr("secretariat"))
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
97
|
def metadata_approval_committee(node, xml)
|
98
|
-
types =
|
99
|
-
node.attr("approval-technical-committee-number") and
|
100
|
-
types = %w(approval-technical-committee approval-subcommittee
|
101
|
-
approval-workgroup)
|
98
|
+
types = metadata_approval_committee_types(node)
|
102
99
|
xml.approvalgroup do |a|
|
103
100
|
metadata_approval_agency(a, node.attr("approval-agency")
|
104
101
|
&.split(%r{[/,;]}))
|
105
|
-
types.each
|
102
|
+
types.each do |v|
|
103
|
+
node.attr("#{v}-number") and committee_component(v, node, a)
|
104
|
+
end
|
106
105
|
end
|
107
106
|
end
|
108
107
|
|
108
|
+
def metadata_approval_committee_types(node)
|
109
|
+
types = %w(technical-committee subcommittee workgroup)
|
110
|
+
node.attr("approval-technical-committee-number") and
|
111
|
+
types = %w(approval-technical-committee approval-subcommittee
|
112
|
+
approval-workgroup)
|
113
|
+
types
|
114
|
+
end
|
115
|
+
|
109
116
|
def metadata_approval_agency(xml, list)
|
110
117
|
list = ["ISO"] if list.nil? || list.empty?
|
111
118
|
list.each do |v|
|
@@ -703,6 +703,9 @@
|
|
703
703
|
<optional>
|
704
704
|
<attribute name="tag"/>
|
705
705
|
</optional>
|
706
|
+
<optional>
|
707
|
+
<attribute name="type"/>
|
708
|
+
</optional>
|
706
709
|
<optional>
|
707
710
|
<attribute name="multilingual-rendering">
|
708
711
|
<ref name="MultilingualRenderingType"/>
|
@@ -738,6 +741,9 @@
|
|
738
741
|
<optional>
|
739
742
|
<attribute name="tag"/>
|
740
743
|
</optional>
|
744
|
+
<optional>
|
745
|
+
<attribute name="type"/>
|
746
|
+
</optional>
|
741
747
|
<optional>
|
742
748
|
<attribute name="multilingual-rendering">
|
743
749
|
<ref name="MultilingualRenderingType"/>
|
@@ -2059,6 +2065,7 @@
|
|
2059
2065
|
<value>compare</value>
|
2060
2066
|
<value>contrast</value>
|
2061
2067
|
<value>see</value>
|
2068
|
+
<value>seealso</value>
|
2062
2069
|
</choice>
|
2063
2070
|
</define>
|
2064
2071
|
<define name="deprecates">
|
@@ -202,18 +202,6 @@ module Metanorma
|
|
202
202
|
end
|
203
203
|
end
|
204
204
|
|
205
|
-
def asset_style(root)
|
206
|
-
root.xpath("//example | //termexample").each { |e| example_style(e) }
|
207
|
-
root.xpath("//definition/verbal-definition").each do |e|
|
208
|
-
definition_style(e)
|
209
|
-
end
|
210
|
-
root.xpath("//note").each { |e| note_style(e) }
|
211
|
-
root.xpath("//fn").each { |e| footnote_style(e) }
|
212
|
-
root.xpath(ASSETS_TO_STYLE).each { |e| style(e, extract_text(e)) }
|
213
|
-
norm_bibitem_style(root)
|
214
|
-
super
|
215
|
-
end
|
216
|
-
|
217
205
|
def subclause_validate(root)
|
218
206
|
root.xpath("//clause/clause/clause/clause/clause/clause/clause/clause")
|
219
207
|
.each do |c|
|
data/spec/isodoc/section_spec.rb
CHANGED
@@ -576,17 +576,11 @@ RSpec.describe IsoDoc do
|
|
576
576
|
<ext>
|
577
577
|
<doctype>standard</doctype>
|
578
578
|
<subdoctype>vocabulary</subdoctype>
|
579
|
-
<editorialgroup identifier='ISO
|
579
|
+
<editorialgroup identifier='ISO'>
|
580
580
|
<agency>ISO</agency>
|
581
|
-
<technical-committee/>
|
582
|
-
<subcommittee/>
|
583
|
-
<workgroup/>
|
584
581
|
</editorialgroup>
|
585
|
-
<approvalgroup identifier='ISO
|
582
|
+
<approvalgroup identifier='ISO'>
|
586
583
|
<agency>ISO</agency>
|
587
|
-
<technical-committee/>
|
588
|
-
<subcommittee/>
|
589
|
-
<workgroup/>
|
590
584
|
</approvalgroup>
|
591
585
|
<stagename>International standard</stagename>
|
592
586
|
</ext>
|
@@ -673,6 +673,66 @@ RSpec.describe IsoDoc do
|
|
673
673
|
.to be_equivalent_to xmlpp(word)
|
674
674
|
end
|
675
675
|
|
676
|
+
it "deals with lists and paragraphs" do
|
677
|
+
input = <<~INPUT
|
678
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
679
|
+
<bibdata>
|
680
|
+
<status><stage>50</stage></status>
|
681
|
+
</bibdata>
|
682
|
+
<sections>
|
683
|
+
<clause id="A">
|
684
|
+
<p id="_eb2fd8cd-5cbe-1f1f-7bdb-282868a25828">ISO and IEC maintain terminological databases for use in
|
685
|
+
standardization at the following addresses:</p>
|
686
|
+
|
687
|
+
<ul id="_6f8dbb84-61d9-f774-264e-b7e249cf44d1">
|
688
|
+
<li> <p id="_9f56356a-3a58-64c4-e59e-a23ca3da7e88">ISO Online browsing platform: available at
|
689
|
+
<link target="https://www.iso.org/obp"/></p></li>
|
690
|
+
<li> <p id="_5dc6886f-a99c-e420-a29d-2aa6ca9f376e">IEC Electropedia: available at
|
691
|
+
<link target="https://www.electropedia.org"/>
|
692
|
+
</p> </li> </ul>
|
693
|
+
</clause>
|
694
|
+
</sections>
|
695
|
+
</iso-standard>
|
696
|
+
INPUT
|
697
|
+
word = <<~OUTPUT
|
698
|
+
<div class='WordSection3'>
|
699
|
+
<p class='zzSTDTitle'/>
|
700
|
+
<div>
|
701
|
+
<a name='A' id='A'/>
|
702
|
+
<h1>1</h1>
|
703
|
+
<p class='MsoBodyText'>
|
704
|
+
<a name='_eb2fd8cd-5cbe-1f1f-7bdb-282868a25828' id='_eb2fd8cd-5cbe-1f1f-7bdb-282868a25828'/>
|
705
|
+
ISO and IEC maintain terminological databases for use in standardization
|
706
|
+
at the following addresses:
|
707
|
+
</p>
|
708
|
+
<p class='ListContinue1'>
|
709
|
+
—
|
710
|
+
<span style='mso-tab-count:1'> </span>
|
711
|
+
ISO Online browsing platform: available at
|
712
|
+
<a href='https://www.iso.org/obp'>https://www.iso.org/obp</a>
|
713
|
+
</p>
|
714
|
+
<p class='ListContinue1'>
|
715
|
+
—
|
716
|
+
<span style='mso-tab-count:1'> </span>
|
717
|
+
IEC Electropedia: available at
|
718
|
+
<a href='https://www.electropedia.org'>https://www.electropedia.org</a>
|
719
|
+
</p>
|
720
|
+
</div>
|
721
|
+
</div>
|
722
|
+
OUTPUT
|
723
|
+
FileUtils.rm_f "test.doc"
|
724
|
+
presxml = IsoDoc::Iso::PresentationXMLConvert.new({})
|
725
|
+
.convert("test", input, true)
|
726
|
+
IsoDoc::Iso::WordConvert.new({}).convert("test", presxml, false)
|
727
|
+
expect(File.exist?("test.doc")).to be true
|
728
|
+
output = File.read("test.doc", encoding: "UTF-8")
|
729
|
+
.sub(/^.*<html/m, "<html")
|
730
|
+
.sub(/<\/html>.*$/m, "</html>")
|
731
|
+
expect(xmlpp(Nokogiri::XML(output)
|
732
|
+
.at("//xmlns:div[@class = 'WordSection3']").to_xml))
|
733
|
+
.to be_equivalent_to xmlpp(word)
|
734
|
+
end
|
735
|
+
|
676
736
|
it "deals with ordered list start" do
|
677
737
|
input = <<~INPUT
|
678
738
|
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
data/spec/metanorma/amd_spec.rb
CHANGED
@@ -352,15 +352,9 @@ RSpec.describe Metanorma::ISO do
|
|
352
352
|
<doctype>amendment</doctype>
|
353
353
|
<editorialgroup>
|
354
354
|
<agency>ISO</agency>
|
355
|
-
<technical-committee/>
|
356
|
-
<subcommittee/>
|
357
|
-
<workgroup/>
|
358
355
|
</editorialgroup>
|
359
356
|
<approvalgroup>
|
360
357
|
<agency>ISO</agency>
|
361
|
-
<technical-committee/>
|
362
|
-
<subcommittee/>
|
363
|
-
<workgroup/>
|
364
358
|
</approvalgroup>
|
365
359
|
<structuredidentifier>
|
366
360
|
<project-number amendment="1" part="1">17301</project-number>
|
@@ -431,15 +425,9 @@ RSpec.describe Metanorma::ISO do
|
|
431
425
|
<doctype>amendment</doctype>
|
432
426
|
<editorialgroup>
|
433
427
|
<agency>ISO</agency>
|
434
|
-
<technical-committee/>
|
435
|
-
<subcommittee/>
|
436
|
-
<workgroup/>
|
437
428
|
</editorialgroup>
|
438
429
|
<approvalgroup>
|
439
430
|
<agency>ISO</agency>
|
440
|
-
<technical-committee/>
|
441
|
-
<subcommittee/>
|
442
|
-
<workgroup/>
|
443
431
|
</approvalgroup>
|
444
432
|
<structuredidentifier>
|
445
433
|
<project-number amendment="1" part="1">17301</project-number>
|
@@ -507,17 +495,11 @@ RSpec.describe Metanorma::ISO do
|
|
507
495
|
</copyright>
|
508
496
|
<ext>
|
509
497
|
<doctype>amendment</doctype>
|
510
|
-
|
498
|
+
<editorialgroup>
|
511
499
|
<agency>ISO</agency>
|
512
|
-
<technical-committee/>
|
513
|
-
<subcommittee/>
|
514
|
-
<workgroup/>
|
515
500
|
</editorialgroup>
|
516
501
|
<approvalgroup>
|
517
502
|
<agency>ISO</agency>
|
518
|
-
<technical-committee/>
|
519
|
-
<subcommittee/>
|
520
|
-
<workgroup/>
|
521
503
|
</approvalgroup>
|
522
504
|
<structuredidentifier>
|
523
505
|
<project-number amendment="1" part="1">17301</project-number>
|
@@ -586,17 +568,11 @@ RSpec.describe Metanorma::ISO do
|
|
586
568
|
</copyright>
|
587
569
|
<ext>
|
588
570
|
<doctype>technical-corrigendum</doctype>
|
589
|
-
|
571
|
+
<editorialgroup>
|
590
572
|
<agency>ISO</agency>
|
591
|
-
<technical-committee/>
|
592
|
-
<subcommittee/>
|
593
|
-
<workgroup/>
|
594
573
|
</editorialgroup>
|
595
574
|
<approvalgroup>
|
596
575
|
<agency>ISO</agency>
|
597
|
-
<technical-committee/>
|
598
|
-
<subcommittee/>
|
599
|
-
<workgroup/>
|
600
576
|
</approvalgroup>
|
601
577
|
<structuredidentifier>
|
602
578
|
<project-number corrigendum="3" part="1">17301</project-number>
|
@@ -665,17 +641,11 @@ RSpec.describe Metanorma::ISO do
|
|
665
641
|
</copyright>
|
666
642
|
<ext>
|
667
643
|
<doctype>technical-corrigendum</doctype>
|
668
|
-
|
644
|
+
<editorialgroup>
|
669
645
|
<agency>ISO</agency>
|
670
|
-
<technical-committee/>
|
671
|
-
<subcommittee/>
|
672
|
-
<workgroup/>
|
673
646
|
</editorialgroup>
|
674
647
|
<approvalgroup>
|
675
648
|
<agency>ISO</agency>
|
676
|
-
<technical-committee/>
|
677
|
-
<subcommittee/>
|
678
|
-
<workgroup/>
|
679
649
|
</approvalgroup>
|
680
650
|
<structuredidentifier>
|
681
651
|
<project-number part='1' corrigendum='3'>17301</project-number>
|
@@ -743,17 +713,11 @@ RSpec.describe Metanorma::ISO do
|
|
743
713
|
</copyright>
|
744
714
|
<ext>
|
745
715
|
<doctype>technical-corrigendum</doctype>
|
746
|
-
|
716
|
+
<editorialgroup>
|
747
717
|
<agency>ISO</agency>
|
748
|
-
<technical-committee/>
|
749
|
-
<subcommittee/>
|
750
|
-
<workgroup/>
|
751
718
|
</editorialgroup>
|
752
719
|
<approvalgroup>
|
753
720
|
<agency>ISO</agency>
|
754
|
-
<technical-committee/>
|
755
|
-
<subcommittee/>
|
756
|
-
<workgroup/>
|
757
721
|
</approvalgroup>
|
758
722
|
<structuredidentifier>
|
759
723
|
<project-number corrigendum="3" part="1">17301</project-number>
|