relaton-iec 0.10.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
data/grammars/iec.rng ADDED
@@ -0,0 +1,43 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <grammar xmlns="http://relaxng.org/ns/structure/1.0">
3
+ <!-- default namespace = "https://www.metanorma.com/ns/iec" -->
4
+ <include href="isostandard.rng">
5
+ <start>
6
+ <ref name="iec-standard"/>
7
+ </start>
8
+ <define name="DocumentType">
9
+ <choice>
10
+ <value>international-standard</value>
11
+ <value>technical-specification</value>
12
+ <value>technical-report</value>
13
+ <value>publicly-available-specification</value>
14
+ <value>international-workshop-agreement</value>
15
+ <value>guide</value>
16
+ </choice>
17
+ </define>
18
+ </include>
19
+ <!-- end overrides -->
20
+ <!--
21
+ We display the Normative References between scope and terms; but to keep the
22
+ grammar simple, we keep the references together
23
+ -->
24
+ <define name="iec-standard">
25
+ <element name="iec-standard">
26
+ <ref name="bibdata"/>
27
+ <zeroOrMore>
28
+ <ref name="termdocsource"/>
29
+ </zeroOrMore>
30
+ <optional>
31
+ <ref name="boilerplate"/>
32
+ </optional>
33
+ <ref name="preface"/>
34
+ <oneOrMore>
35
+ <ref name="sections"/>
36
+ </oneOrMore>
37
+ <zeroOrMore>
38
+ <ref name="annex"/>
39
+ </zeroOrMore>
40
+ <ref name="bibliography"/>
41
+ </element>
42
+ </define>
43
+ </grammar>
@@ -0,0 +1,1058 @@
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="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
21
+ <include href="reqt.rng"/>
22
+ <!-- include "biblio.rnc" { } -->
23
+ <include href="basicdoc.rng">
24
+ <start>
25
+ <ref name="standard-document"/>
26
+ </start>
27
+ <define name="hyperlink">
28
+ <element name="link">
29
+ <attribute name="target">
30
+ <data type="anyURI"/>
31
+ </attribute>
32
+ <optional>
33
+ <attribute name="type">
34
+ <ref name="ReferenceFormat"/>
35
+ </attribute>
36
+ </optional>
37
+ <optional>
38
+ <attribute name="alt"/>
39
+ </optional>
40
+ <text/>
41
+ </element>
42
+ </define>
43
+ <define name="xref">
44
+ <element name="xref">
45
+ <attribute name="target">
46
+ <data type="IDREF"/>
47
+ </attribute>
48
+ <optional>
49
+ <attribute name="type">
50
+ <ref name="ReferenceFormat"/>
51
+ </attribute>
52
+ </optional>
53
+ <optional>
54
+ <attribute name="alt"/>
55
+ </optional>
56
+ <text/>
57
+ </element>
58
+ </define>
59
+ <define name="example">
60
+ <element name="example">
61
+ <attribute name="id">
62
+ <data type="ID"/>
63
+ </attribute>
64
+ <optional>
65
+ <attribute name="unnumbered">
66
+ <data type="boolean"/>
67
+ </attribute>
68
+ </optional>
69
+ <optional>
70
+ <attribute name="subsequence"/>
71
+ </optional>
72
+ <optional>
73
+ <ref name="tname"/>
74
+ </optional>
75
+ <oneOrMore>
76
+ <choice>
77
+ <ref name="formula"/>
78
+ <ref name="ul"/>
79
+ <ref name="ol"/>
80
+ <ref name="dl"/>
81
+ <ref name="quote"/>
82
+ <ref name="sourcecode"/>
83
+ <ref name="paragraph-with-footnote"/>
84
+ <ref name="figure"/>
85
+ </choice>
86
+ </oneOrMore>
87
+ <zeroOrMore>
88
+ <ref name="note"/>
89
+ </zeroOrMore>
90
+ </element>
91
+ </define>
92
+ <define name="BibDataExtensionType">
93
+ <ref name="doctype"/>
94
+ <optional>
95
+ <ref name="editorialgroup"/>
96
+ </optional>
97
+ <zeroOrMore>
98
+ <ref name="ics"/>
99
+ </zeroOrMore>
100
+ <zeroOrMore>
101
+ <ref name="structuredidentifier"/>
102
+ </zeroOrMore>
103
+ </define>
104
+ <!-- TitleType = text -->
105
+ <define name="sections">
106
+ <element name="sections">
107
+ <oneOrMore>
108
+ <choice>
109
+ <ref name="clause"/>
110
+ <ref name="terms"/>
111
+ <ref name="term-clause"/>
112
+ <ref name="definitions"/>
113
+ </choice>
114
+ </oneOrMore>
115
+ </element>
116
+ </define>
117
+ <define name="references">
118
+ <element name="references">
119
+ <optional>
120
+ <attribute name="id">
121
+ <data type="ID"/>
122
+ </attribute>
123
+ </optional>
124
+ <optional>
125
+ <attribute name="obligation">
126
+ <choice>
127
+ <value>normative</value>
128
+ <value>informative</value>
129
+ </choice>
130
+ </attribute>
131
+ </optional>
132
+ <optional>
133
+ <ref name="section-title"/>
134
+ </optional>
135
+ <zeroOrMore>
136
+ <ref name="BasicBlock"/>
137
+ </zeroOrMore>
138
+ <zeroOrMore>
139
+ <ref name="note"/>
140
+ </zeroOrMore>
141
+ <zeroOrMore>
142
+ <ref name="bibitem"/>
143
+ <zeroOrMore>
144
+ <ref name="note"/>
145
+ </zeroOrMore>
146
+ </zeroOrMore>
147
+ <zeroOrMore>
148
+ <ref name="references"/>
149
+ </zeroOrMore>
150
+ </element>
151
+ </define>
152
+ <define name="note">
153
+ <element name="note">
154
+ <attribute name="id">
155
+ <data type="ID"/>
156
+ </attribute>
157
+ <oneOrMore>
158
+ <choice>
159
+ <ref name="paragraph"/>
160
+ <ref name="ul"/>
161
+ <ref name="ol"/>
162
+ <ref name="dl"/>
163
+ <ref name="formula"/>
164
+ </choice>
165
+ </oneOrMore>
166
+ </element>
167
+ </define>
168
+ <define name="Basic-Section">
169
+ <optional>
170
+ <attribute name="id">
171
+ <data type="ID"/>
172
+ </attribute>
173
+ </optional>
174
+ <optional>
175
+ <attribute name="language"/>
176
+ </optional>
177
+ <optional>
178
+ <attribute name="script"/>
179
+ </optional>
180
+ <optional>
181
+ <attribute name="obligation">
182
+ <choice>
183
+ <value>normative</value>
184
+ <value>informative</value>
185
+ </choice>
186
+ </attribute>
187
+ </optional>
188
+ <optional>
189
+ <ref name="section-title"/>
190
+ </optional>
191
+ <group>
192
+ <oneOrMore>
193
+ <ref name="BasicBlock"/>
194
+ </oneOrMore>
195
+ <zeroOrMore>
196
+ <ref name="note"/>
197
+ </zeroOrMore>
198
+ </group>
199
+ </define>
200
+ <define name="li">
201
+ <element name="li">
202
+ <group>
203
+ <optional>
204
+ <attribute name="id">
205
+ <data type="ID"/>
206
+ </attribute>
207
+ </optional>
208
+ <oneOrMore>
209
+ <ref name="BasicBlock"/>
210
+ </oneOrMore>
211
+ </group>
212
+ <!-- exclude figures? -->
213
+ </element>
214
+ </define>
215
+ <define name="dd">
216
+ <element name="dd">
217
+ <zeroOrMore>
218
+ <!-- exclude figures? -->
219
+ <ref name="BasicBlock"/>
220
+ </zeroOrMore>
221
+ </element>
222
+ </define>
223
+ <define name="thead">
224
+ <element name="thead">
225
+ <oneOrMore>
226
+ <ref name="tr"/>
227
+ </oneOrMore>
228
+ </element>
229
+ </define>
230
+ <define name="td">
231
+ <element name="td">
232
+ <optional>
233
+ <attribute name="colspan"/>
234
+ </optional>
235
+ <optional>
236
+ <attribute name="rowspan"/>
237
+ </optional>
238
+ <optional>
239
+ <attribute name="align">
240
+ <choice>
241
+ <value>left</value>
242
+ <value>right</value>
243
+ <value>center</value>
244
+ </choice>
245
+ </attribute>
246
+ </optional>
247
+ <choice>
248
+ <zeroOrMore>
249
+ <choice>
250
+ <ref name="TextElement"/>
251
+ <ref name="fn"/>
252
+ </choice>
253
+ </zeroOrMore>
254
+ <oneOrMore>
255
+ <choice>
256
+ <ref name="paragraph-with-footnote"/>
257
+ <ref name="dl"/>
258
+ <ref name="ul"/>
259
+ <ref name="ol"/>
260
+ <ref name="figure"/>
261
+ </choice>
262
+ </oneOrMore>
263
+ </choice>
264
+ </element>
265
+ </define>
266
+ <define name="th">
267
+ <element name="th">
268
+ <optional>
269
+ <attribute name="colspan"/>
270
+ </optional>
271
+ <optional>
272
+ <attribute name="rowspan"/>
273
+ </optional>
274
+ <optional>
275
+ <attribute name="align">
276
+ <choice>
277
+ <value>left</value>
278
+ <value>right</value>
279
+ <value>center</value>
280
+ </choice>
281
+ </attribute>
282
+ </optional>
283
+ <choice>
284
+ <zeroOrMore>
285
+ <choice>
286
+ <ref name="TextElement"/>
287
+ <ref name="fn"/>
288
+ </choice>
289
+ </zeroOrMore>
290
+ <oneOrMore>
291
+ <ref name="paragraph-with-footnote"/>
292
+ </oneOrMore>
293
+ </choice>
294
+ </element>
295
+ </define>
296
+ <define name="table-note">
297
+ <element name="note">
298
+ <optional>
299
+ <attribute name="id">
300
+ <data type="ID"/>
301
+ </attribute>
302
+ </optional>
303
+ <ref name="paragraph"/>
304
+ </element>
305
+ </define>
306
+ <define name="TextElement" combine="choice">
307
+ <ref name="concept"/>
308
+ </define>
309
+ </include>
310
+ <!-- end overrides -->
311
+ <define name="concept">
312
+ <element name="concept">
313
+ <optional>
314
+ <attribute name="term"/>
315
+ </optional>
316
+ <choice>
317
+ <ref name="eref"/>
318
+ <ref name="xref"/>
319
+ <ref name="termref"/>
320
+ </choice>
321
+ </element>
322
+ </define>
323
+ <define name="BasicBlock" combine="choice">
324
+ <choice>
325
+ <ref name="requirement"/>
326
+ <ref name="recommendation"/>
327
+ <ref name="permission"/>
328
+ </choice>
329
+ </define>
330
+ <define name="bibliography">
331
+ <element name="bibliography">
332
+ <oneOrMore>
333
+ <choice>
334
+ <ref name="references"/>
335
+ <ref name="reference-clause"/>
336
+ </choice>
337
+ </oneOrMore>
338
+ </element>
339
+ </define>
340
+ <define name="reference-clause">
341
+ <element name="clause">
342
+ <optional>
343
+ <attribute name="id">
344
+ <data type="ID"/>
345
+ </attribute>
346
+ </optional>
347
+ <optional>
348
+ <attribute name="language"/>
349
+ </optional>
350
+ <optional>
351
+ <attribute name="script"/>
352
+ </optional>
353
+ <optional>
354
+ <attribute name="inline-header">
355
+ <data type="boolean"/>
356
+ </attribute>
357
+ </optional>
358
+ <optional>
359
+ <attribute name="obligation">
360
+ <choice>
361
+ <value>normative</value>
362
+ <value>informative</value>
363
+ </choice>
364
+ </attribute>
365
+ </optional>
366
+ <optional>
367
+ <ref name="section-title"/>
368
+ </optional>
369
+ <zeroOrMore>
370
+ <ref name="BasicBlock"/>
371
+ </zeroOrMore>
372
+ <zeroOrMore>
373
+ <ref name="note"/>
374
+ </zeroOrMore>
375
+ <choice>
376
+ <oneOrMore>
377
+ <ref name="reference-clause"/>
378
+ </oneOrMore>
379
+ <zeroOrMore>
380
+ <ref name="references"/>
381
+ </zeroOrMore>
382
+ </choice>
383
+ </element>
384
+ </define>
385
+ <define name="editorialgroup">
386
+ <element name="editorialgroup">
387
+ <oneOrMore>
388
+ <ref name="technical-committee"/>
389
+ </oneOrMore>
390
+ </element>
391
+ </define>
392
+ <define name="technical-committee">
393
+ <element name="technical-committee">
394
+ <ref name="IsoWorkgroup"/>
395
+ </element>
396
+ </define>
397
+ <define name="IsoWorkgroup">
398
+ <optional>
399
+ <attribute name="number">
400
+ <data type="int"/>
401
+ </attribute>
402
+ </optional>
403
+ <optional>
404
+ <attribute name="type"/>
405
+ </optional>
406
+ <text/>
407
+ </define>
408
+ <define name="ics">
409
+ <element name="ics">
410
+ <element name="code">
411
+ <text/>
412
+ </element>
413
+ <element name="text">
414
+ <text/>
415
+ </element>
416
+ </element>
417
+ </define>
418
+ <define name="standard-document">
419
+ <element name="standard-document">
420
+ <ref name="bibdata"/>
421
+ <optional>
422
+ <ref name="boilerplate"/>
423
+ </optional>
424
+ <optional>
425
+ <ref name="preface"/>
426
+ </optional>
427
+ <ref name="sections"/>
428
+ <zeroOrMore>
429
+ <ref name="annex"/>
430
+ </zeroOrMore>
431
+ <zeroOrMore>
432
+ <ref name="references"/>
433
+ </zeroOrMore>
434
+ </element>
435
+ </define>
436
+ <define name="preface">
437
+ <element name="preface">
438
+ <oneOrMore>
439
+ <choice>
440
+ <ref name="content"/>
441
+ <ref name="preface_abstract"/>
442
+ <ref name="foreword"/>
443
+ <ref name="introduction"/>
444
+ <ref name="acknowledgements"/>
445
+ </choice>
446
+ </oneOrMore>
447
+ </element>
448
+ </define>
449
+ <define name="foreword">
450
+ <element name="foreword">
451
+ <ref name="Content-Section"/>
452
+ </element>
453
+ </define>
454
+ <define name="introduction">
455
+ <element name="introduction">
456
+ <ref name="Content-Section"/>
457
+ </element>
458
+ </define>
459
+ <define name="boilerplate">
460
+ <element name="boilerplate">
461
+ <optional>
462
+ <ref name="copyright-statement"/>
463
+ </optional>
464
+ <optional>
465
+ <ref name="license-statement"/>
466
+ </optional>
467
+ <optional>
468
+ <ref name="legal-statement"/>
469
+ </optional>
470
+ <optional>
471
+ <ref name="feedback-statement"/>
472
+ </optional>
473
+ </element>
474
+ </define>
475
+ <define name="copyright-statement">
476
+ <element name="copyright-statement">
477
+ <ref name="Content-Section"/>
478
+ </element>
479
+ </define>
480
+ <define name="license-statement">
481
+ <element name="license-statement">
482
+ <ref name="Content-Section"/>
483
+ </element>
484
+ </define>
485
+ <define name="legal-statement">
486
+ <element name="legal-statement">
487
+ <ref name="Content-Section"/>
488
+ </element>
489
+ </define>
490
+ <define name="feedback-statement">
491
+ <element name="feedback-statement">
492
+ <ref name="Content-Section"/>
493
+ </element>
494
+ </define>
495
+ <define name="definitions">
496
+ <element name="definitions">
497
+ <optional>
498
+ <attribute name="id">
499
+ <data type="ID"/>
500
+ </attribute>
501
+ </optional>
502
+ <optional>
503
+ <attribute name="language"/>
504
+ </optional>
505
+ <optional>
506
+ <attribute name="script"/>
507
+ </optional>
508
+ <optional>
509
+ <attribute name="obligation">
510
+ <choice>
511
+ <value>normative</value>
512
+ <value>informative</value>
513
+ </choice>
514
+ </attribute>
515
+ </optional>
516
+ <optional>
517
+ <ref name="section-title"/>
518
+ </optional>
519
+ <oneOrMore>
520
+ <zeroOrMore>
521
+ <ref name="BasicBlock"/>
522
+ </zeroOrMore>
523
+ <zeroOrMore>
524
+ <ref name="note"/>
525
+ </zeroOrMore>
526
+ <ref name="dl"/>
527
+ </oneOrMore>
528
+ </element>
529
+ </define>
530
+ <define name="content">
531
+ <element name="clause">
532
+ <ref name="Content-Section"/>
533
+ </element>
534
+ </define>
535
+ <define name="abstract">
536
+ <element name="abstract">
537
+ <ref name="Content-Section"/>
538
+ </element>
539
+ </define>
540
+ <define name="acknowledgements">
541
+ <element name="acknowledgements">
542
+ <ref name="Content-Section"/>
543
+ </element>
544
+ </define>
545
+ <define name="content-subsection">
546
+ <element name="clause">
547
+ <optional>
548
+ <attribute name="type"/>
549
+ </optional>
550
+ <ref name="Content-Section"/>
551
+ </element>
552
+ </define>
553
+ <define name="Content-Section">
554
+ <optional>
555
+ <attribute name="id">
556
+ <data type="ID"/>
557
+ </attribute>
558
+ </optional>
559
+ <optional>
560
+ <attribute name="language"/>
561
+ </optional>
562
+ <optional>
563
+ <attribute name="script"/>
564
+ </optional>
565
+ <optional>
566
+ <attribute name="inline-header">
567
+ <data type="boolean"/>
568
+ </attribute>
569
+ </optional>
570
+ <optional>
571
+ <attribute name="obligation">
572
+ <choice>
573
+ <value>normative</value>
574
+ <value>informative</value>
575
+ </choice>
576
+ </attribute>
577
+ </optional>
578
+ <optional>
579
+ <ref name="section-title"/>
580
+ </optional>
581
+ <group>
582
+ <group>
583
+ <zeroOrMore>
584
+ <ref name="BasicBlock"/>
585
+ </zeroOrMore>
586
+ <zeroOrMore>
587
+ <ref name="note"/>
588
+ </zeroOrMore>
589
+ </group>
590
+ <zeroOrMore>
591
+ <ref name="content-subsection"/>
592
+ </zeroOrMore>
593
+ </group>
594
+ </define>
595
+ <define name="clause">
596
+ <element name="clause">
597
+ <optional>
598
+ <attribute name="type"/>
599
+ </optional>
600
+ <ref name="Clause-Section"/>
601
+ </element>
602
+ </define>
603
+ <define name="Clause-Section">
604
+ <optional>
605
+ <attribute name="id">
606
+ <data type="ID"/>
607
+ </attribute>
608
+ </optional>
609
+ <optional>
610
+ <attribute name="language"/>
611
+ </optional>
612
+ <optional>
613
+ <attribute name="script"/>
614
+ </optional>
615
+ <optional>
616
+ <attribute name="inline-header">
617
+ <data type="boolean"/>
618
+ </attribute>
619
+ </optional>
620
+ <optional>
621
+ <attribute name="obligation">
622
+ <choice>
623
+ <value>normative</value>
624
+ <value>informative</value>
625
+ </choice>
626
+ </attribute>
627
+ </optional>
628
+ <optional>
629
+ <ref name="section-title"/>
630
+ </optional>
631
+ <group>
632
+ <group>
633
+ <zeroOrMore>
634
+ <ref name="BasicBlock"/>
635
+ </zeroOrMore>
636
+ <zeroOrMore>
637
+ <ref name="note"/>
638
+ </zeroOrMore>
639
+ </group>
640
+ <zeroOrMore>
641
+ <choice>
642
+ <ref name="clause-subsection"/>
643
+ <ref name="terms"/>
644
+ <ref name="definitions"/>
645
+ </choice>
646
+ </zeroOrMore>
647
+ </group>
648
+ </define>
649
+ <define name="Annex-Section">
650
+ <optional>
651
+ <attribute name="id">
652
+ <data type="ID"/>
653
+ </attribute>
654
+ </optional>
655
+ <optional>
656
+ <attribute name="language"/>
657
+ </optional>
658
+ <optional>
659
+ <attribute name="script"/>
660
+ </optional>
661
+ <optional>
662
+ <attribute name="inline-header">
663
+ <data type="boolean"/>
664
+ </attribute>
665
+ </optional>
666
+ <optional>
667
+ <attribute name="obligation">
668
+ <choice>
669
+ <value>normative</value>
670
+ <value>informative</value>
671
+ </choice>
672
+ </attribute>
673
+ </optional>
674
+ <optional>
675
+ <ref name="section-title"/>
676
+ </optional>
677
+ <group>
678
+ <group>
679
+ <zeroOrMore>
680
+ <ref name="BasicBlock"/>
681
+ </zeroOrMore>
682
+ <zeroOrMore>
683
+ <ref name="note"/>
684
+ </zeroOrMore>
685
+ </group>
686
+ <zeroOrMore>
687
+ <choice>
688
+ <ref name="annex-subsection"/>
689
+ <ref name="terms"/>
690
+ <ref name="definitions"/>
691
+ <ref name="references"/>
692
+ </choice>
693
+ </zeroOrMore>
694
+ </group>
695
+ </define>
696
+ <define name="clause-subsection">
697
+ <element name="clause">
698
+ <ref name="Clause-Section"/>
699
+ </element>
700
+ </define>
701
+ <define name="annex-subsection">
702
+ <element name="clause">
703
+ <ref name="Annex-Section"/>
704
+ </element>
705
+ </define>
706
+ <define name="annex">
707
+ <element name="annex">
708
+ <optional>
709
+ <attribute name="id">
710
+ <data type="ID"/>
711
+ </attribute>
712
+ </optional>
713
+ <optional>
714
+ <attribute name="language"/>
715
+ </optional>
716
+ <optional>
717
+ <attribute name="script"/>
718
+ </optional>
719
+ <optional>
720
+ <attribute name="inline-header">
721
+ <data type="boolean"/>
722
+ </attribute>
723
+ </optional>
724
+ <attribute name="obligation">
725
+ <choice>
726
+ <value>normative</value>
727
+ <value>informative</value>
728
+ </choice>
729
+ </attribute>
730
+ <optional>
731
+ <ref name="section-title"/>
732
+ </optional>
733
+ <group>
734
+ <group>
735
+ <zeroOrMore>
736
+ <ref name="BasicBlock"/>
737
+ </zeroOrMore>
738
+ <zeroOrMore>
739
+ <ref name="note"/>
740
+ </zeroOrMore>
741
+ </group>
742
+ <zeroOrMore>
743
+ <choice>
744
+ <ref name="annex-subsection"/>
745
+ <ref name="terms"/>
746
+ <ref name="definitions"/>
747
+ <ref name="references"/>
748
+ </choice>
749
+ </zeroOrMore>
750
+ </group>
751
+ </element>
752
+ </define>
753
+ <define name="terms">
754
+ <element name="terms">
755
+ <optional>
756
+ <attribute name="id">
757
+ <data type="ID"/>
758
+ </attribute>
759
+ </optional>
760
+ <optional>
761
+ <attribute name="language"/>
762
+ </optional>
763
+ <optional>
764
+ <attribute name="script"/>
765
+ </optional>
766
+ <optional>
767
+ <attribute name="obligation">
768
+ <choice>
769
+ <value>normative</value>
770
+ <value>informative</value>
771
+ </choice>
772
+ </attribute>
773
+ </optional>
774
+ <optional>
775
+ <ref name="section-title"/>
776
+ </optional>
777
+ <zeroOrMore>
778
+ <ref name="BasicBlock"/>
779
+ </zeroOrMore>
780
+ <zeroOrMore>
781
+ <ref name="note"/>
782
+ </zeroOrMore>
783
+ <choice>
784
+ <oneOrMore>
785
+ <ref name="term"/>
786
+ </oneOrMore>
787
+ <group>
788
+ <zeroOrMore>
789
+ <ref name="terms"/>
790
+ </zeroOrMore>
791
+ <optional>
792
+ <ref name="definitions"/>
793
+ </optional>
794
+ </group>
795
+ </choice>
796
+ </element>
797
+ </define>
798
+ <define name="term">
799
+ <element name="term">
800
+ <optional>
801
+ <attribute name="id">
802
+ <data type="ID"/>
803
+ </attribute>
804
+ </optional>
805
+ <oneOrMore>
806
+ <ref name="preferred"/>
807
+ </oneOrMore>
808
+ <zeroOrMore>
809
+ <ref name="admitted"/>
810
+ </zeroOrMore>
811
+ <zeroOrMore>
812
+ <ref name="related"/>
813
+ </zeroOrMore>
814
+ <zeroOrMore>
815
+ <ref name="deprecates"/>
816
+ </zeroOrMore>
817
+ <optional>
818
+ <ref name="termdomain"/>
819
+ </optional>
820
+ <zeroOrMore>
821
+ <ref name="termgrammar"/>
822
+ </zeroOrMore>
823
+ <ref name="definition"/>
824
+ <zeroOrMore>
825
+ <ref name="termnote"/>
826
+ </zeroOrMore>
827
+ <zeroOrMore>
828
+ <ref name="termexample"/>
829
+ </zeroOrMore>
830
+ <zeroOrMore>
831
+ <ref name="termsource"/>
832
+ </zeroOrMore>
833
+ </element>
834
+ </define>
835
+ <define name="preferred">
836
+ <element name="preferred">
837
+ <oneOrMore>
838
+ <ref name="TextElement"/>
839
+ </oneOrMore>
840
+ </element>
841
+ </define>
842
+ <define name="admitted">
843
+ <element name="admitted">
844
+ <oneOrMore>
845
+ <ref name="TextElement"/>
846
+ </oneOrMore>
847
+ </element>
848
+ </define>
849
+ <define name="related">
850
+ <element name="related">
851
+ <optional>
852
+ <attribute name="type">
853
+ <choice>
854
+ <value>compare</value>
855
+ <value>contrast</value>
856
+ <value>see</value>
857
+ </choice>
858
+ </attribute>
859
+ </optional>
860
+ <oneOrMore>
861
+ <ref name="TextElement"/>
862
+ </oneOrMore>
863
+ </element>
864
+ </define>
865
+ <define name="deprecates">
866
+ <element name="deprecates">
867
+ <oneOrMore>
868
+ <ref name="TextElement"/>
869
+ </oneOrMore>
870
+ </element>
871
+ </define>
872
+ <define name="termdomain">
873
+ <element name="domain">
874
+ <oneOrMore>
875
+ <ref name="TextElement"/>
876
+ </oneOrMore>
877
+ </element>
878
+ </define>
879
+ <define name="termgrammar">
880
+ <element name="grammar">
881
+ <oneOrMore>
882
+ <ref name="TextElement"/>
883
+ </oneOrMore>
884
+ </element>
885
+ </define>
886
+ <define name="definition">
887
+ <element name="definition">
888
+ <oneOrMore>
889
+ <choice>
890
+ <ref name="paragraph"/>
891
+ <ref name="figure"/>
892
+ <ref name="formula"/>
893
+ </choice>
894
+ </oneOrMore>
895
+ </element>
896
+ </define>
897
+ <define name="termnote">
898
+ <element name="termnote">
899
+ <attribute name="id">
900
+ <data type="ID"/>
901
+ </attribute>
902
+ <ref name="paragraph"/>
903
+ </element>
904
+ </define>
905
+ <define name="termexample">
906
+ <element name="termexample">
907
+ <attribute name="id">
908
+ <data type="ID"/>
909
+ </attribute>
910
+ <ref name="paragraph"/>
911
+ </element>
912
+ </define>
913
+ <define name="termsource">
914
+ <element name="termsource">
915
+ <attribute name="status">
916
+ <choice>
917
+ <value>identical</value>
918
+ <value>modified</value>
919
+ </choice>
920
+ </attribute>
921
+ <ref name="origin"/>
922
+ <optional>
923
+ <ref name="modification"/>
924
+ </optional>
925
+ </element>
926
+ </define>
927
+ <define name="origin">
928
+ <element name="origin">
929
+ <choice>
930
+ <ref name="erefType"/>
931
+ <ref name="termref"/>
932
+ </choice>
933
+ </element>
934
+ </define>
935
+ <define name="modification">
936
+ <element name="modification">
937
+ <ref name="paragraph"/>
938
+ </element>
939
+ </define>
940
+ <define name="termref">
941
+ <element name="termref">
942
+ <attribute name="base"/>
943
+ <attribute name="target"/>
944
+ <optional>
945
+ <text/>
946
+ </optional>
947
+ </element>
948
+ </define>
949
+ <define name="structuredidentifier">
950
+ <element name="structuredidentifier">
951
+ <optional>
952
+ <attribute name="type"/>
953
+ </optional>
954
+ <oneOrMore>
955
+ <element name="agency">
956
+ <text/>
957
+ </element>
958
+ </oneOrMore>
959
+ <optional>
960
+ <element name="class">
961
+ <text/>
962
+ </element>
963
+ </optional>
964
+ <element name="docnumber">
965
+ <text/>
966
+ </element>
967
+ <optional>
968
+ <element name="partnumber">
969
+ <text/>
970
+ </element>
971
+ </optional>
972
+ <optional>
973
+ <element name="edition">
974
+ <text/>
975
+ </element>
976
+ </optional>
977
+ <optional>
978
+ <element name="version">
979
+ <text/>
980
+ </element>
981
+ </optional>
982
+ <optional>
983
+ <element name="supplementtype">
984
+ <text/>
985
+ </element>
986
+ </optional>
987
+ <optional>
988
+ <element name="supplementnumber">
989
+ <text/>
990
+ </element>
991
+ </optional>
992
+ <optional>
993
+ <element name="language">
994
+ <text/>
995
+ </element>
996
+ </optional>
997
+ <optional>
998
+ <element name="year">
999
+ <text/>
1000
+ </element>
1001
+ </optional>
1002
+ </element>
1003
+ </define>
1004
+ <define name="preface_abstract">
1005
+ <element name="abstract">
1006
+ <ref name="Basic-Section"/>
1007
+ </element>
1008
+ </define>
1009
+ <define name="term-clause">
1010
+ <element name="clause">
1011
+ <optional>
1012
+ <attribute name="id">
1013
+ <data type="ID"/>
1014
+ </attribute>
1015
+ </optional>
1016
+ <optional>
1017
+ <attribute name="language"/>
1018
+ </optional>
1019
+ <optional>
1020
+ <attribute name="script"/>
1021
+ </optional>
1022
+ <optional>
1023
+ <attribute name="inline-header">
1024
+ <data type="boolean"/>
1025
+ </attribute>
1026
+ </optional>
1027
+ <optional>
1028
+ <attribute name="obligation">
1029
+ <choice>
1030
+ <value>normative</value>
1031
+ <value>informative</value>
1032
+ </choice>
1033
+ </attribute>
1034
+ </optional>
1035
+ <optional>
1036
+ <ref name="section-title"/>
1037
+ </optional>
1038
+ <zeroOrMore>
1039
+ <ref name="BasicBlock"/>
1040
+ </zeroOrMore>
1041
+ <zeroOrMore>
1042
+ <ref name="note"/>
1043
+ </zeroOrMore>
1044
+ <zeroOrMore>
1045
+ <choice>
1046
+ <ref name="term-clause"/>
1047
+ <ref name="terms"/>
1048
+ <ref name="definitions"/>
1049
+ </choice>
1050
+ </zeroOrMore>
1051
+ </element>
1052
+ </define>
1053
+ <define name="termdocsource">
1054
+ <element name="termdocsource">
1055
+ <ref name="CitationType"/>
1056
+ </element>
1057
+ </define>
1058
+ </grammar>