relaton-ietf 1.13.9 → 1.14.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.adoc +32 -38
- data/grammars/basicdoc.rng +3 -27
- data/grammars/biblio-standoc.rng +164 -0
- data/grammars/biblio.rng +82 -19
- data/grammars/relaton-ietf-compile.rng +11 -0
- data/grammars/relaton-ietf.rng +318 -0
- data/lib/relaton_ietf/bibxml_parser.rb +3 -0
- data/lib/relaton_ietf/ietf_bibliographic_item.rb +9 -0
- data/lib/relaton_ietf/rfc_entry.rb +1 -1
- data/lib/relaton_ietf/version.rb +1 -1
- data/lib/relaton_ietf.rb +0 -3
- data/relaton_ietf.gemspec +1 -1
- metadata +7 -7
- data/grammars/ietf.rng +0 -925
- data/grammars/isodoc.rng +0 -2807
- data/grammars/reqt.rng +0 -223
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f634b1d5711babffa718bd79a24ea0c6f63ff7213165e9c21fd5c80937f95d05
|
4
|
+
data.tar.gz: 5e0e4c0f11353d9fa17f8aaebec14a3ff60b82d030a8dac51d601f1737b07917
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a25a04b4baa551c0c70e1289b2ee26dfdcf2fba6d2cedef99be4269d3f16a80fe0b223cd1f9bd6a174c6ed222fb43b492980b71b847a9b4fa35c7b53590058b4
|
7
|
+
data.tar.gz: 0525bd899197f8236a14391a1433182e6387e9ea62b4ebb0474ac29015ce162a925c3b3f5aa94789b0a7d23b8af4cc539ddc4a09dc7bc81052cf8ed3a1622906
|
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
|
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,38 +66,38 @@ RelatonIetf::IetfBibliography.get 'IETF 1111'
|
|
65
66
|
[source,ruby]
|
66
67
|
----
|
67
68
|
item.to_xml
|
68
|
-
=>"<bibitem id="RFC8341" type="standard">
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
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
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
<
|
90
|
-
|
91
|
-
|
92
|
-
</
|
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
|
98
|
+
IETF documents may have `src`, `xml`, and `doi` link types.
|
98
99
|
|
99
|
-
* `src` - web
|
100
|
+
* `src` - web publication
|
100
101
|
* `xml` - BibXML publication
|
101
102
|
* `doi` - DOI reference
|
102
103
|
|
@@ -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
|
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
|
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` -
|
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
|
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.
|
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
|
----
|
data/grammars/basicdoc.rng
CHANGED
@@ -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
|
-
|
37
|
-
|
38
|
-
|
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="
|
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
|
-
<
|
174
|
+
<oneOrMore>
|
162
175
|
<ref name="role"/>
|
163
|
-
</
|
176
|
+
</oneOrMore>
|
164
177
|
<ref name="ContributorInfo"/>
|
165
178
|
</element>
|
166
179
|
</define>
|
167
180
|
<define name="role">
|
168
181
|
<element name="role">
|
169
|
-
<
|
170
|
-
<
|
171
|
-
<
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
</
|
180
|
-
|
181
|
-
|
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>
|