relaton-iec 0.8.0 → 1.1.0

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