metanorma-ietf 2.1.3 → 2.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/rake.yml +92 -0
- data/lib/asciidoctor/ietf/basicdoc.rng +23 -0
- data/lib/asciidoctor/ietf/converter.rb +18 -3
- data/lib/asciidoctor/ietf/front.rb +6 -12
- data/lib/asciidoctor/ietf/ietf.rng +7 -0
- data/lib/asciidoctor/ietf/isodoc.rng +137 -64
- data/lib/isodoc/ietf/SVG-1.2-RFC.rng +7460 -0
- data/lib/isodoc/ietf/blocks.rb +5 -5
- data/lib/isodoc/ietf/reqt.rb +3 -3
- data/lib/isodoc/ietf/rfc_convert.rb +8 -5
- data/lib/isodoc/ietf/section.rb +2 -1
- data/lib/isodoc/ietf/terms.rb +1 -1
- data/lib/isodoc/ietf/v3.rng +2530 -0
- data/lib/isodoc/ietf/validation.rb +191 -0
- data/lib/metanorma/ietf/processor.rb +14 -25
- data/lib/metanorma/ietf/version.rb +1 -1
- data/metanorma-ietf.gemspec +2 -2
- metadata +10 -9
- data/.github/workflows/macos.yml +0 -54
- data/.github/workflows/ubuntu.yml +0 -52
- data/.github/workflows/windows.yml +0 -54
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f06324c3b9c916155d7de089ca675e524498efdcd6c07ff824f94b57ab6964c6
|
4
|
+
data.tar.gz: 51bfdd81d038f103e94bc9d5be4f6954d6bc6fbc691972f4b7f3001cd7ca9a2d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45fc197eeaeb201677a069bd7ce3037a8d0bb28aacb49678a723bf7628cde25792aca668ddcff291f5932194f906e4bcbe12af342891da9ec5e36963c0cde2e6
|
7
|
+
data.tar.gz: a1752e87e7185ef20c56f58b1d1f568617bfecab5c7295a48e67b22d27afd5eb9b9de470edb0b712423991803887a714a834111af0ba03f1fabc62a6219e8c7c
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# Auto-generated by Cimas: Do not edit it manually!
|
2
|
+
# See https://github.com/metanorma/cimas
|
3
|
+
name: rake
|
4
|
+
|
5
|
+
on:
|
6
|
+
push:
|
7
|
+
branches: [ master ]
|
8
|
+
pull_request:
|
9
|
+
|
10
|
+
jobs:
|
11
|
+
rake:
|
12
|
+
name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
|
13
|
+
runs-on: ${{ matrix.os }}
|
14
|
+
continue-on-error: ${{ matrix.experimental }}
|
15
|
+
strategy:
|
16
|
+
fail-fast: false
|
17
|
+
matrix:
|
18
|
+
ruby: [ '2.6', '2.5', '2.4' ]
|
19
|
+
os: [ ubuntu-latest, windows-latest, macos-latest ]
|
20
|
+
experimental: [ false ]
|
21
|
+
include:
|
22
|
+
- ruby: '2.7'
|
23
|
+
os: 'ubuntu-latest'
|
24
|
+
experimental: true
|
25
|
+
- ruby: '2.7'
|
26
|
+
os: 'windows-latest'
|
27
|
+
experimental: true
|
28
|
+
- ruby: '2.7'
|
29
|
+
os: 'macos-latest'
|
30
|
+
experimental: true
|
31
|
+
|
32
|
+
steps:
|
33
|
+
- uses: actions/checkout@master
|
34
|
+
- name: Cache xml2rfc
|
35
|
+
id: cache-xml2rfc
|
36
|
+
uses: actions/cache@v1
|
37
|
+
with:
|
38
|
+
path: ~/.cache/xml2rfc
|
39
|
+
key: xml2rfc
|
40
|
+
restore-key: xml2rfc
|
41
|
+
|
42
|
+
- name: Use Ruby
|
43
|
+
uses: ruby/setup-ruby@v1
|
44
|
+
with:
|
45
|
+
ruby-version: ${{ matrix.ruby }}
|
46
|
+
bundler-cache: true
|
47
|
+
|
48
|
+
- name: Update gems
|
49
|
+
run: |
|
50
|
+
bundle install --jobs 4 --retry 3
|
51
|
+
|
52
|
+
- name: Use Python
|
53
|
+
uses: actions/setup-python@v1
|
54
|
+
with:
|
55
|
+
python-version: '3.6'
|
56
|
+
architecture: 'x64'
|
57
|
+
|
58
|
+
- name: set PIP_DOWNLOAD_CACHE
|
59
|
+
shell: python
|
60
|
+
run: |
|
61
|
+
import platform
|
62
|
+
from os.path import expanduser
|
63
|
+
|
64
|
+
home = expanduser("~")
|
65
|
+
cache_path = {
|
66
|
+
"Linux": f"{home}/.cache/pip",
|
67
|
+
"Darwin": f"{home}Library/Caches/pip",
|
68
|
+
"Windows": f"{home}/AppData/Local/pip/Cache"
|
69
|
+
}
|
70
|
+
|
71
|
+
print(f"::set-env name=PIP_DOWNLOAD_CACHE::{cache_path[platform.system()]}")
|
72
|
+
|
73
|
+
- uses: actions/cache@v2
|
74
|
+
with:
|
75
|
+
path: ${{ env.PIP_DOWNLOAD_CACHE }}
|
76
|
+
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
|
77
|
+
restore-keys: ${{ runner.os }}-pip-
|
78
|
+
|
79
|
+
- name: Install xml2rfc's deps macOS
|
80
|
+
if: matrix.os == 'macos-latest'
|
81
|
+
run: brew install libmagic
|
82
|
+
|
83
|
+
- name: Install xml2rfc's deps Windows
|
84
|
+
if: matrix.os == 'windows-latest'
|
85
|
+
run: pip install python-magic-bin
|
86
|
+
|
87
|
+
- name: Install xml2rfc
|
88
|
+
run: pip install xml2rfc
|
89
|
+
|
90
|
+
- name: Run specs
|
91
|
+
run: |
|
92
|
+
bundle exec rake
|
@@ -402,6 +402,16 @@
|
|
402
402
|
</choice>
|
403
403
|
</attribute>
|
404
404
|
</optional>
|
405
|
+
<optional>
|
406
|
+
<attribute name="valign">
|
407
|
+
<choice>
|
408
|
+
<value>top</value>
|
409
|
+
<value>middle</value>
|
410
|
+
<value>bottom</value>
|
411
|
+
<value>baseline</value>
|
412
|
+
</choice>
|
413
|
+
</attribute>
|
414
|
+
</optional>
|
405
415
|
<choice>
|
406
416
|
<zeroOrMore>
|
407
417
|
<ref name="TextElement"/>
|
@@ -429,6 +439,16 @@
|
|
429
439
|
</choice>
|
430
440
|
</attribute>
|
431
441
|
</optional>
|
442
|
+
<optional>
|
443
|
+
<attribute name="valign">
|
444
|
+
<choice>
|
445
|
+
<value>top</value>
|
446
|
+
<value>middle</value>
|
447
|
+
<value>bottom</value>
|
448
|
+
<value>baseline</value>
|
449
|
+
</choice>
|
450
|
+
</attribute>
|
451
|
+
</optional>
|
432
452
|
<choice>
|
433
453
|
<zeroOrMore>
|
434
454
|
<ref name="TextElement"/>
|
@@ -998,6 +1018,9 @@
|
|
998
1018
|
<value>alphabet_upper</value>
|
999
1019
|
</choice>
|
1000
1020
|
</attribute>
|
1021
|
+
<optional>
|
1022
|
+
<attribute name="start"/>
|
1023
|
+
</optional>
|
1001
1024
|
<oneOrMore>
|
1002
1025
|
<ref name="li"/>
|
1003
1026
|
</oneOrMore>
|
@@ -32,8 +32,8 @@ module Asciidoctor
|
|
32
32
|
end
|
33
33
|
|
34
34
|
def doctype(node)
|
35
|
-
ret =
|
36
|
-
ret = "
|
35
|
+
ret = super
|
36
|
+
ret = "internet-draft" if ret == "article"
|
37
37
|
ret
|
38
38
|
end
|
39
39
|
|
@@ -114,13 +114,21 @@ module Asciidoctor
|
|
114
114
|
|
115
115
|
def cleanup(xmldoc)
|
116
116
|
bcp14_cleanup(xmldoc)
|
117
|
-
|
117
|
+
abstract_cleanup(xmldoc)
|
118
118
|
super
|
119
|
+
rfc_anchor_cleanup(xmldoc)
|
119
120
|
end
|
120
121
|
|
121
122
|
BCP_KEYWORDS = ["MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
|
122
123
|
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", "OPTIONAL"].freeze
|
123
124
|
|
125
|
+
def abstract_cleanup(xmldoc)
|
126
|
+
xmldoc.xpath("//abstract[not(text())]").each do |x|
|
127
|
+
x.remove
|
128
|
+
warn "Empty abstract section removed"
|
129
|
+
end
|
130
|
+
end
|
131
|
+
|
124
132
|
def bcp14_cleanup(xmldoc)
|
125
133
|
return unless @bcp_bold
|
126
134
|
xmldoc.xpath("//strong").each do |s|
|
@@ -174,6 +182,13 @@ module Asciidoctor
|
|
174
182
|
super
|
175
183
|
end
|
176
184
|
|
185
|
+
def annex_parse(attrs, xml, node)
|
186
|
+
attrs[:numbered] = node.attr("numbered")
|
187
|
+
attrs[:removeInRFC] = node.attr("removeInRFC")
|
188
|
+
attrs[:toc] = node.attr("toc")
|
189
|
+
super
|
190
|
+
end
|
191
|
+
|
177
192
|
def introduction_parse(attrs, xml, node)
|
178
193
|
clause_parse(attrs, xml, node)
|
179
194
|
end
|
@@ -11,7 +11,7 @@ module Asciidoctor
|
|
11
11
|
|
12
12
|
def metadata_publisher(node, xml)
|
13
13
|
publishers = node.attr("publisher") || "IETF"
|
14
|
-
publishers
|
14
|
+
csv_split(publishers)&.each do |p|
|
15
15
|
xml.contributor do |c|
|
16
16
|
c.role **{ type: "publisher" }
|
17
17
|
c.organization { |a| organization(a, p) }
|
@@ -20,8 +20,8 @@ module Asciidoctor
|
|
20
20
|
end
|
21
21
|
|
22
22
|
def metadata_copyright(node, xml)
|
23
|
-
publishers = node.attr("publisher") || "IETF"
|
24
|
-
publishers
|
23
|
+
publishers = node.attr("copyright-holder") || node.attr("publisher") || "IETF"
|
24
|
+
csv_split(publishers)&.each do |p|
|
25
25
|
xml.copyright do |c|
|
26
26
|
c.from (node.attr("copyright-year") || Date.today.year)
|
27
27
|
c.owner do |owner|
|
@@ -31,14 +31,8 @@ module Asciidoctor
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
-
def
|
35
|
-
|
36
|
-
"Internet Engineering Task Force"].include? orgname
|
37
|
-
org.name "Internet Engineering Task Force"
|
38
|
-
org.abbreviation "IETF"
|
39
|
-
else
|
40
|
-
org.name orgname
|
41
|
-
end
|
34
|
+
def org_abbrev
|
35
|
+
{ "Internet Engineering Task Force" => "IETF" }
|
42
36
|
end
|
43
37
|
|
44
38
|
def metadata_series(node, xml)
|
@@ -80,7 +74,7 @@ module Asciidoctor
|
|
80
74
|
x = node.attr("area") and x.split(/,\s*/).each do |a|
|
81
75
|
xml.area a
|
82
76
|
end
|
83
|
-
|
77
|
+
xml.ipr (node.attr("ipr") || "trust200902")
|
84
78
|
x = node.attr("consensus") and xml.consensus x
|
85
79
|
x = node.attr("index-include") and xml.indexInclude x
|
86
80
|
x = node.attr("ipr-extract") and xml.iprExtract x
|
@@ -868,6 +868,13 @@
|
|
868
868
|
</define>
|
869
869
|
<define name="ietf-standard">
|
870
870
|
<element name="ietf-standard">
|
871
|
+
<attribute name="version"/>
|
872
|
+
<attribute name="type">
|
873
|
+
<choice>
|
874
|
+
<value>semantic</value>
|
875
|
+
<value>presentation</value>
|
876
|
+
</choice>
|
877
|
+
</attribute>
|
871
878
|
<ref name="bibdata"/>
|
872
879
|
<zeroOrMore>
|
873
880
|
<ref name="termdocsource"/>
|
@@ -43,7 +43,9 @@
|
|
43
43
|
<define name="xref">
|
44
44
|
<element name="xref">
|
45
45
|
<attribute name="target">
|
46
|
-
<data type="
|
46
|
+
<data type="string">
|
47
|
+
<param name="pattern">\i\c*|\c+#\c+</param>
|
48
|
+
</data>
|
47
49
|
</attribute>
|
48
50
|
<optional>
|
49
51
|
<attribute name="type">
|
@@ -61,6 +63,11 @@
|
|
61
63
|
</choice>
|
62
64
|
</attribute>
|
63
65
|
</optional>
|
66
|
+
<optional>
|
67
|
+
<attribute name="droploc">
|
68
|
+
<data type="boolean"/>
|
69
|
+
</attribute>
|
70
|
+
</optional>
|
64
71
|
<text/>
|
65
72
|
</element>
|
66
73
|
</define>
|
@@ -578,6 +585,8 @@
|
|
578
585
|
<ref name="ol"/>
|
579
586
|
<ref name="dl"/>
|
580
587
|
<ref name="formula"/>
|
588
|
+
<ref name="quote"/>
|
589
|
+
<ref name="sourcecode"/>
|
581
590
|
</choice>
|
582
591
|
</oneOrMore>
|
583
592
|
</element>
|
@@ -661,6 +670,16 @@
|
|
661
670
|
</choice>
|
662
671
|
</attribute>
|
663
672
|
</optional>
|
673
|
+
<optional>
|
674
|
+
<attribute name="valign">
|
675
|
+
<choice>
|
676
|
+
<value>top</value>
|
677
|
+
<value>middle</value>
|
678
|
+
<value>bottom</value>
|
679
|
+
<value>baseline</value>
|
680
|
+
</choice>
|
681
|
+
</attribute>
|
682
|
+
</optional>
|
664
683
|
<choice>
|
665
684
|
<zeroOrMore>
|
666
685
|
<choice>
|
@@ -697,6 +716,16 @@
|
|
697
716
|
</choice>
|
698
717
|
</attribute>
|
699
718
|
</optional>
|
719
|
+
<optional>
|
720
|
+
<attribute name="valign">
|
721
|
+
<choice>
|
722
|
+
<value>top</value>
|
723
|
+
<value>middle</value>
|
724
|
+
<value>bottom</value>
|
725
|
+
<value>baseline</value>
|
726
|
+
</choice>
|
727
|
+
</attribute>
|
728
|
+
</optional>
|
700
729
|
<choice>
|
701
730
|
<zeroOrMore>
|
702
731
|
<choice>
|
@@ -834,6 +863,13 @@
|
|
834
863
|
</define>
|
835
864
|
<define name="standard-document">
|
836
865
|
<element name="standard-document">
|
866
|
+
<attribute name="version"/>
|
867
|
+
<attribute name="type">
|
868
|
+
<choice>
|
869
|
+
<value>semantic</value>
|
870
|
+
<value>presentation</value>
|
871
|
+
</choice>
|
872
|
+
</attribute>
|
837
873
|
<ref name="bibdata"/>
|
838
874
|
<optional>
|
839
875
|
<ref name="boilerplate"/>
|
@@ -855,7 +891,7 @@
|
|
855
891
|
<oneOrMore>
|
856
892
|
<choice>
|
857
893
|
<ref name="content"/>
|
858
|
-
<ref name="
|
894
|
+
<ref name="abstract"/>
|
859
895
|
<ref name="foreword"/>
|
860
896
|
<ref name="introduction"/>
|
861
897
|
<ref name="acknowledgements"/>
|
@@ -922,6 +958,9 @@
|
|
922
958
|
<optional>
|
923
959
|
<attribute name="script"/>
|
924
960
|
</optional>
|
961
|
+
<optional>
|
962
|
+
<attribute name="type"/>
|
963
|
+
</optional>
|
925
964
|
<optional>
|
926
965
|
<attribute name="obligation">
|
927
966
|
<choice>
|
@@ -961,9 +1000,6 @@
|
|
961
1000
|
</define>
|
962
1001
|
<define name="content-subsection">
|
963
1002
|
<element name="clause">
|
964
|
-
<optional>
|
965
|
-
<attribute name="type"/>
|
966
|
-
</optional>
|
967
1003
|
<ref name="Content-Section"/>
|
968
1004
|
</element>
|
969
1005
|
</define>
|
@@ -992,6 +1028,9 @@
|
|
992
1028
|
</choice>
|
993
1029
|
</attribute>
|
994
1030
|
</optional>
|
1031
|
+
<optional>
|
1032
|
+
<attribute name="type"/>
|
1033
|
+
</optional>
|
995
1034
|
<optional>
|
996
1035
|
<ref name="section-title"/>
|
997
1036
|
</optional>
|
@@ -1011,9 +1050,6 @@
|
|
1011
1050
|
</define>
|
1012
1051
|
<define name="clause">
|
1013
1052
|
<element name="clause">
|
1014
|
-
<optional>
|
1015
|
-
<attribute name="type"/>
|
1016
|
-
</optional>
|
1017
1053
|
<ref name="Clause-Section"/>
|
1018
1054
|
</element>
|
1019
1055
|
</define>
|
@@ -1042,18 +1078,24 @@
|
|
1042
1078
|
</choice>
|
1043
1079
|
</attribute>
|
1044
1080
|
</optional>
|
1081
|
+
<optional>
|
1082
|
+
<attribute name="type"/>
|
1083
|
+
</optional>
|
1045
1084
|
<optional>
|
1046
1085
|
<ref name="section-title"/>
|
1047
1086
|
</optional>
|
1048
1087
|
<group>
|
1049
|
-
<
|
1050
|
-
<
|
1051
|
-
<
|
1052
|
-
|
1053
|
-
|
1054
|
-
<
|
1055
|
-
|
1056
|
-
|
1088
|
+
<choice>
|
1089
|
+
<group>
|
1090
|
+
<zeroOrMore>
|
1091
|
+
<ref name="BasicBlock"/>
|
1092
|
+
</zeroOrMore>
|
1093
|
+
<zeroOrMore>
|
1094
|
+
<ref name="note"/>
|
1095
|
+
</zeroOrMore>
|
1096
|
+
</group>
|
1097
|
+
<ref name="amend"/>
|
1098
|
+
</choice>
|
1057
1099
|
<zeroOrMore>
|
1058
1100
|
<choice>
|
1059
1101
|
<ref name="clause-subsection"/>
|
@@ -1122,49 +1164,7 @@
|
|
1122
1164
|
</define>
|
1123
1165
|
<define name="annex">
|
1124
1166
|
<element name="annex">
|
1125
|
-
<
|
1126
|
-
<attribute name="id">
|
1127
|
-
<data type="ID"/>
|
1128
|
-
</attribute>
|
1129
|
-
</optional>
|
1130
|
-
<optional>
|
1131
|
-
<attribute name="language"/>
|
1132
|
-
</optional>
|
1133
|
-
<optional>
|
1134
|
-
<attribute name="script"/>
|
1135
|
-
</optional>
|
1136
|
-
<optional>
|
1137
|
-
<attribute name="inline-header">
|
1138
|
-
<data type="boolean"/>
|
1139
|
-
</attribute>
|
1140
|
-
</optional>
|
1141
|
-
<attribute name="obligation">
|
1142
|
-
<choice>
|
1143
|
-
<value>normative</value>
|
1144
|
-
<value>informative</value>
|
1145
|
-
</choice>
|
1146
|
-
</attribute>
|
1147
|
-
<optional>
|
1148
|
-
<ref name="section-title"/>
|
1149
|
-
</optional>
|
1150
|
-
<group>
|
1151
|
-
<group>
|
1152
|
-
<zeroOrMore>
|
1153
|
-
<ref name="BasicBlock"/>
|
1154
|
-
</zeroOrMore>
|
1155
|
-
<zeroOrMore>
|
1156
|
-
<ref name="note"/>
|
1157
|
-
</zeroOrMore>
|
1158
|
-
</group>
|
1159
|
-
<zeroOrMore>
|
1160
|
-
<choice>
|
1161
|
-
<ref name="annex-subsection"/>
|
1162
|
-
<ref name="terms"/>
|
1163
|
-
<ref name="definitions"/>
|
1164
|
-
<ref name="references"/>
|
1165
|
-
</choice>
|
1166
|
-
</zeroOrMore>
|
1167
|
-
</group>
|
1167
|
+
<ref name="Annex-Section"/>
|
1168
1168
|
</element>
|
1169
1169
|
</define>
|
1170
1170
|
<define name="terms">
|
@@ -1180,6 +1180,9 @@
|
|
1180
1180
|
<optional>
|
1181
1181
|
<attribute name="script"/>
|
1182
1182
|
</optional>
|
1183
|
+
<optional>
|
1184
|
+
<attribute name="type"/>
|
1185
|
+
</optional>
|
1183
1186
|
<optional>
|
1184
1187
|
<attribute name="obligation">
|
1185
1188
|
<choice>
|
@@ -1447,11 +1450,6 @@
|
|
1447
1450
|
</optional>
|
1448
1451
|
</element>
|
1449
1452
|
</define>
|
1450
|
-
<define name="preface_abstract">
|
1451
|
-
<element name="abstract">
|
1452
|
-
<ref name="Basic-Section"/>
|
1453
|
-
</element>
|
1454
|
-
</define>
|
1455
1453
|
<define name="term-clause">
|
1456
1454
|
<element name="clause">
|
1457
1455
|
<optional>
|
@@ -1501,4 +1499,79 @@
|
|
1501
1499
|
<ref name="CitationType"/>
|
1502
1500
|
</element>
|
1503
1501
|
</define>
|
1502
|
+
<define name="amend">
|
1503
|
+
<element name="amend">
|
1504
|
+
<optional>
|
1505
|
+
<attribute name="id">
|
1506
|
+
<data type="ID"/>
|
1507
|
+
</attribute>
|
1508
|
+
</optional>
|
1509
|
+
<attribute name="change">
|
1510
|
+
<choice>
|
1511
|
+
<value>add</value>
|
1512
|
+
<value>modify</value>
|
1513
|
+
<value>delete</value>
|
1514
|
+
</choice>
|
1515
|
+
</attribute>
|
1516
|
+
<optional>
|
1517
|
+
<attribute name="path"/>
|
1518
|
+
</optional>
|
1519
|
+
<optional>
|
1520
|
+
<attribute name="path_end"/>
|
1521
|
+
</optional>
|
1522
|
+
<optional>
|
1523
|
+
<attribute name="title"/>
|
1524
|
+
</optional>
|
1525
|
+
<optional>
|
1526
|
+
<element name="location">
|
1527
|
+
<zeroOrMore>
|
1528
|
+
<ref name="locality"/>
|
1529
|
+
</zeroOrMore>
|
1530
|
+
</element>
|
1531
|
+
</optional>
|
1532
|
+
<zeroOrMore>
|
1533
|
+
<ref name="autonumber"/>
|
1534
|
+
</zeroOrMore>
|
1535
|
+
<optional>
|
1536
|
+
<element name="description">
|
1537
|
+
<zeroOrMore>
|
1538
|
+
<ref name="BasicBlock"/>
|
1539
|
+
</zeroOrMore>
|
1540
|
+
</element>
|
1541
|
+
</optional>
|
1542
|
+
<optional>
|
1543
|
+
<element name="newcontent">
|
1544
|
+
<zeroOrMore>
|
1545
|
+
<ref name="BasicBlock"/>
|
1546
|
+
</zeroOrMore>
|
1547
|
+
</element>
|
1548
|
+
</optional>
|
1549
|
+
<optional>
|
1550
|
+
<element name="description">
|
1551
|
+
<zeroOrMore>
|
1552
|
+
<ref name="BasicBlock"/>
|
1553
|
+
</zeroOrMore>
|
1554
|
+
</element>
|
1555
|
+
</optional>
|
1556
|
+
</element>
|
1557
|
+
</define>
|
1558
|
+
<define name="autonumber">
|
1559
|
+
<element name="autonumber">
|
1560
|
+
<attribute name="type">
|
1561
|
+
<choice>
|
1562
|
+
<value>requirement</value>
|
1563
|
+
<value>recommendation</value>
|
1564
|
+
<value>permission</value>
|
1565
|
+
<value>table</value>
|
1566
|
+
<value>figure</value>
|
1567
|
+
<value>admonition</value>
|
1568
|
+
<value>formula</value>
|
1569
|
+
<value>sourcecode</value>
|
1570
|
+
<value>example</value>
|
1571
|
+
<value>note</value>
|
1572
|
+
</choice>
|
1573
|
+
</attribute>
|
1574
|
+
<text/>
|
1575
|
+
</element>
|
1576
|
+
</define>
|
1504
1577
|
</grammar>
|