metanorma-iso 2.2.0 → 2.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/automerge.yml +31 -0
  3. data/lib/isodoc/iso/html/style-human.css +1 -1
  4. data/lib/isodoc/iso/html/style-iso.css +1 -1
  5. data/lib/isodoc/iso/i18n-en.yaml +9 -2
  6. data/lib/isodoc/iso/i18n-fr.yaml +9 -2
  7. data/lib/isodoc/iso/i18n-ru.yaml +9 -2
  8. data/lib/isodoc/iso/i18n-zh-Hans.yaml +1 -2
  9. data/lib/isodoc/iso/iso.amendment.xsl +54 -4
  10. data/lib/isodoc/iso/iso.international-standard.xsl +54 -4
  11. data/lib/isodoc/iso/presentation_xref.rb +10 -7
  12. data/lib/isodoc/iso/sections.rb +1 -1
  13. data/lib/isodoc/iso/xref.rb +37 -88
  14. data/lib/isodoc/iso/xref_section.rb +79 -0
  15. data/lib/metanorma/iso/basicdoc.rng +0 -27
  16. data/lib/metanorma/iso/biblio-standoc.rng +164 -0
  17. data/lib/metanorma/iso/biblio.rng +45 -18
  18. data/lib/metanorma/iso/isodoc.rng +31 -194
  19. data/lib/metanorma/iso/isostandard-amd.rng +3 -54
  20. data/lib/metanorma/iso/isostandard-compile.rng +7 -0
  21. data/lib/metanorma/iso/isostandard.rng +1 -192
  22. data/lib/metanorma/iso/relaton-iso.rng +225 -0
  23. data/lib/metanorma/iso/validate.rb +7 -7
  24. data/lib/metanorma/iso/version.rb +1 -1
  25. data/lib/metanorma/requirements/modspec.rb +26 -39
  26. data/spec/isodoc/inline_spec.rb +1 -1
  27. data/spec/metanorma/base_spec.rb +3 -3
  28. data/spec/metanorma/refs_spec.rb +7 -7
  29. data/spec/metanorma/validate_spec.rb +55 -55
  30. data/spec/requirements/requirement_components_spec.rb +53 -65
  31. data/spec/requirements/requirements_spec.rb +178 -263
  32. data/spec/requirements/xref_spec.rb +35 -35
  33. data/spec/vcr_cassettes/docrels.yml +32 -32
  34. data/spec/vcr_cassettes/withdrawn_iso.yml +30 -30
  35. metadata +7 -2
@@ -1,10 +1,5 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
3
- <include href="biblio.rng">
4
- <start>
5
- <ref name="document"/>
6
- </start>
7
- </include>
8
3
  <define name="document">
9
4
  <element name="document">
10
5
  <optional>
@@ -1125,26 +1120,4 @@
1125
1120
  </zeroOrMore>
1126
1121
  </element>
1127
1122
  </define>
1128
- <define name="ext">
1129
- <element name="ext">
1130
- <ref name="BibDataExtensionType"/>
1131
- </element>
1132
- </define>
1133
- <define name="BibDataExtensionType">
1134
- <ref name="doctype"/>
1135
- </define>
1136
- <define name="doctype">
1137
- <element name="doctype">
1138
- <ref name="DocumentType"/>
1139
- </element>
1140
- </define>
1141
- <define name="DocumentType">
1142
- <value>document</value>
1143
- </define>
1144
- <define name="BibData">
1145
- <ref name="BibliographicItem"/>
1146
- <optional>
1147
- <ref name="ext"/>
1148
- </optional>
1149
- </define>
1150
1123
  </grammar>
@@ -0,0 +1,164 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
+ <!--
4
+ Add-ons to biblio.rnc for standoc model: defines the extension point BibDataExtensionType
5
+ of relaton
6
+
7
+ Specialisations as for biblio.rnc. Extension point can be redefined completely for a flavour of standoc
8
+ (SDO); but other elements in Bibdata can only be extended (more specialised vocabularies for Bibdata)
9
+ -->
10
+ <include href="biblio.rng">
11
+ <define name="BibData">
12
+ <ref name="BibliographicItem"/>
13
+ <optional>
14
+ <ref name="ext"/>
15
+ </optional>
16
+ </define>
17
+ </include>
18
+ <define name="ext">
19
+ <element name="ext">
20
+ <ref name="BibDataExtensionType"/>
21
+ </element>
22
+ </define>
23
+ <define name="BibDataExtensionType">
24
+ <optional>
25
+ <attribute name="schema-version"/>
26
+ </optional>
27
+ <ref name="doctype"/>
28
+ <optional>
29
+ <ref name="docsubtype"/>
30
+ </optional>
31
+ <optional>
32
+ <ref name="editorialgroup"/>
33
+ </optional>
34
+ <zeroOrMore>
35
+ <ref name="ics"/>
36
+ </zeroOrMore>
37
+ <zeroOrMore>
38
+ <ref name="structuredidentifier"/>
39
+ </zeroOrMore>
40
+ </define>
41
+ <define name="doctype">
42
+ <element name="doctype">
43
+ <optional>
44
+ <attribute name="abbreviation"/>
45
+ </optional>
46
+ <ref name="DocumentType"/>
47
+ </element>
48
+ </define>
49
+ <define name="DocumentType">
50
+ <value>document</value>
51
+ </define>
52
+ <define name="docsubtype">
53
+ <element name="subdoctype">
54
+ <ref name="DocumentSubtype"/>
55
+ </element>
56
+ </define>
57
+ <define name="DocumentSubtype">
58
+ <text/>
59
+ </define>
60
+ <define name="editorialgroup">
61
+ <element name="editorialgroup">
62
+ <oneOrMore>
63
+ <ref name="technical-committee"/>
64
+ </oneOrMore>
65
+ </element>
66
+ </define>
67
+ <define name="technical-committee">
68
+ <element name="technical-committee">
69
+ <ref name="IsoWorkgroup"/>
70
+ </element>
71
+ </define>
72
+ <define name="IsoWorkgroup">
73
+ <optional>
74
+ <attribute name="number"/>
75
+ </optional>
76
+ <optional>
77
+ <attribute name="type"/>
78
+ </optional>
79
+ <optional>
80
+ <attribute name="identifier"/>
81
+ </optional>
82
+ <optional>
83
+ <attribute name="prefix"/>
84
+ </optional>
85
+ <text/>
86
+ </define>
87
+ <define name="ics">
88
+ <element name="ics">
89
+ <element name="code">
90
+ <text/>
91
+ </element>
92
+ <optional>
93
+ <element name="text">
94
+ <text/>
95
+ </element>
96
+ </optional>
97
+ </element>
98
+ </define>
99
+ <define name="structuredidentifier">
100
+ <element name="structuredidentifier">
101
+ <optional>
102
+ <attribute name="type"/>
103
+ </optional>
104
+ <oneOrMore>
105
+ <element name="agency">
106
+ <text/>
107
+ </element>
108
+ </oneOrMore>
109
+ <optional>
110
+ <element name="class">
111
+ <text/>
112
+ </element>
113
+ </optional>
114
+ <element name="docnumber">
115
+ <text/>
116
+ </element>
117
+ <optional>
118
+ <element name="partnumber">
119
+ <text/>
120
+ </element>
121
+ </optional>
122
+ <optional>
123
+ <element name="edition">
124
+ <text/>
125
+ </element>
126
+ </optional>
127
+ <optional>
128
+ <element name="version">
129
+ <text/>
130
+ </element>
131
+ </optional>
132
+ <optional>
133
+ <element name="supplementtype">
134
+ <text/>
135
+ </element>
136
+ </optional>
137
+ <optional>
138
+ <element name="supplementnumber">
139
+ <text/>
140
+ </element>
141
+ </optional>
142
+ <optional>
143
+ <element name="amendment">
144
+ <text/>
145
+ </element>
146
+ </optional>
147
+ <optional>
148
+ <element name="corrigendum">
149
+ <text/>
150
+ </element>
151
+ </optional>
152
+ <optional>
153
+ <element name="language">
154
+ <text/>
155
+ </element>
156
+ </optional>
157
+ <optional>
158
+ <element name="year">
159
+ <text/>
160
+ </element>
161
+ </optional>
162
+ </element>
163
+ </define>
164
+ </grammar>
@@ -33,9 +33,10 @@
33
33
  <param name="pattern">([\+\-]?\d{4})((-?)((0[1-9]|1[0-2])((-?)([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-2])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6]))))?</param>
34
34
  </data>
35
35
  </define>
36
- <start>
37
- <ref name="bibitem"/>
38
- </start>
36
+ <!-- start = bibitem -->
37
+ <define name="BibData">
38
+ <ref name="BibliographicItem"/>
39
+ </define>
39
40
  <define name="status">
40
41
  <element name="status">
41
42
  <ref name="stage"/>
@@ -170,27 +171,25 @@
170
171
  </define>
171
172
  <define name="contributor">
172
173
  <element name="contributor">
173
- <zeroOrMore>
174
+ <oneOrMore>
174
175
  <ref name="role"/>
175
- </zeroOrMore>
176
+ </oneOrMore>
176
177
  <ref name="ContributorInfo"/>
177
178
  </element>
178
179
  </define>
179
180
  <define name="role">
180
181
  <element name="role">
181
- <optional>
182
- <attribute name="type">
183
- <choice>
184
- <value>author</value>
185
- <value>performer</value>
186
- <value>publisher</value>
187
- <value>editor</value>
188
- <value>adapter</value>
189
- <value>translator</value>
190
- <value>distributor</value>
191
- </choice>
192
- </attribute>
193
- </optional>
182
+ <attribute name="type">
183
+ <choice>
184
+ <value>author</value>
185
+ <value>performer</value>
186
+ <value>publisher</value>
187
+ <value>editor</value>
188
+ <value>adapter</value>
189
+ <value>translator</value>
190
+ <value>distributor</value>
191
+ </choice>
192
+ </attribute>
194
193
  <zeroOrMore>
195
194
  <ref name="roledescription"/>
196
195
  </zeroOrMore>
@@ -512,6 +511,17 @@
512
511
  </define>
513
512
  <define name="localityStack">
514
513
  <element name="localityStack">
514
+ <optional>
515
+ <attribute name="connective">
516
+ <choice>
517
+ <value>and</value>
518
+ <value>or</value>
519
+ <value>from</value>
520
+ <value>to</value>
521
+ <value/>
522
+ </choice>
523
+ </attribute>
524
+ </optional>
515
525
  <zeroOrMore>
516
526
  <ref name="locality"/>
517
527
  </zeroOrMore>
@@ -524,6 +534,17 @@
524
534
  </define>
525
535
  <define name="sourceLocalityStack">
526
536
  <element name="sourceLocalityStack">
537
+ <optional>
538
+ <attribute name="connective">
539
+ <choice>
540
+ <value>and</value>
541
+ <value>or</value>
542
+ <value>from</value>
543
+ <value>to</value>
544
+ <value/>
545
+ </choice>
546
+ </attribute>
547
+ </optional>
527
548
  <zeroOrMore>
528
549
  <ref name="sourceLocality"/>
529
550
  </zeroOrMore>
@@ -626,6 +647,9 @@
626
647
  <ref name="BibItemType"/>
627
648
  </attribute>
628
649
  </optional>
650
+ <optional>
651
+ <attribute name="schema-version"/>
652
+ </optional>
629
653
  <optional>
630
654
  <ref name="fetched"/>
631
655
  </optional>
@@ -720,6 +744,9 @@
720
744
  <ref name="BibItemType"/>
721
745
  </attribute>
722
746
  </optional>
747
+ <optional>
748
+ <attribute name="schema-version"/>
749
+ </optional>
723
750
  <optional>
724
751
  <ref name="fetched"/>
725
752
  </optional>
@@ -19,19 +19,7 @@
19
19
  -->
20
20
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
21
21
  <include href="reqt.rng"/>
22
- <!-- include "biblio.rnc" { } -->
23
22
  <include href="basicdoc.rng">
24
- <start>
25
- <ref name="standard-document"/>
26
- </start>
27
- <define name="doctype">
28
- <element name="doctype">
29
- <optional>
30
- <attribute name="abbreviation"/>
31
- </optional>
32
- <ref name="DocumentType"/>
33
- </element>
34
- </define>
35
23
  <define name="admonition">
36
24
  <element name="admonition">
37
25
  <attribute name="type">
@@ -117,24 +105,6 @@
117
105
  </optional>
118
106
  </element>
119
107
  </define>
120
- <define name="bibitem">
121
- <element name="bibitem">
122
- <attribute name="id">
123
- <data type="ID"/>
124
- </attribute>
125
- <optional>
126
- <attribute name="hidden">
127
- <data type="boolean"/>
128
- </attribute>
129
- </optional>
130
- <optional>
131
- <attribute name="suppress_identifier">
132
- <data type="boolean"/>
133
- </attribute>
134
- </optional>
135
- <ref name="BibliographicItem"/>
136
- </element>
137
- </define>
138
108
  <define name="section-title">
139
109
  <element name="title">
140
110
  <zeroOrMore>
@@ -205,6 +175,15 @@
205
175
  <data type="boolean"/>
206
176
  </attribute>
207
177
  </optional>
178
+ <optional>
179
+ <attribute name="style">
180
+ <choice>
181
+ <value>basic</value>
182
+ <value>full</value>
183
+ <value>short</value>
184
+ </choice>
185
+ </attribute>
186
+ </optional>
208
187
  <ref name="XrefBody"/>
209
188
  </element>
210
189
  </define>
@@ -239,42 +218,6 @@
239
218
  <ref name="PureTextElement"/>
240
219
  </oneOrMore>
241
220
  </define>
242
- <define name="localityStack">
243
- <element name="localityStack">
244
- <optional>
245
- <attribute name="connective">
246
- <choice>
247
- <value>and</value>
248
- <value>or</value>
249
- <value>from</value>
250
- <value>to</value>
251
- <value/>
252
- </choice>
253
- </attribute>
254
- </optional>
255
- <zeroOrMore>
256
- <ref name="locality"/>
257
- </zeroOrMore>
258
- </element>
259
- </define>
260
- <define name="sourceLocalityStack">
261
- <element name="sourceLocalityStack">
262
- <optional>
263
- <attribute name="connective">
264
- <choice>
265
- <value>and</value>
266
- <value>or</value>
267
- <value>from</value>
268
- <value>to</value>
269
- <value/>
270
- </choice>
271
- </attribute>
272
- </optional>
273
- <zeroOrMore>
274
- <ref name="sourceLocality"/>
275
- </zeroOrMore>
276
- </element>
277
- </define>
278
221
  <define name="ul">
279
222
  <element name="ul">
280
223
  <attribute name="id">
@@ -818,21 +761,6 @@
818
761
  </zeroOrMore>
819
762
  </element>
820
763
  </define>
821
- <define name="BibDataExtensionType">
822
- <ref name="doctype"/>
823
- <optional>
824
- <ref name="docsubtype"/>
825
- </optional>
826
- <optional>
827
- <ref name="editorialgroup"/>
828
- </optional>
829
- <zeroOrMore>
830
- <ref name="ics"/>
831
- </zeroOrMore>
832
- <zeroOrMore>
833
- <ref name="structuredidentifier"/>
834
- </zeroOrMore>
835
- </define>
836
764
  <!-- TitleType = text -->
837
765
  <define name="sections">
838
766
  <element name="sections">
@@ -872,7 +800,7 @@
872
800
  <ref name="BasicBlock"/>
873
801
  </zeroOrMore>
874
802
  <zeroOrMore>
875
- <ref name="bibitem"/>
803
+ <ref name="doc_bibitem"/>
876
804
  <zeroOrMore>
877
805
  <ref name="note"/>
878
806
  </zeroOrMore>
@@ -1210,6 +1138,24 @@
1210
1138
  </define>
1211
1139
  </include>
1212
1140
  <!-- end overrides -->
1141
+ <define name="doc_bibitem">
1142
+ <element name="bibitem">
1143
+ <attribute name="id">
1144
+ <data type="ID"/>
1145
+ </attribute>
1146
+ <optional>
1147
+ <attribute name="hidden">
1148
+ <data type="boolean"/>
1149
+ </attribute>
1150
+ </optional>
1151
+ <optional>
1152
+ <attribute name="suppress_identifier">
1153
+ <data type="boolean"/>
1154
+ </attribute>
1155
+ </optional>
1156
+ <ref name="BibliographicItem"/>
1157
+ </element>
1158
+ </define>
1213
1159
  <define name="image" combine="choice">
1214
1160
  <element name="svg">
1215
1161
  <oneOrMore>
@@ -1228,14 +1174,6 @@
1228
1174
  <value>tag</value>
1229
1175
  </choice>
1230
1176
  </define>
1231
- <define name="docsubtype">
1232
- <element name="subdoctype">
1233
- <ref name="DocumentSubtype"/>
1234
- </element>
1235
- </define>
1236
- <define name="DocumentSubtype">
1237
- <text/>
1238
- </define>
1239
1177
  <define name="colgroup">
1240
1178
  <element name="colgroup">
1241
1179
  <oneOrMore>
@@ -1597,45 +1535,6 @@
1597
1535
  </choice>
1598
1536
  </element>
1599
1537
  </define>
1600
- <define name="editorialgroup">
1601
- <element name="editorialgroup">
1602
- <oneOrMore>
1603
- <ref name="technical-committee"/>
1604
- </oneOrMore>
1605
- </element>
1606
- </define>
1607
- <define name="technical-committee">
1608
- <element name="technical-committee">
1609
- <ref name="IsoWorkgroup"/>
1610
- </element>
1611
- </define>
1612
- <define name="IsoWorkgroup">
1613
- <optional>
1614
- <attribute name="number"/>
1615
- </optional>
1616
- <optional>
1617
- <attribute name="type"/>
1618
- </optional>
1619
- <optional>
1620
- <attribute name="identifier"/>
1621
- </optional>
1622
- <optional>
1623
- <attribute name="prefix"/>
1624
- </optional>
1625
- <text/>
1626
- </define>
1627
- <define name="ics">
1628
- <element name="ics">
1629
- <element name="code">
1630
- <text/>
1631
- </element>
1632
- <optional>
1633
- <element name="text">
1634
- <text/>
1635
- </element>
1636
- </optional>
1637
- </element>
1638
- </define>
1639
1538
  <define name="standard-document">
1640
1539
  <element name="standard-document">
1641
1540
  <attribute name="version"/>
@@ -2466,71 +2365,6 @@
2466
2365
  </optional>
2467
2366
  </element>
2468
2367
  </define>
2469
- <define name="structuredidentifier">
2470
- <element name="structuredidentifier">
2471
- <optional>
2472
- <attribute name="type"/>
2473
- </optional>
2474
- <oneOrMore>
2475
- <element name="agency">
2476
- <text/>
2477
- </element>
2478
- </oneOrMore>
2479
- <optional>
2480
- <element name="class">
2481
- <text/>
2482
- </element>
2483
- </optional>
2484
- <element name="docnumber">
2485
- <text/>
2486
- </element>
2487
- <optional>
2488
- <element name="partnumber">
2489
- <text/>
2490
- </element>
2491
- </optional>
2492
- <optional>
2493
- <element name="edition">
2494
- <text/>
2495
- </element>
2496
- </optional>
2497
- <optional>
2498
- <element name="version">
2499
- <text/>
2500
- </element>
2501
- </optional>
2502
- <optional>
2503
- <element name="supplementtype">
2504
- <text/>
2505
- </element>
2506
- </optional>
2507
- <optional>
2508
- <element name="supplementnumber">
2509
- <text/>
2510
- </element>
2511
- </optional>
2512
- <optional>
2513
- <element name="amendment">
2514
- <text/>
2515
- </element>
2516
- </optional>
2517
- <optional>
2518
- <element name="corrigendum">
2519
- <text/>
2520
- </element>
2521
- </optional>
2522
- <optional>
2523
- <element name="language">
2524
- <text/>
2525
- </element>
2526
- </optional>
2527
- <optional>
2528
- <element name="year">
2529
- <text/>
2530
- </element>
2531
- </optional>
2532
- </element>
2533
- </define>
2534
2368
  <define name="term-clause">
2535
2369
  <element name="clause">
2536
2370
  <optional>
@@ -2804,4 +2638,7 @@
2804
2638
  </attribute>
2805
2639
  </element>
2806
2640
  </define>
2641
+ <start>
2642
+ <ref name="standard-document"/>
2643
+ </start>
2807
2644
  </grammar>
@@ -1,6 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
- <grammar ns="https://www.metanorma.org/ns/iso" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2
+ <grammar ns="https://www.metanorma.org/ns/iso" xmlns="http://relaxng.org/ns/structure/1.0">
3
3
  <!-- default namespace isostandard = "https://www.metanorma.com/ns/iso" -->
4
+ <include href="relaton-iso.rng"/>
4
5
  <include href="isostandard.rng">
5
6
  <start>
6
7
  <ref name="iso-standard"/>
@@ -51,58 +52,6 @@
51
52
  </oneOrMore>
52
53
  </element>
53
54
  </define>
54
- <define name="documentnumber">
55
- <element name="project-number">
56
- <optional>
57
- <attribute name="part">
58
- <data type="int"/>
59
- </attribute>
60
- </optional>
61
- <optional>
62
- <attribute name="subpart">
63
- <data type="int"/>
64
- </attribute>
65
- </optional>
66
- <optional>
67
- <attribute name="amendment">
68
- <data type="int"/>
69
- </attribute>
70
- </optional>
71
- <optional>
72
- <attribute name="corrigendum">
73
- <data type="int"/>
74
- </attribute>
75
- </optional>
76
- <optional>
77
- <attribute name="origyr">
78
- <ref name="ISO8601Date"/>
79
- </attribute>
80
- </optional>
81
- <text/>
82
- </element>
83
- </define>
84
- <define name="BibDataExtensionType">
85
- <ref name="doctype"/>
86
- <optional>
87
- <ref name="docsubtype"/>
88
- </optional>
89
- <ref name="editorialgroup"/>
90
- <zeroOrMore>
91
- <ref name="ics"/>
92
- </zeroOrMore>
93
- <ref name="structuredidentifier"/>
94
- <optional>
95
- <ref name="stagename"/>
96
- </optional>
97
- <optional>
98
- <ref name="updates_document_type"/>
99
- </optional>
100
- </define>
101
55
  </include>
102
- <!-- end overrides -->
103
- <define name="updates_document_type">
104
- <element name="updates-document-type">
105
- <ref name="DocumentType"/>
106
- </element>
107
- </define>
108
56
  </grammar>
57
+ <!-- end overrides -->
@@ -0,0 +1,7 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar ns="https://www.metanorma.org/ns/iso" xmlns="http://relaxng.org/ns/structure/1.0">
3
+ <!-- default namespace isostandard = "https://www.metanorma.com/ns/iso" -->
4
+ <include href="relaton-iso.rng"/>
5
+ <include href="isostandard.rng"/>
6
+ </grammar>
7
+ <!-- end overrides -->