metanorma-ietf 2.2.8 → 2.3.2

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 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>