relaton-nist 1.13.1 → 1.14.0

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: aeed99df30e7f99bfc8d2b05dccaf5bc45eb6c8980b1b5f608eb2ce94a541382
4
- data.tar.gz: 41a13eb308604d5fbf7b9b808e2397d90b6c7ad0ba19722618487434233cd315
3
+ metadata.gz: d4ff63cc9a73c9d9032720ed22ea75fdb33b6bfcfc0560c8b993229bb3f054b6
4
+ data.tar.gz: c8021d3d62a10781d0d41f51ee64a5c23e2a4a700f5afd1fc6e016710b3eedc8
5
5
  SHA512:
6
- metadata.gz: d2e8d7da0a19ea149b5dce1d43831a4589a39f47ddb57bbb91f6621896d614ea670aae89348479fc6f956ecc678d9493503fe6b24e44e17b2e5986e997be89dd
7
- data.tar.gz: caf9ddca1f1dc8eb37541c9c5620d183f72ff4bcd389261d6173f306e4d511a3e83df84a7fc6828dbb7bdc31457e01834e9fe18fca0b7f7d46fadc54d2dc6133
6
+ metadata.gz: 7428af4e6d096ad69dc479449ab148c2c5af897a195338606605a87c2f6a07c439d6f55434f24c6733427c7baa016727308f53ee7d2fb7863a9f0a714f4ec6c6
7
+ data.tar.gz: 199967053022613a34208b54593ccdc3b36b0f10238aa828b2c6dbe44b2953c1f2dc1015220a95058137fdc7e59196acfcce8d5bddc8cfadab570c4ec26f21b9
@@ -5,7 +5,6 @@ name: rake
5
5
  on:
6
6
  push:
7
7
  branches: [ master, main ]
8
- tags: [ v* ]
9
8
  pull_request:
10
9
 
11
10
  jobs:
@@ -0,0 +1,22 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: release
4
+
5
+ on:
6
+ workflow_dispatch:
7
+ inputs:
8
+ next_version:
9
+ description: |
10
+ Next release version. Possible values: x.y.z, major, minor, patch or pre|rc|etc
11
+ required: true
12
+ default: 'skip'
13
+ push:
14
+ tags: [ v* ]
15
+
16
+ jobs:
17
+ release:
18
+ uses: relaton/support/.github/workflows/release.yml@master
19
+ with:
20
+ next_version: ${{ github.event.inputs.next_version }}
21
+ secrets:
22
+ rubygems-api-key: ${{ secrets.RELATON_CI_RUBYGEMS_API_KEY }}
data/README.adoc CHANGED
@@ -26,8 +26,8 @@ all CSRC publications (in Relaton JSON)
26
26
  Office (ISO) that contains information about all NIST Technical Publications
27
27
  (https://github.com/usnistgov/NIST-Tech-Pubs[GitHub])
28
28
 
29
- Bibliographic information offered through CSRC are provided with enhanced
30
- metadata that is not available at the NIST Library dataset, including:
29
+ Bibliographic information offered through CSRC is provided with enhanced
30
+ metadata that is not available in the NIST Library dataset, including:
31
31
 
32
32
  * public drafts (the NIST Library dataset only contains final publications)
33
33
  * revision information: revision number, iteration
@@ -37,7 +37,7 @@ metadata that is not available at the NIST Library dataset, including:
37
37
  * document relationships: supersession and replacements
38
38
  * contacts: enhanced name parts and affiliation information
39
39
 
40
- Relaton for NIST therefore uses the following order of priority for the data
40
+ Relaton for NIST, therefore, uses the following order of priority for the data
41
41
  sources:
42
42
 
43
43
  . bibliographic feed from NIST CSRC
@@ -50,7 +50,7 @@ Add this line to your application's Gemfile:
50
50
 
51
51
  [source,ruby]
52
52
  ----
53
- gem 'relaton_nist'
53
+ gem 'relaton-nist'
54
54
  ----
55
55
 
56
56
  And then execute:
@@ -68,11 +68,12 @@ Or install it yourself as:
68
68
  [source,ruby]
69
69
  ----
70
70
  require 'relaton_nist'
71
+ => true
71
72
 
72
73
  hit_collection = RelatonNist::NistBibliography.search("8200")
73
74
  => <RelatonNist::HitCollection:0x007fc069d19da0 @ref=8200 @fetched=false>
74
75
 
75
- item = hit_collection[1].fetch
76
+ item = hit_collection[1].fetch
76
77
  => #<RelatonNist::NistBibliographicItem:0x007fc049aa6778
77
78
  ...
78
79
  ----
@@ -81,52 +82,44 @@ hit_collection = RelatonNist::NistBibliography.search("8200")
81
82
  [source,ruby]
82
83
  ----
83
84
  item.to_xml
84
- => "<bibitem id="NISTIR8200(DRAFT)" type="standard">
85
- <fetched>2019-05-03</fetched>
86
- <title format="text/plain" language="en" script="Latn">
87
- Interagency Report on Status of International Cybersecurity Standardization for the Internet of Things (IoT)
88
- </title>
85
+ => "<bibitem id="SP800-160Vol.1Ver.1Rev.1" type="standard" schema-version="v1.2.1">
86
+ <fetched>2022-12-05</fetched>
87
+ <title format="text/plain" language="en" script="Latn">Engineering Trustworthy Secure Systems</title>
89
88
  ...
90
89
  <bibitem>"
91
90
  ----
92
- With argument `bibdata: true` it ouputs XML wrapped by `bibdata` element and adds flavour `ext` element.
91
+ With argument `bibdata: true` it outputs XML wrapped by `bibdata` element and adds flavor `ext` element.
93
92
  [source,ruby]
94
93
  ----
95
94
  item.to_xml bibdata: true
96
- => "<bibdata type="standard">
97
- <fetched>2019-05-17</fetched>
98
- <title format="text/plain" language="en" script="Latn">
99
- Interagency Report on Status of International Cybersecurity Standardization for the Internet of Things (IoT)
100
- </title>
101
- ...
102
- <ext>
103
- <doctype>stadard</doctype>
104
- <commentperiod>
105
- <from>2018-02-01</from>
106
- <to>2018-04-18</to>
107
- </commentperiod>
108
- </ext>
95
+ => "<bibdata type="standard" schema-version="v1.2.1">
96
+ <fetched>2022-12-05</fetched>
97
+ <title format="text/plain" language="en" script="Latn">Engineering Trustworthy Secure Systems</title>
98
+ ...
99
+ <ext schema-version="v1.0.0">
100
+ <doctype>standard</doctype>
101
+ </ext>
109
102
  </bibdata>"
110
103
  ----
111
104
 
112
105
  === Get code, and year
113
106
  [source,ruby]
114
107
  ----
115
- RelatonNist::NistBibliography.get("8200", "2018", {})
116
- [relaton-nist] ("8200") fetching...
117
- [relaton-nist] ("8200") found NISTIR 8200
118
- => #<RelatonNist::NistBibliographicItem:0x007fc06aa2b480
108
+ RelatonNist::NistBibliography.get("NIST IR 8200", "2018", {})
109
+ [relaton-nist] ("NIST IR 8200") fetching...
110
+ [relaton-nist] ("NIST IR 8200") found NIST IR 8200
111
+ => #<RelatonNist::NistBibliographicItem:0x00007fab74a572c0
119
112
  ...
120
113
  ----
121
114
 
122
115
  === Get short citation
123
- Short citation is a convetion about a citation's format. The format for NIST publications is:
116
+ A short citation is a convention about a citation's format. The format for NIST publications is:
124
117
  ----
125
118
  NIST {abbrev(series)} {docnumber} {(edition), optional} {(stage), optional}
126
119
  # or
127
120
  {abbrev(series)} {docnumber} {(edition), optional} {(stage), optional}
128
121
  ----
129
- - `(stage)` is empty if the state is "final" (published). In case state is "draft" it shoud be:
122
+ - `(stage)` is empty if the state is "final" (published). In case the state is "draft" it should be:
130
123
  * PD for public draft
131
124
  * IPD for initial iteration public draft or 2PD, 3PD and so one for following iterations
132
125
  * FPD for final public draft
@@ -159,16 +152,16 @@ Referehces can contain optional parameters `{ptN}{vN}{verN}{rN}{/Add}`:
159
152
 
160
153
  [source,ruby]
161
154
  ----
162
- item = RelatonNist::NistBibliography.get 'SP 800-67r3'
163
- [relaton-nist] ("SP 800-67r3") fetching...
164
- [relaton-nist] ("SP 800-67r3") found SP 800-67 Rev. 3
165
- => #<RelatonNist::NistBibliographicItem:0x007fd87bbe9460
155
+ item = RelatonNist::NistBibliography.get 'NIST SP 800-67r1'
156
+ [relaton-nist] ("NIST SP 800-67r1") fetching...
157
+ [relaton-nist] ("NIST SP 800-67r1") found SP 800-67 Rev. 1
158
+ => #<RelatonNist::NistBibliographicItem:0x00007fab748ae978
166
159
  ...
167
160
 
168
161
  item.docidentifier.first.id
169
- => "SP 800-67 Rev. 3"
162
+ => "SP 800-67 Rev. 1"
170
163
 
171
- RelatonNist::NistBibliography.get 'SP 800-38A/Add'
164
+ item = RelatonNist::NistBibliography.get 'SP 800-38A/Add'
172
165
  [relaton-nist] ("SP 800-38A/Add") fetching...
173
166
  [relaton-nist] ("SP 800-38A/Add") found SP 800-38A-Add
174
167
  => #<RelatonNist::NistBibliographicItem:0x007fd88c21d880
@@ -209,7 +202,7 @@ The method `RelatonNist::DataFetcher.fetch(output: "data", format: "yaml")` fetc
209
202
  Arguments:
210
203
 
211
204
  - `output` - folder to save documents (default './data').
212
- - `format` - format in which the documents are saved. Possimle formats are: `yaml`, `xml`, `bibxxml` (default `yaml`).
205
+ - `format` - the format in which the documents are saved. Possible formats are: `yaml`, `xml`, `bibxxml` (default `yaml`).
213
206
 
214
207
  [source,ruby]
215
208
  ----
@@ -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-nist.rng"/>
5
+ <start>
6
+ <choice>
7
+ <ref name="bibitem"/>
8
+ <ref name="bibdata"/>
9
+ </choice>
10
+ </start>
11
+ </grammar>
@@ -0,0 +1,70 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
+ <include href="biblio-standoc.rng">
4
+ <define name="DocumentType">
5
+ <value>standard</value>
6
+ </define>
7
+ <define name="editorialgroup">
8
+ <element name="editorialgroup">
9
+ <oneOrMore>
10
+ <ref name="committee"/>
11
+ </oneOrMore>
12
+ </element>
13
+ </define>
14
+ <define name="BibDataExtensionType">
15
+ <optional>
16
+ <attribute name="schema-version"/>
17
+ </optional>
18
+ <optional>
19
+ <ref name="doctype"/>
20
+ </optional>
21
+ <optional>
22
+ <ref name="docsubtype"/>
23
+ </optional>
24
+ <optional>
25
+ <ref name="editorialgroup"/>
26
+ </optional>
27
+ <zeroOrMore>
28
+ <ref name="ics"/>
29
+ </zeroOrMore>
30
+ <optional>
31
+ <ref name="commentperiod"/>
32
+ </optional>
33
+ </define>
34
+ </include>
35
+ <define name="DocRelationType" combine="choice">
36
+ <choice>
37
+ <value>obsoletedBy</value>
38
+ <value>supersedes</value>
39
+ <value>supersededBy</value>
40
+ </choice>
41
+ </define>
42
+ <define name="BibliographicDateType" combine="choice">
43
+ <choice>
44
+ <value>abandoned</value>
45
+ <value>superseded</value>
46
+ </choice>
47
+ </define>
48
+ <define name="commentperiod">
49
+ <element name="commentperiod">
50
+ <element name="from">
51
+ <ref name="ISO8601Date"/>
52
+ </element>
53
+ <optional>
54
+ <element name="to">
55
+ <ref name="ISO8601Date"/>
56
+ </element>
57
+ </optional>
58
+ <optional>
59
+ <element name="extended">
60
+ <ref name="ISO8601Date"/>
61
+ </element>
62
+ </optional>
63
+ </element>
64
+ </define>
65
+ <define name="committee">
66
+ <element name="committee">
67
+ <text/>
68
+ </element>
69
+ </define>
70
+ </grammar>