metanorma-standoc 2.1.1 → 2.1.4
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 +4 -4
- data/lib/metanorma/standoc/base.rb +3 -1
- data/lib/metanorma/standoc/biblio.rng +134 -39
- data/lib/metanorma/standoc/blocks.rb +8 -6
- data/lib/metanorma/standoc/blocks_notes.rb +4 -1
- data/lib/metanorma/standoc/cleanup.rb +1 -0
- data/lib/metanorma/standoc/cleanup_footnotes.rb +32 -25
- data/lib/metanorma/standoc/cleanup_inline.rb +17 -0
- data/lib/metanorma/standoc/cleanup_ref.rb +16 -0
- data/lib/metanorma/standoc/cleanup_section.rb +6 -0
- data/lib/metanorma/standoc/cleanup_terms.rb +3 -1
- data/lib/metanorma/standoc/cleanup_text.rb +9 -4
- data/lib/metanorma/standoc/cleanup_xref.rb +2 -1
- data/lib/metanorma/standoc/converter.rb +4 -0
- data/lib/metanorma/standoc/isodoc.rng +32 -0
- data/lib/metanorma/standoc/lists.rb +8 -3
- data/lib/metanorma/standoc/macros.rb +28 -1
- data/lib/metanorma/standoc/macros_note.rb +27 -6
- data/lib/metanorma/standoc/ref.rb +3 -1
- data/lib/metanorma/standoc/ref_sect.rb +5 -2
- data/lib/metanorma/standoc/ref_utility.rb +20 -5
- data/lib/metanorma/standoc/section.rb +1 -1
- data/lib/metanorma/standoc/version.rb +1 -1
- data/metanorma-standoc.gemspec +2 -2
- data/spec/examples/datamodel/address_class_profile.presentation.xml +14 -0
- data/spec/metanorma/base_spec.rb +41 -5
- data/spec/metanorma/blocks_spec.rb +58 -1
- data/spec/metanorma/cleanup_sections_spec.rb +60 -9
- data/spec/metanorma/cleanup_spec.rb +6 -6
- data/spec/metanorma/cleanup_terms_spec.rb +1 -1
- data/spec/metanorma/inline_spec.rb +3 -3
- data/spec/metanorma/lists_spec.rb +10 -4
- data/spec/metanorma/macros_spec.rb +50 -15
- data/spec/metanorma/refs_dl_spec.rb +18 -7
- data/spec/metanorma/refs_spec.rb +390 -450
- data/spec/metanorma/table_spec.rb +24 -6
- data/spec/spec_helper.rb +2 -2
- data/spec/vcr_cassettes/bsi16341.yml +57 -71
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +67 -67
- data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec1.yml +14 -14
- data/spec/vcr_cassettes/hide_refs.yml +62 -62
- data/spec/vcr_cassettes/isobib_get_123.yml +14 -14
- data/spec/vcr_cassettes/isobib_get_123_1.yml +26 -26
- data/spec/vcr_cassettes/isobib_get_123_1_fr.yml +37 -37
- data/spec/vcr_cassettes/isobib_get_123_2001.yml +14 -14
- data/spec/vcr_cassettes/isobib_get_124.yml +12 -12
- data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +228 -52
- data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +47 -49
- data/spec/vcr_cassettes/std-link.yml +15 -15
- metadata +10 -10
- data/docs/quickstart.adoc +0 -375
data/spec/metanorma/refs_spec.rb
CHANGED
@@ -3,110 +3,237 @@ require "relaton_iso"
|
|
3
3
|
require "relaton_ietf"
|
4
4
|
|
5
5
|
RSpec.describe Metanorma::Standoc do
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
6
|
+
it "processes simple ISO reference" do
|
7
|
+
input = <<~INPUT
|
8
|
+
#{ASCIIDOC_BLANK_HDR}
|
9
|
+
[bibliography]
|
10
|
+
== Normative References
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
* [[[iso123,ISO 123]]] _Standard_
|
13
|
+
* [[[iso124,(1)ISO 123]]] _Standard_
|
14
|
+
INPUT
|
15
|
+
output = <<~OUTPUT
|
16
|
+
#{BLANK_HDR}
|
17
|
+
<sections>
|
18
|
+
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
19
|
+
<title>Normative references</title>
|
20
|
+
#{NORM_REF_BOILERPLATE}
|
21
|
+
<bibitem id="iso123" type="standard">
|
22
|
+
<title format="text/plain">Standard</title>
|
23
|
+
<docidentifier>ISO 123</docidentifier>
|
24
|
+
<docnumber>123</docnumber>
|
25
|
+
<contributor>
|
26
|
+
<role type="publisher"/>
|
27
|
+
<organization>
|
28
|
+
<name>ISO</name>
|
29
|
+
</organization>
|
30
|
+
</contributor>
|
31
|
+
</bibitem>
|
32
|
+
<bibitem id='iso124' type='standard'>
|
33
|
+
<title format='text/plain'>Standard</title>
|
34
|
+
<docidentifier type='metanorma'>[1]</docidentifier>
|
35
|
+
<docidentifier>ISO 123</docidentifier>
|
36
|
+
<docnumber>123</docnumber>
|
37
|
+
<contributor>
|
38
|
+
<role type='publisher'/>
|
39
|
+
<organization>
|
40
|
+
<name>ISO</name>
|
41
|
+
</organization>
|
42
|
+
</contributor>
|
43
|
+
</bibitem>
|
44
|
+
</references>
|
45
|
+
</bibliography>
|
46
|
+
</standard-document>
|
47
|
+
OUTPUT
|
48
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
49
|
+
.to be_equivalent_to xmlpp(output)
|
50
|
+
end
|
51
|
+
|
52
|
+
it "processes simple ISO reference with date range" do
|
53
|
+
input = <<~INPUT
|
54
|
+
#{ASCIIDOC_BLANK_HDR}
|
55
|
+
[bibliography]
|
56
|
+
== Normative References
|
57
|
+
|
58
|
+
* [[[iso123,ISO 123:1066-1067]]] _Standard_
|
59
|
+
* [[[iso124,(1)ISO 123:1066-1067]]] _Standard_
|
60
|
+
INPUT
|
61
|
+
output = <<~OUTPUT
|
16
62
|
#{BLANK_HDR}
|
17
63
|
<sections>
|
18
64
|
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
19
65
|
<title>Normative references</title>
|
20
66
|
#{NORM_REF_BOILERPLATE}
|
21
67
|
<bibitem id="iso123" type="standard">
|
22
|
-
|
23
|
-
|
68
|
+
<title format="text/plain">Standard</title>
|
69
|
+
<docidentifier>ISO 123:1066-1067</docidentifier>
|
24
70
|
<docnumber>123</docnumber>
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
71
|
+
<date type="published">
|
72
|
+
<from>1066</from>
|
73
|
+
<to>1067</to>
|
74
|
+
</date>
|
75
|
+
<contributor>
|
76
|
+
<role type="publisher"/>
|
77
|
+
<organization>
|
78
|
+
<name>ISO</name>
|
79
|
+
</organization>
|
80
|
+
</contributor>
|
31
81
|
</bibitem>
|
32
|
-
<bibitem id=
|
33
|
-
|
34
|
-
|
35
|
-
<docidentifier>ISO 123</docidentifier>
|
82
|
+
<bibitem id="iso124" type="standard">
|
83
|
+
<title format="text/plain">Standard</title>
|
84
|
+
<docidentifier type='metanorma'>[1]</docidentifier>
|
85
|
+
<docidentifier>ISO 123:1066-1067</docidentifier>
|
36
86
|
<docnumber>123</docnumber>
|
87
|
+
<date type="published">
|
88
|
+
<from>1066</from>
|
89
|
+
<to>1067</to>
|
90
|
+
</date>
|
37
91
|
<contributor>
|
38
|
-
<role type=
|
92
|
+
<role type="publisher"/>
|
39
93
|
<organization>
|
40
94
|
<name>ISO</name>
|
41
95
|
</organization>
|
42
96
|
</contributor>
|
43
|
-
|
97
|
+
</bibitem>
|
44
98
|
</references>
|
45
99
|
</bibliography>
|
46
100
|
</standard-document>
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
101
|
+
OUTPUT
|
102
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
103
|
+
.to be_equivalent_to xmlpp(output)
|
104
|
+
end
|
51
105
|
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
106
|
+
it "repairs simple fetched ISO reference" do
|
107
|
+
mock_isobib_get_123_no_docid(2)
|
108
|
+
mock_isobib_get_123_no_docid_lbl(2)
|
109
|
+
input = <<~"INPUT"
|
110
|
+
#{ISOBIB_BLANK_HDR}
|
57
111
|
|
58
|
-
|
59
|
-
|
60
|
-
INPUT
|
61
|
-
output = <<~OUTPUT
|
62
|
-
#{BLANK_HDR}
|
63
|
-
<sections>
|
64
|
-
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
65
|
-
<title>Normative references</title>
|
66
|
-
#{NORM_REF_BOILERPLATE}
|
67
|
-
<bibitem id="iso123" type="standard">
|
68
|
-
<title format="text/plain">Standard</title>
|
69
|
-
<docidentifier>ISO 123:1066-1067</docidentifier>
|
70
|
-
<docnumber>123</docnumber>
|
71
|
-
<date type="published">
|
72
|
-
<from>1066</from>
|
73
|
-
<to>1067</to>
|
74
|
-
</date>
|
75
|
-
<contributor>
|
76
|
-
<role type="publisher"/>
|
77
|
-
<organization>
|
78
|
-
<name>ISO</name>
|
79
|
-
</organization>
|
80
|
-
</contributor>
|
81
|
-
</bibitem>
|
82
|
-
<bibitem id="iso124" type="standard">
|
83
|
-
<title format="text/plain">Standard</title>
|
84
|
-
<docidentifier type='metanorma'>[1]</docidentifier>
|
85
|
-
<docidentifier>ISO 123:1066-1067</docidentifier>
|
86
|
-
<docnumber>123</docnumber>
|
87
|
-
<date type="published">
|
88
|
-
<from>1066</from>
|
89
|
-
<to>1067</to>
|
90
|
-
</date>
|
91
|
-
<contributor>
|
92
|
-
<role type="publisher"/>
|
93
|
-
<organization>
|
94
|
-
<name>ISO</name>
|
95
|
-
</organization>
|
96
|
-
</contributor>
|
97
|
-
</bibitem>
|
112
|
+
<<iso123>>
|
113
|
+
<<iso124>>
|
98
114
|
|
99
|
-
|
100
|
-
|
115
|
+
[bibliography]
|
116
|
+
== Normative References
|
117
|
+
|
118
|
+
* [[[iso123,ISO 123]]] _Standard_
|
119
|
+
* [[[iso124,(1)ISO 123]]] _Standard_
|
120
|
+
INPUT
|
121
|
+
expect(xmlpp(strip_guid(Asciidoctor.convert(input, *OPTIONS))))
|
122
|
+
.to be_equivalent_to xmlpp(<<~"OUTPUT")
|
123
|
+
#{BLANK_HDR}
|
124
|
+
<preface>
|
125
|
+
<foreword id='_' obligation='informative'>
|
126
|
+
<title>Foreword</title>
|
127
|
+
<p id='_'>
|
128
|
+
<eref type='inline' bibitemid='iso123' citeas='ISO 123'/>
|
129
|
+
<eref type='inline' bibitemid='iso124' citeas='[1]'/>
|
130
|
+
</p>
|
131
|
+
</foreword>
|
132
|
+
</preface>
|
133
|
+
<sections>
|
134
|
+
</sections><bibliography><references id="_" obligation="informative" normative="true"><title>Normative references</title>
|
135
|
+
#{NORM_REF_BOILERPLATE}
|
136
|
+
<bibitem type="standard" id="iso123">
|
137
|
+
<uri type="src">https://www.iso.org/standard/23281.html</uri>
|
138
|
+
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
139
|
+
<uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
140
|
+
<date type="published">
|
141
|
+
<on>2001</on>
|
142
|
+
</date>
|
143
|
+
<contributor>
|
144
|
+
<role type="publisher"/>
|
145
|
+
<organization>
|
146
|
+
<name>International Organization for Standardization</name>
|
147
|
+
<abbreviation>ISO</abbreviation>
|
148
|
+
<uri>www.iso.org</uri>
|
149
|
+
</organization>
|
150
|
+
</contributor>
|
151
|
+
<edition>3</edition>
|
152
|
+
<language>en</language>
|
153
|
+
<language>fr</language>
|
154
|
+
<script>Latn</script>
|
155
|
+
<status>
|
156
|
+
<stage>Published</stage>
|
157
|
+
</status>
|
158
|
+
<copyright>
|
159
|
+
<from>2001</from>
|
160
|
+
<owner>
|
161
|
+
<organization>
|
162
|
+
<name>ISO</name>
|
163
|
+
<abbreviation/>
|
164
|
+
</organization>
|
165
|
+
</owner>
|
166
|
+
</copyright>
|
167
|
+
<relation type="obsoletes">
|
168
|
+
<bibitem type="standard">
|
169
|
+
<formattedref format="text/plain">ISO 123:1985</formattedref>
|
170
|
+
</bibitem>
|
171
|
+
</relation>
|
172
|
+
<relation type="updates">
|
173
|
+
<bibitem type="standard">
|
174
|
+
<formattedref format="text/plain">ISO 123:2001</formattedref>
|
175
|
+
</bibitem>
|
176
|
+
</relation>
|
177
|
+
<docidentifier>ISO 123</docidentifier>
|
178
|
+
<title><em>Standard</em></title>
|
179
|
+
</bibitem>
|
180
|
+
<bibitem type="standard" id="iso124">
|
181
|
+
<uri type="src">https://www.iso.org/standard/23281.html</uri>
|
182
|
+
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
183
|
+
<uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
184
|
+
<date type="published">
|
185
|
+
<on>2001</on>
|
186
|
+
</date>
|
187
|
+
<contributor>
|
188
|
+
<role type="publisher"/>
|
189
|
+
<organization>
|
190
|
+
<name>International Organization for Standardization</name>
|
191
|
+
<abbreviation>ISO</abbreviation>
|
192
|
+
<uri>www.iso.org</uri>
|
193
|
+
</organization>
|
194
|
+
</contributor>
|
195
|
+
<edition>3</edition>
|
196
|
+
<language>en</language>
|
197
|
+
<language>fr</language>
|
198
|
+
<script>Latn</script>
|
199
|
+
<status>
|
200
|
+
<stage>Published</stage>
|
201
|
+
</status>
|
202
|
+
<copyright>
|
203
|
+
<from>2001</from>
|
204
|
+
<owner>
|
205
|
+
<organization>
|
206
|
+
<name>ISO</name>
|
207
|
+
<abbreviation/>
|
208
|
+
</organization>
|
209
|
+
</owner>
|
210
|
+
</copyright>
|
211
|
+
<relation type="obsoletes">
|
212
|
+
<bibitem type="standard">
|
213
|
+
<formattedref format="text/plain">ISO 123:1985</formattedref>
|
214
|
+
</bibitem>
|
215
|
+
</relation>
|
216
|
+
<relation type="updates">
|
217
|
+
<bibitem type="standard">
|
218
|
+
<formattedref format="text/plain">ISO 123:2001</formattedref>
|
219
|
+
</bibitem>
|
220
|
+
</relation>
|
221
|
+
<docidentifier>ISO 123</docidentifier>
|
222
|
+
<docidentifier type='metanorma'>[1]</docidentifier>
|
223
|
+
<title><em>Standard</em></title>
|
224
|
+
</bibitem>
|
225
|
+
</references></bibliography>
|
101
226
|
</standard-document>
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
227
|
+
OUTPUT
|
228
|
+
expect do
|
229
|
+
Asciidoctor.convert(input, *OPTIONS)
|
230
|
+
end.to output(/ERROR: No document identifier retrieved for ISO 123/)
|
231
|
+
.to_stderr
|
232
|
+
end
|
106
233
|
|
107
|
-
it "
|
108
|
-
|
109
|
-
|
234
|
+
it "customises docidentifier by language" do
|
235
|
+
mock_rfcbib_get_rfc8342(3)
|
236
|
+
mock_rfcbib_get_rfc8343(3)
|
110
237
|
input = <<~"INPUT"
|
111
238
|
#{ISOBIB_BLANK_HDR}
|
112
239
|
|
@@ -116,120 +243,21 @@ RSpec.describe Metanorma::Standoc do
|
|
116
243
|
[bibliography]
|
117
244
|
== Normative References
|
118
245
|
|
119
|
-
* [[[iso123,ISO
|
120
|
-
* [[[iso124,
|
246
|
+
* [[[iso123,ISO 8342]]] _Standard_
|
247
|
+
* [[[iso124,ISO 8343]]] _Standard_
|
121
248
|
INPUT
|
122
|
-
|
123
|
-
.
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
<sections>
|
135
|
-
</sections><bibliography><references id="_" obligation="informative" normative="true"><title>Normative references</title>
|
136
|
-
#{NORM_REF_BOILERPLATE}
|
137
|
-
<bibitem type="standard" id="iso123">
|
138
|
-
<uri type="src">https://www.iso.org/standard/23281.html</uri>
|
139
|
-
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
140
|
-
<uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
141
|
-
<date type="published">
|
142
|
-
<on>2001</on>
|
143
|
-
</date>
|
144
|
-
<contributor>
|
145
|
-
<role type="publisher"/>
|
146
|
-
<organization>
|
147
|
-
<name>International Organization for Standardization</name>
|
148
|
-
<abbreviation>ISO</abbreviation>
|
149
|
-
<uri>www.iso.org</uri>
|
150
|
-
</organization>
|
151
|
-
</contributor>
|
152
|
-
<edition>3</edition>
|
153
|
-
<language>en</language>
|
154
|
-
<language>fr</language>
|
155
|
-
<script>Latn</script>
|
156
|
-
<status>
|
157
|
-
<stage>Published</stage>
|
158
|
-
</status>
|
159
|
-
<copyright>
|
160
|
-
<from>2001</from>
|
161
|
-
<owner>
|
162
|
-
<organization>
|
163
|
-
<name>ISO</name>
|
164
|
-
<abbreviation/>
|
165
|
-
</organization>
|
166
|
-
</owner>
|
167
|
-
</copyright>
|
168
|
-
<relation type="obsoletes">
|
169
|
-
<bibitem type="standard">
|
170
|
-
<formattedref format="text/plain">ISO 123:1985</formattedref>
|
171
|
-
</bibitem>
|
172
|
-
</relation>
|
173
|
-
<relation type="updates">
|
174
|
-
<bibitem type="standard">
|
175
|
-
<formattedref format="text/plain">ISO 123:2001</formattedref>
|
176
|
-
</bibitem>
|
177
|
-
</relation>
|
178
|
-
<docidentifier>ISO 123</docidentifier>
|
179
|
-
<title><em>Standard</em></title>
|
180
|
-
</bibitem>
|
181
|
-
<bibitem type="standard" id="iso124">
|
182
|
-
<uri type="src">https://www.iso.org/standard/23281.html</uri>
|
183
|
-
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
|
184
|
-
<uri type="rss">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
|
185
|
-
<date type="published">
|
186
|
-
<on>2001</on>
|
187
|
-
</date>
|
188
|
-
<contributor>
|
189
|
-
<role type="publisher"/>
|
190
|
-
<organization>
|
191
|
-
<name>International Organization for Standardization</name>
|
192
|
-
<abbreviation>ISO</abbreviation>
|
193
|
-
<uri>www.iso.org</uri>
|
194
|
-
</organization>
|
195
|
-
</contributor>
|
196
|
-
<edition>3</edition>
|
197
|
-
<language>en</language>
|
198
|
-
<language>fr</language>
|
199
|
-
<script>Latn</script>
|
200
|
-
<status>
|
201
|
-
<stage>Published</stage>
|
202
|
-
</status>
|
203
|
-
<copyright>
|
204
|
-
<from>2001</from>
|
205
|
-
<owner>
|
206
|
-
<organization>
|
207
|
-
<name>ISO</name>
|
208
|
-
<abbreviation/>
|
209
|
-
</organization>
|
210
|
-
</owner>
|
211
|
-
</copyright>
|
212
|
-
<relation type="obsoletes">
|
213
|
-
<bibitem type="standard">
|
214
|
-
<formattedref format="text/plain">ISO 123:1985</formattedref>
|
215
|
-
</bibitem>
|
216
|
-
</relation>
|
217
|
-
<relation type="updates">
|
218
|
-
<bibitem type="standard">
|
219
|
-
<formattedref format="text/plain">ISO 123:2001</formattedref>
|
220
|
-
</bibitem>
|
221
|
-
</relation>
|
222
|
-
<docidentifier>ISO 123</docidentifier>
|
223
|
-
<docidentifier type='metanorma'>[1]</docidentifier>
|
224
|
-
<title><em>Standard</em></title>
|
225
|
-
</bibitem>
|
226
|
-
</references></bibliography>
|
227
|
-
</standard-document>
|
228
|
-
OUTPUT
|
229
|
-
expect do
|
230
|
-
Asciidoctor.convert(input, *OPTIONS)
|
231
|
-
end.to output(/ERROR: No document identifier retrieved for ISO 123/)
|
232
|
-
.to_stderr
|
249
|
+
doc = Asciidoctor.convert(input
|
250
|
+
.sub(/:novalid:/, ":language: de\n:novalid:"), *OPTIONS)
|
251
|
+
expect(doc).to include '<eref type="inline" bibitemid="iso123" citeas="ISO 8342-DE"/>'
|
252
|
+
expect(doc).to include '<eref type="inline" bibitemid="iso124" citeas="ISO 8343-DE"/>'
|
253
|
+
doc = Asciidoctor.convert(input
|
254
|
+
.sub(/:novalid:/, ":language: fr\n:novalid:"), *OPTIONS)
|
255
|
+
expect(doc).to include '<eref type="inline" bibitemid="iso123" citeas="ISO 8342-EN"/>'
|
256
|
+
expect(doc).to include '<eref type="inline" bibitemid="iso124" citeas="ISO 8343-FR"/>'
|
257
|
+
doc = Asciidoctor.convert(input
|
258
|
+
.sub(/:novalid:/, ":language: en\n:novalid:"), *OPTIONS)
|
259
|
+
expect(doc).to include '<eref type="inline" bibitemid="iso123" citeas="ISO 8342-EN"/>'
|
260
|
+
expect(doc).to include '<eref type="inline" bibitemid="iso124" citeas="ISO 8341"/>'
|
233
261
|
end
|
234
262
|
|
235
263
|
it "fetches simple ISO reference" do
|
@@ -1026,6 +1054,24 @@ RSpec.describe Metanorma::Standoc do
|
|
1026
1054
|
end
|
1027
1055
|
end
|
1028
1056
|
|
1057
|
+
it "suppress identifier on bibitem" do
|
1058
|
+
VCR.use_cassette "dated_iso_ref_joint_iso_iec1" do
|
1059
|
+
input = <<~INPUT
|
1060
|
+
#{ISOBIB_BLANK_HDR}
|
1061
|
+
[bibliography]
|
1062
|
+
== Normative References
|
1063
|
+
|
1064
|
+
* [[[iso123,dropid(ABC)]]] _Standard_
|
1065
|
+
* [[[iso124,dropid(ISO 124:2014)]]] _Standard_
|
1066
|
+
INPUT
|
1067
|
+
doc = Nokogiri::XML(Asciidoctor.convert(input, *OPTIONS))
|
1068
|
+
expect(doc.at("//xmlns:bibitem[@id = 'iso123']/@suppress_identifier")&.text)
|
1069
|
+
.to eq("true")
|
1070
|
+
expect(doc.at("//xmlns:bibitem[@id = 'iso124']/@suppress_identifier")&.text)
|
1071
|
+
.to eq("true")
|
1072
|
+
end
|
1073
|
+
end
|
1074
|
+
|
1029
1075
|
it "hides individual references" do
|
1030
1076
|
VCR.use_cassette "hide_refs",
|
1031
1077
|
match_requests_on: %i[method uri body] do
|
@@ -1471,7 +1517,7 @@ RSpec.describe Metanorma::Standoc do
|
|
1471
1517
|
end
|
1472
1518
|
|
1473
1519
|
it "processes draft ISO reference" do
|
1474
|
-
|
1520
|
+
stub_fetch_ref no_year: true, note: "The standard is in press"
|
1475
1521
|
|
1476
1522
|
input = <<~INPUT
|
1477
1523
|
#{ASCIIDOC_BLANK_HDR}
|
@@ -1656,127 +1702,121 @@ RSpec.describe Metanorma::Standoc do
|
|
1656
1702
|
<clause id="_" inline-header="false" obligation="normative">
|
1657
1703
|
<title>Clause 4</title>
|
1658
1704
|
<p id="_">
|
1659
|
-
<eref type="inline" bibitemid="iso123" citeas="RFC 8341"/>
|
1705
|
+
<eref type="inline" bibitemid="iso123" citeas="IETF RFC 8341"/>
|
1660
1706
|
</p>
|
1661
1707
|
</clause>
|
1662
1708
|
</sections><bibliography><references id="_" obligation="informative" normative="true">
|
1663
1709
|
<title>Normative references</title>
|
1664
1710
|
#{NORM_REF_BOILERPLATE}
|
1665
|
-
|
1666
|
-
|
1667
|
-
|
1668
|
-
|
1669
|
-
|
1670
|
-
|
1671
|
-
|
1672
|
-
|
1673
|
-
|
1674
|
-
|
1675
|
-
|
1676
|
-
|
1677
|
-
|
1678
|
-
|
1679
|
-
|
1680
|
-
|
1681
|
-
|
1682
|
-
|
1683
|
-
|
1684
|
-
|
1685
|
-
|
1686
|
-
|
1687
|
-
|
1688
|
-
|
1689
|
-
|
1690
|
-
|
1691
|
-
|
1692
|
-
|
1693
|
-
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1697
|
-
|
1698
|
-
|
1699
|
-
|
1700
|
-
|
1701
|
-
|
1702
|
-
|
1703
|
-
|
1704
|
-
|
1705
|
-
|
1706
|
-
|
1707
|
-
|
1708
|
-
|
1709
|
-
|
1710
|
-
|
1711
|
-
|
1712
|
-
|
1713
|
-
|
1714
|
-
|
1715
|
-
|
1716
|
-
|
1717
|
-
|
1718
|
-
|
1719
|
-
|
1720
|
-
|
1721
|
-
|
1722
|
-
|
1723
|
-
|
1724
|
-
|
1725
|
-
|
1726
|
-
|
1727
|
-
|
1728
|
-
|
1729
|
-
|
1730
|
-
|
1731
|
-
|
1732
|
-
|
1733
|
-
|
1734
|
-
|
1735
|
-
|
1736
|
-
|
1737
|
-
|
1738
|
-
|
1739
|
-
|
1740
|
-
|
1741
|
-
|
1742
|
-
|
1743
|
-
|
1744
|
-
|
1745
|
-
|
1746
|
-
|
1747
|
-
|
1748
|
-
|
1749
|
-
|
1750
|
-
|
1751
|
-
|
1752
|
-
|
1753
|
-
|
1754
|
-
|
1755
|
-
|
1756
|
-
|
1757
|
-
|
1758
|
-
|
1759
|
-
|
1760
|
-
|
1761
|
-
|
1762
|
-
|
1763
|
-
|
1764
|
-
|
1765
|
-
|
1766
|
-
|
1767
|
-
|
1768
|
-
|
1769
|
-
|
1770
|
-
|
1771
|
-
|
1772
|
-
|
1773
|
-
|
1774
|
-
</series>
|
1775
|
-
<series type='main'>
|
1776
|
-
<title format='text/plain' language='en' script='Latn'>RFC</title>
|
1777
|
-
<number>8341</number>
|
1778
|
-
</series>
|
1779
|
-
</bibitem>
|
1711
|
+
<bibitem id='iso123' type='standard'>
|
1712
|
+
<fetched/>
|
1713
|
+
<title type='main' format='text/plain'>Network Configuration Access Control Model</title>
|
1714
|
+
<uri type='src'>https://www.rfc-editor.org/info/rfc8341</uri>
|
1715
|
+
<docidentifier type='IETF' primary='true'>RFC 8341</docidentifier>
|
1716
|
+
<docidentifier type='IETF' scope='anchor'>RFC8341</docidentifier>
|
1717
|
+
<docidentifier type='DOI'>10.17487/RFC8341</docidentifier>
|
1718
|
+
<docnumber>RFC8341</docnumber>
|
1719
|
+
<date type='published'>
|
1720
|
+
<on>2018-03</on>
|
1721
|
+
</date>
|
1722
|
+
<contributor>
|
1723
|
+
<role type='author'/>
|
1724
|
+
<person>
|
1725
|
+
<name>
|
1726
|
+
<completename language='en' script='Latn'>A. Bierman</completename>
|
1727
|
+
</name>
|
1728
|
+
</person>
|
1729
|
+
</contributor>
|
1730
|
+
<contributor>
|
1731
|
+
<role type='author'/>
|
1732
|
+
<person>
|
1733
|
+
<name>
|
1734
|
+
<completename language='en' script='Latn'>M. Bjorklund</completename>
|
1735
|
+
</name>
|
1736
|
+
</person>
|
1737
|
+
</contributor>
|
1738
|
+
<language>en</language>
|
1739
|
+
<script>Latn</script>
|
1740
|
+
<abstract format='text/html' language='en' script='Latn'>
|
1741
|
+
<p id='_'>
|
1742
|
+
The standardization of network configuration interfaces for use with
|
1743
|
+
the Network Configuration Protocol (NETCONF) or the RESTCONF
|
1744
|
+
protocol requires a structured and secure operating environment that
|
1745
|
+
promotes human usability and multi-vendor interoperability. There is
|
1746
|
+
a need for standard mechanisms to restrict NETCONF or RESTCONF
|
1747
|
+
protocol access for particular users to a preconfigured subset of
|
1748
|
+
all available NETCONF or RESTCONF protocol operations and content.
|
1749
|
+
This document defines such an access control model.
|
1750
|
+
</p>
|
1751
|
+
<p id='_'>This document obsoletes RFC 6536.</p>
|
1752
|
+
</abstract>
|
1753
|
+
<series>
|
1754
|
+
<title format='text/plain'>STD</title>
|
1755
|
+
<number>91</number>
|
1756
|
+
</series>
|
1757
|
+
<series>
|
1758
|
+
<title format='text/plain'>RFC</title>
|
1759
|
+
<number>8341</number>
|
1760
|
+
</series>
|
1761
|
+
<keyword>NETCONF RESTCONF</keyword>
|
1762
|
+
<keyword>YANG</keyword>
|
1763
|
+
<keyword>XML</keyword>
|
1764
|
+
</bibitem>
|
1765
|
+
<bibitem id='iso124' type='standard'>
|
1766
|
+
<fetched/>
|
1767
|
+
<title type='main' format='text/plain'>Network Configuration Access Control Model</title>
|
1768
|
+
<uri type='src'>https://www.rfc-editor.org/info/rfc8341</uri>
|
1769
|
+
<docidentifier type='IETF' primary='true'>RFC 8341</docidentifier>
|
1770
|
+
<docidentifier type='metanorma'>[1]</docidentifier>
|
1771
|
+
<docidentifier type='IETF' scope='anchor'>RFC8341</docidentifier>
|
1772
|
+
<docidentifier type='DOI'>10.17487/RFC8341</docidentifier>
|
1773
|
+
<docnumber>RFC8341</docnumber>
|
1774
|
+
<date type='published'>
|
1775
|
+
<on>2018-03</on>
|
1776
|
+
</date>
|
1777
|
+
<contributor>
|
1778
|
+
<role type='author'/>
|
1779
|
+
<person>
|
1780
|
+
<name>
|
1781
|
+
<completename language='en' script='Latn'>A. Bierman</completename>
|
1782
|
+
</name>
|
1783
|
+
</person>
|
1784
|
+
</contributor>
|
1785
|
+
<contributor>
|
1786
|
+
<role type='author'/>
|
1787
|
+
<person>
|
1788
|
+
<name>
|
1789
|
+
<completename language='en' script='Latn'>M. Bjorklund</completename>
|
1790
|
+
</name>
|
1791
|
+
</person>
|
1792
|
+
</contributor>
|
1793
|
+
<language>en</language>
|
1794
|
+
<script>Latn</script>
|
1795
|
+
<abstract format='text/html' language='en' script='Latn'>
|
1796
|
+
<p id='_'>
|
1797
|
+
The standardization of network configuration interfaces for use with
|
1798
|
+
the Network Configuration Protocol (NETCONF) or the RESTCONF
|
1799
|
+
protocol requires a structured and secure operating environment that
|
1800
|
+
promotes human usability and multi-vendor interoperability. There is
|
1801
|
+
a need for standard mechanisms to restrict NETCONF or RESTCONF
|
1802
|
+
protocol access for particular users to a preconfigured subset of
|
1803
|
+
all available NETCONF or RESTCONF protocol operations and content.
|
1804
|
+
This document defines such an access control model.
|
1805
|
+
</p>
|
1806
|
+
<p id='_'>This document obsoletes RFC 6536.</p>
|
1807
|
+
</abstract>
|
1808
|
+
<series>
|
1809
|
+
<title format='text/plain'>STD</title>
|
1810
|
+
<number>91</number>
|
1811
|
+
</series>
|
1812
|
+
<series>
|
1813
|
+
<title format='text/plain'>RFC</title>
|
1814
|
+
<number>8341</number>
|
1815
|
+
</series>
|
1816
|
+
<keyword>NETCONF RESTCONF</keyword>
|
1817
|
+
<keyword>YANG</keyword>
|
1818
|
+
<keyword>XML</keyword>
|
1819
|
+
</bibitem>
|
1780
1820
|
</references>
|
1781
1821
|
</bibliography>
|
1782
1822
|
</standard-document>
|
@@ -1906,7 +1946,7 @@ RSpec.describe Metanorma::Standoc do
|
|
1906
1946
|
<from>#{Date.today.year}</from>
|
1907
1947
|
</copyright>
|
1908
1948
|
<ext>
|
1909
|
-
<doctype>
|
1949
|
+
<doctype>standard</doctype>
|
1910
1950
|
</ext>
|
1911
1951
|
</bibdata>
|
1912
1952
|
<sections>
|
@@ -2211,8 +2251,8 @@ RSpec.describe Metanorma::Standoc do
|
|
2211
2251
|
end
|
2212
2252
|
|
2213
2253
|
it "overrides normative status of bibliographies" do
|
2214
|
-
|
2215
|
-
|
2254
|
+
mock_isobib_get_123_no_docid(1)
|
2255
|
+
mock_isobib_get_123_no_docid_lbl(1)
|
2216
2256
|
VCR.use_cassette "isobib_get_123_1" do
|
2217
2257
|
input = <<~INPUT
|
2218
2258
|
#{ISOBIB_BLANK_HDR}
|
@@ -2495,7 +2535,7 @@ RSpec.describe Metanorma::Standoc do
|
|
2495
2535
|
<foreword id='_' obligation='informative'>
|
2496
2536
|
<title>Foreword</title>
|
2497
2537
|
<p id='_'>
|
2498
|
-
<eref type='inline' bibitemid='iso124' citeas='[&
|
2538
|
+
<eref type='inline' bibitemid='iso124' citeas='[<strong>A</strong>.<fn reference="1"><p>hello</p> </fn>]'/>
|
2499
2539
|
</p>
|
2500
2540
|
</foreword>
|
2501
2541
|
</preface>
|
@@ -2531,6 +2571,7 @@ RSpec.describe Metanorma::Standoc do
|
|
2531
2571
|
#{ASCIIDOC_BLANK_HDR}
|
2532
2572
|
== Section
|
2533
2573
|
|
2574
|
+
<<ref1,clause=3-5>>
|
2534
2575
|
<<ref1,clause=3;to!clause=5>>
|
2535
2576
|
<<ref1,from!clause=3;to!clause=5,text>>
|
2536
2577
|
<<ref1,clause=3;clause=5>>
|
@@ -2549,6 +2590,14 @@ RSpec.describe Metanorma::Standoc do
|
|
2549
2590
|
<clause id='_' inline-header='false' obligation='normative'>
|
2550
2591
|
<title>Section</title>
|
2551
2592
|
<p id='_'>
|
2593
|
+
<eref type='inline' bibitemid='ref1' citeas='XYZ'>
|
2594
|
+
<localityStack>
|
2595
|
+
<locality type='clause'>
|
2596
|
+
<referenceFrom>3</referenceFrom>
|
2597
|
+
<referenceTo>5</referenceTo>
|
2598
|
+
</locality>
|
2599
|
+
</localityStack>
|
2600
|
+
</eref>
|
2552
2601
|
<eref type='inline' bibitemid='ref1' citeas='XYZ'>
|
2553
2602
|
<localityStack connective='from'>
|
2554
2603
|
<locality type='clause'>
|
@@ -2655,22 +2704,6 @@ RSpec.describe Metanorma::Standoc do
|
|
2655
2704
|
|
2656
2705
|
private
|
2657
2706
|
|
2658
|
-
def mock_isobib_get_123
|
2659
|
-
expect(RelatonIso::IsoBibliography).to receive(:get)
|
2660
|
-
.with("ISO 123", nil, { code: "ISO 123",
|
2661
|
-
lang: "en",
|
2662
|
-
match: anything,
|
2663
|
-
process: 1,
|
2664
|
-
ord: anything,
|
2665
|
-
title: "<em>Standard</em>",
|
2666
|
-
usrlbl: nil,
|
2667
|
-
year: nil }) do
|
2668
|
-
IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
|
2669
|
-
<bibitem type=\"standard\" id=\"ISO123\">\n <title format=\"text/plain\" language=\"en\" script=\"Latn\">Rubber latex -- Sampling</title>\n <title format=\"text/plain\" language=\"fr\" script=\"Latn\">Latex de caoutchouc -- ?chantillonnage</title>\n <uri type=\"src\">https://www.iso.org/standard/23281.html</uri>\n <uri type=\"obp\">https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>\n <uri type=\"rss\">https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>\n <docidentifier>ISO 123</docidentifier>\n <date type=\"published\">\n <on>2001</on>\n </date>\n <contributor>\n <role type=\"publisher\"/>\n <organization>\n <name>International Organization for Standardization</name>\n <abbreviation>ISO</abbreviation>\n <uri>www.iso.org</uri>\n </organization>\n </contributor>\n <edition>3</edition>\n <language>en</language>\n <language>fr</language>\n <script>Latn</script>\n <status>Published</status>\n <copyright>\n <from>2001</from>\n <owner>\n <organization>\n <name>ISO</name>\n <abbreviation></abbreviation>\n </organization>\n </owner>\n </copyright>\n <relation type=\"obsoletes\">\n <bibitem type="standard">\n <formattedref format="text/plain">ISO 123:1985</formattedref>\n </bibitem>\n </relation>\n <relation type=\"updates\">\n <bibitem type="standard">\n <formattedref format="text/plain">ISO 123:2001</formattedref>\n </bibitem>\n </relation>\n</bibitem>
|
2670
|
-
OUTPUT
|
2671
|
-
end
|
2672
|
-
end
|
2673
|
-
|
2674
2707
|
def mock_isobib_get_123_no_docid(times)
|
2675
2708
|
expect(RelatonIso::IsoBibliography).to receive(:get)
|
2676
2709
|
.with("ISO 123", nil, { code: "ISO 123",
|
@@ -2703,136 +2736,43 @@ RSpec.describe Metanorma::Standoc do
|
|
2703
2736
|
end.exactly(times).times
|
2704
2737
|
end
|
2705
2738
|
|
2706
|
-
def
|
2707
|
-
expect(RelatonIso::IsoBibliography).to receive(:get)
|
2708
|
-
|
2709
|
-
|
2710
|
-
|
2711
|
-
|
2712
|
-
|
2713
|
-
|
2714
|
-
|
2715
|
-
|
2716
|
-
|
2717
|
-
|
2718
|
-
|
2719
|
-
|
2720
|
-
|
2721
|
-
<contributor>
|
2722
|
-
<role type="publisher"/>
|
2723
|
-
<organization>
|
2724
|
-
<name>International Organization for Standardization</name>
|
2725
|
-
<abbreviation>ISO</abbreviation>
|
2726
|
-
<uri>www.iso.org</uri>
|
2727
|
-
</organization>
|
2728
|
-
</contributor>
|
2729
|
-
<edition>7</edition>
|
2730
|
-
<language>en</language>
|
2731
|
-
<language>fr</language>
|
2732
|
-
<script>Latn</script>
|
2733
|
-
<abstract format="text/plain" language="en" script="Latn">ISO 124:2014 specifies methods for the determination of the total solids content of natural rubber field and concentrated latices and synthetic rubber latex. These methods are not necessarily suitable for latex from natural sources other than the Hevea brasiliensis, for vulcanized latex, for compounded latex, or for artificial dispersions of rubber.</abstract>
|
2734
|
-
<status>Published</status>
|
2735
|
-
<copyright>
|
2736
|
-
<from>2014</from>
|
2737
|
-
<owner>
|
2738
|
-
<organization>
|
2739
|
-
<name>ISO</name>
|
2740
|
-
<abbreviation/>
|
2741
|
-
</organization>
|
2742
|
-
</owner>
|
2743
|
-
</copyright>
|
2744
|
-
<relation type="obsoletes">
|
2745
|
-
<bibitem type="standard">
|
2746
|
-
<formattedref format="text/plain">ISO 124:2011</formattedref>
|
2747
|
-
</bibitem>
|
2748
|
-
</relation>
|
2749
|
-
<ics>
|
2750
|
-
<code>83.040.10</code>
|
2751
|
-
<text>Latex and raw rubber</text>
|
2752
|
-
</ics>
|
2739
|
+
def mock_rfcbib_get_rfc8342(times)
|
2740
|
+
expect(RelatonIso::IsoBibliography).to receive(:get).with("ISO 8342", nil,
|
2741
|
+
anything) do
|
2742
|
+
RelatonBib::XMLParser.from_xml(<<~"OUTPUT")
|
2743
|
+
<bibitem id="RFC8342">
|
2744
|
+
<title format="text/plain" language="en" script="Latn">Network Configuration Access Control Model</title>
|
2745
|
+
<docidentifier type="DOI">10.17487/RFC8341</docidentifier>
|
2746
|
+
<docidentifier type="ISO">ISO 8341</docidentifier>
|
2747
|
+
<docidentifier type="ISO" primary="true">ISO 8342-EN</docidentifier>
|
2748
|
+
<docidentifier type="ISO" language="fr">ISO 8342-FR</docidentifier>
|
2749
|
+
<docidentifier type="ISO" primary="true" language="de">ISO 8342-DE</docidentifier>
|
2750
|
+
<date type="published">
|
2751
|
+
<on>2018</on>
|
2752
|
+
</date>
|
2753
|
+
<status>published</status>
|
2753
2754
|
</bibitem>
|
2754
2755
|
OUTPUT
|
2755
|
-
end
|
2756
|
-
end
|
2757
|
-
|
2758
|
-
def mock_isobib_get_iec12382
|
2759
|
-
expect(RelatonIso::IsoBibliography).to receive(:get).with(
|
2760
|
-
"ISO/IEC TR 12382", "1992", anything
|
2761
|
-
) do
|
2762
|
-
IsoBibItem::XMLParser.from_xml(<<~"OUTPUT")
|
2763
|
-
<bibitem type="standard" id="iso123">
|
2764
|
-
<title format="text/plain" language="en" script="Latn">Permuted index of the vocabulary of information technology</title>
|
2765
|
-
<title format="text/plain" language="fr" script="Latn">Index permuté du vocabulaire des technologies de l'information</title>
|
2766
|
-
<uri type="src">https://www.iso.org/standard/21071.html</uri>
|
2767
|
-
<uri type="obp">https://www.iso.org/obp/ui/#!iso:std:21071:en</uri>
|
2768
|
-
<uri type="rss">https://www.iso.org/contents/data/standard/02/10/21071.detail.rss</uri>
|
2769
|
-
<docidentifier>ISO/IEC 12382</docidentifier>
|
2770
|
-
<date type="published">
|
2771
|
-
<on>1992</on>
|
2772
|
-
</date>
|
2773
|
-
<contributor>
|
2774
|
-
<role type="publisher"/>
|
2775
|
-
<organization>
|
2776
|
-
<name>International Organization for Standardization</name>
|
2777
|
-
<abbreviation>ISO</abbreviation>
|
2778
|
-
<uri>www.iso.org</uri>
|
2779
|
-
</organization>
|
2780
|
-
</contributor>
|
2781
|
-
<contributor>
|
2782
|
-
<role type="publisher"/>
|
2783
|
-
<organization>
|
2784
|
-
<name>International Electrotechnical Commission</name>
|
2785
|
-
<abbreviation>IEC</abbreviation>
|
2786
|
-
<uri>www.iec.ch</uri>
|
2787
|
-
</organization>
|
2788
|
-
</contributor>
|
2789
|
-
<edition>2</edition>
|
2790
|
-
<language>en</language>
|
2791
|
-
<language>fr</language>
|
2792
|
-
<script>Latn</script>
|
2793
|
-
<abstract format="text/plain" language="en" script="Latn">Contains a permuted index of all terms included in the parts 1 — 28 of ISO 2382. If any of these parts has been revised, the present TR refers to the revision.</abstract>
|
2794
|
-
<status>Published</status>
|
2795
|
-
<copyright>
|
2796
|
-
<from>1992</from>
|
2797
|
-
<owner>
|
2798
|
-
<organization>
|
2799
|
-
<name>ISO/IEC</name>
|
2800
|
-
<abbreviation/>
|
2801
|
-
</organization>
|
2802
|
-
</owner>
|
2803
|
-
</copyright>
|
2804
|
-
<relation type="updates">
|
2805
|
-
<bibitem type="standard">
|
2806
|
-
<formattedref format="text/plain">ISO/IEC TR 12382:1992</formattedref>
|
2807
|
-
</bibitem>
|
2808
|
-
</relation>
|
2809
|
-
<ics>
|
2810
|
-
<code>35.020</code>
|
2811
|
-
<text>Information technology (IT) in general</text>
|
2812
|
-
</ics>
|
2813
|
-
<ics>
|
2814
|
-
<code>01.040.35</code>
|
2815
|
-
<text>Information technology (Vocabularies)</text>
|
2816
|
-
</ics>
|
2817
|
-
</bibitem>
|
2818
|
-
OUTPUT
|
2819
|
-
end
|
2756
|
+
end.exactly(times).times
|
2820
2757
|
end
|
2821
2758
|
|
2822
|
-
def
|
2823
|
-
expect(
|
2824
|
-
|
2825
|
-
|
2826
|
-
<bibitem id="
|
2759
|
+
def mock_rfcbib_get_rfc8343(times)
|
2760
|
+
expect(RelatonIso::IsoBibliography).to receive(:get).with("ISO 8343", nil,
|
2761
|
+
anything) do
|
2762
|
+
RelatonBib::XMLParser.from_xml(<<~"OUTPUT")
|
2763
|
+
<bibitem id="RFC8343">
|
2827
2764
|
<title format="text/plain" language="en" script="Latn">Network Configuration Access Control Model</title>
|
2828
2765
|
<docidentifier type="DOI">10.17487/RFC8341</docidentifier>
|
2829
|
-
<docidentifier type="
|
2766
|
+
<docidentifier type="ISO">ISO 8341</docidentifier>
|
2767
|
+
<docidentifier type="ISO">ISO 8343-EN</docidentifier>
|
2768
|
+
<docidentifier type="ISO" language="fr">ISO 8343-FR</docidentifier>
|
2769
|
+
<docidentifier type="ISO" language="de">ISO 8343-DE</docidentifier>
|
2830
2770
|
<date type="published">
|
2831
2771
|
<on>2018</on>
|
2832
2772
|
</date>
|
2833
2773
|
<status>published</status>
|
2834
2774
|
</bibitem>
|
2835
2775
|
OUTPUT
|
2836
|
-
end
|
2776
|
+
end.exactly(times).times
|
2837
2777
|
end
|
2838
2778
|
end
|