metanorma-sample 1.0.10 → 1.3.8

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,9 +18,48 @@
18
18
  of this.
19
19
  -->
20
20
  <grammar xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
21
+ <!--
22
+ https://www.myintervals.com/blog/2009/05/20/iso-8601-date-validation-that-doesnt-suck/
23
+ iso8601date = xsd:string { pattern = "([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([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])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24\:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?" }
24
+ Somewhat dumbed down for XSD regex:
25
+ -->
26
+ <define name="ISO8601DateTime">
27
+ <data type="string">
28
+ <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])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+)?)?((:?)[0-5]\d([.,]\d+)?)?([zZ]|([\+\-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?</param>
29
+ </data>
30
+ </define>
31
+ <define name="ISO8601Date">
32
+ <data type="string">
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
+ </data>
35
+ </define>
36
+ <start>
37
+ <ref name="bibitem"/>
38
+ </start>
21
39
  <define name="status">
22
40
  <element name="status">
23
- <ref name="LocalizedString"/>
41
+ <ref name="stage"/>
42
+ <optional>
43
+ <ref name="substage"/>
44
+ </optional>
45
+ <optional>
46
+ <ref name="iteration"/>
47
+ </optional>
48
+ </element>
49
+ </define>
50
+ <define name="stage">
51
+ <element name="stage">
52
+ <text/>
53
+ </element>
54
+ </define>
55
+ <define name="substage">
56
+ <element name="substage">
57
+ <text/>
58
+ </element>
59
+ </define>
60
+ <define name="iteration">
61
+ <element name="iteration">
62
+ <text/>
24
63
  </element>
25
64
  </define>
26
65
  <define name="language">
@@ -37,6 +76,9 @@
37
76
  <define name="edition">
38
77
  <a:documentation>ISO-15924: Latn</a:documentation>
39
78
  <element name="edition">
79
+ <optional>
80
+ <attribute name="number"/>
81
+ </optional>
40
82
  <text/>
41
83
  </element>
42
84
  </define>
@@ -141,36 +183,42 @@
141
183
  <zeroOrMore>
142
184
  <ref name="contact"/>
143
185
  </zeroOrMore>
144
- <optional>
186
+ <zeroOrMore>
145
187
  <ref name="uri"/>
146
- </optional>
188
+ </zeroOrMore>
147
189
  </element>
148
190
  </define>
149
191
  <define name="fullname">
150
192
  <element name="name">
151
- <choice>
152
- <group>
153
- <zeroOrMore>
154
- <ref name="prefix"/>
155
- </zeroOrMore>
156
- <zeroOrMore>
157
- <ref name="forename"/>
158
- </zeroOrMore>
159
- <zeroOrMore>
160
- <ref name="initial"/>
161
- </zeroOrMore>
162
- <ref name="surname"/>
163
- <zeroOrMore>
164
- <ref name="addition"/>
165
- </zeroOrMore>
166
- </group>
167
- <ref name="completeName"/>
168
- </choice>
169
- <zeroOrMore>
170
- <ref name="biblionote"/>
171
- </zeroOrMore>
193
+ <ref name="FullNameType"/>
172
194
  </element>
173
195
  </define>
196
+ <define name="FullNameType">
197
+ <choice>
198
+ <group>
199
+ <zeroOrMore>
200
+ <ref name="prefix"/>
201
+ </zeroOrMore>
202
+ <zeroOrMore>
203
+ <ref name="forename"/>
204
+ </zeroOrMore>
205
+ <zeroOrMore>
206
+ <ref name="initial"/>
207
+ </zeroOrMore>
208
+ <ref name="surname"/>
209
+ <zeroOrMore>
210
+ <ref name="addition"/>
211
+ </zeroOrMore>
212
+ </group>
213
+ <ref name="completeName"/>
214
+ </choice>
215
+ <zeroOrMore>
216
+ <ref name="biblionote"/>
217
+ </zeroOrMore>
218
+ <zeroOrMore>
219
+ <ref name="variantname"/>
220
+ </zeroOrMore>
221
+ </define>
174
222
  <define name="prefix">
175
223
  <element name="prefix">
176
224
  <ref name="LocalizedString"/>
@@ -201,6 +249,12 @@
201
249
  <ref name="LocalizedString"/>
202
250
  </element>
203
251
  </define>
252
+ <define name="variantname">
253
+ <element name="variant">
254
+ <attribute name="type"/>
255
+ <ref name="FullNameType"/>
256
+ </element>
257
+ </define>
204
258
  <define name="affiliation">
205
259
  <element name="affiliation">
206
260
  <optional>
@@ -224,16 +278,18 @@
224
278
  </define>
225
279
  <define name="organization">
226
280
  <element name="organization">
227
- <ref name="orgname"/>
228
- <optional>
281
+ <oneOrMore>
282
+ <ref name="orgname"/>
283
+ </oneOrMore>
284
+ <zeroOrMore>
229
285
  <ref name="subdivision"/>
230
- </optional>
286
+ </zeroOrMore>
231
287
  <optional>
232
288
  <ref name="abbreviation"/>
233
289
  </optional>
234
- <optional>
290
+ <zeroOrMore>
235
291
  <ref name="uri"/>
236
- </optional>
292
+ </zeroOrMore>
237
293
  <zeroOrMore>
238
294
  <ref name="org-identifier"/>
239
295
  </zeroOrMore>
@@ -244,13 +300,40 @@
244
300
  </define>
245
301
  <define name="orgname">
246
302
  <element name="name">
247
- <ref name="LocalizedString"/>
303
+ <choice>
304
+ <ref name="LocalizedString"/>
305
+ <ref name="NameWithVariants"/>
306
+ </choice>
248
307
  </element>
249
308
  </define>
250
309
  <define name="subdivision">
251
310
  <element name="subdivision">
311
+ <choice>
312
+ <ref name="LocalizedString"/>
313
+ <ref name="NameWithVariants"/>
314
+ </choice>
315
+ </element>
316
+ </define>
317
+ <define name="NameWithVariants">
318
+ <element name="primary">
319
+ <ref name="LocalizedString"/>
320
+ </element>
321
+ <zeroOrMore>
322
+ <element name="variant">
323
+ <ref name="NameWithVariants1"/>
324
+ </element>
325
+ </zeroOrMore>
326
+ </define>
327
+ <define name="NameWithVariants1">
328
+ <attribute name="type"/>
329
+ <element name="primary">
252
330
  <ref name="LocalizedString"/>
253
331
  </element>
332
+ <zeroOrMore>
333
+ <element name="variant">
334
+ <ref name="NameWithVariants1"/>
335
+ </element>
336
+ </zeroOrMore>
254
337
  </define>
255
338
  <define name="abbreviation">
256
339
  <element name="abbreviation">
@@ -276,6 +359,9 @@
276
359
  </define>
277
360
  <define name="phone">
278
361
  <element name="phone">
362
+ <optional>
363
+ <attribute name="type"/>
364
+ </optional>
279
365
  <text/>
280
366
  </element>
281
367
  </define>
@@ -286,18 +372,23 @@
286
372
  </define>
287
373
  <define name="address">
288
374
  <element name="address">
289
- <oneOrMore>
375
+ <choice>
290
376
  <!-- iso191606 TODO -->
291
- <ref name="street"/>
292
- </oneOrMore>
293
- <ref name="city"/>
294
- <optional>
295
- <ref name="state"/>
296
- </optional>
297
- <ref name="country"/>
298
- <optional>
299
- <ref name="postcode"/>
300
- </optional>
377
+ <group>
378
+ <oneOrMore>
379
+ <ref name="street"/>
380
+ </oneOrMore>
381
+ <ref name="city"/>
382
+ <optional>
383
+ <ref name="state"/>
384
+ </optional>
385
+ <ref name="country"/>
386
+ <optional>
387
+ <ref name="postcode"/>
388
+ </optional>
389
+ </group>
390
+ <ref name="formattedAddress"/>
391
+ </choice>
301
392
  </element>
302
393
  </define>
303
394
  <define name="street">
@@ -325,6 +416,11 @@
325
416
  <text/>
326
417
  </element>
327
418
  </define>
419
+ <define name="formattedAddress">
420
+ <element name="formattedAddress">
421
+ <text/>
422
+ </element>
423
+ </define>
328
424
  <define name="person-identifier">
329
425
  <element name="identifier">
330
426
  <attribute name="type">
@@ -365,10 +461,7 @@
365
461
  </define>
366
462
  <define name="date">
367
463
  <element name="date">
368
- <choice>
369
- <data type="gYear"/>
370
- <data type="date"/>
371
- </choice>
464
+ <ref name="ISO8601Date"/>
372
465
  </element>
373
466
  </define>
374
467
  <define name="locality">
@@ -380,14 +473,16 @@
380
473
  <attribute name="type">
381
474
  <ref name="LocalityType"/>
382
475
  </attribute>
383
- <ref name="referenceFrom"/>
476
+ <optional>
477
+ <ref name="referenceFrom"/>
478
+ </optional>
384
479
  <optional>
385
480
  <ref name="referenceTo"/>
386
481
  </optional>
387
482
  </define>
388
483
  <define name="LocalityType">
389
484
  <data type="string">
390
- <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|locality:[a-zA-Z0-9_]+</param>
485
+ <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>
391
486
  </data>
392
487
  </define>
393
488
  <define name="referenceFrom">
@@ -433,7 +528,6 @@
433
528
  <value>article</value>
434
529
  <value>book</value>
435
530
  <value>booklet</value>
436
- <value>conference</value>
437
531
  <value>manual</value>
438
532
  <value>proceedings</value>
439
533
  <value>presentation</value>
@@ -447,12 +541,23 @@
447
541
  <value>film</value>
448
542
  <value>video</value>
449
543
  <value>broadcast</value>
450
- <value>graphic work</value>
544
+ <value>software</value>
545
+ <value>graphic_work</value>
451
546
  <value>music</value>
452
547
  <value>patent</value>
453
548
  <value>inbook</value>
454
549
  <value>incollection</value>
455
550
  <value>inproceedings</value>
551
+ <value>journal</value>
552
+ <value>website</value>
553
+ <value>webresource</value>
554
+ <value>dataset</value>
555
+ <value>archival</value>
556
+ <value>social_media</value>
557
+ <value>alert</value>
558
+ <value>message</value>
559
+ <value>conversation</value>
560
+ <value>misc</value>
456
561
  </choice>
457
562
  </define>
458
563
  <define name="BibliographicItem">
@@ -488,6 +593,9 @@
488
593
  <optional>
489
594
  <ref name="edition"/>
490
595
  </optional>
596
+ <optional>
597
+ <ref name="version"/>
598
+ </optional>
491
599
  <zeroOrMore>
492
600
  <ref name="biblionote"/>
493
601
  </zeroOrMore>
@@ -497,9 +605,9 @@
497
605
  <zeroOrMore>
498
606
  <ref name="script"/>
499
607
  </zeroOrMore>
500
- <optional>
501
- <ref name="abstract"/>
502
- </optional>
608
+ <zeroOrMore>
609
+ <ref name="bibabstract"/>
610
+ </zeroOrMore>
503
611
  <optional>
504
612
  <ref name="status"/>
505
613
  </optional>
@@ -518,15 +626,24 @@
518
626
  <zeroOrMore>
519
627
  <ref name="bplace"/>
520
628
  </zeroOrMore>
629
+ <zeroOrMore>
630
+ <ref name="bprice"/>
631
+ </zeroOrMore>
521
632
  <zeroOrMore>
522
633
  <ref name="extent"/>
523
634
  </zeroOrMore>
524
635
  <zeroOrMore>
525
636
  <ref name="accesslocation"/>
526
637
  </zeroOrMore>
638
+ <zeroOrMore>
639
+ <ref name="license"/>
640
+ </zeroOrMore>
527
641
  <optional>
528
642
  <ref name="bclassification"/>
529
643
  </optional>
644
+ <zeroOrMore>
645
+ <ref name="bkeyword"/>
646
+ </zeroOrMore>
530
647
  <optional>
531
648
  <ref name="validity"/>
532
649
  </optional>
@@ -546,12 +663,14 @@
546
663
  <ref name="FormattedString"/>
547
664
  </element>
548
665
  </define>
666
+ <define name="license">
667
+ <element name="license">
668
+ <text/>
669
+ </element>
670
+ </define>
549
671
  <define name="fetched">
550
672
  <element name="fetched">
551
- <choice>
552
- <data type="dateTime"/>
553
- <data type="date"/>
554
- </choice>
673
+ <ref name="ISO8601DateTime"/>
555
674
  </element>
556
675
  </define>
557
676
  <define name="validity">
@@ -569,26 +688,17 @@
569
688
  </define>
570
689
  <define name="validityBegins">
571
690
  <element name="validityBegins">
572
- <choice>
573
- <data type="dateTime"/>
574
- <data type="date"/>
575
- </choice>
691
+ <ref name="ISO8601DateTime"/>
576
692
  </element>
577
693
  </define>
578
694
  <define name="validityEnds">
579
695
  <element name="validityEnds">
580
- <choice>
581
- <data type="dateTime"/>
582
- <data type="date"/>
583
- </choice>
696
+ <ref name="ISO8601DateTime"/>
584
697
  </element>
585
698
  </define>
586
699
  <define name="validityRevision">
587
700
  <element name="revision">
588
- <choice>
589
- <data type="dateTime"/>
590
- <data type="date"/>
591
- </choice>
701
+ <ref name="ISO8601DateTime"/>
592
702
  </element>
593
703
  </define>
594
704
  <define name="TypedTitleString">
@@ -619,55 +729,54 @@
619
729
  <attribute name="text"/>
620
730
  </optional>
621
731
  <optional>
622
- <choice>
623
- <data type="gYear"/>
624
- <data type="date"/>
625
- </choice>
732
+ <ref name="ISO8601Date"/>
626
733
  </optional>
627
734
  </define>
735
+ <define name="BibliographicDateType">
736
+ <choice>
737
+ <value>published</value>
738
+ <value>accessed</value>
739
+ <value>created</value>
740
+ <value>implemented</value>
741
+ <value>obsoleted</value>
742
+ <value>confirmed</value>
743
+ <value>updated</value>
744
+ <value>issued</value>
745
+ <value>transmitted</value>
746
+ <value>copied</value>
747
+ <value>unchanged</value>
748
+ <value>circulated</value>
749
+ <value>adapted</value>
750
+ </choice>
751
+ </define>
628
752
  <define name="bdate">
629
753
  <element name="date">
630
754
  <attribute name="type">
631
755
  <choice>
632
- <value>published</value>
633
- <value>accessed</value>
634
- <value>created</value>
635
- <value>implemented</value>
636
- <value>obsoleted</value>
637
- <value>confirmed</value>
638
- <value>updated</value>
639
- <value>issued</value>
640
- <value>transmitted</value>
641
- <value>copied</value>
642
- <value>unchanged</value>
643
- <value>circulated</value>
756
+ <ref name="BibliographicDateType"/>
644
757
  <text/>
645
758
  </choice>
646
759
  </attribute>
647
- <choice>
648
- <group>
649
- <element name="from">
650
- <choice>
651
- <data type="gYear"/>
652
- <data type="date"/>
653
- </choice>
654
- </element>
655
- <optional>
656
- <element name="to">
657
- <choice>
658
- <data type="gYear"/>
659
- <data type="date"/>
660
- </choice>
760
+ <optional>
761
+ <attribute name="text"/>
762
+ </optional>
763
+ <optional>
764
+ <choice>
765
+ <group>
766
+ <element name="from">
767
+ <ref name="ISO8601Date"/>
661
768
  </element>
662
- </optional>
663
- </group>
664
- <element name="on">
665
- <choice>
666
- <data type="gYear"/>
667
- <data type="date"/>
668
- </choice>
669
- </element>
670
- </choice>
769
+ <optional>
770
+ <element name="to">
771
+ <ref name="ISO8601Date"/>
772
+ </element>
773
+ </optional>
774
+ </group>
775
+ <element name="on">
776
+ <ref name="ISO8601Date"/>
777
+ </element>
778
+ </choice>
779
+ </optional>
671
780
  </element>
672
781
  </define>
673
782
  <define name="docidentifier">
@@ -675,6 +784,9 @@
675
784
  <optional>
676
785
  <attribute name="type"/>
677
786
  </optional>
787
+ <optional>
788
+ <attribute name="scope"/>
789
+ </optional>
678
790
  <text/>
679
791
  </element>
680
792
  </define>
@@ -693,14 +805,37 @@
693
805
  </define>
694
806
  <define name="bplace">
695
807
  <element name="place">
808
+ <optional>
809
+ <attribute name="uri">
810
+ <data type="anyURI"/>
811
+ </attribute>
812
+ </optional>
813
+ <optional>
814
+ <attribute name="region"/>
815
+ </optional>
816
+ <text/>
817
+ </element>
818
+ </define>
819
+ <define name="bprice">
820
+ <element name="price">
821
+ <attribute name="currency"/>
696
822
  <text/>
697
823
  </element>
698
824
  </define>
699
825
  <define name="medium">
700
826
  <element name="medium">
827
+ <optional>
828
+ <ref name="bcontent"/>
829
+ </optional>
830
+ <optional>
831
+ <ref name="genre"/>
832
+ </optional>
701
833
  <optional>
702
834
  <ref name="form"/>
703
835
  </optional>
836
+ <optional>
837
+ <ref name="carrier"/>
838
+ </optional>
704
839
  <optional>
705
840
  <ref name="size"/>
706
841
  </optional>
@@ -709,11 +844,26 @@
709
844
  </optional>
710
845
  </element>
711
846
  </define>
847
+ <define name="bcontent">
848
+ <element name="content">
849
+ <text/>
850
+ </element>
851
+ </define>
852
+ <define name="genre">
853
+ <element name="genre">
854
+ <text/>
855
+ </element>
856
+ </define>
712
857
  <define name="form">
713
858
  <element name="form">
714
859
  <text/>
715
860
  </element>
716
861
  </define>
862
+ <define name="carrier">
863
+ <element name="carrier">
864
+ <text/>
865
+ </element>
866
+ </define>
717
867
  <define name="size">
718
868
  <element name="size">
719
869
  <text/>
@@ -738,39 +888,48 @@
738
888
  <element name="series">
739
889
  <optional>
740
890
  <attribute name="type">
741
- <choice>
742
- <value>main</value>
743
- <value>alt</value>
744
- </choice>
891
+ <ref name="SeriesType"/>
745
892
  </attribute>
746
893
  </optional>
747
894
  <choice>
748
- <ref name="btitle"/>
749
895
  <ref name="formattedref"/>
896
+ <group>
897
+ <ref name="btitle"/>
898
+ <optional>
899
+ <ref name="bplace"/>
900
+ </optional>
901
+ <optional>
902
+ <ref name="seriesorganization"/>
903
+ </optional>
904
+ <optional>
905
+ <ref name="abbreviation"/>
906
+ </optional>
907
+ <optional>
908
+ <ref name="seriesfrom"/>
909
+ </optional>
910
+ <optional>
911
+ <ref name="seriesto"/>
912
+ </optional>
913
+ <optional>
914
+ <ref name="seriesnumber"/>
915
+ </optional>
916
+ <optional>
917
+ <ref name="seriespartnumber"/>
918
+ </optional>
919
+ <optional>
920
+ <ref name="seriesrun"/>
921
+ </optional>
922
+ </group>
750
923
  </choice>
751
- <optional>
752
- <ref name="bplace"/>
753
- </optional>
754
- <optional>
755
- <ref name="seriesorganization"/>
756
- </optional>
757
- <optional>
758
- <ref name="abbreviation"/>
759
- </optional>
760
- <optional>
761
- <ref name="seriesfrom"/>
762
- </optional>
763
- <optional>
764
- <ref name="seriesto"/>
765
- </optional>
766
- <optional>
767
- <ref name="seriesnumber"/>
768
- </optional>
769
- <optional>
770
- <ref name="seriespartnumber"/>
771
- </optional>
772
924
  </element>
773
925
  </define>
926
+ <define name="SeriesType">
927
+ <choice>
928
+ <value>main</value>
929
+ <value>alt</value>
930
+ <text/>
931
+ </choice>
932
+ </define>
774
933
  <define name="seriesorganization">
775
934
  <element name="organization">
776
935
  <text/>
@@ -778,20 +937,12 @@
778
937
  </define>
779
938
  <define name="seriesfrom">
780
939
  <element name="from">
781
- <choice>
782
- <data type="dateTime"/>
783
- <data type="date"/>
784
- <data type="gYear"/>
785
- </choice>
940
+ <ref name="ISO8601Date"/>
786
941
  </element>
787
942
  </define>
788
943
  <define name="seriesto">
789
944
  <element name="to">
790
- <choice>
791
- <data type="dateTime"/>
792
- <data type="date"/>
793
- <data type="gYear"/>
794
- </choice>
945
+ <ref name="ISO8601Date"/>
795
946
  </element>
796
947
  </define>
797
948
  <define name="seriesnumber">
@@ -804,12 +955,20 @@
804
955
  <text/>
805
956
  </element>
806
957
  </define>
958
+ <define name="seriesrun">
959
+ <element name="run">
960
+ <text/>
961
+ </element>
962
+ </define>
807
963
  <define name="biblionote">
808
964
  <element name="note">
965
+ <optional>
966
+ <attribute name="type"/>
967
+ </optional>
809
968
  <ref name="FormattedString"/>
810
969
  </element>
811
970
  </define>
812
- <define name="abstract">
971
+ <define name="bibabstract">
813
972
  <element name="abstract">
814
973
  <ref name="FormattedString"/>
815
974
  </element>
@@ -838,25 +997,46 @@
838
997
  <ref name="ContributorInfo"/>
839
998
  </element>
840
999
  </define>
1000
+ <define name="DocRelationType">
1001
+ <choice>
1002
+ <value>obsoletes</value>
1003
+ <value>obsoletedBy</value>
1004
+ <value>supersedes</value>
1005
+ <value>supersededBy</value>
1006
+ <value>updates</value>
1007
+ <value>updatedBy</value>
1008
+ <value>complements</value>
1009
+ <value>derivedFrom</value>
1010
+ <value>translatedFrom</value>
1011
+ <value>hasTranslation</value>
1012
+ <value>adoptedFrom</value>
1013
+ <value>equivalent</value>
1014
+ <value>identical</value>
1015
+ <value>nonequivalent</value>
1016
+ <value>includedIn</value>
1017
+ <value>includes</value>
1018
+ <value>instance</value>
1019
+ <value>instanceOf</value>
1020
+ <value>partOf</value>
1021
+ <value>hasPart</value>
1022
+ <value>hasDraft</value>
1023
+ <value>draftOf</value>
1024
+ <value>merges</value>
1025
+ <value>splits</value>
1026
+ <value>amends</value>
1027
+ <value>amendedBy</value>
1028
+ <value>corrects</value>
1029
+ <value>correctedBy</value>
1030
+ <value>revises</value>
1031
+ <value>revisedBy</value>
1032
+ <value>describes</value>
1033
+ <value>describedBy</value>
1034
+ </choice>
1035
+ </define>
841
1036
  <define name="docrelation">
842
1037
  <element name="relation">
843
1038
  <attribute name="type">
844
- <choice>
845
- <value>obsoletes</value>
846
- <value>updates</value>
847
- <value>updatedBy</value>
848
- <value>complements</value>
849
- <value>derivedFrom</value>
850
- <value>translatedFrom</value>
851
- <value>adoptedFrom</value>
852
- <value>equivalent</value>
853
- <value>identical</value>
854
- <value>nonequivalent</value>
855
- <value>includedIn</value>
856
- <value>includes</value>
857
- <value>instance</value>
858
- <value>partOf</value>
859
- </choice>
1039
+ <ref name="DocRelationType"/>
860
1040
  </attribute>
861
1041
  <element name="bibitem">
862
1042
  <ref name="BibliographicItem"/>
@@ -866,6 +1046,76 @@
866
1046
  </zeroOrMore>
867
1047
  </element>
868
1048
  </define>
1049
+ <define name="version">
1050
+ <element name="version">
1051
+ <optional>
1052
+ <ref name="revision-date"/>
1053
+ </optional>
1054
+ <zeroOrMore>
1055
+ <ref name="draft"/>
1056
+ </zeroOrMore>
1057
+ </element>
1058
+ </define>
1059
+ <define name="vedition">
1060
+ <element name="edition">
1061
+ <data type="int"/>
1062
+ </element>
1063
+ </define>
1064
+ <define name="revision-date">
1065
+ <element name="revision-date">
1066
+ <ref name="ISO8601Date"/>
1067
+ </element>
1068
+ </define>
1069
+ <define name="draft">
1070
+ <element name="draft">
1071
+ <text/>
1072
+ </element>
1073
+ </define>
1074
+ <define name="bkeyword">
1075
+ <element name="keyword">
1076
+ <choice>
1077
+ <ref name="LocalizedString"/>
1078
+ <group>
1079
+ <element name="vocab">
1080
+ <ref name="LocalizedString"/>
1081
+ </element>
1082
+ <oneOrMore>
1083
+ <ref name="vocabid"/>
1084
+ </oneOrMore>
1085
+ </group>
1086
+ <group>
1087
+ <oneOrMore>
1088
+ <element name="taxon">
1089
+ <ref name="LocalizedString"/>
1090
+ </element>
1091
+ </oneOrMore>
1092
+ <oneOrMore>
1093
+ <ref name="vocabid"/>
1094
+ </oneOrMore>
1095
+ </group>
1096
+ </choice>
1097
+ </element>
1098
+ </define>
1099
+ <define name="vocabid">
1100
+ <element name="vocabid">
1101
+ <attribute name="type"/>
1102
+ <optional>
1103
+ <attribute name="uri">
1104
+ <data type="anyURI"/>
1105
+ </attribute>
1106
+ </optional>
1107
+ <optional>
1108
+ <element name="code">
1109
+ <text/>
1110
+ </element>
1111
+ </optional>
1112
+ <optional>
1113
+ <element name="term">
1114
+ <text/>
1115
+ </element>
1116
+ </optional>
1117
+ </element>
1118
+ </define>
869
1119
  <!--
870
1120
  Anycontents = mixed {
871
1121
  https://github.com/relaxng/jing-trang/issues/211
@@ -881,10 +1131,12 @@
881
1131
  <define name="AnyElement">
882
1132
  <element>
883
1133
  <anyName/>
884
- <choice>
885
- <text/>
886
- <ref name="AnyElement"/>
887
- </choice>
1134
+ <oneOrMore>
1135
+ <choice>
1136
+ <text/>
1137
+ <ref name="AnyElement"/>
1138
+ </choice>
1139
+ </oneOrMore>
888
1140
  </element>
889
1141
  </define>
890
1142
  </grammar>