metanorma-sample 1.0.10 → 1.3.8

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.
@@ -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>