metanorma-vsd 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -18,9 +18,45 @@
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>
21
36
  <define name="status">
22
37
  <element name="status">
23
- <ref name="LocalizedString"/>
38
+ <ref name="stage"/>
39
+ <optional>
40
+ <ref name="substage"/>
41
+ </optional>
42
+ <optional>
43
+ <ref name="iteration"/>
44
+ </optional>
45
+ </element>
46
+ </define>
47
+ <define name="stage">
48
+ <element name="stage">
49
+ <text/>
50
+ </element>
51
+ </define>
52
+ <define name="substage">
53
+ <element name="substage">
54
+ <text/>
55
+ </element>
56
+ </define>
57
+ <define name="iteration">
58
+ <element name="iteration">
59
+ <text/>
24
60
  </element>
25
61
  </define>
26
62
  <define name="language">
@@ -37,6 +73,9 @@
37
73
  <define name="edition">
38
74
  <a:documentation>ISO-15924: Latn</a:documentation>
39
75
  <element name="edition">
76
+ <optional>
77
+ <attribute name="number"/>
78
+ </optional>
40
79
  <text/>
41
80
  </element>
42
81
  </define>
@@ -141,36 +180,42 @@
141
180
  <zeroOrMore>
142
181
  <ref name="contact"/>
143
182
  </zeroOrMore>
144
- <optional>
183
+ <zeroOrMore>
145
184
  <ref name="uri"/>
146
- </optional>
185
+ </zeroOrMore>
147
186
  </element>
148
187
  </define>
149
188
  <define name="fullname">
150
189
  <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>
190
+ <ref name="FullNameType"/>
172
191
  </element>
173
192
  </define>
193
+ <define name="FullNameType">
194
+ <choice>
195
+ <group>
196
+ <zeroOrMore>
197
+ <ref name="prefix"/>
198
+ </zeroOrMore>
199
+ <zeroOrMore>
200
+ <ref name="forename"/>
201
+ </zeroOrMore>
202
+ <zeroOrMore>
203
+ <ref name="initial"/>
204
+ </zeroOrMore>
205
+ <ref name="surname"/>
206
+ <zeroOrMore>
207
+ <ref name="addition"/>
208
+ </zeroOrMore>
209
+ </group>
210
+ <ref name="completeName"/>
211
+ </choice>
212
+ <zeroOrMore>
213
+ <ref name="biblionote"/>
214
+ </zeroOrMore>
215
+ <zeroOrMore>
216
+ <ref name="variantname"/>
217
+ </zeroOrMore>
218
+ </define>
174
219
  <define name="prefix">
175
220
  <element name="prefix">
176
221
  <ref name="LocalizedString"/>
@@ -201,6 +246,12 @@
201
246
  <ref name="LocalizedString"/>
202
247
  </element>
203
248
  </define>
249
+ <define name="variantname">
250
+ <element name="variant">
251
+ <attribute name="type"/>
252
+ <ref name="FullNameType"/>
253
+ </element>
254
+ </define>
204
255
  <define name="affiliation">
205
256
  <element name="affiliation">
206
257
  <optional>
@@ -231,9 +282,9 @@
231
282
  <optional>
232
283
  <ref name="abbreviation"/>
233
284
  </optional>
234
- <optional>
285
+ <zeroOrMore>
235
286
  <ref name="uri"/>
236
- </optional>
287
+ </zeroOrMore>
237
288
  <zeroOrMore>
238
289
  <ref name="org-identifier"/>
239
290
  </zeroOrMore>
@@ -244,13 +295,40 @@
244
295
  </define>
245
296
  <define name="orgname">
246
297
  <element name="name">
247
- <ref name="LocalizedString"/>
298
+ <choice>
299
+ <ref name="LocalizedString"/>
300
+ <ref name="NameWithVariants"/>
301
+ </choice>
248
302
  </element>
249
303
  </define>
250
304
  <define name="subdivision">
251
305
  <element name="subdivision">
306
+ <choice>
307
+ <ref name="LocalizedString"/>
308
+ <ref name="NameWithVariants"/>
309
+ </choice>
310
+ </element>
311
+ </define>
312
+ <define name="NameWithVariants">
313
+ <element name="primary">
252
314
  <ref name="LocalizedString"/>
253
315
  </element>
316
+ <zeroOrMore>
317
+ <element name="variant">
318
+ <ref name="NameWithVariants1"/>
319
+ </element>
320
+ </zeroOrMore>
321
+ </define>
322
+ <define name="NameWithVariants1">
323
+ <attribute name="type"/>
324
+ <element name="primary">
325
+ <ref name="LocalizedString"/>
326
+ </element>
327
+ <zeroOrMore>
328
+ <element name="variant">
329
+ <ref name="NameWithVariants1"/>
330
+ </element>
331
+ </zeroOrMore>
254
332
  </define>
255
333
  <define name="abbreviation">
256
334
  <element name="abbreviation">
@@ -259,6 +337,9 @@
259
337
  </define>
260
338
  <define name="uri">
261
339
  <element name="uri">
340
+ <optional>
341
+ <attribute name="type"/>
342
+ </optional>
262
343
  <data type="anyURI"/>
263
344
  </element>
264
345
  </define>
@@ -283,18 +364,23 @@
283
364
  </define>
284
365
  <define name="address">
285
366
  <element name="address">
286
- <oneOrMore>
367
+ <choice>
287
368
  <!-- iso191606 TODO -->
288
- <ref name="street"/>
289
- </oneOrMore>
290
- <ref name="city"/>
291
- <optional>
292
- <ref name="state"/>
293
- </optional>
294
- <ref name="country"/>
295
- <optional>
296
- <ref name="postcode"/>
297
- </optional>
369
+ <group>
370
+ <oneOrMore>
371
+ <ref name="street"/>
372
+ </oneOrMore>
373
+ <ref name="city"/>
374
+ <optional>
375
+ <ref name="state"/>
376
+ </optional>
377
+ <ref name="country"/>
378
+ <optional>
379
+ <ref name="postcode"/>
380
+ </optional>
381
+ </group>
382
+ <ref name="formattedAddress"/>
383
+ </choice>
298
384
  </element>
299
385
  </define>
300
386
  <define name="street">
@@ -322,6 +408,11 @@
322
408
  <text/>
323
409
  </element>
324
410
  </define>
411
+ <define name="formattedAddress">
412
+ <element name="formattedAddress">
413
+ <text/>
414
+ </element>
415
+ </define>
325
416
  <define name="person-identifier">
326
417
  <element name="identifier">
327
418
  <attribute name="type">
@@ -362,10 +453,7 @@
362
453
  </define>
363
454
  <define name="date">
364
455
  <element name="date">
365
- <choice>
366
- <data type="gYear"/>
367
- <data type="date"/>
368
- </choice>
456
+ <ref name="ISO8601Date"/>
369
457
  </element>
370
458
  </define>
371
459
  <define name="locality">
@@ -377,14 +465,16 @@
377
465
  <attribute name="type">
378
466
  <ref name="LocalityType"/>
379
467
  </attribute>
380
- <ref name="referenceFrom"/>
468
+ <optional>
469
+ <ref name="referenceFrom"/>
470
+ </optional>
381
471
  <optional>
382
472
  <ref name="referenceTo"/>
383
473
  </optional>
384
474
  </define>
385
475
  <define name="LocalityType">
386
476
  <data type="string">
387
- <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|example|volume|issue|locality:[a-zA-Z0-9_]+</param>
477
+ <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>
388
478
  </data>
389
479
  </define>
390
480
  <define name="referenceFrom">
@@ -411,12 +501,25 @@
411
501
  <ref name="BibliographicItem"/>
412
502
  </element>
413
503
  </define>
504
+ <define name="relaton_collection">
505
+ <element name="relaton-collection">
506
+ <optional>
507
+ <attribute name="type"/>
508
+ </optional>
509
+ <ref name="btitle"/>
510
+ <zeroOrMore>
511
+ <ref name="contributor"/>
512
+ </zeroOrMore>
513
+ <zeroOrMore>
514
+ <ref name="docrelation"/>
515
+ </zeroOrMore>
516
+ </element>
517
+ </define>
414
518
  <define name="BibItemType" combine="choice">
415
519
  <choice>
416
520
  <value>article</value>
417
521
  <value>book</value>
418
522
  <value>booklet</value>
419
- <value>conference</value>
420
523
  <value>manual</value>
421
524
  <value>proceedings</value>
422
525
  <value>presentation</value>
@@ -430,12 +533,23 @@
430
533
  <value>film</value>
431
534
  <value>video</value>
432
535
  <value>broadcast</value>
433
- <value>graphic work</value>
536
+ <value>software</value>
537
+ <value>graphic_work</value>
434
538
  <value>music</value>
435
539
  <value>patent</value>
436
540
  <value>inbook</value>
437
541
  <value>incollection</value>
438
542
  <value>inproceedings</value>
543
+ <value>journal</value>
544
+ <value>website</value>
545
+ <value>webresource</value>
546
+ <value>dataset</value>
547
+ <value>archival</value>
548
+ <value>social_media</value>
549
+ <value>alert</value>
550
+ <value>message</value>
551
+ <value>conversation</value>
552
+ <value>misc</value>
439
553
  </choice>
440
554
  </define>
441
555
  <define name="BibliographicItem">
@@ -444,6 +558,9 @@
444
558
  <ref name="BibItemType"/>
445
559
  </attribute>
446
560
  </optional>
561
+ <optional>
562
+ <ref name="fetched"/>
563
+ </optional>
447
564
  <choice>
448
565
  <oneOrMore>
449
566
  <ref name="btitle"/>
@@ -456,6 +573,9 @@
456
573
  <zeroOrMore>
457
574
  <ref name="docidentifier"/>
458
575
  </zeroOrMore>
576
+ <optional>
577
+ <ref name="docnumber"/>
578
+ </optional>
459
579
  <zeroOrMore>
460
580
  <ref name="bdate"/>
461
581
  </zeroOrMore>
@@ -465,6 +585,9 @@
465
585
  <optional>
466
586
  <ref name="edition"/>
467
587
  </optional>
588
+ <optional>
589
+ <ref name="version"/>
590
+ </optional>
468
591
  <zeroOrMore>
469
592
  <ref name="biblionote"/>
470
593
  </zeroOrMore>
@@ -474,9 +597,9 @@
474
597
  <zeroOrMore>
475
598
  <ref name="script"/>
476
599
  </zeroOrMore>
477
- <optional>
478
- <ref name="abstract"/>
479
- </optional>
600
+ <zeroOrMore>
601
+ <ref name="bibabstract"/>
602
+ </zeroOrMore>
480
603
  <optional>
481
604
  <ref name="status"/>
482
605
  </optional>
@@ -495,15 +618,24 @@
495
618
  <zeroOrMore>
496
619
  <ref name="bplace"/>
497
620
  </zeroOrMore>
621
+ <zeroOrMore>
622
+ <ref name="bprice"/>
623
+ </zeroOrMore>
498
624
  <zeroOrMore>
499
625
  <ref name="extent"/>
500
626
  </zeroOrMore>
501
627
  <zeroOrMore>
502
628
  <ref name="accesslocation"/>
503
629
  </zeroOrMore>
630
+ <zeroOrMore>
631
+ <ref name="license"/>
632
+ </zeroOrMore>
504
633
  <optional>
505
634
  <ref name="bclassification"/>
506
635
  </optional>
636
+ <zeroOrMore>
637
+ <ref name="bkeyword"/>
638
+ </zeroOrMore>
507
639
  <optional>
508
640
  <ref name="validity"/>
509
641
  </optional>
@@ -523,6 +655,16 @@
523
655
  <ref name="FormattedString"/>
524
656
  </element>
525
657
  </define>
658
+ <define name="license">
659
+ <element name="license">
660
+ <text/>
661
+ </element>
662
+ </define>
663
+ <define name="fetched">
664
+ <element name="fetched">
665
+ <ref name="ISO8601DateTime"/>
666
+ </element>
667
+ </define>
526
668
  <define name="validity">
527
669
  <element name="validity">
528
670
  <optional>
@@ -538,17 +680,17 @@
538
680
  </define>
539
681
  <define name="validityBegins">
540
682
  <element name="validityBegins">
541
- <data type="dateTime"/>
683
+ <ref name="ISO8601DateTime"/>
542
684
  </element>
543
685
  </define>
544
686
  <define name="validityEnds">
545
687
  <element name="validityEnds">
546
- <data type="dateTime"/>
688
+ <ref name="ISO8601DateTime"/>
547
689
  </element>
548
690
  </define>
549
691
  <define name="validityRevision">
550
692
  <element name="revision">
551
- <data type="dateTime"/>
693
+ <ref name="ISO8601DateTime"/>
552
694
  </element>
553
695
  </define>
554
696
  <define name="TypedTitleString">
@@ -579,52 +721,54 @@
579
721
  <attribute name="text"/>
580
722
  </optional>
581
723
  <optional>
582
- <choice>
583
- <data type="gYear"/>
584
- <data type="date"/>
585
- </choice>
724
+ <ref name="ISO8601Date"/>
586
725
  </optional>
587
726
  </define>
727
+ <define name="BibliographicDateType">
728
+ <choice>
729
+ <value>published</value>
730
+ <value>accessed</value>
731
+ <value>created</value>
732
+ <value>implemented</value>
733
+ <value>obsoleted</value>
734
+ <value>confirmed</value>
735
+ <value>updated</value>
736
+ <value>issued</value>
737
+ <value>transmitted</value>
738
+ <value>copied</value>
739
+ <value>unchanged</value>
740
+ <value>circulated</value>
741
+ <value>adapted</value>
742
+ </choice>
743
+ </define>
588
744
  <define name="bdate">
589
745
  <element name="date">
590
746
  <attribute name="type">
591
747
  <choice>
592
- <value>published</value>
593
- <value>accessed</value>
594
- <value>created</value>
595
- <value>implemented</value>
596
- <value>obsoleted</value>
597
- <value>confirmed</value>
598
- <value>updated</value>
599
- <value>issued</value>
600
- <value>transmitted</value>
601
- <value>copied</value>
748
+ <ref name="BibliographicDateType"/>
749
+ <text/>
602
750
  </choice>
603
751
  </attribute>
604
- <choice>
605
- <group>
606
- <element name="from">
607
- <choice>
608
- <data type="gYear"/>
609
- <data type="date"/>
610
- </choice>
611
- </element>
612
- <optional>
613
- <element name="to">
614
- <choice>
615
- <data type="gYear"/>
616
- <data type="date"/>
617
- </choice>
752
+ <optional>
753
+ <attribute name="text"/>
754
+ </optional>
755
+ <optional>
756
+ <choice>
757
+ <group>
758
+ <element name="from">
759
+ <ref name="ISO8601Date"/>
618
760
  </element>
619
- </optional>
620
- </group>
621
- <element name="on">
622
- <choice>
623
- <data type="gYear"/>
624
- <data type="date"/>
625
- </choice>
626
- </element>
627
- </choice>
761
+ <optional>
762
+ <element name="to">
763
+ <ref name="ISO8601Date"/>
764
+ </element>
765
+ </optional>
766
+ </group>
767
+ <element name="on">
768
+ <ref name="ISO8601Date"/>
769
+ </element>
770
+ </choice>
771
+ </optional>
628
772
  </element>
629
773
  </define>
630
774
  <define name="docidentifier">
@@ -632,6 +776,14 @@
632
776
  <optional>
633
777
  <attribute name="type"/>
634
778
  </optional>
779
+ <optional>
780
+ <attribute name="scope"/>
781
+ </optional>
782
+ <text/>
783
+ </element>
784
+ </define>
785
+ <define name="docnumber">
786
+ <element name="docnumber">
635
787
  <text/>
636
788
  </element>
637
789
  </define>
@@ -645,14 +797,37 @@
645
797
  </define>
646
798
  <define name="bplace">
647
799
  <element name="place">
800
+ <optional>
801
+ <attribute name="uri">
802
+ <data type="anyURI"/>
803
+ </attribute>
804
+ </optional>
805
+ <optional>
806
+ <attribute name="region"/>
807
+ </optional>
808
+ <text/>
809
+ </element>
810
+ </define>
811
+ <define name="bprice">
812
+ <element name="price">
813
+ <attribute name="currency"/>
648
814
  <text/>
649
815
  </element>
650
816
  </define>
651
817
  <define name="medium">
652
818
  <element name="medium">
819
+ <optional>
820
+ <ref name="bcontent"/>
821
+ </optional>
822
+ <optional>
823
+ <ref name="genre"/>
824
+ </optional>
653
825
  <optional>
654
826
  <ref name="form"/>
655
827
  </optional>
828
+ <optional>
829
+ <ref name="carrier"/>
830
+ </optional>
656
831
  <optional>
657
832
  <ref name="size"/>
658
833
  </optional>
@@ -661,11 +836,26 @@
661
836
  </optional>
662
837
  </element>
663
838
  </define>
839
+ <define name="bcontent">
840
+ <element name="content">
841
+ <text/>
842
+ </element>
843
+ </define>
844
+ <define name="genre">
845
+ <element name="genre">
846
+ <text/>
847
+ </element>
848
+ </define>
664
849
  <define name="form">
665
850
  <element name="form">
666
851
  <text/>
667
852
  </element>
668
853
  </define>
854
+ <define name="carrier">
855
+ <element name="carrier">
856
+ <text/>
857
+ </element>
858
+ </define>
669
859
  <define name="size">
670
860
  <element name="size">
671
861
  <text/>
@@ -690,35 +880,47 @@
690
880
  <element name="series">
691
881
  <optional>
692
882
  <attribute name="type">
693
- <choice>
694
- <value>main</value>
695
- <value>alt</value>
696
- </choice>
883
+ <ref name="SeriesType"/>
697
884
  </attribute>
698
885
  </optional>
699
886
  <choice>
700
- <ref name="btitle"/>
701
887
  <ref name="formattedref"/>
888
+ <group>
889
+ <ref name="btitle"/>
890
+ <optional>
891
+ <ref name="bplace"/>
892
+ </optional>
893
+ <optional>
894
+ <ref name="seriesorganization"/>
895
+ </optional>
896
+ <optional>
897
+ <ref name="abbreviation"/>
898
+ </optional>
899
+ <optional>
900
+ <ref name="seriesfrom"/>
901
+ </optional>
902
+ <optional>
903
+ <ref name="seriesto"/>
904
+ </optional>
905
+ <optional>
906
+ <ref name="seriesnumber"/>
907
+ </optional>
908
+ <optional>
909
+ <ref name="seriespartnumber"/>
910
+ </optional>
911
+ <optional>
912
+ <ref name="seriesrun"/>
913
+ </optional>
914
+ </group>
702
915
  </choice>
703
- <ref name="bplace"/>
704
- <ref name="seriesorganization"/>
705
- <optional>
706
- <ref name="abbreviation"/>
707
- </optional>
708
- <optional>
709
- <ref name="seriesfrom"/>
710
- </optional>
711
- <optional>
712
- <ref name="seriesto"/>
713
- </optional>
714
- <optional>
715
- <ref name="seriesnumber"/>
716
- </optional>
717
- <optional>
718
- <ref name="seriespartnumber"/>
719
- </optional>
720
916
  </element>
721
917
  </define>
918
+ <define name="SeriesType">
919
+ <choice>
920
+ <value>main</value>
921
+ <value>alt</value>
922
+ </choice>
923
+ </define>
722
924
  <define name="seriesorganization">
723
925
  <element name="organization">
724
926
  <text/>
@@ -726,18 +928,12 @@
726
928
  </define>
727
929
  <define name="seriesfrom">
728
930
  <element name="from">
729
- <choice>
730
- <data type="dateTime"/>
731
- <data type="gYear"/>
732
- </choice>
931
+ <ref name="ISO8601Date"/>
733
932
  </element>
734
933
  </define>
735
934
  <define name="seriesto">
736
935
  <element name="to">
737
- <choice>
738
- <data type="dateTime"/>
739
- <data type="gYear"/>
740
- </choice>
936
+ <ref name="ISO8601Date"/>
741
937
  </element>
742
938
  </define>
743
939
  <define name="seriesnumber">
@@ -750,12 +946,20 @@
750
946
  <text/>
751
947
  </element>
752
948
  </define>
949
+ <define name="seriesrun">
950
+ <element name="run">
951
+ <text/>
952
+ </element>
953
+ </define>
753
954
  <define name="biblionote">
754
955
  <element name="note">
956
+ <optional>
957
+ <attribute name="type"/>
958
+ </optional>
755
959
  <ref name="FormattedString"/>
756
960
  </element>
757
961
  </define>
758
- <define name="abstract">
962
+ <define name="bibabstract">
759
963
  <element name="abstract">
760
964
  <ref name="FormattedString"/>
761
965
  </element>
@@ -784,25 +988,44 @@
784
988
  <ref name="ContributorInfo"/>
785
989
  </element>
786
990
  </define>
991
+ <define name="DocRelationType">
992
+ <choice>
993
+ <value>obsoletes</value>
994
+ <value>obsoletedBy</value>
995
+ <value>supersedes</value>
996
+ <value>supersededBy</value>
997
+ <value>updates</value>
998
+ <value>updatedBy</value>
999
+ <value>complements</value>
1000
+ <value>derivedFrom</value>
1001
+ <value>translatedFrom</value>
1002
+ <value>hasTranslation</value>
1003
+ <value>adoptedFrom</value>
1004
+ <value>equivalent</value>
1005
+ <value>identical</value>
1006
+ <value>nonequivalent</value>
1007
+ <value>includedIn</value>
1008
+ <value>includes</value>
1009
+ <value>instance</value>
1010
+ <value>instanceOf</value>
1011
+ <value>partOf</value>
1012
+ <value>hasPart</value>
1013
+ <value>hasDraft</value>
1014
+ <value>draftOf</value>
1015
+ <value>merges</value>
1016
+ <value>splits</value>
1017
+ <value>amends</value>
1018
+ <value>amendedBy</value>
1019
+ <value>corrects</value>
1020
+ <value>correctedBy</value>
1021
+ <value>revises</value>
1022
+ <value>revisedBy</value>
1023
+ </choice>
1024
+ </define>
787
1025
  <define name="docrelation">
788
1026
  <element name="relation">
789
1027
  <attribute name="type">
790
- <choice>
791
- <value>obsoletes</value>
792
- <value>updates</value>
793
- <value>updatedBy</value>
794
- <value>complements</value>
795
- <value>derivedFrom</value>
796
- <value>translatedFrom</value>
797
- <value>adoptedFrom</value>
798
- <value>equivalent</value>
799
- <value>identical</value>
800
- <value>nonequivalent</value>
801
- <value>includedIn</value>
802
- <value>includes</value>
803
- <value>instance</value>
804
- <value>partOf</value>
805
- </choice>
1028
+ <ref name="DocRelationType"/>
806
1029
  </attribute>
807
1030
  <element name="bibitem">
808
1031
  <ref name="BibliographicItem"/>
@@ -812,6 +1035,76 @@
812
1035
  </zeroOrMore>
813
1036
  </element>
814
1037
  </define>
1038
+ <define name="version">
1039
+ <element name="version">
1040
+ <optional>
1041
+ <ref name="revision-date"/>
1042
+ </optional>
1043
+ <zeroOrMore>
1044
+ <ref name="draft"/>
1045
+ </zeroOrMore>
1046
+ </element>
1047
+ </define>
1048
+ <define name="vedition">
1049
+ <element name="edition">
1050
+ <data type="int"/>
1051
+ </element>
1052
+ </define>
1053
+ <define name="revision-date">
1054
+ <element name="revision-date">
1055
+ <ref name="ISO8601Date"/>
1056
+ </element>
1057
+ </define>
1058
+ <define name="draft">
1059
+ <element name="draft">
1060
+ <text/>
1061
+ </element>
1062
+ </define>
1063
+ <define name="bkeyword">
1064
+ <element name="keyword">
1065
+ <choice>
1066
+ <ref name="LocalizedString"/>
1067
+ <group>
1068
+ <element name="vocab">
1069
+ <ref name="LocalizedString"/>
1070
+ </element>
1071
+ <oneOrMore>
1072
+ <ref name="vocabid"/>
1073
+ </oneOrMore>
1074
+ </group>
1075
+ <group>
1076
+ <oneOrMore>
1077
+ <element name="taxon">
1078
+ <ref name="LocalizedString"/>
1079
+ </element>
1080
+ </oneOrMore>
1081
+ <oneOrMore>
1082
+ <ref name="vocabid"/>
1083
+ </oneOrMore>
1084
+ </group>
1085
+ </choice>
1086
+ </element>
1087
+ </define>
1088
+ <define name="vocabid">
1089
+ <element name="vocabid">
1090
+ <attribute name="type"/>
1091
+ <optional>
1092
+ <attribute name="uri">
1093
+ <data type="anyURI"/>
1094
+ </attribute>
1095
+ </optional>
1096
+ <optional>
1097
+ <element name="code">
1098
+ <text/>
1099
+ </element>
1100
+ </optional>
1101
+ <optional>
1102
+ <element name="term">
1103
+ <text/>
1104
+ </element>
1105
+ </optional>
1106
+ </element>
1107
+ </define>
815
1108
  <!--
816
1109
  Anycontents = mixed {
817
1110
  https://github.com/relaxng/jing-trang/issues/211
@@ -827,10 +1120,12 @@
827
1120
  <define name="AnyElement">
828
1121
  <element>
829
1122
  <anyName/>
830
- <choice>
831
- <text/>
832
- <ref name="AnyElement"/>
833
- </choice>
1123
+ <oneOrMore>
1124
+ <choice>
1125
+ <text/>
1126
+ <ref name="AnyElement"/>
1127
+ </choice>
1128
+ </oneOrMore>
834
1129
  </element>
835
1130
  </define>
836
1131
  </grammar>