asciidoctor-gb 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +7 -0
  2. data/.hound.yml +3 -0
  3. data/.oss-guides.rubocop.yml +1077 -0
  4. data/.rubocop.ribose.yml +65 -0
  5. data/.rubocop.tb.yml +640 -0
  6. data/.rubocop.yml +15 -0
  7. data/CODE_OF_CONDUCT.md +74 -0
  8. data/Gemfile +11 -0
  9. data/README.adoc +77 -0
  10. data/Rakefile +6 -0
  11. data/asciidoctor-gb.gemspec +52 -0
  12. data/bin/console +14 -0
  13. data/bin/setup +8 -0
  14. data/lib/asciidoctor/gb/agencies.rb +186 -0
  15. data/lib/asciidoctor/gb/converter.rb +179 -0
  16. data/lib/asciidoctor/gb/front.rb +179 -0
  17. data/lib/asciidoctor/gb/gbconvert.rb +86 -0
  18. data/lib/asciidoctor/gb/gbstandard.rng +297 -0
  19. data/lib/asciidoctor/gb/html/blank.png +0 -0
  20. data/lib/asciidoctor/gb/html/footer.png +0 -0
  21. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-db.gif +0 -0
  22. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-db.png +0 -0
  23. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-db.svg +1 -0
  24. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gb.gif +0 -0
  25. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gb.png +0 -0
  26. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gb.svg +1 -0
  27. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gjb.gif +0 -0
  28. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gjb.png +0 -0
  29. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gjb.svg +1 -0
  30. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gm.gif +0 -0
  31. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gm.png +0 -0
  32. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-gm.svg +1 -0
  33. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-jjf.gif +0 -0
  34. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-jjf.png +0 -0
  35. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-jjf.svg +1 -0
  36. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-zb.gif +0 -0
  37. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-zb.png +0 -0
  38. data/lib/asciidoctor/gb/html/gb-logos/gb-standard-zb.svg +13 -0
  39. data/lib/asciidoctor/gb/html/gb.css +642 -0
  40. data/lib/asciidoctor/gb/html/header.html +216 -0
  41. data/lib/asciidoctor/gb/html/html_gb_intro.html +45 -0
  42. data/lib/asciidoctor/gb/html/html_gb_titlepage.html +98 -0
  43. data/lib/asciidoctor/gb/html/htmlstyle.css +187 -0
  44. data/lib/asciidoctor/gb/html/logo.png +0 -0
  45. data/lib/asciidoctor/gb/html/word_gb_intro.html +3 -0
  46. data/lib/asciidoctor/gb/html/word_gb_titlepage.html +234 -0
  47. data/lib/asciidoctor/gb/html/wordstyle.css +2367 -0
  48. data/lib/asciidoctor/gb/isodoc.rng +1563 -0
  49. data/lib/asciidoctor/gb/isostandard.rng +845 -0
  50. data/lib/asciidoctor/gb/metadata.rb +186 -0
  51. data/lib/asciidoctor/gb/section_input.rb +168 -0
  52. data/lib/asciidoctor/gb/section_output.rb +38 -0
  53. data/lib/asciidoctor/gb/version.rb +5 -0
  54. data/lib/asciidoctor/gb/xref_gen.rb +25 -0
  55. data/lib/asciidoctor/gb.rb +7 -0
  56. data/lib/asciidoctor-gb.rb +4 -0
  57. metadata +411 -0
@@ -0,0 +1,1563 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ instantiations of this grammar may replace leaf strings
4
+ with more elaborated types; e.g. title (text) replaced with
5
+ title-main, title-intro, title-part; type replaced with
6
+ enum.
7
+
8
+ some renaming at leaf nodes is permissible
9
+
10
+ obligations can change both from optional to mandatory,
11
+ and from mandatory to optional; optional elements may
12
+ be omitted; freely positioned alternatives may be replaced
13
+ with strict ordering
14
+
15
+ DO NOT introduce a namespace here. We do not want a distinct namespace
16
+ for these elements, and a distinct namespace for any grammar inheriting
17
+ these elements; we just want one namespace for any child grammars
18
+ of this.
19
+ -->
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
+ <start>
22
+ <ref name="standard-document"/>
23
+ </start>
24
+ <define name="standard-document">
25
+ <element name="standard-document">
26
+ <ref name="bibdata"/>
27
+ <optional>
28
+ <ref name="version"/>
29
+ </optional>
30
+ <oneOrMore>
31
+ <ref name="sections"/>
32
+ </oneOrMore>
33
+ <zeroOrMore>
34
+ <ref name="annex"/>
35
+ </zeroOrMore>
36
+ <zeroOrMore>
37
+ <ref name="references"/>
38
+ </zeroOrMore>
39
+ </element>
40
+ </define>
41
+ <define name="bibdata">
42
+ <element name="bibdata">
43
+ <ref name="BibData"/>
44
+ </element>
45
+ </define>
46
+ <define name="docrelation">
47
+ <element name="relation">
48
+ <attribute name="type">
49
+ <choice>
50
+ <value>parent</value>
51
+ <value>child</value>
52
+ <value>obsoletes</value>
53
+ <value>updates</value>
54
+ <value>complements</value>
55
+ <value>derivedFrom</value>
56
+ <value>adoptedFrom</value>
57
+ <value>equivalent</value>
58
+ <value>identical</value>
59
+ <value>nonequivalent</value>
60
+ </choice>
61
+ </attribute>
62
+ <element name="bibitem">
63
+ <ref name="BibliographicItem"/>
64
+ </element>
65
+ <zeroOrMore>
66
+ <ref name="locality"/>
67
+ </zeroOrMore>
68
+ </element>
69
+ </define>
70
+ <define name="status">
71
+ <element name="status">
72
+ <ref name="FormattedString"/>
73
+ </element>
74
+ </define>
75
+ <define name="language">
76
+ <element name="language">
77
+ <text/>
78
+ </element>
79
+ </define>
80
+ <define name="script">
81
+ <a:documentation>ISO-639</a:documentation>
82
+ <element name="script">
83
+ <text/>
84
+ </element>
85
+ </define>
86
+ <define name="version">
87
+ <a:documentation>ISO-15924: Latn</a:documentation>
88
+ <element name="version">
89
+ <optional>
90
+ <ref name="edition"/>
91
+ </optional>
92
+ <optional>
93
+ <ref name="revision-date"/>
94
+ </optional>
95
+ <zeroOrMore>
96
+ <ref name="version"/>
97
+ </zeroOrMore>
98
+ </element>
99
+ </define>
100
+ <define name="edition">
101
+ <element name="edition">
102
+ <data type="int"/>
103
+ </element>
104
+ </define>
105
+ <define name="revision-date">
106
+ <element name="revision-date">
107
+ <data type="date"/>
108
+ </element>
109
+ </define>
110
+ <define name="version">
111
+ <element name="version">
112
+ <text/>
113
+ </element>
114
+ </define>
115
+ <define name="sections">
116
+ <element name="sections">
117
+ <oneOrMore>
118
+ <choice>
119
+ <ref name="content"/>
120
+ <ref name="clause"/>
121
+ <ref name="terms"/>
122
+ <ref name="symbols-abbrevs"/>
123
+ </choice>
124
+ </oneOrMore>
125
+ </element>
126
+ </define>
127
+ <define name="symbols-abbrevs">
128
+ <element name="symbols-abbrevs">
129
+ <optional>
130
+ <attribute name="id">
131
+ <data type="ID"/>
132
+ </attribute>
133
+ </optional>
134
+ <optional>
135
+ <ref name="section-title"/>
136
+ </optional>
137
+ <ref name="dl"/>
138
+ </element>
139
+ </define>
140
+ <define name="section-title">
141
+ <element name="title">
142
+ <text/>
143
+ </element>
144
+ </define>
145
+ <define name="content">
146
+ <element name="content">
147
+ <ref name="Content-Section"/>
148
+ </element>
149
+ </define>
150
+ <define name="content-subsection">
151
+ <element name="subsection">
152
+ <ref name="Content-Section"/>
153
+ </element>
154
+ </define>
155
+ <define name="Content-Section">
156
+ <optional>
157
+ <attribute name="id">
158
+ <data type="ID"/>
159
+ </attribute>
160
+ </optional>
161
+ <optional>
162
+ <ref name="section-title"/>
163
+ </optional>
164
+ <choice>
165
+ <group>
166
+ <oneOrMore>
167
+ <ref name="BasicBlock"/>
168
+ </oneOrMore>
169
+ <zeroOrMore>
170
+ <ref name="note"/>
171
+ </zeroOrMore>
172
+ </group>
173
+ <oneOrMore>
174
+ <ref name="content-subsection"/>
175
+ </oneOrMore>
176
+ </choice>
177
+ </define>
178
+ <define name="clause">
179
+ <element name="clause">
180
+ <ref name="Clause-Section"/>
181
+ </element>
182
+ </define>
183
+ <define name="Clause-Section">
184
+ <optional>
185
+ <attribute name="id">
186
+ <data type="ID"/>
187
+ </attribute>
188
+ </optional>
189
+ <optional>
190
+ <ref name="section-title"/>
191
+ </optional>
192
+ <choice>
193
+ <group>
194
+ <oneOrMore>
195
+ <ref name="BasicBlock"/>
196
+ </oneOrMore>
197
+ <zeroOrMore>
198
+ <ref name="note"/>
199
+ </zeroOrMore>
200
+ </group>
201
+ <oneOrMore>
202
+ <ref name="clause-subsection"/>
203
+ </oneOrMore>
204
+ </choice>
205
+ </define>
206
+ <define name="clause-subsection">
207
+ <element name="subsection">
208
+ <ref name="Clause-Section"/>
209
+ </element>
210
+ </define>
211
+ <define name="annex">
212
+ <element name="annex">
213
+ <optional>
214
+ <attribute name="id">
215
+ <data type="ID"/>
216
+ </attribute>
217
+ </optional>
218
+ <attribute name="obligation">
219
+ <choice>
220
+ <value>normative</value>
221
+ <value>informative</value>
222
+ </choice>
223
+ </attribute>
224
+ <optional>
225
+ <ref name="section-title"/>
226
+ </optional>
227
+ <choice>
228
+ <group>
229
+ <oneOrMore>
230
+ <ref name="BasicBlock"/>
231
+ </oneOrMore>
232
+ <zeroOrMore>
233
+ <ref name="note"/>
234
+ </zeroOrMore>
235
+ </group>
236
+ <oneOrMore>
237
+ <ref name="clause-subsection"/>
238
+ </oneOrMore>
239
+ </choice>
240
+ </element>
241
+ </define>
242
+ <define name="references">
243
+ <element name="references">
244
+ <optional>
245
+ <attribute name="id">
246
+ <data type="ID"/>
247
+ </attribute>
248
+ </optional>
249
+ <optional>
250
+ <ref name="section-title"/>
251
+ </optional>
252
+ <zeroOrMore>
253
+ <ref name="bibitem"/>
254
+ </zeroOrMore>
255
+ </element>
256
+ </define>
257
+ <define name="terms">
258
+ <element name="terms">
259
+ <optional>
260
+ <attribute name="id">
261
+ <data type="ID"/>
262
+ </attribute>
263
+ </optional>
264
+ <oneOrMore>
265
+ <ref name="term"/>
266
+ </oneOrMore>
267
+ </element>
268
+ </define>
269
+ <define name="term">
270
+ <element name="term">
271
+ <optional>
272
+ <attribute name="id">
273
+ <data type="ID"/>
274
+ </attribute>
275
+ </optional>
276
+ <oneOrMore>
277
+ <ref name="preferred"/>
278
+ </oneOrMore>
279
+ <zeroOrMore>
280
+ <ref name="admitted"/>
281
+ </zeroOrMore>
282
+ <zeroOrMore>
283
+ <ref name="deprecates"/>
284
+ </zeroOrMore>
285
+ <optional>
286
+ <ref name="termdomain"/>
287
+ </optional>
288
+ <ref name="definition"/>
289
+ <zeroOrMore>
290
+ <ref name="termnote"/>
291
+ </zeroOrMore>
292
+ <zeroOrMore>
293
+ <ref name="termexample"/>
294
+ </zeroOrMore>
295
+ <zeroOrMore>
296
+ <ref name="termsource"/>
297
+ </zeroOrMore>
298
+ </element>
299
+ </define>
300
+ <define name="preferred">
301
+ <element name="preferred">
302
+ <oneOrMore>
303
+ <ref name="TextElement"/>
304
+ </oneOrMore>
305
+ </element>
306
+ </define>
307
+ <define name="admitted">
308
+ <element name="admitted">
309
+ <oneOrMore>
310
+ <ref name="TextElement"/>
311
+ </oneOrMore>
312
+ </element>
313
+ </define>
314
+ <define name="deprecates">
315
+ <element name="deprecates">
316
+ <oneOrMore>
317
+ <ref name="TextElement"/>
318
+ </oneOrMore>
319
+ </element>
320
+ </define>
321
+ <define name="termdomain">
322
+ <element name="domain">
323
+ <oneOrMore>
324
+ <ref name="TextElement"/>
325
+ </oneOrMore>
326
+ </element>
327
+ </define>
328
+ <define name="definition">
329
+ <element name="definition">
330
+ <ref name="paragraph"/>
331
+ </element>
332
+ </define>
333
+ <define name="termnote">
334
+ <element name="termnote">
335
+ <attribute name="id">
336
+ <data type="ID"/>
337
+ </attribute>
338
+ <ref name="paragraph"/>
339
+ </element>
340
+ </define>
341
+ <define name="termexample">
342
+ <element name="termexample">
343
+ <attribute name="id">
344
+ <data type="ID"/>
345
+ </attribute>
346
+ <ref name="BasicBlock"/>
347
+ </element>
348
+ </define>
349
+ <define name="termsource">
350
+ <element name="termsource">
351
+ <attribute name="status">
352
+ <choice>
353
+ <value>identical</value>
354
+ <value>modified</value>
355
+ </choice>
356
+ </attribute>
357
+ <ref name="origin"/>
358
+ <optional>
359
+ <ref name="modification"/>
360
+ </optional>
361
+ </element>
362
+ </define>
363
+ <define name="origin">
364
+ <element name="origin">
365
+ <ref name="erefType"/>
366
+ </element>
367
+ </define>
368
+ <define name="modification">
369
+ <element name="modification">
370
+ <ref name="paragraph"/>
371
+ </element>
372
+ </define>
373
+ <define name="BasicBlock">
374
+ <choice>
375
+ <ref name="paragraph-with-footnote"/>
376
+ <ref name="table"/>
377
+ <ref name="formula"/>
378
+ <ref name="admonition"/>
379
+ <ref name="ol"/>
380
+ <ref name="ul"/>
381
+ <ref name="dl"/>
382
+ <ref name="figure"/>
383
+ <ref name="quote"/>
384
+ <ref name="sourcecode"/>
385
+ <ref name="example"/>
386
+ <ref name="review"/>
387
+ </choice>
388
+ </define>
389
+ <define name="paragraph">
390
+ <element name="p">
391
+ <ref name="ParagraphType"/>
392
+ </element>
393
+ </define>
394
+ <define name="Alignments">
395
+ <choice>
396
+ <value>left</value>
397
+ <value>right</value>
398
+ <value>center</value>
399
+ <value>justified</value>
400
+ </choice>
401
+ </define>
402
+ <define name="ParagraphType">
403
+ <attribute name="id">
404
+ <data type="ID"/>
405
+ </attribute>
406
+ <optional>
407
+ <attribute name="align">
408
+ <ref name="Alignments"/>
409
+ </attribute>
410
+ </optional>
411
+ <zeroOrMore>
412
+ <ref name="TextElement"/>
413
+ </zeroOrMore>
414
+ <zeroOrMore>
415
+ <ref name="note"/>
416
+ </zeroOrMore>
417
+ </define>
418
+ <define name="paragraph-with-footnote">
419
+ <element name="p">
420
+ <attribute name="id">
421
+ <data type="ID"/>
422
+ </attribute>
423
+ <optional>
424
+ <attribute name="align">
425
+ <ref name="Alignments"/>
426
+ </attribute>
427
+ </optional>
428
+ <zeroOrMore>
429
+ <choice>
430
+ <ref name="TextElement"/>
431
+ <ref name="fn"/>
432
+ </choice>
433
+ </zeroOrMore>
434
+ <zeroOrMore>
435
+ <ref name="note"/>
436
+ </zeroOrMore>
437
+ </element>
438
+ </define>
439
+ <define name="note">
440
+ <element name="note">
441
+ <attribute name="id">
442
+ <data type="ID"/>
443
+ </attribute>
444
+ <oneOrMore>
445
+ <ref name="paragraph-with-footnote"/>
446
+ </oneOrMore>
447
+ </element>
448
+ </define>
449
+ <define name="review">
450
+ <element name="review">
451
+ <attribute name="id">
452
+ <data type="ID"/>
453
+ </attribute>
454
+ <attribute name="reviewer"/>
455
+ <optional>
456
+ <attribute name="date">
457
+ <data type="date"/>
458
+ </attribute>
459
+ </optional>
460
+ <attribute name="from">
461
+ <data type="IDREF"/>
462
+ </attribute>
463
+ <optional>
464
+ <attribute name="to">
465
+ <data type="IDREF"/>
466
+ </attribute>
467
+ </optional>
468
+ <oneOrMore>
469
+ <ref name="paragraph"/>
470
+ </oneOrMore>
471
+ </element>
472
+ </define>
473
+ <define name="formula">
474
+ <element name="formula">
475
+ <attribute name="id">
476
+ <data type="ID"/>
477
+ </attribute>
478
+ <ref name="stem"/>
479
+ <optional>
480
+ <ref name="dl"/>
481
+ </optional>
482
+ <zeroOrMore>
483
+ <ref name="note"/>
484
+ </zeroOrMore>
485
+ </element>
486
+ </define>
487
+ <define name="quote">
488
+ <element name="quote">
489
+ <attribute name="id">
490
+ <data type="ID"/>
491
+ </attribute>
492
+ <optional>
493
+ <attribute name="alignment">
494
+ <ref name="Alignments"/>
495
+ </attribute>
496
+ </optional>
497
+ <optional>
498
+ <ref name="quote-source"/>
499
+ </optional>
500
+ <optional>
501
+ <ref name="quote-author"/>
502
+ </optional>
503
+ <oneOrMore>
504
+ <ref name="paragraph-with-footnote"/>
505
+ </oneOrMore>
506
+ <zeroOrMore>
507
+ <ref name="note"/>
508
+ </zeroOrMore>
509
+ </element>
510
+ </define>
511
+ <define name="quote-source">
512
+ <element name="source">
513
+ <ref name="erefType"/>
514
+ </element>
515
+ </define>
516
+ <define name="quote-author">
517
+ <element name="author">
518
+ <text/>
519
+ </element>
520
+ </define>
521
+ <define name="sourcecode">
522
+ <element name="sourcecode">
523
+ <attribute name="id">
524
+ <data type="ID"/>
525
+ </attribute>
526
+ <optional>
527
+ <ref name="tname"/>
528
+ </optional>
529
+ <oneOrMore>
530
+ <choice>
531
+ <text/>
532
+ <ref name="callout"/>
533
+ </choice>
534
+ </oneOrMore>
535
+ <zeroOrMore>
536
+ <ref name="annotation"/>
537
+ </zeroOrMore>
538
+ <zeroOrMore>
539
+ <ref name="note"/>
540
+ </zeroOrMore>
541
+ </element>
542
+ </define>
543
+ <define name="table">
544
+ <element name="table">
545
+ <attribute name="id">
546
+ <data type="ID"/>
547
+ </attribute>
548
+ <optional>
549
+ <ref name="tname"/>
550
+ </optional>
551
+ <optional>
552
+ <ref name="thead"/>
553
+ </optional>
554
+ <ref name="tbody"/>
555
+ <optional>
556
+ <ref name="tfoot"/>
557
+ </optional>
558
+ <zeroOrMore>
559
+ <ref name="table-note"/>
560
+ </zeroOrMore>
561
+ <optional>
562
+ <ref name="dl"/>
563
+ </optional>
564
+ </element>
565
+ </define>
566
+ <define name="tname">
567
+ <element name="name">
568
+ <text/>
569
+ </element>
570
+ </define>
571
+ <define name="thead">
572
+ <element name="thead">
573
+ <ref name="tr"/>
574
+ </element>
575
+ </define>
576
+ <define name="tfoot">
577
+ <element name="tfoot">
578
+ <ref name="tr"/>
579
+ </element>
580
+ </define>
581
+ <define name="tbody">
582
+ <element name="tbody">
583
+ <oneOrMore>
584
+ <ref name="tr"/>
585
+ </oneOrMore>
586
+ </element>
587
+ </define>
588
+ <define name="table-note">
589
+ <element name="note">
590
+ <ref name="paragraph"/>
591
+ </element>
592
+ </define>
593
+ <define name="tr">
594
+ <element name="tr">
595
+ <oneOrMore>
596
+ <choice>
597
+ <ref name="td"/>
598
+ <ref name="th"/>
599
+ </choice>
600
+ </oneOrMore>
601
+ </element>
602
+ </define>
603
+ <define name="td">
604
+ <element name="td">
605
+ <optional>
606
+ <attribute name="colspan"/>
607
+ </optional>
608
+ <optional>
609
+ <attribute name="rowspan"/>
610
+ </optional>
611
+ <optional>
612
+ <attribute name="align">
613
+ <choice>
614
+ <value>left</value>
615
+ <value>right</value>
616
+ <value>center</value>
617
+ </choice>
618
+ </attribute>
619
+ </optional>
620
+ <choice>
621
+ <zeroOrMore>
622
+ <ref name="TextElement"/>
623
+ </zeroOrMore>
624
+ <oneOrMore>
625
+ <ref name="paragraph-with-footnote"/>
626
+ </oneOrMore>
627
+ </choice>
628
+ </element>
629
+ </define>
630
+ <define name="th">
631
+ <element name="th">
632
+ <optional>
633
+ <attribute name="colspan"/>
634
+ </optional>
635
+ <optional>
636
+ <attribute name="rowspan"/>
637
+ </optional>
638
+ <optional>
639
+ <attribute name="align">
640
+ <choice>
641
+ <value>left</value>
642
+ <value>right</value>
643
+ <value>center</value>
644
+ </choice>
645
+ </attribute>
646
+ </optional>
647
+ <choice>
648
+ <zeroOrMore>
649
+ <ref name="TextElement"/>
650
+ </zeroOrMore>
651
+ <oneOrMore>
652
+ <ref name="paragraph-with-footnote"/>
653
+ </oneOrMore>
654
+ </choice>
655
+ </element>
656
+ </define>
657
+ <define name="example">
658
+ <element name="example">
659
+ <attribute name="id">
660
+ <data type="ID"/>
661
+ </attribute>
662
+ <oneOrMore>
663
+ <choice>
664
+ <ref name="formula"/>
665
+ <ref name="ul"/>
666
+ <ref name="ol"/>
667
+ <ref name="dl"/>
668
+ <ref name="quote"/>
669
+ <ref name="sourcecode"/>
670
+ <ref name="paragraph-with-footnote"/>
671
+ </choice>
672
+ </oneOrMore>
673
+ <zeroOrMore>
674
+ <ref name="note"/>
675
+ </zeroOrMore>
676
+ </element>
677
+ </define>
678
+ <define name="admonition">
679
+ <element name="admonition">
680
+ <attribute name="type">
681
+ <choice>
682
+ <value>warning</value>
683
+ <value>note</value>
684
+ <value>tip</value>
685
+ <value>important</value>
686
+ <value>caution</value>
687
+ </choice>
688
+ </attribute>
689
+ <attribute name="id">
690
+ <data type="ID"/>
691
+ </attribute>
692
+ <zeroOrMore>
693
+ <ref name="paragraph-with-footnote"/>
694
+ </zeroOrMore>
695
+ <zeroOrMore>
696
+ <ref name="note"/>
697
+ </zeroOrMore>
698
+ </element>
699
+ </define>
700
+ <define name="figure">
701
+ <element name="figure">
702
+ <attribute name="id">
703
+ <data type="ID"/>
704
+ </attribute>
705
+ <optional>
706
+ <ref name="source"/>
707
+ </optional>
708
+ <optional>
709
+ <ref name="tname"/>
710
+ </optional>
711
+ <choice>
712
+ <oneOrMore>
713
+ <ref name="figure"/>
714
+ </oneOrMore>
715
+ <group>
716
+ <zeroOrMore>
717
+ <ref name="TextElement"/>
718
+ </zeroOrMore>
719
+ <zeroOrMore>
720
+ <ref name="note"/>
721
+ </zeroOrMore>
722
+ <optional>
723
+ <ref name="dl"/>
724
+ </optional>
725
+ </group>
726
+ </choice>
727
+ </element>
728
+ </define>
729
+ <define name="TextElement">
730
+ <choice>
731
+ <text/>
732
+ <ref name="em"/>
733
+ <ref name="eref"/>
734
+ <ref name="strong"/>
735
+ <ref name="stem"/>
736
+ <ref name="sub"/>
737
+ <ref name="sup"/>
738
+ <ref name="tt"/>
739
+ <ref name="strike"/>
740
+ <ref name="smallcap"/>
741
+ <ref name="xref"/>
742
+ <ref name="br"/>
743
+ <ref name="hyperlink"/>
744
+ <ref name="hr"/>
745
+ <ref name="pagebreak"/>
746
+ <ref name="bookmark"/>
747
+ </choice>
748
+ </define>
749
+ <define name="em">
750
+ <element name="em">
751
+ <text/>
752
+ </element>
753
+ </define>
754
+ <define name="strong">
755
+ <element name="strong">
756
+ <text/>
757
+ </element>
758
+ </define>
759
+ <define name="tt">
760
+ <element name="tt">
761
+ <text/>
762
+ </element>
763
+ </define>
764
+ <define name="sub">
765
+ <element name="sub">
766
+ <text/>
767
+ </element>
768
+ </define>
769
+ <define name="sup">
770
+ <element name="sup">
771
+ <text/>
772
+ </element>
773
+ </define>
774
+ <define name="strike">
775
+ <element name="strike">
776
+ <text/>
777
+ </element>
778
+ </define>
779
+ <define name="smallcap">
780
+ <element name="smallcap">
781
+ <text/>
782
+ </element>
783
+ </define>
784
+ <define name="br">
785
+ <element name="br">
786
+ <empty/>
787
+ </element>
788
+ </define>
789
+ <define name="hr">
790
+ <element name="hr">
791
+ <empty/>
792
+ </element>
793
+ </define>
794
+ <define name="pagebreak">
795
+ <element name="pagebreak">
796
+ <empty/>
797
+ </element>
798
+ </define>
799
+ <!-- bare ID element, used for referencing arbitrary spans of text -->
800
+ <define name="bookmark">
801
+ <element name="bookmark">
802
+ <attribute name="id">
803
+ <data type="ID"/>
804
+ </attribute>
805
+ <empty/>
806
+ </element>
807
+ </define>
808
+ <define name="ReferenceFormat">
809
+ <choice>
810
+ <value>external</value>
811
+ <value>inline</value>
812
+ <value>footnote</value>
813
+ <value>callout</value>
814
+ </choice>
815
+ </define>
816
+ <define name="eref">
817
+ <element name="eref">
818
+ <ref name="erefType"/>
819
+ </element>
820
+ </define>
821
+ <define name="erefType">
822
+ <optional>
823
+ <attribute name="normative">
824
+ <data type="boolean"/>
825
+ </attribute>
826
+ </optional>
827
+ <attribute name="citeas"/>
828
+ <attribute name="type">
829
+ <ref name="ReferenceFormat"/>
830
+ </attribute>
831
+ <ref name="CitationType"/>
832
+ <text/>
833
+ </define>
834
+ <define name="hyperlink">
835
+ <element name="link">
836
+ <attribute name="target">
837
+ <data type="anyURI"/>
838
+ </attribute>
839
+ <attribute name="type">
840
+ <ref name="ReferenceFormat"/>
841
+ </attribute>
842
+ <text/>
843
+ </element>
844
+ </define>
845
+ <define name="xref">
846
+ <element name="xref">
847
+ <attribute name="target">
848
+ <data type="IDREF"/>
849
+ </attribute>
850
+ <attribute name="type">
851
+ <ref name="ReferenceFormat"/>
852
+ </attribute>
853
+ <text/>
854
+ </element>
855
+ </define>
856
+ <define name="fn">
857
+ <element name="fn">
858
+ <attribute name="reference"/>
859
+ <oneOrMore>
860
+ <ref name="paragraph"/>
861
+ </oneOrMore>
862
+ </element>
863
+ </define>
864
+ <!--
865
+ This is xref with fixed @type="footnote", and @target built in as paragraph+
866
+ @reference replaces ReferenceElement/text
867
+ so <fn reference="2"><p>This is a footnote</p></fn>
868
+ corresponds to
869
+ <eref type="footnote" target="fn2">2</xref> <p id="fn2">This is a footnote</p>
870
+ -->
871
+ <define name="callout">
872
+ <element name="callout">
873
+ <attribute name="target">
874
+ <data type="IDREF"/>
875
+ </attribute>
876
+ <text/>
877
+ </element>
878
+ </define>
879
+ <!--
880
+ This is xref with fixed @type="callout"; the target by convention is in an annotation in the same source code snippet
881
+ so <callout target="xyz">1</callout>
882
+ corresponds to <xref type="callout" target="xyz">1</xref>
883
+ -->
884
+ <define name="image">
885
+ <element name="image">
886
+ <attribute name="id">
887
+ <data type="ID"/>
888
+ </attribute>
889
+ <optional>
890
+ <attribute name="src">
891
+ <data type="anyURI"/>
892
+ </attribute>
893
+ </optional>
894
+ <attribute name="imagetype">
895
+ <choice>
896
+ <value>SVG</value>
897
+ <value>JPEG</value>
898
+ <value>GIF</value>
899
+ <value>PNG</value>
900
+ <value>PDF</value>
901
+ </choice>
902
+ </attribute>
903
+ <optional>
904
+ <attribute name="width">
905
+ <data type="int"/>
906
+ </attribute>
907
+ </optional>
908
+ <optional>
909
+ <attribute name="height">
910
+ <data type="int"/>
911
+ </attribute>
912
+ </optional>
913
+ </element>
914
+ </define>
915
+ <define name="stem">
916
+ <element name="stem">
917
+ <attribute name="type">
918
+ <choice>
919
+ <value>MathML</value>
920
+ <value>AsciiMath</value>
921
+ </choice>
922
+ </attribute>
923
+ <text/>
924
+ </element>
925
+ </define>
926
+ <define name="annotation">
927
+ <element name="annotation">
928
+ <attribute name="id">
929
+ <data type="ID"/>
930
+ </attribute>
931
+ <ref name="paragraph"/>
932
+ </element>
933
+ </define>
934
+ <define name="ul">
935
+ <element name="ul">
936
+ <attribute name="id">
937
+ <data type="ID"/>
938
+ </attribute>
939
+ <oneOrMore>
940
+ <ref name="li"/>
941
+ </oneOrMore>
942
+ <zeroOrMore>
943
+ <ref name="note"/>
944
+ </zeroOrMore>
945
+ </element>
946
+ </define>
947
+ <define name="li">
948
+ <element name="li">
949
+ <oneOrMore>
950
+ <ref name="paragraph-with-footnote"/>
951
+ </oneOrMore>
952
+ </element>
953
+ </define>
954
+ <define name="ol">
955
+ <element name="ol">
956
+ <attribute name="id">
957
+ <data type="ID"/>
958
+ </attribute>
959
+ <attribute name="type">
960
+ <choice>
961
+ <value>roman</value>
962
+ <value>alphabet</value>
963
+ <value>arabic</value>
964
+ <value>roman_upper</value>
965
+ <value>alphabet_upper</value>
966
+ </choice>
967
+ </attribute>
968
+ <oneOrMore>
969
+ <ref name="li"/>
970
+ </oneOrMore>
971
+ <zeroOrMore>
972
+ <ref name="note"/>
973
+ </zeroOrMore>
974
+ </element>
975
+ </define>
976
+ <define name="dl">
977
+ <element name="dl">
978
+ <attribute name="id">
979
+ <data type="ID"/>
980
+ </attribute>
981
+ <oneOrMore>
982
+ <ref name="dt"/>
983
+ <ref name="dd"/>
984
+ </oneOrMore>
985
+ <zeroOrMore>
986
+ <ref name="note"/>
987
+ </zeroOrMore>
988
+ </element>
989
+ </define>
990
+ <define name="dt">
991
+ <element name="dt">
992
+ <ref name="TextElement"/>
993
+ </element>
994
+ </define>
995
+ <define name="dd">
996
+ <element name="dd">
997
+ <zeroOrMore>
998
+ <ref name="paragraph-with-footnote"/>
999
+ </zeroOrMore>
1000
+ </element>
1001
+ </define>
1002
+ <define name="LocalizedString">
1003
+ <optional>
1004
+ <!-- multiple languages and scripts possible: comma delimit them if so -->
1005
+ <attribute name="language"/>
1006
+ </optional>
1007
+ <optional>
1008
+ <attribute name="script"/>
1009
+ </optional>
1010
+ <text/>
1011
+ </define>
1012
+ <!--
1013
+ Unlike UML, change type to format: type is overloaded
1014
+ Would be need if plain were default value and could omit the attribute
1015
+ Added LocalizedStringOrXsAny
1016
+ -->
1017
+ <define name="FormattedString">
1018
+ <optional>
1019
+ <!-- attribute format { ( "plain" | "html" | "docbook" | "tei" | "asciidoc" | "markdown" ) }?, -->
1020
+ <attribute name="format">
1021
+ <choice>
1022
+ <value>text/plain</value>
1023
+ <value>text/html</value>
1024
+ <value>application/docbook+xml</value>
1025
+ <value>application/tei+xml</value>
1026
+ <value>text/x-asciidoc</value>
1027
+ <value>text/markdown</value>
1028
+ <value>application/x-isodoc+xml</value>
1029
+ <text/>
1030
+ </choice>
1031
+ </attribute>
1032
+ </optional>
1033
+ <ref name="LocalizedStringOrXsAny"/>
1034
+ </define>
1035
+ <define name="LocalizedStringOrXsAny">
1036
+ <optional>
1037
+ <!-- multiple languages and scripts possible: comma delimit them if so -->
1038
+ <attribute name="language"/>
1039
+ </optional>
1040
+ <optional>
1041
+ <attribute name="script"/>
1042
+ </optional>
1043
+ <oneOrMore>
1044
+ <choice>
1045
+ <text/>
1046
+ <ref name="AnyElement"/>
1047
+ </choice>
1048
+ </oneOrMore>
1049
+ </define>
1050
+ <define name="contributor">
1051
+ <element name="contributor">
1052
+ <zeroOrMore>
1053
+ <ref name="role"/>
1054
+ </zeroOrMore>
1055
+ <ref name="ContributorInfo"/>
1056
+ </element>
1057
+ </define>
1058
+ <define name="role">
1059
+ <element name="role">
1060
+ <optional>
1061
+ <attribute name="type">
1062
+ <choice>
1063
+ <value>author</value>
1064
+ <value>edition</value>
1065
+ <value>publisher</value>
1066
+ <text/>
1067
+ </choice>
1068
+ </attribute>
1069
+ </optional>
1070
+ <zeroOrMore>
1071
+ <ref name="roledescription"/>
1072
+ </zeroOrMore>
1073
+ </element>
1074
+ </define>
1075
+ <define name="ContributorInfo">
1076
+ <choice>
1077
+ <ref name="person"/>
1078
+ <ref name="organization"/>
1079
+ </choice>
1080
+ </define>
1081
+ <define name="roledescription">
1082
+ <element name="description">
1083
+ <ref name="FormattedString"/>
1084
+ </element>
1085
+ </define>
1086
+ <define name="person">
1087
+ <element name="person">
1088
+ <optional>
1089
+ <ref name="fullname"/>
1090
+ </optional>
1091
+ <zeroOrMore>
1092
+ <ref name="affiliation"/>
1093
+ </zeroOrMore>
1094
+ <zeroOrMore>
1095
+ <ref name="person-identifier"/>
1096
+ </zeroOrMore>
1097
+ <zeroOrMore>
1098
+ <ref name="contact"/>
1099
+ </zeroOrMore>
1100
+ <optional>
1101
+ <ref name="uri"/>
1102
+ </optional>
1103
+ </element>
1104
+ </define>
1105
+ <define name="fullname">
1106
+ <element name="name">
1107
+ <zeroOrMore>
1108
+ <ref name="prefix"/>
1109
+ </zeroOrMore>
1110
+ <zeroOrMore>
1111
+ <ref name="forename"/>
1112
+ </zeroOrMore>
1113
+ <zeroOrMore>
1114
+ <ref name="initial"/>
1115
+ </zeroOrMore>
1116
+ <ref name="surname"/>
1117
+ <zeroOrMore>
1118
+ <ref name="addition"/>
1119
+ </zeroOrMore>
1120
+ </element>
1121
+ </define>
1122
+ <define name="prefix">
1123
+ <element name="prefix">
1124
+ <ref name="LocalizedString"/>
1125
+ </element>
1126
+ </define>
1127
+ <define name="initial">
1128
+ <element name="initial">
1129
+ <ref name="LocalizedString"/>
1130
+ </element>
1131
+ </define>
1132
+ <define name="addition">
1133
+ <element name="addition">
1134
+ <ref name="LocalizedString"/>
1135
+ </element>
1136
+ </define>
1137
+ <define name="surname">
1138
+ <element name="surname">
1139
+ <ref name="LocalizedString"/>
1140
+ </element>
1141
+ </define>
1142
+ <define name="forename">
1143
+ <element name="forename">
1144
+ <ref name="LocalizedString"/>
1145
+ </element>
1146
+ </define>
1147
+ <define name="affiliation">
1148
+ <element name="affiliation">
1149
+ <optional>
1150
+ <ref name="affiliationname"/>
1151
+ </optional>
1152
+ <zeroOrMore>
1153
+ <ref name="affiliationdescription"/>
1154
+ </zeroOrMore>
1155
+ <ref name="organization"/>
1156
+ </element>
1157
+ </define>
1158
+ <define name="affiliationname">
1159
+ <element name="name">
1160
+ <ref name="LocalizedString"/>
1161
+ </element>
1162
+ </define>
1163
+ <define name="affiliationdescription">
1164
+ <element name="description">
1165
+ <ref name="FormattedString"/>
1166
+ </element>
1167
+ </define>
1168
+ <define name="organization">
1169
+ <element name="organization">
1170
+ <ref name="orgname"/>
1171
+ <optional>
1172
+ <ref name="uri"/>
1173
+ </optional>
1174
+ <zeroOrMore>
1175
+ <ref name="org-identifier"/>
1176
+ </zeroOrMore>
1177
+ <zeroOrMore>
1178
+ <ref name="contact"/>
1179
+ </zeroOrMore>
1180
+ </element>
1181
+ </define>
1182
+ <define name="orgname">
1183
+ <element name="name">
1184
+ <ref name="LocalizedString"/>
1185
+ </element>
1186
+ </define>
1187
+ <define name="uri">
1188
+ <element name="uri">
1189
+ <data type="anyURI"/>
1190
+ </element>
1191
+ </define>
1192
+ <!-- TODO may change -->
1193
+ <define name="contact">
1194
+ <choice>
1195
+ <ref name="address"/>
1196
+ <ref name="phone"/>
1197
+ <ref name="email"/>
1198
+ <ref name="uri"/>
1199
+ </choice>
1200
+ </define>
1201
+ <define name="phone">
1202
+ <element name="phone">
1203
+ <text/>
1204
+ </element>
1205
+ </define>
1206
+ <define name="email">
1207
+ <element name="email">
1208
+ <text/>
1209
+ </element>
1210
+ </define>
1211
+ <define name="address">
1212
+ <element name="address">
1213
+ <oneOrMore>
1214
+ <!-- iso191606 TODO -->
1215
+ <ref name="street"/>
1216
+ </oneOrMore>
1217
+ <ref name="city"/>
1218
+ <optional>
1219
+ <ref name="state"/>
1220
+ </optional>
1221
+ <ref name="country"/>
1222
+ <optional>
1223
+ <ref name="postcode"/>
1224
+ </optional>
1225
+ </element>
1226
+ </define>
1227
+ <define name="street">
1228
+ <element name="street">
1229
+ <text/>
1230
+ </element>
1231
+ </define>
1232
+ <define name="city">
1233
+ <element name="city">
1234
+ <text/>
1235
+ </element>
1236
+ </define>
1237
+ <define name="state">
1238
+ <element name="state">
1239
+ <text/>
1240
+ </element>
1241
+ </define>
1242
+ <define name="country">
1243
+ <element name="country">
1244
+ <text/>
1245
+ </element>
1246
+ </define>
1247
+ <define name="postcode">
1248
+ <element name="postcode">
1249
+ <text/>
1250
+ </element>
1251
+ </define>
1252
+ <define name="person-identifier">
1253
+ <element name="identifier">
1254
+ <attribute name="type">
1255
+ <choice>
1256
+ <value>isni</value>
1257
+ <value>uri</value>
1258
+ </choice>
1259
+ </attribute>
1260
+ <text/>
1261
+ </element>
1262
+ </define>
1263
+ <define name="org-identifier">
1264
+ <element name="identifier">
1265
+ <attribute name="type">
1266
+ <choice>
1267
+ <value>orcid</value>
1268
+ <value>uri</value>
1269
+ </choice>
1270
+ </attribute>
1271
+ <text/>
1272
+ </element>
1273
+ </define>
1274
+ <define name="citation">
1275
+ <element name="citation">
1276
+ <ref name="CitationType"/>
1277
+ </element>
1278
+ </define>
1279
+ <define name="CitationType">
1280
+ <attribute name="bibitemid">
1281
+ <data type="IDREF"/>
1282
+ </attribute>
1283
+ <zeroOrMore>
1284
+ <ref name="locality"/>
1285
+ </zeroOrMore>
1286
+ <optional>
1287
+ <ref name="date"/>
1288
+ </optional>
1289
+ </define>
1290
+ <define name="date">
1291
+ <element name="date">
1292
+ <choice>
1293
+ <data type="gYear"/>
1294
+ <data type="date"/>
1295
+ </choice>
1296
+ </element>
1297
+ </define>
1298
+ <define name="locality">
1299
+ <element name="locality">
1300
+ <attribute name="type">
1301
+ <choice>
1302
+ <value>section</value>
1303
+ <value>clause</value>
1304
+ <value>part</value>
1305
+ <value>paragraph</value>
1306
+ <value>chapter</value>
1307
+ <value>page</value>
1308
+ <value>whole</value>
1309
+ <value>table</value>
1310
+ <value>annex</value>
1311
+ <value>figure</value>
1312
+ <value>note</value>
1313
+ <value>example</value>
1314
+ </choice>
1315
+ </attribute>
1316
+ <ref name="referenceFrom"/>
1317
+ <optional>
1318
+ <ref name="referenceTo"/>
1319
+ </optional>
1320
+ </element>
1321
+ </define>
1322
+ <define name="referenceFrom">
1323
+ <element name="referenceFrom">
1324
+ <text/>
1325
+ </element>
1326
+ </define>
1327
+ <define name="referenceTo">
1328
+ <element name="referenceTo">
1329
+ <text/>
1330
+ </element>
1331
+ </define>
1332
+ <!-- unlike UML, has id attribute; that results from including bibitem in a docmodel -->
1333
+ <define name="bibitem">
1334
+ <element name="bibitem">
1335
+ <attribute name="id">
1336
+ <data type="ID"/>
1337
+ </attribute>
1338
+ <ref name="BibliographicItem"/>
1339
+ </element>
1340
+ </define>
1341
+ <define name="bibitem_no_id">
1342
+ <element name="bibitem">
1343
+ <ref name="BibliographicItem"/>
1344
+ </element>
1345
+ </define>
1346
+ <define name="BibItemType" combine="choice">
1347
+ <choice>
1348
+ <value>article</value>
1349
+ <value>book</value>
1350
+ <value>booklet</value>
1351
+ <value>conference</value>
1352
+ <value>manual</value>
1353
+ <value>proceedings</value>
1354
+ <value>presentation</value>
1355
+ <value>thesis</value>
1356
+ <value>techreport</value>
1357
+ <value>standard</value>
1358
+ <value>unpublished</value>
1359
+ </choice>
1360
+ </define>
1361
+ <define name="BibliographicItem">
1362
+ <optional>
1363
+ <attribute name="type">
1364
+ <ref name="BibItemType"/>
1365
+ </attribute>
1366
+ </optional>
1367
+ <choice>
1368
+ <oneOrMore>
1369
+ <ref name="btitle"/>
1370
+ </oneOrMore>
1371
+ <ref name="formattedref"/>
1372
+ </choice>
1373
+ <optional>
1374
+ <ref name="source"/>
1375
+ </optional>
1376
+ <zeroOrMore>
1377
+ <ref name="docidentifier"/>
1378
+ </zeroOrMore>
1379
+ <zeroOrMore>
1380
+ <ref name="bdate"/>
1381
+ </zeroOrMore>
1382
+ <zeroOrMore>
1383
+ <ref name="contributor"/>
1384
+ </zeroOrMore>
1385
+ <optional>
1386
+ <ref name="edition"/>
1387
+ </optional>
1388
+ <zeroOrMore>
1389
+ <ref name="biblionote"/>
1390
+ </zeroOrMore>
1391
+ <zeroOrMore>
1392
+ <ref name="partof"/>
1393
+ </zeroOrMore>
1394
+ <zeroOrMore>
1395
+ <ref name="language"/>
1396
+ </zeroOrMore>
1397
+ <zeroOrMore>
1398
+ <ref name="script"/>
1399
+ </zeroOrMore>
1400
+ <optional>
1401
+ <ref name="abstract"/>
1402
+ </optional>
1403
+ <optional>
1404
+ <ref name="status"/>
1405
+ </optional>
1406
+ <optional>
1407
+ <ref name="copyright"/>
1408
+ </optional>
1409
+ <zeroOrMore>
1410
+ <ref name="docrelation"/>
1411
+ </zeroOrMore>
1412
+ </define>
1413
+ <define name="BibData">
1414
+ <optional>
1415
+ <attribute name="type">
1416
+ <ref name="BibItemType"/>
1417
+ </attribute>
1418
+ </optional>
1419
+ <oneOrMore>
1420
+ <ref name="btitle"/>
1421
+ </oneOrMore>
1422
+ <optional>
1423
+ <ref name="formattedref"/>
1424
+ </optional>
1425
+ <optional>
1426
+ <ref name="source"/>
1427
+ </optional>
1428
+ <zeroOrMore>
1429
+ <ref name="docidentifier"/>
1430
+ </zeroOrMore>
1431
+ <zeroOrMore>
1432
+ <ref name="bdate"/>
1433
+ </zeroOrMore>
1434
+ <zeroOrMore>
1435
+ <ref name="contributor"/>
1436
+ </zeroOrMore>
1437
+ <optional>
1438
+ <ref name="edition"/>
1439
+ </optional>
1440
+ <zeroOrMore>
1441
+ <ref name="biblionote"/>
1442
+ </zeroOrMore>
1443
+ <zeroOrMore>
1444
+ <ref name="partof"/>
1445
+ </zeroOrMore>
1446
+ <zeroOrMore>
1447
+ <ref name="language"/>
1448
+ </zeroOrMore>
1449
+ <zeroOrMore>
1450
+ <ref name="script"/>
1451
+ </zeroOrMore>
1452
+ <optional>
1453
+ <ref name="abstract"/>
1454
+ </optional>
1455
+ <optional>
1456
+ <ref name="status"/>
1457
+ </optional>
1458
+ <ref name="copyright"/>
1459
+ <zeroOrMore>
1460
+ <ref name="docrelation"/>
1461
+ </zeroOrMore>
1462
+ </define>
1463
+ <define name="btitle">
1464
+ <element name="title">
1465
+ <ref name="FormattedString"/>
1466
+ </element>
1467
+ </define>
1468
+ <define name="formattedref">
1469
+ <element name="formattedref">
1470
+ <ref name="FormattedString"/>
1471
+ </element>
1472
+ </define>
1473
+ <define name="source">
1474
+ <element name="source">
1475
+ <data type="anyURI"/>
1476
+ </element>
1477
+ </define>
1478
+ <define name="bdate">
1479
+ <element name="date">
1480
+ <attribute name="type">
1481
+ <choice>
1482
+ <value>published</value>
1483
+ <value>accessed</value>
1484
+ <value>created</value>
1485
+ <value>activated</value>
1486
+ <value>obsoleted</value>
1487
+ </choice>
1488
+ </attribute>
1489
+ <choice>
1490
+ <data type="gYear"/>
1491
+ <data type="date"/>
1492
+ </choice>
1493
+ </element>
1494
+ </define>
1495
+ <define name="docidentifier">
1496
+ <element name="docidentifier">
1497
+ <optional>
1498
+ <attribute name="type"/>
1499
+ </optional>
1500
+ <text/>
1501
+ </element>
1502
+ </define>
1503
+ <define name="biblionote">
1504
+ <element name="note">
1505
+ <ref name="FormattedString"/>
1506
+ </element>
1507
+ </define>
1508
+ <define name="abstract">
1509
+ <element name="abstract">
1510
+ <ref name="FormattedString"/>
1511
+ </element>
1512
+ </define>
1513
+ <define name="partof">
1514
+ <element name="partof">
1515
+ <ref name="BibliographicItem"/>
1516
+ </element>
1517
+ </define>
1518
+ <define name="copyright">
1519
+ <element name="copyright">
1520
+ <ref name="from"/>
1521
+ <optional>
1522
+ <ref name="to"/>
1523
+ </optional>
1524
+ <ref name="owner"/>
1525
+ </element>
1526
+ </define>
1527
+ <define name="from">
1528
+ <element name="from">
1529
+ <data type="gYear"/>
1530
+ </element>
1531
+ </define>
1532
+ <define name="to">
1533
+ <element name="to">
1534
+ <data type="gYear"/>
1535
+ </element>
1536
+ </define>
1537
+ <define name="owner">
1538
+ <element name="owner">
1539
+ <ref name="ContributorInfo"/>
1540
+ </element>
1541
+ </define>
1542
+ <!--
1543
+ Anycontents = mixed {
1544
+ https://github.com/relaxng/jing-trang/issues/211
1545
+ https://lists.oasis-open.org/archives/office/200808/msg00024.html
1546
+ https://lists.oasis-open.org/archives/office/200808/msg00099.html
1547
+ For this to work, we will actually strip any attributes in the Anycontents before
1548
+ passing it for validation. Horrible I know, but there are no good alternatives
1549
+ that also allow us to do grammar inheritance
1550
+ (attribute * { text } | Any)*
1551
+ Any*
1552
+ }
1553
+ -->
1554
+ <define name="AnyElement">
1555
+ <element>
1556
+ <anyName/>
1557
+ <choice>
1558
+ <text/>
1559
+ <ref name="AnyElement"/>
1560
+ </choice>
1561
+ </element>
1562
+ </define>
1563
+ </grammar>