relaton-gb 1.0.0 → 1.3.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: 5c8881c66b2a0b4eb2ba511988cd00d42d056e53bbf9001327af6d98cd72bb6c
4
- data.tar.gz: 04ebe30f467ba5d667a04a9186c69e3a1a593a4792d63ee10915959b80884267
3
+ metadata.gz: 272eba99fd1d47cd23a6cd3c6bef9e9f4ee9da3b92f67609a36125829ca3177c
4
+ data.tar.gz: ea2242879a194e9660662407fb35dd5cb7024b5b107c93b5c88fea24a67539b1
5
5
  SHA512:
6
- metadata.gz: 62399e3df8996206f682b7d5b0a81387dc71aa5121033f4ee1374d470808dc0d166b00f6b7339494d2966d2b2646383991b62ff1ff20d421641cdca4cf89f251
7
- data.tar.gz: 232c19d3f34bdfb938dacc2325a640850a93e24f8c9cd7eb5e42e2f6b4d8810aafa9bb66b4b386996b22d722ad2e1e22e1c713be55aa5021f2b9fd05449ecfdc
6
+ metadata.gz: 1c94507bc12aed5456d3a4cc886f1fec4285e06b2446a75098c7842ddb018526ea619557fbda8641b41fd22a43ea0bea9167d71902085295071fc2de2a7eb402
7
+ data.tar.gz: 4cfa54290c430b6a10156017862e0730b29f743f673bb265226c5e628747592f2f0465f648c63c4a21a26ce2e2eb1c280eb8466c9c6c9de2d53443dfa0cc8a97
@@ -29,4 +29,5 @@ jobs:
29
29
  bundle install --jobs 4 --retry 3
30
30
  - name: Run specs
31
31
  run: |
32
+ unset JAVA_TOOL_OPTIONS
32
33
  bundle exec rake
@@ -5,6 +5,6 @@
5
5
  inherit_from:
6
6
  - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
7
7
  AllCops:
8
- TargetRubyVersion: 2.3
8
+ TargetRubyVersion: 2.4
9
9
  Rails:
10
- Enabled: true
10
+ Enabled: false
@@ -88,7 +88,7 @@
88
88
  <text/>
89
89
  </element>
90
90
  </define>
91
- <define name="LocalizedString">
91
+ <define name="LocalizedString1">
92
92
  <optional>
93
93
  <!-- multiple languages and scripts possible: comma delimit them if so -->
94
94
  <attribute name="language"/>
@@ -98,6 +98,16 @@
98
98
  </optional>
99
99
  <text/>
100
100
  </define>
101
+ <define name="LocalizedString">
102
+ <choice>
103
+ <ref name="LocalizedString1"/>
104
+ <oneOrMore>
105
+ <element name="variant">
106
+ <ref name="LocalizedString1"/>
107
+ </element>
108
+ </oneOrMore>
109
+ </choice>
110
+ </define>
101
111
  <!--
102
112
  Unlike UML, change type to format: type is overloaded
103
113
  Would be need if plain were default value and could omit the attribute
@@ -121,7 +131,7 @@
121
131
  </optional>
122
132
  <ref name="LocalizedStringOrXsAny"/>
123
133
  </define>
124
- <define name="LocalizedStringOrXsAny">
134
+ <define name="LocalizedStringOrXsAny1">
125
135
  <optional>
126
136
  <!-- multiple languages and scripts possible: comma delimit them if so -->
127
137
  <attribute name="language"/>
@@ -136,6 +146,16 @@
136
146
  </choice>
137
147
  </oneOrMore>
138
148
  </define>
149
+ <define name="LocalizedStringOrXsAny">
150
+ <choice>
151
+ <ref name="LocalizedStringOrXsAny1"/>
152
+ <oneOrMore>
153
+ <element name="variant">
154
+ <ref name="LocalizedStringOrXsAny1"/>
155
+ </element>
156
+ </oneOrMore>
157
+ </choice>
158
+ </define>
139
159
  <define name="contributor">
140
160
  <element name="contributor">
141
161
  <zeroOrMore>
@@ -512,7 +532,7 @@
512
532
  </define>
513
533
  <define name="LocalityType">
514
534
  <data type="string">
515
- <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|locality:[a-zA-Z0-9_]+</param>
535
+ <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|anchor|locality:[a-zA-Z0-9_]+</param>
516
536
  </data>
517
537
  </define>
518
538
  <define name="referenceFrom">
@@ -641,9 +661,9 @@
641
661
  <optional>
642
662
  <ref name="status"/>
643
663
  </optional>
644
- <optional>
664
+ <zeroOrMore>
645
665
  <ref name="copyright"/>
646
- </optional>
666
+ </zeroOrMore>
647
667
  <zeroOrMore>
648
668
  <ref name="docrelation"/>
649
669
  </zeroOrMore>
@@ -767,6 +787,8 @@
767
787
  <value>unchanged</value>
768
788
  <value>circulated</value>
769
789
  <value>adapted</value>
790
+ <value>vote-started</value>
791
+ <value>vote-ended</value>
770
792
  </choice>
771
793
  </define>
772
794
  <define name="bdate">
@@ -999,7 +1021,17 @@
999
1021
  <optional>
1000
1022
  <ref name="to"/>
1001
1023
  </optional>
1002
- <ref name="owner"/>
1024
+ <oneOrMore>
1025
+ <ref name="owner"/>
1026
+ </oneOrMore>
1027
+ <optional>
1028
+ <ref name="copyright_scope"/>
1029
+ </optional>
1030
+ </element>
1031
+ </define>
1032
+ <define name="copyright_scope">
1033
+ <element name="scope">
1034
+ <text/>
1003
1035
  </element>
1004
1036
  </define>
1005
1037
  <define name="from">
@@ -1019,38 +1051,63 @@
1019
1051
  </define>
1020
1052
  <define name="DocRelationType">
1021
1053
  <choice>
1022
- <value>obsoletes</value>
1023
- <value>obsoletedBy</value>
1024
- <value>supersedes</value>
1025
- <value>supersededBy</value>
1026
- <value>updates</value>
1027
- <value>updatedBy</value>
1028
- <value>complements</value>
1029
- <value>derivedFrom</value>
1030
- <value>translatedFrom</value>
1031
- <value>hasTranslation</value>
1032
- <value>adoptedFrom</value>
1033
- <value>equivalent</value>
1034
- <value>identical</value>
1035
- <value>nonequivalent</value>
1036
- <value>includedIn</value>
1037
1054
  <value>includes</value>
1038
- <value>instance</value>
1039
- <value>instanceOf</value>
1040
- <value>partOf</value>
1055
+ <value>includedIn</value>
1041
1056
  <value>hasPart</value>
1042
- <value>hasDraft</value>
1043
- <value>draftOf</value>
1057
+ <value>partOf</value>
1044
1058
  <value>merges</value>
1059
+ <value>mergedInto</value>
1045
1060
  <value>splits</value>
1046
- <value>amends</value>
1047
- <value>amendedBy</value>
1048
- <value>corrects</value>
1049
- <value>correctedBy</value>
1050
- <value>revises</value>
1051
- <value>revisedBy</value>
1061
+ <value>splitInto</value>
1062
+ <value>instance</value>
1063
+ <value>hasInstance</value>
1064
+ <value>exemplarOf</value>
1065
+ <value>hasExemplar</value>
1066
+ <value>manifestationOf</value>
1067
+ <value>hasManifestation</value>
1068
+ <value>reproductionOf</value>
1069
+ <value>hasReproduction</value>
1070
+ <value>reprintOf</value>
1071
+ <value>hasReprint</value>
1072
+ <value>expressionOf</value>
1073
+ <value>hasExpression</value>
1074
+ <value>translatedFrom</value>
1075
+ <value>hasTranslation</value>
1076
+ <value>arrangementOf</value>
1077
+ <value>hasArrangement</value>
1078
+ <value>abridgementOf</value>
1079
+ <value>hasAbridgement</value>
1080
+ <value>annotationOf</value>
1081
+ <value>hasAnnotation</value>
1082
+ <value>draftOf</value>
1083
+ <value>hasDraft</value>
1084
+ <value>editionOf</value>
1085
+ <value>hasEdition</value>
1086
+ <value>updates</value>
1087
+ <value>updatedBy</value>
1088
+ <value>derivedFrom</value>
1089
+ <value>derives</value>
1052
1090
  <value>describes</value>
1053
1091
  <value>describedBy</value>
1092
+ <value>catalogues</value>
1093
+ <value>cataloguedBy</value>
1094
+ <value>hasSuccessor</value>
1095
+ <value>successorOf</value>
1096
+ <value>adaptedFrom</value>
1097
+ <value>hasAdaptation</value>
1098
+ <value>adoptedFrom</value>
1099
+ <value>adoptedAs</value>
1100
+ <value>reviewOf</value>
1101
+ <value>hasReview</value>
1102
+ <value>commentaryOf</value>
1103
+ <value>hasCommentary</value>
1104
+ <value>related</value>
1105
+ <value>complements</value>
1106
+ <value>complementOf</value>
1107
+ <value>obsoletes</value>
1108
+ <value>obsoletedBy</value>
1109
+ <value>cited</value>
1110
+ <value>isCitedIn</value>
1054
1111
  </choice>
1055
1112
  </define>
1056
1113
  <define name="docrelation">
@@ -53,9 +53,96 @@
53
53
  <optional>
54
54
  <attribute name="alt"/>
55
55
  </optional>
56
+ <optional>
57
+ <attribute name="case">
58
+ <choice>
59
+ <value>capital</value>
60
+ <value>lowercase</value>
61
+ </choice>
62
+ </attribute>
63
+ </optional>
56
64
  <text/>
57
65
  </element>
58
66
  </define>
67
+ <define name="ul">
68
+ <element name="ul">
69
+ <attribute name="id">
70
+ <data type="ID"/>
71
+ </attribute>
72
+ <optional>
73
+ <attribute name="keep-with-next">
74
+ <data type="boolean"/>
75
+ </attribute>
76
+ </optional>
77
+ <optional>
78
+ <attribute name="keep-lines-together">
79
+ <data type="boolean"/>
80
+ </attribute>
81
+ </optional>
82
+ <oneOrMore>
83
+ <ref name="li"/>
84
+ </oneOrMore>
85
+ <zeroOrMore>
86
+ <ref name="note"/>
87
+ </zeroOrMore>
88
+ </element>
89
+ </define>
90
+ <define name="ol">
91
+ <element name="ol">
92
+ <attribute name="id">
93
+ <data type="ID"/>
94
+ </attribute>
95
+ <optional>
96
+ <attribute name="keep-with-next">
97
+ <data type="boolean"/>
98
+ </attribute>
99
+ </optional>
100
+ <optional>
101
+ <attribute name="keep-lines-together">
102
+ <data type="boolean"/>
103
+ </attribute>
104
+ </optional>
105
+ <attribute name="type">
106
+ <choice>
107
+ <value>roman</value>
108
+ <value>alphabet</value>
109
+ <value>arabic</value>
110
+ <value>roman_upper</value>
111
+ <value>alphabet_upper</value>
112
+ </choice>
113
+ </attribute>
114
+ <oneOrMore>
115
+ <ref name="li"/>
116
+ </oneOrMore>
117
+ <zeroOrMore>
118
+ <ref name="note"/>
119
+ </zeroOrMore>
120
+ </element>
121
+ </define>
122
+ <define name="dl">
123
+ <element name="dl">
124
+ <attribute name="id">
125
+ <data type="ID"/>
126
+ </attribute>
127
+ <optional>
128
+ <attribute name="keep-with-next">
129
+ <data type="boolean"/>
130
+ </attribute>
131
+ </optional>
132
+ <optional>
133
+ <attribute name="keep-lines-together">
134
+ <data type="boolean"/>
135
+ </attribute>
136
+ </optional>
137
+ <oneOrMore>
138
+ <ref name="dt"/>
139
+ <ref name="dd"/>
140
+ </oneOrMore>
141
+ <zeroOrMore>
142
+ <ref name="note"/>
143
+ </zeroOrMore>
144
+ </element>
145
+ </define>
59
146
  <define name="example">
60
147
  <element name="example">
61
148
  <attribute name="id">
@@ -69,6 +156,19 @@
69
156
  <optional>
70
157
  <attribute name="subsequence"/>
71
158
  </optional>
159
+ <optional>
160
+ <attribute name="number"/>
161
+ </optional>
162
+ <optional>
163
+ <attribute name="keep-with-next">
164
+ <data type="boolean"/>
165
+ </attribute>
166
+ </optional>
167
+ <optional>
168
+ <attribute name="keep-lines-together">
169
+ <data type="boolean"/>
170
+ </attribute>
171
+ </optional>
72
172
  <optional>
73
173
  <ref name="tname"/>
74
174
  </optional>
@@ -89,6 +189,296 @@
89
189
  </zeroOrMore>
90
190
  </element>
91
191
  </define>
192
+ <define name="table">
193
+ <element name="table">
194
+ <attribute name="id">
195
+ <data type="ID"/>
196
+ </attribute>
197
+ <optional>
198
+ <attribute name="unnumbered">
199
+ <data type="boolean"/>
200
+ </attribute>
201
+ </optional>
202
+ <optional>
203
+ <attribute name="number"/>
204
+ </optional>
205
+ <optional>
206
+ <attribute name="subsequence"/>
207
+ </optional>
208
+ <optional>
209
+ <attribute name="alt"/>
210
+ </optional>
211
+ <optional>
212
+ <attribute name="summary"/>
213
+ </optional>
214
+ <optional>
215
+ <attribute name="uri">
216
+ <data type="anyURI"/>
217
+ </attribute>
218
+ </optional>
219
+ <optional>
220
+ <attribute name="keep-with-next">
221
+ <data type="boolean"/>
222
+ </attribute>
223
+ </optional>
224
+ <optional>
225
+ <attribute name="keep-lines-together">
226
+ <data type="boolean"/>
227
+ </attribute>
228
+ </optional>
229
+ <optional>
230
+ <ref name="tname"/>
231
+ </optional>
232
+ <optional>
233
+ <ref name="thead"/>
234
+ </optional>
235
+ <ref name="tbody"/>
236
+ <optional>
237
+ <ref name="tfoot"/>
238
+ </optional>
239
+ <zeroOrMore>
240
+ <ref name="table-note"/>
241
+ </zeroOrMore>
242
+ <optional>
243
+ <ref name="dl"/>
244
+ </optional>
245
+ </element>
246
+ </define>
247
+ <define name="figure">
248
+ <element name="figure">
249
+ <attribute name="id">
250
+ <data type="ID"/>
251
+ </attribute>
252
+ <optional>
253
+ <attribute name="unnumbered">
254
+ <data type="boolean"/>
255
+ </attribute>
256
+ </optional>
257
+ <optional>
258
+ <attribute name="number"/>
259
+ </optional>
260
+ <optional>
261
+ <attribute name="subsequence"/>
262
+ </optional>
263
+ <optional>
264
+ <attribute name="keep-with-next">
265
+ <data type="boolean"/>
266
+ </attribute>
267
+ </optional>
268
+ <optional>
269
+ <attribute name="keep-lines-together">
270
+ <data type="boolean"/>
271
+ </attribute>
272
+ </optional>
273
+ <optional>
274
+ <attribute name="class"/>
275
+ </optional>
276
+ <optional>
277
+ <ref name="source"/>
278
+ </optional>
279
+ <optional>
280
+ <ref name="tname"/>
281
+ </optional>
282
+ <choice>
283
+ <ref name="image"/>
284
+ <ref name="video"/>
285
+ <ref name="audio"/>
286
+ <ref name="pre"/>
287
+ <oneOrMore>
288
+ <ref name="paragraph-with-footnote"/>
289
+ </oneOrMore>
290
+ <zeroOrMore>
291
+ <ref name="figure"/>
292
+ </zeroOrMore>
293
+ </choice>
294
+ <zeroOrMore>
295
+ <ref name="fn"/>
296
+ </zeroOrMore>
297
+ <optional>
298
+ <ref name="dl"/>
299
+ </optional>
300
+ <zeroOrMore>
301
+ <ref name="note"/>
302
+ </zeroOrMore>
303
+ </element>
304
+ </define>
305
+ <define name="sourcecode">
306
+ <element name="sourcecode">
307
+ <attribute name="id">
308
+ <data type="ID"/>
309
+ </attribute>
310
+ <optional>
311
+ <attribute name="unnumbered">
312
+ <data type="boolean"/>
313
+ </attribute>
314
+ </optional>
315
+ <optional>
316
+ <attribute name="number"/>
317
+ </optional>
318
+ <optional>
319
+ <attribute name="subsequence"/>
320
+ </optional>
321
+ <optional>
322
+ <attribute name="keep-with-next">
323
+ <data type="boolean"/>
324
+ </attribute>
325
+ </optional>
326
+ <optional>
327
+ <attribute name="keep-lines-together">
328
+ <data type="boolean"/>
329
+ </attribute>
330
+ </optional>
331
+ <optional>
332
+ <attribute name="lang"/>
333
+ </optional>
334
+ <optional>
335
+ <ref name="tname"/>
336
+ </optional>
337
+ <oneOrMore>
338
+ <choice>
339
+ <text/>
340
+ <ref name="callout"/>
341
+ </choice>
342
+ </oneOrMore>
343
+ <zeroOrMore>
344
+ <ref name="annotation"/>
345
+ </zeroOrMore>
346
+ <zeroOrMore>
347
+ <ref name="note"/>
348
+ </zeroOrMore>
349
+ </element>
350
+ </define>
351
+ <define name="formula">
352
+ <element name="formula">
353
+ <attribute name="id">
354
+ <data type="ID"/>
355
+ </attribute>
356
+ <optional>
357
+ <attribute name="unnumbered">
358
+ <data type="boolean"/>
359
+ </attribute>
360
+ </optional>
361
+ <optional>
362
+ <attribute name="number"/>
363
+ </optional>
364
+ <optional>
365
+ <attribute name="subsequence"/>
366
+ </optional>
367
+ <optional>
368
+ <attribute name="keep-with-next">
369
+ <data type="boolean"/>
370
+ </attribute>
371
+ </optional>
372
+ <optional>
373
+ <attribute name="keep-lines-together">
374
+ <data type="boolean"/>
375
+ </attribute>
376
+ </optional>
377
+ <optional>
378
+ <attribute name="inequality">
379
+ <data type="boolean"/>
380
+ </attribute>
381
+ </optional>
382
+ <ref name="stem"/>
383
+ <optional>
384
+ <ref name="dl"/>
385
+ </optional>
386
+ <zeroOrMore>
387
+ <ref name="note"/>
388
+ </zeroOrMore>
389
+ </element>
390
+ </define>
391
+ <define name="ParagraphType">
392
+ <attribute name="id">
393
+ <data type="ID"/>
394
+ </attribute>
395
+ <optional>
396
+ <attribute name="align">
397
+ <ref name="Alignments"/>
398
+ </attribute>
399
+ </optional>
400
+ <optional>
401
+ <attribute name="keep-with-next">
402
+ <data type="boolean"/>
403
+ </attribute>
404
+ </optional>
405
+ <optional>
406
+ <attribute name="keep-lines-together">
407
+ <data type="boolean"/>
408
+ </attribute>
409
+ </optional>
410
+ <zeroOrMore>
411
+ <ref name="TextElement"/>
412
+ </zeroOrMore>
413
+ <zeroOrMore>
414
+ <ref name="note"/>
415
+ </zeroOrMore>
416
+ </define>
417
+ <define name="paragraph-with-footnote">
418
+ <element name="p">
419
+ <attribute name="id">
420
+ <data type="ID"/>
421
+ </attribute>
422
+ <optional>
423
+ <attribute name="align">
424
+ <ref name="Alignments"/>
425
+ </attribute>
426
+ </optional>
427
+ <optional>
428
+ <attribute name="keep-with-next">
429
+ <data type="boolean"/>
430
+ </attribute>
431
+ </optional>
432
+ <optional>
433
+ <attribute name="keep-lines-together">
434
+ <data type="boolean"/>
435
+ </attribute>
436
+ </optional>
437
+ <zeroOrMore>
438
+ <choice>
439
+ <ref name="TextElement"/>
440
+ <ref name="fn"/>
441
+ </choice>
442
+ </zeroOrMore>
443
+ <zeroOrMore>
444
+ <ref name="note"/>
445
+ </zeroOrMore>
446
+ </element>
447
+ </define>
448
+ <define name="quote">
449
+ <element name="quote">
450
+ <attribute name="id">
451
+ <data type="ID"/>
452
+ </attribute>
453
+ <optional>
454
+ <attribute name="alignment">
455
+ <ref name="Alignments"/>
456
+ </attribute>
457
+ </optional>
458
+ <optional>
459
+ <attribute name="keep-with-next">
460
+ <data type="boolean"/>
461
+ </attribute>
462
+ </optional>
463
+ <optional>
464
+ <attribute name="keep-lines-together">
465
+ <data type="boolean"/>
466
+ </attribute>
467
+ </optional>
468
+ <optional>
469
+ <ref name="quote-source"/>
470
+ </optional>
471
+ <optional>
472
+ <ref name="quote-author"/>
473
+ </optional>
474
+ <oneOrMore>
475
+ <ref name="paragraph-with-footnote"/>
476
+ </oneOrMore>
477
+ <zeroOrMore>
478
+ <ref name="note"/>
479
+ </zeroOrMore>
480
+ </element>
481
+ </define>
92
482
  <define name="BibDataExtensionType">
93
483
  <ref name="doctype"/>
94
484
  <optional>
@@ -129,6 +519,9 @@
129
519
  </choice>
130
520
  </attribute>
131
521
  </optional>
522
+ <attribute name="normative">
523
+ <data type="boolean"/>
524
+ </attribute>
132
525
  <optional>
133
526
  <ref name="section-title"/>
134
527
  </optional>
@@ -154,6 +547,30 @@
154
547
  <attribute name="id">
155
548
  <data type="ID"/>
156
549
  </attribute>
550
+ <optional>
551
+ <attribute name="unnumbered">
552
+ <data type="boolean"/>
553
+ </attribute>
554
+ </optional>
555
+ <optional>
556
+ <attribute name="number"/>
557
+ </optional>
558
+ <optional>
559
+ <attribute name="subsequence"/>
560
+ </optional>
561
+ <optional>
562
+ <attribute name="keep-with-next">
563
+ <data type="boolean"/>
564
+ </attribute>
565
+ </optional>
566
+ <optional>
567
+ <attribute name="keep-lines-together">
568
+ <data type="boolean"/>
569
+ </attribute>
570
+ </optional>
571
+ <optional>
572
+ <attribute name="type"/>
573
+ </optional>
157
574
  <oneOrMore>
158
575
  <choice>
159
576
  <ref name="paragraph"/>
@@ -303,11 +720,11 @@
303
720
  <ref name="paragraph"/>
304
721
  </element>
305
722
  </define>
306
- <define name="TextElement" combine="choice">
307
- <ref name="concept"/>
308
- </define>
309
723
  </include>
310
724
  <!-- end overrides -->
725
+ <define name="TextElement" combine="choice">
726
+ <ref name="concept"/>
727
+ </define>
311
728
  <define name="concept">
312
729
  <element name="concept">
313
730
  <optional>
@@ -899,7 +1316,36 @@
899
1316
  <attribute name="id">
900
1317
  <data type="ID"/>
901
1318
  </attribute>
902
- <ref name="paragraph"/>
1319
+ <optional>
1320
+ <attribute name="unnumbered">
1321
+ <data type="boolean"/>
1322
+ </attribute>
1323
+ </optional>
1324
+ <optional>
1325
+ <attribute name="number"/>
1326
+ </optional>
1327
+ <optional>
1328
+ <attribute name="subsequence"/>
1329
+ </optional>
1330
+ <optional>
1331
+ <attribute name="keep-with-next">
1332
+ <data type="boolean"/>
1333
+ </attribute>
1334
+ </optional>
1335
+ <optional>
1336
+ <attribute name="keep-lines-together">
1337
+ <data type="boolean"/>
1338
+ </attribute>
1339
+ </optional>
1340
+ <oneOrMore>
1341
+ <choice>
1342
+ <ref name="paragraph"/>
1343
+ <ref name="ul"/>
1344
+ <ref name="ol"/>
1345
+ <ref name="dl"/>
1346
+ <ref name="formula"/>
1347
+ </choice>
1348
+ </oneOrMore>
903
1349
  </element>
904
1350
  </define>
905
1351
  <define name="termexample">
@@ -91,6 +91,12 @@
91
91
  </define>
92
92
  <define name="sections">
93
93
  <element name="sections">
94
+ <zeroOrMore>
95
+ <choice>
96
+ <ref name="note"/>
97
+ <ref name="admonition"/>
98
+ </choice>
99
+ </zeroOrMore>
94
100
  <ref name="clause"/>
95
101
  <optional>
96
102
  <choice>
@@ -263,6 +269,8 @@
263
269
  <value>publicly-available-specification</value>
264
270
  <value>international-workshop-agreement</value>
265
271
  <value>guide</value>
272
+ <value>amendment</value>
273
+ <value>technical-corrigendum</value>
266
274
  </choice>
267
275
  </define>
268
276
  <define name="structuredidentifier">
@@ -354,6 +362,9 @@
354
362
  <data type="boolean"/>
355
363
  </attribute>
356
364
  </optional>
365
+ <optional>
366
+ <attribute name="number"/>
367
+ </optional>
357
368
  <optional>
358
369
  <attribute name="subsequence"/>
359
370
  </optional>
@@ -510,7 +521,7 @@
510
521
  </attribute>
511
522
  </optional>
512
523
  <oneOrMore>
513
- <ref name="paragraph-with-footnote"/>
524
+ <ref name="BasicBlock"/>
514
525
  </oneOrMore>
515
526
  </element>
516
527
  </define>
@@ -19,4 +19,4 @@ module RelatonGb
19
19
  grammars = Dir[grammars_path].sort.map { |gp| File.read gp }.join
20
20
  Digest::MD5.hexdigest grammars
21
21
  end
22
- end
22
+ end
@@ -4,5 +4,17 @@ module Cnccs
4
4
  def to_hash
5
5
  { "code" => code }
6
6
  end
7
+
8
+ # @param prefix [String]
9
+ # @param count [Integer]
10
+ # @return [String]
11
+ def to_aciibib(prefix = "", count = 1)
12
+ pref = prefix.empty? ? prefix : prefix + "."
13
+ pref += "ccs"
14
+ out = count > 1 ? "#{pref}::\n" : ""
15
+ out += "#{pref}.code:: #{code}\n" if code
16
+ out += "#{pref}.description:: #{description}\n" if description
17
+ out
18
+ end
7
19
  end
8
20
  end
@@ -35,6 +35,7 @@ module RelatonGb
35
35
  @ccs = args[:ccs].map { |c| c.is_a?(Cnccs::Ccs) ? c : Cnccs.fetch(c) }
36
36
  @gbtype = GbStandardType.new args[:gbtype]
37
37
  @gbplannumber = args[:gbplannumber] || structuredidentifier&.project_number
38
+ # @doctype = args[:doctype]
38
39
  end
39
40
 
40
41
  # @param builder [Nokogiri::XML::Builder]
@@ -59,11 +60,17 @@ module RelatonGb
59
60
  hash
60
61
  end
61
62
 
63
+ # @param prefix [String]
64
+ # @return [String]
65
+ def to_asciibib(prefix = "")
66
+ out = super
67
+ ccs.each { |c| out += c.to_aciibib prefix, ccs.size }
68
+ out
69
+ end
70
+
62
71
  # @return [String]
63
72
  def inspect
64
- "<#{self.class}:#{format('%#.14x', object_id << 1)}>"
65
- # "@fullIdentifier=\"#{@fetch&.shortref}\" "\
66
- # "@title=\"#{title}\">"
73
+ "<#{self.class}:#{format('%<id>#.14x', id: object_id << 1)}>"
67
74
  end
68
75
 
69
76
  # @return [String]
@@ -76,34 +83,11 @@ module RelatonGb
76
83
 
77
84
  id ||= @docidentifier.reject { |i| i.type == "DOI" }[0]
78
85
  idstr = id.id
79
- # if id.part_number&.size&.positive?
80
- # idstr = idstr + "-#{id.part_number}"
81
- # end
82
86
  idstr.gsub(/\s/, "").strip
83
87
  end
84
88
 
85
89
  private
86
90
 
87
- # Overraides IsoBibliographicItem method.
88
- # @param language [Array<String>]
89
- # @raise ArgumentError
90
- def check_language(language)
91
- language.each do |lang|
92
- unless %w[en zh].include? lang
93
- raise ArgumentError, "invalid language: #{lang}"
94
- end
95
- end
96
- end
97
-
98
- # Overraides IsoBibliographicItem method.
99
- # @param script [Array<String>]
100
- # @raise ArgumentError
101
- def check_script(script)
102
- script.each do |scr|
103
- raise ArgumentError, "invalid script: #{scr}" unless %w[Latn Hans].include? scr
104
- end
105
- end
106
-
107
91
  # @param builder [Nokogiri::XML::Builder]
108
92
  def render_gbxml(builder)
109
93
  gbtype.to_xml builder
@@ -16,7 +16,7 @@ module RelatonGb
16
16
  # @return [RelatonGb::HitCollection]
17
17
  def scrape_page(text)
18
18
  search_html = OpenURI.open_uri(
19
- "http://openstd.samr.gov.cn/bzgk/gb/std_list?p.p2=" + text
19
+ "http://openstd.samr.gov.cn/bzgk/gb/std_list?p.p2=" + text,
20
20
  )
21
21
  result = Nokogiri::HTML search_html
22
22
  hits = result.xpath(
@@ -17,6 +17,15 @@ module RelatonGb
17
17
 
18
18
  private
19
19
 
20
+ #
21
+ # Ovverides superclass's method
22
+ #
23
+ # @param item [Hash]
24
+ # @retirn [RelatonGb::GbBibliographicItem]
25
+ def bib_item(item)
26
+ GbBibliographicItem.new(item)
27
+ end
28
+
20
29
  def ccs_hash_to_bib(ret)
21
30
  ret[:ccs] = array(ret[:ccs]).map do |ccs|
22
31
  ccs[:code] ? Cnccs.fetch(ccs[:code]) : Cnccs.fetch(ccs)
@@ -38,7 +38,7 @@ module RelatonGb
38
38
 
39
39
  # @return [String]
40
40
  def inspect
41
- "<#{self.class}:#{format('%#.14x', object_id << 1)} "\
41
+ "<#{self.class}:#{format('%<id>#.14x', id: object_id << 1)} "\
42
42
  "@fullIdentifier=\"#{@fetch&.shortref}\" "\
43
43
  "@docref=\"#{docref}\">"
44
44
  end
@@ -5,10 +5,11 @@ module RelatonGb
5
5
  class HitCollection < RelatonBib::HitCollection
6
6
  # @param hits [Array<Hash>]
7
7
  # @param hit_pages [Integer]
8
- # @param scrapper [RelatonGb::GbScrapper, RelatonGb::SecScrapper, RelatonGb::TScrapper]
8
+ # @param scrapper [RelatonGb::GbScrapper, RelatonGb::SecScrapper,
9
+ # RelatonGb::TScrapper]
9
10
  def initialize(hits = [])
10
11
  @array = hits
11
- @fetched = false
12
+ @fetched = false
12
13
  end
13
14
  end
14
15
  end
@@ -55,32 +55,37 @@ module RelatonGb
55
55
  # @param docref [Strings]
56
56
  # @return [Array<Hash>]
57
57
  def get_contributors(doc, docref)
58
- gb_en = GbAgencies::Agencies.new("en", {}, "")
59
- gb_zh = GbAgencies::Agencies.new("zh", {}, "")
60
58
  name = docref.match(/^[^\s]+/).to_s
61
59
  name.sub!(%r{/[TZ]$}, "") unless name =~ /^GB/
62
60
  gbtype = get_gbtype(doc, docref)
63
- entity = RelatonBib::Organization.new name: [
64
- { language: "en", content: gb_en.standard_agency1(gbtype[:scope], name, gbtype[:mandate]) },
65
- { language: "zh", content: gb_zh.standard_agency1(gbtype[:scope], name, gbtype[:mandate]) },
66
- ]
61
+ orgs = %w[en zh].map { |l| org(l, name, gbtype) }.compact
62
+ return [] unless orgs.any?
63
+
64
+ entity = RelatonBib::Organization.new name: orgs
67
65
  [{ entity: entity, role: [type: "publisher"] }]
68
66
  end
69
67
 
68
+ # @param lang [String]
69
+ # @param name [String]
70
+ # @param gbtype [Hash]
71
+ # @return [Hash]
72
+ def org(lang, name, gbtype)
73
+ ag = GbAgencies::Agencies.new(lang, {}, "")
74
+ content = ag.standard_agency1(gbtype[:scope], name, gbtype[:mandate])
75
+ return unless content
76
+
77
+ { language: lang, content: content }
78
+ end
79
+
70
80
  # @param doc [Nokogiri::HTML::Document]
71
- # @return [Array<Hash>]
72
- # * :title_intro [String]
73
- # * :title_main [String]
74
- # * :language [String]
75
- # * :script [String]
81
+ # @return [Array<RelatonBib::TypedTitleString>]
76
82
  def get_titles(doc)
77
- titles = [{ title_main: doc.at("//td[contains(text(), '中文标准名称')]/b").text,
78
- title_intro: nil, language: "zh", script: "Hans" }]
79
- title_main = doc.at("//td[contains(text(), '英文标准名称')]").text.match(/[\w\s]+/).to_s
80
- unless title_main.empty?
81
- titles << { title_main: title_main, title_intro: nil, language: "en", script: "Latn" }
82
- end
83
- titles
83
+ tzh = doc.at("//td[contains(text(), '中文标准名称')]/b").text
84
+ titles = RelatonBib::TypedTitleString.from_string tzh, "zh", "Hans"
85
+ ten = doc.at("//td[contains(text(), '英文标准名称')]").text.match(/[\w\s]+/).to_s
86
+ return titles if ten.empty?
87
+
88
+ titles + RelatonBib::TypedTitleString.from_string(ten, "en", "Latn")
84
89
  end
85
90
 
86
91
  def get_type
@@ -113,12 +118,6 @@ module RelatonGb
113
118
  mandate: get_mandate(ref), topic: "other" }
114
119
  end
115
120
 
116
- # @param doc [Nokogiri::HTML::Document]
117
- # @return [String]
118
- # def get_ref(doc)
119
- # doc.xpath('//dt[text()="标准号"]/following-sibling::dd[1]').text
120
- # end
121
-
122
121
  # @param doc [Nokogiri::HTML::Document]
123
122
  # @return [Array<String>]
124
123
  def get_ccs(doc)
@@ -58,13 +58,15 @@ module RelatonGb
58
58
  # * :language [String]
59
59
  # * :script [String]
60
60
  def get_titles(doc)
61
- titles = [{ title_main: doc.at("//h4").text.delete("\r\n\t"),
62
- title_intro: nil, language: "zh", script: "Hans" }]
61
+ # titles = [{ title_main: doc.at("//h4").text.delete("\r\n\t"),
62
+ # title_intro: nil, language: "zh", script: "Hans" }]
63
+ tzh = doc.at("//h4").text.delete("\r\n\t")
64
+ RelatonBib::TypedTitleString.from_string tzh, "zh", "Hans"
63
65
  # title_main = doc.at("//td[contains(text(), '英文标准名称')]").text.match(/[\w\s]+/).to_s
64
66
  # unless title_main.empty?
65
67
  # titles << { title_main: title_main, title_intro: nil, language: "en", script: "Latn" }
66
68
  # end
67
- titles
69
+ # titles
68
70
  end
69
71
 
70
72
  # @param _doc [Nokogiri::HTML::Document]
@@ -21,7 +21,7 @@ module RelatonGb
21
21
  def scrape_page(text)
22
22
  search_html = OpenURI.open_uri(
23
23
  "http://www.ttbz.org.cn/Home/Standard?searchType=2&key=" +
24
- CGI.escape(text.tr("-", [8212].pack("U"))),
24
+ CGI.escape(text.tr("-", [8212].pack("U")))
25
25
  ).read
26
26
  header = Nokogiri::HTML search_html
27
27
  xpath = '//table[contains(@class, "standard_list_table")]/tr/td/a'
@@ -84,26 +84,21 @@ module RelatonGb
84
84
  end
85
85
 
86
86
  def get_titles(doc)
87
- xpath = '//td[contains(.,"中文标题")]/following-sibling::td[1]'
88
- titles = [{ title_main: doc.xpath(xpath).text,
89
- title_intro: nil, language: "zh", script: "Hans" }]
90
- xpath = '//td[contains(.,"英文标题")]/following-sibling::td[1]'
91
- title_main = doc.xpath(xpath).text
92
- unless title_main.empty?
93
- titles << { title_main: title_main, title_intro: nil, language: "en",
94
- script: "Latn" }
95
- end
96
- titles
87
+ xpz = '//td[contains(.,"中文标题")]/following-sibling::td[1]'
88
+ titles = RelatonBib::TypedTitleString.from_string doc.at(xpz)
89
+ .text, "zh", "Hans"
90
+ xpe = '//td[contains(.,"英文标题")]/following-sibling::td[1]'
91
+ ten = doc.xpath(xpe).text
92
+ return titles if ten.empty?
93
+
94
+ titles + RelatonBib::TypedTitleString.from_string(ten, "en", "Latn")
97
95
  end
98
96
 
99
97
  def gbtype
100
- { scope: "social-group", prefix: "T", mandate: "mandatory", topic: "other" }
98
+ { scope: "social-group", prefix: "T", mandate: "mandatory",
99
+ topic: "other" }
101
100
  end
102
101
 
103
- # def get_group_code(ref)
104
- # ref.match(%r{(?<=\/)[^\s]})
105
- # end
106
-
107
102
  def get_ccs(doc)
108
103
  [doc.xpath('//td[contains(.,"中国标准分类号")]/following-sibling::td[1]')
109
104
  .text.gsub(/[\r\n]/, "").strip.match(/^[^\s]+/).to_s]
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RelatonGb
4
- VERSION = "1.0.0"
4
+ VERSION = "1.3.0"
5
5
  end
@@ -3,18 +3,15 @@ require "nokogiri"
3
3
  module RelatonGb
4
4
  class XMLParser < RelatonIsoBib::XMLParser
5
5
  class << self
6
- def from_xml(xml)
7
- doc = Nokogiri::XML(xml)
8
- gbitem = doc.at "/bibitem|/bibdata"
9
- if gbitem
10
- GbBibliographicItem.new item_data(gbitem)
11
- else
12
- warn "[relato-gb] can't find bibitem or bibdata element in the XML"
13
- end
14
- end
15
-
16
6
  private
17
7
 
8
+ # override RelatonBib::BibliographicItem.bib_item method
9
+ # @param item_hash [Hash]
10
+ # @return [RelatonGb::GbBibliographicItem]
11
+ def bib_item(item_hash)
12
+ GbBibliographicItem.new item_hash
13
+ end
14
+
18
15
  def item_data(gbitem)
19
16
  data = super
20
17
  data[:committee] = fetch_committee gbitem
@@ -24,11 +21,6 @@ module RelatonGb
24
21
  data
25
22
  end
26
23
 
27
- # Overrade get_id from RelatonIsoBib::XMLParser
28
- # def get_id(did)
29
- # did.text.match(/^(?<project>.*?\d+)(?<hyphen>-)?(?(<hyphen>)(?<year>\d*))/)
30
- # end
31
-
32
24
  def fetch_committee(doc)
33
25
  committee = doc.at "./ext/gbcommittee"
34
26
  return nil unless committee
@@ -37,5 +37,5 @@ Gem::Specification.new do |spec|
37
37
 
38
38
  spec.add_dependency "cnccs", "~> 0.1.1"
39
39
  spec.add_dependency "gb-agencies", "~> 0.0.1"
40
- spec.add_dependency "relaton-iso-bib", "~> 1.0.0"
40
+ spec.add_dependency "relaton-iso-bib", ">= 1.3.0"
41
41
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: relaton-gb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-25 00:00:00.000000000 Z
11
+ date: 2020-08-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: debase
@@ -182,16 +182,16 @@ dependencies:
182
182
  name: relaton-iso-bib
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
- - - "~>"
185
+ - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: 1.0.0
187
+ version: 1.3.0
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
- - - "~>"
192
+ - - ">="
193
193
  - !ruby/object:Gem::Version
194
- version: 1.0.0
194
+ version: 1.3.0
195
195
  description: 'RelatonGb: retrieve Chinese GB Standards for bibliographic use using
196
196
  the BibliographicItem model.'
197
197
  email: