relaton-ietf 1.13.10 → 1.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e2b151c68ce0d0cb48403a916a4c42026efea37950317b21bf68a0c5c58869e5
4
- data.tar.gz: 68093e680ae9e8993899f559d61a25f8c8c281cffddf00cf236d2da94ad08bce
3
+ metadata.gz: c4e282983c73210f9ca6bcd6ff4b8fee3eb8cd77063d69d9233e726b6ecc56ff
4
+ data.tar.gz: 0c974753123af381e55c5379fa0539c180fe713f864fdf40e5ddb40ce3186dcc
5
5
  SHA512:
6
- metadata.gz: 6ae05c2824dc9ea8ce3f8ed28c0a4623b1f7a6a36f55fc6b43b65873560883834447c68626286c33366dcae3df4a26c7da6c2d839166a2cda0e1e3928b67f182
7
- data.tar.gz: f5cdb6ed70fa63e3f18e365b4fa60189ffd39d66b2654fda03bf9c5e618ac7b1c8ff1960539ee7824363ed34706f74f091d88914c074d8f0c844a590185c7050
6
+ metadata.gz: dc868f1be3c80ca3d0db43fff29bfb743337d76a286934a2ab0fc8a0e4281941e94d94b92d5bd6c15bdfa3fcc9a518a86556fd4e5246908d0a96fe8ef87cf33e
7
+ data.tar.gz: be4ca8fb1ee508e50f4c4dc2b123cbe10d8e8724aaf39530faf2a30f3ab263cd171362c7df8e2582083f5ee86d286d18cd93c18571060ee508bf09cfdf2413db
data/README.adoc CHANGED
@@ -10,7 +10,7 @@ image:https://img.shields.io/github/commits-since/relaton/relaton-ietf/latest.sv
10
10
 
11
11
  _Formerly known as_ `rfcbib`.
12
12
 
13
- RelatonIetf is a Ruby gem that search and fetch standards from the https://www.ietf.org[Internet Engineering Task Force (IETF)], including RFCs.
13
+ RelatonIetf is a Ruby gem that searches and fetches standards from the https://www.ietf.org[Internet Engineering Task Force (IETF)], including RFCs.
14
14
 
15
15
  The standards scrape form https://www.rfc-editor.org/search/rfc_search.php
16
16
 
@@ -38,6 +38,7 @@ Or install it yourself as:
38
38
  [source,ruby]
39
39
  ----
40
40
  require 'relaton_ietf'
41
+ => true
41
42
 
42
43
  # Fetch RFC document
43
44
  item = RelatonIetf::IetfBibliography.get 'IETF RFC 8341'
@@ -53,7 +54,7 @@ RelatonIetf::IetfBibliography.get 'IETF I-D.draft-abarth-cake-01'
53
54
  => #<RelatonIetf::IetfBibliographicItem:0x00007fdd129bbeb8
54
55
  ...
55
56
 
56
- # Return nil if document doesn't exist.
57
+ # Return nil if a document doesn't exist.
57
58
  RelatonIetf::IetfBibliography.get 'IETF 1111'
58
59
  [relaton-ietf] ("IETF 1111") fetching...
59
60
  [relaton-ietf] ("IETF 1111") not found
@@ -65,36 +66,36 @@ RelatonIetf::IetfBibliography.get 'IETF 1111'
65
66
  [source,ruby]
66
67
  ----
67
68
  item.to_xml
68
- =>"<bibitem id="RFC8341" type="standard">
69
- <fetched>2022-06-10</fetched>
70
- <title type="main" format="text/plain">Network Configuration Access Control Model</title>
71
- <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
72
- <docidentifier type="IETF" primary="true">RFC 8341</docidentifier>
73
- <docidentifier type="IETF" scope="anchor">RFC8341</docidentifier>
74
- <docidentifier type="DOI">10.17487/RFC8341</docidentifier>
75
- ....
76
- </bibitem>"
77
- ----
78
- With `bibdata: true` option XML output wrapped with `bibdata` element and `ext` element added.
69
+ => "<bibitem id="RFC8341" type="standard" schema-version="v1.2.1">
70
+ <fetched>2022-12-03</fetched>
71
+ <title type="main" format="text/plain">Network Configuration Access Control Model</title>
72
+ <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
73
+ <docidentifier type="IETF" primary="true">RFC 8341</docidentifier>
74
+ ....
75
+ </bibitem>"
76
+ ----
77
+ With `bibdata: true` option XML output is wrapped with `bibdata` element and `ext` element added.
79
78
  [source,ruby]
80
79
  ----
81
80
  item.to_xml bibdata: true
82
- =>"<bibdata type="standard">
83
- <fetched>2022-06-10</fetched>
84
- <title type="main" format="text/plain">Network Configuration Access Control Model</title>
85
- <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
86
- ...
87
- <ext>
88
- <editorialgroup>
89
- <committee>netconf</committee>
90
- </editorialgroup>
91
- </ext>
92
- </bibdata>"
81
+ => "<bibdata type="standard" schema-version="v1.2.1">
82
+ <fetched>2022-12-03</fetched>
83
+ <title type="main" format="text/plain">Network Configuration Access Control Model</title>
84
+ <uri type="src">https://www.rfc-editor.org/info/rfc8341</uri>
85
+ <docidentifier type="IETF" primary="true">RFC 8341</docidentifier>
86
+ <docidentifier type="DOI">10.17487/RFC8341</docidentifier>
87
+ ...
88
+ <ext schema-version="v1.0.0">
89
+ <editorialgroup>
90
+ <committee>netconf</committee>
91
+ </editorialgroup>
92
+ </ext>
93
+ </bibdata>"
93
94
  ----
94
95
 
95
96
  === Typed links
96
97
 
97
- IETF documents may have `src`, `xml`, and `doi` link type.
98
+ IETF documents may have `src`, `xml`, and `doi` link types.
98
99
 
99
100
  * `src` - web publication
100
101
  * `xml` - BibXML publication
@@ -114,16 +115,9 @@ item.link
114
115
  item = Relaton::Provider::Ietf.from_rfcxml File.read("spec/examples/rfc.xml")
115
116
  => #<RelatonIetf::IetfBibliographicItem:0x007fa8cda79ab8
116
117
  ...
117
-
118
- item.to_xml bibdata: true
119
- =>"<bibdata>
120
- <fetched>2020-09-15</fetched>
121
- <title format="text/plain" language="en" script="Latn">ACVP Secure Hash Algorithm (SHA) JSON Specification</title>
122
- ...
123
- </bibdata>"
124
118
  ----
125
119
 
126
- === Create bibliographic item form YAML
120
+ === Create bibliographic item from YAML
127
121
  [source,ruby]
128
122
  ----
129
123
  hash = YAML.load_file 'spec/examples/ietf_bib_item.yml'
@@ -137,19 +131,19 @@ RelatonIetf::IetfBibliographicItem.from_hash hash
137
131
 
138
132
  === Fetch data
139
133
 
140
- There are IETF datasets what can be converted into RelatonXML/BibXML/BibYAML formats:
134
+ There are IETF datasets that can be converted into RelatonXML/BibXML/BibYAML formats:
141
135
 
142
136
  - `ietf-rfcsubseries` - https://www.rfc-editor.org/rfc-index.xml (`<bcp-entry>`, `<fyi-entry>`, `<std-entry>`)
143
- - `ietf-internet-drafts` - converts files from local directory `./bibxml-ids`. Use `rsync -avcizxL rsync.ietf.org::bibxml-ids ./bibxml-ids` command to fetch the files.
137
+ - `ietf-internet-drafts` - convert files from local directory `./bibxml-ids`. Use `rsync -avcizxL rsync.ietf.org::bibxml-ids ./bibxml-ids` command to fetch the files.
144
138
  - `ietf-rfc-entries` - https://www.rfc-editor.org/rfc-index.xml (`<rfc-entry>`)
145
139
 
146
- The method `RelatonIetf::DataFetcher.fetch(source, output: "data", format: "yaml")` converts all the documents from the dataset and save them to the `./data` folder in YAML format.
140
+ The method `RelatonIetf::DataFetcher.fetch(source, output: "data", format: "yaml")` converts all the documents from the dataset and saves them to the `./data` folder in YAML format.
147
141
 
148
142
  Arguments:
149
143
 
150
144
  - `source` - dataset name (`ietf-rfcsubseries` or `ietf-internet-drafts`)
151
145
  - `output` - folder to save documents (default './data').
152
- - `format` - format in which the documents are saved. Possimle formats are: `yaml`, `xml`, `bibxml` (default `yaml`).
146
+ - `format` - the format in which the documents are saved. Possible formats are: `yaml`, `xml`, `bibxml` (default `yaml`).
153
147
 
154
148
  [source,ruby]
155
149
  ----
@@ -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>
@@ -688,6 +683,9 @@
688
683
  </define>
689
684
  <define name="underline">
690
685
  <element name="underline">
686
+ <optional>
687
+ <attribute name="style"/>
688
+ </optional>
691
689
  <zeroOrMore>
692
690
  <ref name="PureTextElement"/>
693
691
  </zeroOrMore>
@@ -1125,26 +1123,4 @@
1125
1123
  </zeroOrMore>
1126
1124
  </element>
1127
1125
  </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
1126
  </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
+ <text/>
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>
data/grammars/biblio.rng CHANGED
@@ -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"/>
@@ -73,8 +74,14 @@
73
74
  <text/>
74
75
  </element>
75
76
  </define>
76
- <define name="script">
77
+ <define name="locale">
77
78
  <a:documentation>ISO-639</a:documentation>
79
+ <element name="locale">
80
+ <text/>
81
+ </element>
82
+ </define>
83
+ <define name="script">
84
+ <a:documentation>ISO-3166</a:documentation>
78
85
  <element name="script">
79
86
  <text/>
80
87
  </element>
@@ -93,6 +100,9 @@
93
100
  <!-- multiple languages and scripts possible: comma delimit them if so -->
94
101
  <attribute name="language"/>
95
102
  </optional>
103
+ <optional>
104
+ <attribute name="locale"/>
105
+ </optional>
96
106
  <optional>
97
107
  <attribute name="script"/>
98
108
  </optional>
@@ -136,6 +146,9 @@
136
146
  <!-- multiple languages and scripts possible: comma delimit them if so -->
137
147
  <attribute name="language"/>
138
148
  </optional>
149
+ <optional>
150
+ <attribute name="locale"/>
151
+ </optional>
139
152
  <optional>
140
153
  <attribute name="script"/>
141
154
  </optional>
@@ -158,27 +171,30 @@
158
171
  </define>
159
172
  <define name="contributor">
160
173
  <element name="contributor">
161
- <zeroOrMore>
174
+ <oneOrMore>
162
175
  <ref name="role"/>
163
- </zeroOrMore>
176
+ </oneOrMore>
164
177
  <ref name="ContributorInfo"/>
165
178
  </element>
166
179
  </define>
167
180
  <define name="role">
168
181
  <element name="role">
169
- <optional>
170
- <attribute name="type">
171
- <choice>
172
- <value>author</value>
173
- <value>performer</value>
174
- <value>publisher</value>
175
- <value>editor</value>
176
- <value>adapter</value>
177
- <value>translator</value>
178
- <value>distributor</value>
179
- </choice>
180
- </attribute>
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
+ <value>realizer</value>
192
+ <value>owner</value>
193
+ <value>authorizer</value>
194
+ <value>enabler</value>
195
+ <value>subject</value>
196
+ </choice>
197
+ </attribute>
182
198
  <zeroOrMore>
183
199
  <ref name="roledescription"/>
184
200
  </zeroOrMore>
@@ -500,6 +516,17 @@
500
516
  </define>
501
517
  <define name="localityStack">
502
518
  <element name="localityStack">
519
+ <optional>
520
+ <attribute name="connective">
521
+ <choice>
522
+ <value>and</value>
523
+ <value>or</value>
524
+ <value>from</value>
525
+ <value>to</value>
526
+ <value/>
527
+ </choice>
528
+ </attribute>
529
+ </optional>
503
530
  <zeroOrMore>
504
531
  <ref name="locality"/>
505
532
  </zeroOrMore>
@@ -512,6 +539,17 @@
512
539
  </define>
513
540
  <define name="sourceLocalityStack">
514
541
  <element name="sourceLocalityStack">
542
+ <optional>
543
+ <attribute name="connective">
544
+ <choice>
545
+ <value>and</value>
546
+ <value>or</value>
547
+ <value>from</value>
548
+ <value>to</value>
549
+ <value/>
550
+ </choice>
551
+ </attribute>
552
+ </optional>
515
553
  <zeroOrMore>
516
554
  <ref name="sourceLocality"/>
517
555
  </zeroOrMore>
@@ -614,6 +652,9 @@
614
652
  <ref name="BibItemType"/>
615
653
  </attribute>
616
654
  </optional>
655
+ <optional>
656
+ <attribute name="schema-version"/>
657
+ </optional>
617
658
  <optional>
618
659
  <ref name="fetched"/>
619
660
  </optional>
@@ -650,6 +691,9 @@
650
691
  <zeroOrMore>
651
692
  <ref name="language"/>
652
693
  </zeroOrMore>
694
+ <zeroOrMore>
695
+ <ref name="locale"/>
696
+ </zeroOrMore>
653
697
  <zeroOrMore>
654
698
  <ref name="script"/>
655
699
  </zeroOrMore>
@@ -705,6 +749,9 @@
705
749
  <ref name="BibItemType"/>
706
750
  </attribute>
707
751
  </optional>
752
+ <optional>
753
+ <attribute name="schema-version"/>
754
+ </optional>
708
755
  <optional>
709
756
  <ref name="fetched"/>
710
757
  </optional>
@@ -741,6 +788,9 @@
741
788
  <zeroOrMore>
742
789
  <ref name="language"/>
743
790
  </zeroOrMore>
791
+ <zeroOrMore>
792
+ <ref name="locale"/>
793
+ </zeroOrMore>
744
794
  <zeroOrMore>
745
795
  <ref name="script"/>
746
796
  </zeroOrMore>
@@ -854,6 +904,15 @@
854
904
  <optional>
855
905
  <attribute name="type"/>
856
906
  </optional>
907
+ <optional>
908
+ <attribute name="language"/>
909
+ </optional>
910
+ <optional>
911
+ <attribute name="locale"/>
912
+ </optional>
913
+ <optional>
914
+ <attribute name="script"/>
915
+ </optional>
857
916
  <data type="anyURI"/>
858
917
  </define>
859
918
  <define name="DateType">
@@ -882,6 +941,7 @@
882
941
  <value>vote-started</value>
883
942
  <value>vote-ended</value>
884
943
  <value>announced</value>
944
+ <value>stable-until</value>
885
945
  </choice>
886
946
  </define>
887
947
  <define name="bdate">
@@ -930,6 +990,9 @@
930
990
  <optional>
931
991
  <attribute name="language"/>
932
992
  </optional>
993
+ <optional>
994
+ <attribute name="locale"/>
995
+ </optional>
933
996
  <optional>
934
997
  <attribute name="script"/>
935
998
  </optional>
@@ -0,0 +1,11 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
+ <include href="basicdoc.rng"/>
4
+ <include href="relaton-ietf.rng"/>
5
+ <start>
6
+ <choice>
7
+ <ref name="bibitem"/>
8
+ <ref name="bibdata"/>
9
+ </choice>
10
+ </start>
11
+ </grammar>