metanorma-ietf 2.2.8 → 2.3.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c9dcce65b694a86bbd5e775df30789d1b3897ac892e16257aea794b75e4e018
4
- data.tar.gz: d54c59198afab5b11a607814860800dec25990e12af5c7bbeef3f8f9ff83f528
3
+ metadata.gz: e7a4d62d9ba4598f0bc4a7e03e9a2685e157adf44914b5513d75e664e625a9e2
4
+ data.tar.gz: 56a43f317ad9b8feae2469e3a0f27ccb4c52960611df53ab6a6678989c5504c5
5
5
  SHA512:
6
- metadata.gz: 6dae30756289a169dd5d503dae1a1608c0f32bad9d6f36ca7141e3062f7998fdca933dbee69c695989802e68fbc62acbfe48f8622c772f3e104797b5c6e7a985
7
- data.tar.gz: 8b3329781f6d9e2337e3c553ca301186938317a2a528cd801ceaceb2352492cc693a837067469aef18d991a441f38473671adafb42499c689680d9f26290c89d
6
+ metadata.gz: 05e58bfa09d771d279fd9358253d27ce7be451ae8cfb223aac2438dc4971f51736a630d983d435ab33140ac6ba52898b71f2b9dcb5efc7852d4e488e33cd2205
7
+ data.tar.gz: 6ecac088b4b00f92fbf1044d7345d50cc391280b0576cf300b7980e2edf5cf4ec4c1fd2a44b8a9e4b9b583dcbf763f894094c54696121af0e1fa1c90919e6684
@@ -16,17 +16,17 @@ jobs:
16
16
  strategy:
17
17
  fail-fast: false
18
18
  matrix:
19
- ruby: [ '2.6', '2.5', '2.4' ]
19
+ ruby: [ '2.7', '2.6', '2.5', '2.4' ]
20
20
  os: [ ubuntu-latest, windows-latest, macos-latest ]
21
21
  experimental: [ false ]
22
22
  include:
23
- - ruby: '2.7'
23
+ - ruby: '3.0'
24
24
  os: 'ubuntu-latest'
25
25
  experimental: true
26
- - ruby: '2.7'
26
+ - ruby: '3.0'
27
27
  os: 'windows-latest'
28
28
  experimental: true
29
- - ruby: '2.7'
29
+ - ruby: '3.0'
30
30
  os: 'macos-latest'
31
31
  experimental: true
32
32
 
@@ -36,24 +36,11 @@ jobs:
36
36
  - uses: ruby/setup-ruby@v1
37
37
  with:
38
38
  ruby-version: ${{ matrix.ruby }}
39
-
40
- - if: matrix.os == 'macos-latest'
41
- run: brew install autoconf automake libtool
42
-
43
- - uses: actions/cache@v2
44
- with:
45
- path: vendor/bundle
46
- key: bundle-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}
47
- restore-keys: bundle-${{ matrix.os }}-${{ matrix.ruby }}
48
-
49
- - run: bundle config set path 'vendor/bundle'
50
-
51
- - run: bundle install --jobs 4 --retry 3
39
+ bundler-cache: true
52
40
 
53
41
  - uses: actions/setup-python@v1
54
42
  with:
55
43
  python-version: '3.6'
56
- architecture: 'x64'
57
44
 
58
45
  - name: set PIP_DOWNLOAD_CACHE
59
46
  shell: python
@@ -96,13 +83,10 @@ jobs:
96
83
  tests-passed:
97
84
  needs: rake
98
85
  runs-on: ubuntu-latest
99
- continue-on-error: true
100
86
  steps:
101
- - name: Trigger tests passed event
102
- uses: Sibz/github-status-action@v1
87
+ - uses: peter-evans/repository-dispatch@v1
103
88
  with:
104
- authToken: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
105
- context: 'tests-passed-successfully'
106
- description: 'Tests passed successfully'
107
- state: 'success'
108
- sha: ${{ github.event.pull_request.head.sha || github.sha }}
89
+ token: ${{ secrets.METANORMA_CI_PAT_TOKEN || secrets.GITHUB_TOKEN }}
90
+ repository: ${{ github.repository }}
91
+ event-type: notify
92
+ client-payload: '{"ref": "${{ github.ref }}", "sha": "${{ github.sha }}"}'
data/.gitignore CHANGED
@@ -16,3 +16,5 @@
16
16
  .ruby-gemset
17
17
 
18
18
  **/.byebug_history
19
+
20
+ .rubocop-https--*
data/.rubocop.yml CHANGED
@@ -1,15 +1,12 @@
1
1
  # This project follows the Ribose OSS style guide.
2
2
  # https://github.com/riboseinc/oss-guides
3
3
  # All project-specific additions and overrides should be specified in this file.
4
-
5
4
  inherit_from:
6
- # Thoughtbot's style guide from: https://github.com/thoughtbot/guides
7
- - ".rubocop.tb.yml"
8
- # Overrides from Ribose
9
- - ".rubocop.ribose.yml"
5
+ - https://raw.githubusercontent.com/riboseinc/oss-guides/master/ci/rubocop.yml
6
+
7
+ # local repo-specific modifications
8
+
10
9
  AllCops:
11
10
  DisplayCopNames: false
12
11
  StyleGuideCopsOnly: false
13
- TargetRubyVersion: 2.3
14
- Rails:
15
- Enabled: true
12
+ TargetRubyVersion: 2.4
@@ -124,7 +124,7 @@
124
124
  <value>application/tei+xml</value>
125
125
  <value>text/x-asciidoc</value>
126
126
  <value>text/markdown</value>
127
- <value>application/x-isodoc+xml</value>
127
+ <value>application/x-metanorma+xml</value>
128
128
  <text/>
129
129
  </choice>
130
130
  </attribute>
@@ -452,6 +452,7 @@
452
452
  <attribute name="type">
453
453
  <choice>
454
454
  <value>isni</value>
455
+ <value>orcid</value>
455
456
  <value>uri</value>
456
457
  </choice>
457
458
  </attribute>
@@ -461,10 +462,7 @@
461
462
  <define name="org-identifier">
462
463
  <element name="identifier">
463
464
  <attribute name="type">
464
- <choice>
465
- <value>orcid</value>
466
- <value>uri</value>
467
- </choice>
465
+ <data type="string" datatypeLibrary=""/>
468
466
  </attribute>
469
467
  <text/>
470
468
  </element>
@@ -1106,7 +1104,7 @@
1106
1104
  <value>complementOf</value>
1107
1105
  <value>obsoletes</value>
1108
1106
  <value>obsoletedBy</value>
1109
- <value>cited</value>
1107
+ <value>cites</value>
1110
1108
  <value>isCitedIn</value>
1111
1109
  </choice>
1112
1110
  </define>
@@ -140,6 +140,7 @@ module Asciidoctor
140
140
  def rfc_anchor_cleanup(xmldoc)
141
141
  map = {}
142
142
  xmldoc.xpath("//bibitem[docidentifier/@type = 'rfc-anchor']").each do |b|
143
+ next if b.at("./ancestor::bibdata")
143
144
  map[b["id"]] = b.at("./docidentifier[@type = 'rfc-anchor']").text
144
145
  b["id"] = b.at("./docidentifier[@type = 'rfc-anchor']").text
145
146
  end
@@ -204,6 +205,25 @@ module Asciidoctor
204
205
  end
205
206
  end
206
207
 
208
+ def inline_indexterm(node)
209
+ noko do |xml|
210
+ node.type == :visible and xml << node.text.sub(/^primary:(?=\S)/, "")
211
+ terms = (node.attr("terms") || [node.text]).map { |x| xml_encode(x) }
212
+ if /^primary:\S/.match(terms[0])
213
+ terms[0].sub!(/^primary:/, "")
214
+ has_primary = true
215
+ end
216
+ xml.index **attr_code(primary: has_primary) do |i|
217
+ i.primary { |x| x << terms[0] }
218
+ a = terms.dig(1) and i.secondary { |x| x << a }
219
+ a = terms.dig(2) and i.tertiary { |x| x << a }
220
+ end
221
+ end.join
222
+ end
223
+
224
+ def section_names_refs_cleanup(x)
225
+ end
226
+
207
227
  def html_extract_attributes(node)
208
228
  super.merge(use_xinclude: node.attr("use-xinclude"))
209
229
  end
@@ -14,7 +14,7 @@ module Asciidoctor
14
14
  csv_split(publishers)&.each do |p|
15
15
  xml.contributor do |c|
16
16
  c.role **{ type: "publisher" }
17
- c.organization { |a| organization(a, p) }
17
+ c.organization { |a| organization(a, p, true) }
18
18
  end
19
19
  end
20
20
  end
@@ -25,7 +25,7 @@ module Asciidoctor
25
25
  xml.copyright do |c|
26
26
  c.from (node.attr("copyright-year") || Date.today.year)
27
27
  c.owner do |owner|
28
- owner.organization { |o| organization(o, p) }
28
+ owner.organization { |o| organization(o, p, true) }
29
29
  end
30
30
  end
31
31
  end
@@ -564,6 +564,39 @@
564
564
  </zeroOrMore>
565
565
  </element>
566
566
  </define>
567
+ <define name="index">
568
+ <element name="index">
569
+ <optional>
570
+ <attribute name="to">
571
+ <data type="IDREF"/>
572
+ </attribute>
573
+ </optional>
574
+ <optional>
575
+ <attribute name="primary">
576
+ <data type="boolean"/>
577
+ </attribute>
578
+ </optional>
579
+ <element name="primary">
580
+ <oneOrMore>
581
+ <ref name="PureTextElement"/>
582
+ </oneOrMore>
583
+ </element>
584
+ <optional>
585
+ <element name="secondary">
586
+ <oneOrMore>
587
+ <ref name="PureTextElement"/>
588
+ </oneOrMore>
589
+ </element>
590
+ </optional>
591
+ <optional>
592
+ <element name="tertiary">
593
+ <oneOrMore>
594
+ <ref name="PureTextElement"/>
595
+ </oneOrMore>
596
+ </element>
597
+ </optional>
598
+ </element>
599
+ </define>
567
600
  </include>
568
601
  <define name="TextElement" combine="choice">
569
602
  <ref name="bcp14"/>
@@ -879,6 +912,9 @@
879
912
  <zeroOrMore>
880
913
  <ref name="termdocsource"/>
881
914
  </zeroOrMore>
915
+ <optional>
916
+ <ref name="misccontainer"/>
917
+ </optional>
882
918
  <optional>
883
919
  <ref name="boilerplate"/>
884
920
  </optional>
@@ -890,6 +926,9 @@
890
926
  <ref name="annex"/>
891
927
  </zeroOrMore>
892
928
  <ref name="bibliography"/>
929
+ <zeroOrMore>
930
+ <ref name="indexsect"/>
931
+ </zeroOrMore>
893
932
  </element>
894
933
  </define>
895
934
  </grammar>
@@ -86,6 +86,35 @@
86
86
  <text/>
87
87
  </element>
88
88
  </define>
89
+ <define name="erefType">
90
+ <optional>
91
+ <attribute name="normative">
92
+ <data type="boolean"/>
93
+ </attribute>
94
+ </optional>
95
+ <attribute name="citeas"/>
96
+ <attribute name="type">
97
+ <ref name="ReferenceFormat"/>
98
+ </attribute>
99
+ <optional>
100
+ <attribute name="alt"/>
101
+ </optional>
102
+ <optional>
103
+ <attribute name="case">
104
+ <choice>
105
+ <value>capital</value>
106
+ <value>lowercase</value>
107
+ </choice>
108
+ </attribute>
109
+ </optional>
110
+ <optional>
111
+ <attribute name="droploc">
112
+ <data type="boolean"/>
113
+ </attribute>
114
+ </optional>
115
+ <ref name="CitationType"/>
116
+ <text/>
117
+ </define>
89
118
  <define name="ul">
90
119
  <element name="ul">
91
120
  <attribute name="id">
@@ -102,7 +131,7 @@
102
131
  </attribute>
103
132
  </optional>
104
133
  <oneOrMore>
105
- <ref name="li"/>
134
+ <ref name="ul_li"/>
106
135
  </oneOrMore>
107
136
  <zeroOrMore>
108
137
  <ref name="note"/>
@@ -775,6 +804,90 @@
775
804
  <ref name="paragraph"/>
776
805
  </element>
777
806
  </define>
807
+ <define name="em">
808
+ <element name="em">
809
+ <zeroOrMore>
810
+ <choice>
811
+ <ref name="PureTextElement"/>
812
+ <ref name="stem"/>
813
+ <ref name="index"/>
814
+ </choice>
815
+ </zeroOrMore>
816
+ </element>
817
+ </define>
818
+ <define name="strong">
819
+ <element name="strong">
820
+ <zeroOrMore>
821
+ <choice>
822
+ <ref name="PureTextElement"/>
823
+ <ref name="stem"/>
824
+ <ref name="index"/>
825
+ </choice>
826
+ </zeroOrMore>
827
+ </element>
828
+ </define>
829
+ <define name="tt">
830
+ <element name="tt">
831
+ <zeroOrMore>
832
+ <choice>
833
+ <ref name="PureTextElement"/>
834
+ <ref name="index"/>
835
+ </choice>
836
+ </zeroOrMore>
837
+ </element>
838
+ </define>
839
+ <define name="keyword">
840
+ <element name="keyword">
841
+ <zeroOrMore>
842
+ <choice>
843
+ <ref name="PureTextElement"/>
844
+ <ref name="index"/>
845
+ </choice>
846
+ </zeroOrMore>
847
+ </element>
848
+ </define>
849
+ <define name="strike">
850
+ <element name="strike">
851
+ <zeroOrMore>
852
+ <choice>
853
+ <ref name="PureTextElement"/>
854
+ <ref name="index"/>
855
+ </choice>
856
+ </zeroOrMore>
857
+ </element>
858
+ </define>
859
+ <define name="underline">
860
+ <element name="underline">
861
+ <zeroOrMore>
862
+ <choice>
863
+ <ref name="PureTextElement"/>
864
+ <ref name="index"/>
865
+ </choice>
866
+ </zeroOrMore>
867
+ </element>
868
+ </define>
869
+ <define name="smallcap">
870
+ <element name="smallcap">
871
+ <zeroOrMore>
872
+ <choice>
873
+ <ref name="PureTextElement"/>
874
+ <ref name="index"/>
875
+ </choice>
876
+ </zeroOrMore>
877
+ </element>
878
+ </define>
879
+ <define name="pagebreak">
880
+ <element name="pagebreak">
881
+ <optional>
882
+ <attribute name="orientation">
883
+ <choice>
884
+ <value>landscape</value>
885
+ <value>portrait</value>
886
+ </choice>
887
+ </attribute>
888
+ </optional>
889
+ </element>
890
+ </define>
778
891
  </include>
779
892
  <!-- end overrides -->
780
893
  <define name="colgroup">
@@ -793,7 +906,35 @@
793
906
  <value>internal</value>
794
907
  </define>
795
908
  <define name="TextElement" combine="choice">
796
- <ref name="concept"/>
909
+ <choice>
910
+ <ref name="concept"/>
911
+ <ref name="add"/>
912
+ <ref name="del"/>
913
+ </choice>
914
+ </define>
915
+ <define name="add">
916
+ <element name="add">
917
+ <choice>
918
+ <ref name="PureTextElement"/>
919
+ <ref name="eref"/>
920
+ <ref name="stem"/>
921
+ <ref name="keyword"/>
922
+ <ref name="xref"/>
923
+ <ref name="hyperlink"/>
924
+ </choice>
925
+ </element>
926
+ </define>
927
+ <define name="del">
928
+ <element name="del">
929
+ <choice>
930
+ <ref name="PureTextElement"/>
931
+ <ref name="eref"/>
932
+ <ref name="stem"/>
933
+ <ref name="keyword"/>
934
+ <ref name="xref"/>
935
+ <ref name="hyperlink"/>
936
+ </choice>
937
+ </element>
797
938
  </define>
798
939
  <define name="concept">
799
940
  <element name="concept">
@@ -812,8 +953,172 @@
812
953
  <ref name="requirement"/>
813
954
  <ref name="recommendation"/>
814
955
  <ref name="permission"/>
956
+ <ref name="imagemap"/>
957
+ <ref name="svgmap"/>
958
+ <ref name="inputform"/>
959
+ </choice>
960
+ </define>
961
+ <define name="inputform">
962
+ <element name="form">
963
+ <attribute name="id">
964
+ <data type="ID"/>
965
+ </attribute>
966
+ <attribute name="name"/>
967
+ <attribute name="action"/>
968
+ <zeroOrMore>
969
+ <choice>
970
+ <ref name="TextElement"/>
971
+ <ref name="FormInput"/>
972
+ </choice>
973
+ </zeroOrMore>
974
+ </element>
975
+ </define>
976
+ <define name="FormInput">
977
+ <choice>
978
+ <ref name="input"/>
979
+ <ref name="formlabel"/>
980
+ <ref name="select"/>
981
+ <ref name="textarea"/>
815
982
  </choice>
816
983
  </define>
984
+ <define name="InputType">
985
+ <choice>
986
+ <value>button</value>
987
+ <value>checkbox</value>
988
+ <value>date</value>
989
+ <value>file</value>
990
+ <value>password</value>
991
+ <value>radio</value>
992
+ <value>submit</value>
993
+ <value>text</value>
994
+ </choice>
995
+ </define>
996
+ <define name="input">
997
+ <element name="input">
998
+ <attribute name="type">
999
+ <ref name="InputType"/>
1000
+ </attribute>
1001
+ <optional>
1002
+ <attribute name="checked">
1003
+ <data type="boolean"/>
1004
+ </attribute>
1005
+ </optional>
1006
+ <optional>
1007
+ <attribute name="disabled">
1008
+ <data type="boolean"/>
1009
+ </attribute>
1010
+ </optional>
1011
+ <optional>
1012
+ <attribute name="readonly">
1013
+ <data type="boolean"/>
1014
+ </attribute>
1015
+ </optional>
1016
+ <optional>
1017
+ <attribute name="maxlength">
1018
+ <data type="int"/>
1019
+ </attribute>
1020
+ </optional>
1021
+ <optional>
1022
+ <attribute name="minlength">
1023
+ <data type="int"/>
1024
+ </attribute>
1025
+ </optional>
1026
+ <optional>
1027
+ <attribute name="name"/>
1028
+ </optional>
1029
+ <optional>
1030
+ <attribute name="value"/>
1031
+ </optional>
1032
+ <optional>
1033
+ <attribute name="id">
1034
+ <data type="ID"/>
1035
+ </attribute>
1036
+ </optional>
1037
+ </element>
1038
+ </define>
1039
+ <define name="formlabel">
1040
+ <element name="label">
1041
+ <attribute name="for">
1042
+ <data type="IDREF"/>
1043
+ </attribute>
1044
+ <zeroOrMore>
1045
+ <ref name="PureTextElement"/>
1046
+ </zeroOrMore>
1047
+ </element>
1048
+ </define>
1049
+ <define name="select">
1050
+ <element name="select">
1051
+ <optional>
1052
+ <attribute name="name"/>
1053
+ </optional>
1054
+ <optional>
1055
+ <attribute name="value"/>
1056
+ </optional>
1057
+ <optional>
1058
+ <attribute name="id">
1059
+ <data type="ID"/>
1060
+ </attribute>
1061
+ </optional>
1062
+ <optional>
1063
+ <attribute name="disabled">
1064
+ <data type="boolean"/>
1065
+ </attribute>
1066
+ </optional>
1067
+ <optional>
1068
+ <attribute name="multiple">
1069
+ <data type="boolean"/>
1070
+ </attribute>
1071
+ </optional>
1072
+ <optional>
1073
+ <attribute name="size">
1074
+ <data type="int"/>
1075
+ </attribute>
1076
+ </optional>
1077
+ <oneOrMore>
1078
+ <ref name="option"/>
1079
+ </oneOrMore>
1080
+ </element>
1081
+ </define>
1082
+ <define name="option">
1083
+ <element name="option">
1084
+ <optional>
1085
+ <attribute name="disabled">
1086
+ <data type="boolean"/>
1087
+ </attribute>
1088
+ </optional>
1089
+ <optional>
1090
+ <attribute name="value"/>
1091
+ </optional>
1092
+ <zeroOrMore>
1093
+ <ref name="PureTextElement"/>
1094
+ </zeroOrMore>
1095
+ </element>
1096
+ </define>
1097
+ <define name="textarea">
1098
+ <element name="textarea">
1099
+ <optional>
1100
+ <attribute name="name"/>
1101
+ </optional>
1102
+ <optional>
1103
+ <attribute name="value"/>
1104
+ </optional>
1105
+ <optional>
1106
+ <attribute name="id">
1107
+ <data type="ID"/>
1108
+ </attribute>
1109
+ </optional>
1110
+ <optional>
1111
+ <attribute name="rows">
1112
+ <data type="int"/>
1113
+ </attribute>
1114
+ </optional>
1115
+ <optional>
1116
+ <attribute name="cols">
1117
+ <data type="int"/>
1118
+ </attribute>
1119
+ </optional>
1120
+ </element>
1121
+ </define>
817
1122
  <define name="bibliography">
818
1123
  <element name="bibliography">
819
1124
  <oneOrMore>
@@ -917,6 +1222,9 @@
917
1222
  </choice>
918
1223
  </attribute>
919
1224
  <ref name="bibdata"/>
1225
+ <optional>
1226
+ <ref name="misccontainer"/>
1227
+ </optional>
920
1228
  <optional>
921
1229
  <ref name="boilerplate"/>
922
1230
  </optional>
@@ -927,11 +1235,21 @@
927
1235
  <zeroOrMore>
928
1236
  <ref name="annex"/>
929
1237
  </zeroOrMore>
1238
+ <optional>
1239
+ <ref name="bibliography"/>
1240
+ </optional>
930
1241
  <zeroOrMore>
931
- <ref name="references"/>
1242
+ <ref name="indexsect"/>
932
1243
  </zeroOrMore>
933
1244
  </element>
934
1245
  </define>
1246
+ <define name="misccontainer">
1247
+ <element name="misc-container">
1248
+ <oneOrMore>
1249
+ <ref name="AnyElement"/>
1250
+ </oneOrMore>
1251
+ </element>
1252
+ </define>
935
1253
  <define name="preface">
936
1254
  <element name="preface">
937
1255
  <oneOrMore>
@@ -955,6 +1273,11 @@
955
1273
  <ref name="Content-Section"/>
956
1274
  </element>
957
1275
  </define>
1276
+ <define name="indexsect">
1277
+ <element name="indexsect">
1278
+ <ref name="Content-Section"/>
1279
+ </element>
1280
+ </define>
958
1281
  <define name="boilerplate">
959
1282
  <element name="boilerplate">
960
1283
  <optional>
@@ -1635,4 +1958,87 @@
1635
1958
  <text/>
1636
1959
  </element>
1637
1960
  </define>
1961
+ <define name="imagemap">
1962
+ <element name="imagemap">
1963
+ <ref name="figure"/>
1964
+ <zeroOrMore>
1965
+ <element name="area">
1966
+ <attribute name="type">
1967
+ <choice>
1968
+ <value>rect</value>
1969
+ <value>circle</value>
1970
+ <value>ellipse</value>
1971
+ <value>poly</value>
1972
+ </choice>
1973
+ </attribute>
1974
+ <choice>
1975
+ <ref name="xref"/>
1976
+ <ref name="hyperlink"/>
1977
+ <ref name="eref"/>
1978
+ </choice>
1979
+ <oneOrMore>
1980
+ <element name="coords">
1981
+ <attribute name="x">
1982
+ <data type="float"/>
1983
+ </attribute>
1984
+ <attribute name="y">
1985
+ <data type="float"/>
1986
+ </attribute>
1987
+ </element>
1988
+ </oneOrMore>
1989
+ <optional>
1990
+ <element name="radius">
1991
+ <attribute name="x">
1992
+ <data type="float"/>
1993
+ </attribute>
1994
+ <optional>
1995
+ <attribute name="y">
1996
+ <data type="float"/>
1997
+ </attribute>
1998
+ </optional>
1999
+ </element>
2000
+ </optional>
2001
+ </element>
2002
+ </zeroOrMore>
2003
+ </element>
2004
+ </define>
2005
+ <define name="svgmap">
2006
+ <element name="svgmap">
2007
+ <ref name="figure"/>
2008
+ <zeroOrMore>
2009
+ <element name="target">
2010
+ <attribute name="href">
2011
+ <data type="anyURI"/>
2012
+ </attribute>
2013
+ <choice>
2014
+ <ref name="xref"/>
2015
+ <ref name="hyperlink"/>
2016
+ <ref name="eref"/>
2017
+ </choice>
2018
+ </element>
2019
+ </zeroOrMore>
2020
+ </element>
2021
+ </define>
2022
+ <define name="ul_li">
2023
+ <element name="li">
2024
+ <optional>
2025
+ <attribute name="id">
2026
+ <data type="ID"/>
2027
+ </attribute>
2028
+ </optional>
2029
+ <optional>
2030
+ <attribute name="uncheckedcheckbox">
2031
+ <data type="boolean"/>
2032
+ </attribute>
2033
+ </optional>
2034
+ <optional>
2035
+ <attribute name="checkedcheckbox">
2036
+ <data type="boolean"/>
2037
+ </attribute>
2038
+ </optional>
2039
+ <oneOrMore>
2040
+ <ref name="BasicBlock"/>
2041
+ </oneOrMore>
2042
+ </element>
2043
+ </define>
1638
2044
  </grammar>