relaton-bipm 1.13.12 → 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: 54b7b1e3965a37d276f3a5cb7b80b8f3697e5433339a6df730ec5806dcfdce5e
4
- data.tar.gz: 9103c18317ab811ac65f19787677a4d5dc3bcbe1480be299b332b15e9a14d2b8
3
+ metadata.gz: ef29247a9577725c9ca6f7214bdf462f7893db9a81f1ba2a2fa84b36777da806
4
+ data.tar.gz: da308da1e20e3286f26a5b449dce8ceee829add7d2e993444f99682f20760b97
5
5
  SHA512:
6
- metadata.gz: e883e2ba880c5c7853a1070bad87dcc09dcfb1417a9be29905e8e201810d5faa12e79bb6176f277cdbc908098c6adc1561b32677968d5feecc7ece98da42034c
7
- data.tar.gz: ee38718ab59b03d7bd683365b640da4df602e1d3ef4ec893cbf4d413f6b04402822e9d5ccbcba7dbcc656da50cb0f503fcbe7ef31ada925a992f606715d0ce18
6
+ metadata.gz: 829c4b6d4b5606d29fe178cb2b9d1a95946a4fc5647c77d8190a6ba543ac6e19a59616019f81aa03b0955298f436879249b7fcb5bb05a94162255f4794765225
7
+ data.tar.gz: 3a32dfd8bec6296ca598e3337c407f8a37a7be844a12f222e4e95409a3f892281bdc1ee7bd3a3d8b9369bded4f2fe5136dd6cfd2ef5b10d7ddfd759420e0ef4d
data/README.adoc CHANGED
@@ -37,7 +37,7 @@ The Metrologia website employs anti-DDoS protection, which may cause the search
37
37
 
38
38
  ----
39
39
  [relaton-bipm] ("BIPM Metrologia 50 4 385") fetching...
40
- [relaton-bipm] This source employs anti-DDoS measures that unfortunately affects automated requests.
40
+ [relaton-bipm] This source employs anti-DDoS measures that unfortunately affect automated requests.
41
41
  [relaton-bipm] Please visit this link in your browser to resolve the CAPTCHA, then retry: https://iopscience.iop.org/article/10.1088/0026-1394/50/4/385
42
42
  ----
43
43
 
@@ -68,7 +68,7 @@ Allowed document names are:
68
68
  - SI Brochure
69
69
  - SI Brochure, Appendix 4
70
70
 
71
- ==== Reference structire for Metrologia documents
71
+ ==== Reference structure for Metrologia documents
72
72
 
73
73
  `BIPM Metrologia {JOURNAL} {VOLUME} {ISSUE} {PAGE}`
74
74
 
@@ -79,20 +79,100 @@ Allowed document names are:
79
79
 
80
80
  ==== Reference structures for CCTF (CCDS), CGPM, CIPM documents
81
81
 
82
- - `{BODY} {TYPE} {YEAR}-{2_DIGITS_NUMBER}`
83
- - `{BODY} {TYPE} {NUMBER} ({YEAR})` or `{BODY} {TYPE} {NUMBER} {YEAR}`
84
- - `{BODY} {TYPE} {MEETING_NUMBER}-{2_DIGITS_NUMBER}`
85
- - `{BODY} {TYPE} ({YEAR})` or `{BODY} {TYPE} {YEAR}` - in case only one Resolution/Decision/Declaration/Recommendation is available for the year
86
- - `{BODY} Meeting {MEETING_NUMBER}` or French version `{BODY} Réunion {MEETING_NUMBER}`
82
+ ===== Basic pattern
87
83
 
88
- The parts of the structures:
84
+ ----
85
+ Long: {group name} -- {type} {number} ({year})
86
+ Short: {group name} -- {type-abbrev} {number} ({year}, {lang})
87
+ ----
88
+
89
+ ===== Special case pattern
90
+
91
+ The basic pattern works fine for all, except for these 2 cases:
92
+
93
+ - Decisions of the CIPM (since 2012)
94
+ - Recommendations/Resolutions/Decisions of the JCRB
95
+
96
+ Where the committee name is part of the outcome identifier. +
97
+ Special cases:
98
+
99
+ ----
100
+ Decision CIPM/111-10 (2022) / Décision CIPM/111-10 (2022)
101
+ Recommendation JCRB/43-1 (2021) / Recommandation JCRB/43-1 (2021)
102
+ ----
103
+
104
+ ===== Single language version (English)
105
+
106
+ `type` can be:
107
+
108
+ - Resolution (RES)
109
+ - Recommendation (REC)
110
+ - Decision (DECN)
111
+ - Statement (DECL)
112
+
113
+ e.g.
114
+
115
+ ----
116
+ CCTF -- Recommendation 2 (1970)
117
+ CCTF -- REC 2 (1970, EN)
118
+ ----
119
+
120
+ Special cases:
121
+
122
+ ----
123
+ Decision CIPM/111-10 (2022)
124
+ CIPM DECN CIPM/111-10 (2022, EN)
125
+ Recommendation JCRB/43-1 (2021)
126
+ JCRB REC JCRB/43-1 (2021, EN)
127
+ ----
128
+
129
+ ===== Single language version (French)
89
130
 
90
- - `{BODY}` - could be `CCTF` (or old named `CCDS`), CGPM, or CIMP
91
- - `{TYPE}` - could be English word: `Resolution`, `Decision`, `Declaration`, `Recommendation`; or French word: `Résolution`, `Décision`, `Déclaration`, `Recommandation`
92
- - `{YEAR}` - year of Resolution/Decision/Declaration/Recommendation
93
- - `{NUMBER}` - number of Resolution/Decision/Declaration/Recommendation
94
- - `{2_DIGITS_NUMBER}` - two digits number of Resolution/Decision/Declaration/Recommendatio with lead zero if needs
95
- - `{MEETING_NUMBER}` - number of mieeting
131
+ `type` can be:
132
+
133
+ - Résolution (RES)
134
+ - Recommandation (REC)
135
+ - Décision (DECN)
136
+ - Déclaration (DECL)
137
+
138
+ e.g.
139
+
140
+ ----
141
+ CCTF -- Recommandation 2 (1970)
142
+ CCTF -- REC 2 (1970, FR)
143
+ ----
144
+
145
+ Special cases:
146
+
147
+ ----
148
+ Décision CIPM/111-10 (2022)
149
+ CIPM DECN CIPM/111-10 (2022, FR)
150
+ Recommandation JCRB/43-1 (2021)
151
+ JCRB REC JCRB/43-1 (2021, FR)
152
+ ----
153
+
154
+ ===== Dual language version (language independent version)
155
+
156
+ `type` can be in their respective languages or the following abbreviations:
157
+
158
+ - RES
159
+ - REC
160
+ - DECN
161
+ - DECL
162
+
163
+ ----
164
+ CCTF -- Recommandation 2 (1970) / Recommendation 2 (1970)
165
+ CCTF REC 2 (1970)
166
+ ----
167
+
168
+ Special cases:
169
+
170
+ ----
171
+ Decision CIPM/110-10 (2022) / Décision CIPM/111-10 (2022)
172
+ CIPM DECN CIPM/110-10 (2022)
173
+ Recommendation JCRB/43-1 (2021) / Recommandation JCRB/43-1 (2021)
174
+ JCRB REC JCRB/43-1 (2021)
175
+ ----
96
176
 
97
177
  ==== Examples
98
178
 
@@ -116,62 +196,55 @@ bib = RelatonBipm::BipmBibliography.get "BIPM Metrologia 29 6 373"
116
196
  ...
117
197
 
118
198
  # get CGPM meetings
119
- RelatonBipm::BipmBibliography.get "CGPM Meeting 1"
120
- [relaton-bipm] ("CGPM Meeting 1") fetching...
121
- [relaton-bipm] ("CGPM Meeting 1") found CGPM Meeting 1
122
- => #<RelatonBipm::BipmBibliographicItem:0x00007fd4f7cba038
199
+ RelatonBipm::BipmBibliography.get "CGPM -- Meeting 1 (1889)"
200
+ [relaton-bipm] ("CGPM -- Meeting 1 (1889)") fetching...
201
+ [relaton-bipm] ("CGPM -- Meeting 1 (1889)") found CGPM -- Meeting 1 (1889)
202
+ => #<RelatonBipm::BipmBibliographicItem:0x00007f7fd02aba28
123
203
  ...
124
204
 
125
205
  # get CGPM resolutions
126
- RelatonBipm::BipmBibliography.get "CGPM Resolution 1889-00"
127
- [relaton-bipm] ("CGPM Resolution 1889-00") fetching...
128
- [relaton-bipm] ("CGPM Resolution 1889-00") found CGPM Resolution (1889)
129
- => #<RelatonBipm::BipmBibliographicItem:0x00007ff0d1ffae50
206
+ RelatonBipm::BipmBibliography.get "CGPM -- RES (1889, EN)"
207
+ [relaton-bipm] ("CGPM -- RES (1889, EN)") fetching...
208
+ [relaton-bipm] ("CGPM -- RES (1889, EN)") found CGPM -- Resolution (1889)
209
+ => #<RelatonBipm::BipmBibliographicItem:0x00007f80421f93d8
130
210
  ...
131
211
 
132
- RelatonBipm::BipmBibliography.get "CGPM Resolution (1889)"
133
- [relaton-bipm] ("CGPM Resolution (1889)") fetching...
134
- [relaton-bipm] ("CGPM Resolution (1889)") found CGPM Resolution (1889)
135
- => #<RelatonBipm::BipmBibliographicItem:0x00007ff0d1ffae50
212
+ RelatonBipm::BipmBibliography.get "CGPM -- Resolution (1889)"
213
+ [relaton-bipm] ("CGPM -- Resolution (1889)") fetching...
214
+ [relaton-bipm] ("CGPM -- Resolution (1889)") found CGPM -- Resolution (1889)
215
+ => #<RelatonBipm::BipmBibliographicItem:0x00007f8017f60c18
136
216
  ...
137
217
 
138
- RelatonBipm::BipmBibliography.get "CGPM Resolution 1889"
139
- [relaton-bipm] ("CGPM Resolution 1889") fetching...
140
- [relaton-bipm] ("CGPM Resolution 1889") found CGPM Resolution (1889)
141
- => #<RelatonBipm::BipmBibliographicItem:0x00007ff0d1ffae50
218
+ RelatonBipm::BipmBibliography.get "CGPM -- Résolution (1889)"
219
+ [relaton-bipm] ("CGPM -- Résolution (1889)") fetching...
220
+ [relaton-bipm] ("CGPM -- Résolution (1889)") found CGPM -- Resolution (1889)
221
+ => #<RelatonBipm::BipmBibliographicItem:0x00007f8017f492e8
142
222
  ...
143
223
 
144
224
  # get CIPM decision by year and decision number
145
- RelatonBipm::BipmBibliography.get "CIPM Decision 2012-01"
146
- [relaton-bipm] ("CIPM Decision 2012-01") fetching...
147
- [relaton-bipm] ("CIPM Decision 2012-01") found CIPM Decision 1 (2012)
148
- => #<RelatonBipm::BipmBibliographicItem:0x00007ff0f10dc548
149
- ...
150
-
151
- RelatonBipm::BipmBibliography.get "CIPM Decision 1 (2012)"
152
- [relaton-bipm] ("CIPM Decision 1 (2012)") fetching...
153
- [relaton-bipm] ("CIPM Decision 1 (2012)") found CIPM Decision 1 (2012)
154
- => #<RelatonBipm::BipmBibliographicItem:0x00007fb6b9bbec08
225
+ RelatonBipm::BipmBibliography.get "BIPM Decision CIPM/101-1 (2012)"
226
+ [relaton-bipm] ("BIPM Decision CIPM/101-1 (2012)") fetching...
227
+ [relaton-bipm] ("BIPM Decision CIPM/101-1 (2012)") found Decision CIPM/101-1 (2012)
228
+ => #<RelatonBipm::BipmBibliographicItem:0x00007f8017f2bd88
155
229
  ...
156
230
 
157
- # get CIPM decision by meeting number and decision number
158
- RelatonBipm::BipmBibliography.get "CIPM Decision 101-01"
159
- [relaton-bipm] ("CIPM Decision 101-01") fetching...
160
- [relaton-bipm] ("CIPM Decision 101-01") found CIPM Decision 1 (2012)
161
- => #<RelatonBipm::BipmBibliographicItem:0x00007f9ef2acc400
231
+ RelatonBipm::BipmBibliography.get "BIPM DECN CIPM/101-1 (2012, EN)"
232
+ [relaton-bipm] ("BIPM DECN CIPM/101-1 (2012, EN)") fetching...
233
+ [relaton-bipm] ("BIPM DECN CIPM/101-1 (2012, EN)") found Decision CIPM/101-1 (2012)
234
+ => #<RelatonBipm::BipmBibliographicItem:0x00007f8017f39438
162
235
  ...
163
236
 
164
237
  # get CIPM recommendation
165
- RelatonBipm::BipmBibliography.get "CIPM Recommendation (1948)"
166
- [relaton-bipm] ("CIPM Recommendation (1948)") fetching...
167
- [relaton-bipm] ("CIPM Recommendation (1948)") found CIPM Recommendation (1948)
168
- => #<RelatonBipm::BipmBibliographicItem:0x00007ff0a18a6aa8
238
+ RelatonBipm::BipmBibliography.get "CIPM -- Recommendation 1 (2005)"
239
+ [relaton-bipm] ("CIPM -- Recommendation 1 (2005)") fetching...
240
+ [relaton-bipm] ("CIPM -- Recommendation 1 (2005)") found CIPM -- Recommendation 1 (2005)
241
+ => #<RelatonBipm::BipmBibliographicItem:0x00007f8017f31da0
169
242
  ...
170
243
 
171
- RelatonBipm::BipmBibliography.get "CIPM Recommendation 1948"
172
- [relaton-bipm] ("CIPM Recommendation 1948") fetching...
173
- [relaton-bipm] ("CIPM Recommendation 1948") found CIPM Recommendation (1948)
174
- => #<RelatonBipm::BipmBibliographicItem:0x00007ff0f1164150
244
+ RelatonBipm::BipmBibliography.get "CIPM -- REC 1 (2005, FR)"
245
+ [relaton-bipm] ("CIPM -- REC 1 (2005, FR)") fetching...
246
+ [relaton-bipm] ("CIPM -- REC 1 (2005, FR)") found CIPM -- Recommendation 1 (2005)
247
+ => #<RelatonBipm::BipmBibliographicItem:0x00007f80422100d8
175
248
  ...
176
249
  ----
177
250
 
@@ -180,65 +253,40 @@ RelatonBipm::BipmBibliography.get "CIPM Recommendation 1948"
180
253
  [source,ruby]
181
254
  ----
182
255
  item.to_xml
183
- => "<bibitem id="BIPMSIBrochure" type="standard">
184
- <fetched>2021-01-10</fetched>
185
- <title format="text/plain" language="en" script="Latn">The International System of Units (SI)</title>
186
- <title format="text/plain" language="fr" script="Latn">Le Système international d’unités (SI)</title>
187
- <uri type="src">https://www.bipm.org/en/publications/si-brochure</uri>
188
- <docidentifier type="BIPM">BIPM SI Brochure</docidentifier>
189
- <date type="updated">
190
- <on>2019-05-20</on>
191
- </date>
192
- <edition>9</edition>
193
- <abstract format="text/plain" language="en" script="Latn">The BIPM and the Metre Convention</abstract>
194
- <abstract format="text/plain" language="fr" script="Latn">Le BIPM et la Convention du Mètre</abstract>
195
- <copyright>
196
- <from>2019</from>
197
- <owner>
198
- <organization>
199
- <name>Bureau International des ponds et mesures</name>
200
- <abbreviation>BIPM</abbreviation>
201
- </organization>
202
- </owner>
203
- </copyright>
256
+ => "<bibitem id="BIPMSIBrochure" type="standard" schema-version="v1.2.1">
257
+ <fetched>2022-12-02</fetched>
258
+ <title type="main" format="text/plain" language="en">The International System of Units</title>
259
+ <title type="cover" format="text/plain" language="en">The International System of Units (SI)</title>
260
+ <title type="main" format="text/plain" language="fr">Le Système international d’unités</title>
261
+ <title type="cover" format="text/plain" language="fr">Le Système international d’unités (SI)</title>
262
+ <docidentifier type="BIPM" primary="true">BIPM SI Brochure</docidentifier>
263
+ ...
204
264
  </bibitem>"
205
265
  ----
206
266
 
207
- With argument `bibdata: true` it ouputs XML wrapped by `bibdata` element and adds flavour `ext` element.
267
+ With argument `bibdata: true` it outputs XML wrapped by `bibdata` element and adds flavor `ext` element.
208
268
 
209
269
  [source,ruby]
210
270
  ----
211
271
  item.to_xml bibdata: true
212
- => "<bibdata type="standard">
213
- <fetched>2021-01-10</fetched>
214
- <title format="text/plain" language="en" script="Latn">The International System of Units (SI)</title>
215
- <title format="text/plain" language="fr" script="Latn">Le Système international d’unités (SI)</title>
216
- <uri type="src">https://www.bipm.org/en/publications/si-brochure</uri>
217
- <docidentifier type="BIPM">BIPM SI Brochure</docidentifier>
218
- <date type="updated">
219
- <on>2019-05-20</on>
220
- </date>
221
- <edition>9</edition>
222
- <abstract format="text/plain" language="en" script="Latn">The BIPM and the Metre Convention</abstract>
223
- <abstract format="text/plain" language="fr" script="Latn">Le BIPM et la Convention du Mètre</abstract>
224
- <copyright>
225
- <from>2019</from>
226
- <owner>
227
- <organization>
228
- <name>Bureau International des ponds et mesures</name>
229
- <abbreviation>BIPM</abbreviation>
230
- </organization>
231
- </owner>
232
- </copyright>
233
- <ext>
272
+ => "<bibdata type="standard" schema-version="v1.2.1">
273
+ <fetched>2022-12-02</fetched>
274
+ <title type="main" format="text/plain" language="en">The International System of Units</title>
275
+ <title type="cover" format="text/plain" language="en">The International System of Units (SI)</title>
276
+ <title type="main" format="text/plain" language="fr">Le Système international d’unités</title>
277
+ <title type="cover" format="text/plain" language="fr">Le Système international d’unités (SI)</title>
278
+ <docidentifier type="BIPM" primary="true">BIPM SI Brochure</docidentifier>
279
+ ...
280
+ <ext schema-version="v1.0.0">
234
281
  <doctype>brochure</doctype>
282
+ ...
235
283
  </ext>
236
284
  </bibdata>"
237
285
  ----
238
286
 
239
287
  === Typed links
240
288
 
241
- Each BIPM document has `src` type link and optional `doi` type link.
289
+ Each BIPM document has `src` type link and an optional `doi` type link.
242
290
 
243
291
  [source,ruby]
244
292
  ----
@@ -270,16 +318,16 @@ RelatonBipm::BipmBibliographicItem.from_hash hash
270
318
 
271
319
  === Fetch data
272
320
 
273
- This gem uses following datasets as data sources:
274
- - `bipm-data-outcomes` - looking for local directory with the repository https://github.com/metanorma/bipm-data-outcomes
275
- - `bipm-si-brochute` - looking for local directory with the repository https://github.com/metanorma/bipm-si-brochure
321
+ This gem uses the following datasets as data sources:
322
+ - `bipm-data-outcomes` - looking for a local directory with the repository https://github.com/metanorma/bipm-data-outcomes
323
+ - `bipm-si-brochute` - looking for a local directory with the repository https://github.com/metanorma/bipm-si-brochure
276
324
 
277
- The method `RelatonBipm::DataFetcher.fetch(sourece, output: "data", format: "yaml")` fetches all the documents from the datast and save them to the `./data` folder in YAML format.
325
+ The method `RelatonBipm::DataFetcher.fetch(source, output: "data", format: "yaml")` fetches all the documents from the dataset and saves them to the `./data` folder in YAML format.
278
326
  Arguments:
279
327
 
280
- - `source` - name of the source dataset
328
+ - `source` - the name of the source dataset
281
329
  - `output` - folder to save documents (default './data').
282
- - `format` - format in which the documents are saved. Possimle formats are: `yaml`, `xml`, `bibxxml` (default `yaml`).
330
+ - `format` - the format in which the documents are saved. Possible formats are: `yaml`, `xml`, `bibxxml` (default `yaml`).
283
331
 
284
332
  [source,ruby]
285
333
  ----
@@ -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>