metanorma-ietf 2.2.5 → 2.2.10

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: 3753bf3629ba6b3dbe10ef6f2dd1086eaff21428be99dcfd4d790cf300812b74
4
- data.tar.gz: b6ea9b53ecf08906ae978fdad57e1cdc21c0f34c4e6891203fd7ac406cf83bcb
3
+ metadata.gz: 1f05c1e2f97acdb86b2025e5a52eb6fd868bc4a5dc09f2ff502ad250a013ed70
4
+ data.tar.gz: bb825ad5414f326df7fd80754bb49ca328efc16aa86bdfba02c0e0ce7f8c83b9
5
5
  SHA512:
6
- metadata.gz: 842e23d7fc1f0f5bc2ad809b70b527531ef05ae17fbdacb20d43dae5e98bcb14b983c3120177b36d0c5709e04ee104cafc85b2eb350f93bc6a7d73ea6a243ab9
7
- data.tar.gz: 03efa75db6f4e55dd3417d8cd651b9d52508dbc760314b763fc3f71d4acddb5a731ddc9097661ff94cdbd46b2fd8bc4ac4f52f9af6c69da7e2893df18cd63c5b
6
+ metadata.gz: f0b565f39bcf18e060c6d73a4a393ebe7ea356398ec5e99629d56516be2b0422393b70089d7dfcea1e80c15d397baff0989c773608d9b7eee339079fbc8622fb
7
+ data.tar.gz: 46966c2fe2eaf74d54e84775bcebcccc021dc616f257eeda32e89b9a973004df2e6562f8fc20b192e7fb35dca0d8a9340ff79804ad8a79caa66bff5ec03fb7a1
@@ -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,21 +36,11 @@ jobs:
36
36
  - uses: ruby/setup-ruby@v1
37
37
  with:
38
38
  ruby-version: ${{ matrix.ruby }}
39
-
40
- - uses: actions/cache@v2
41
- with:
42
- path: vendor/bundle
43
- key: bundle-${{ matrix.os }}-${{ matrix.ruby }}-${{ hashFiles('**/*.gemspec') }}
44
- restore-keys: bundle-${{ matrix.os }}-${{ matrix.ruby }}
45
-
46
- - run: bundle config set path 'vendor/bundle'
47
-
48
- - run: bundle install --jobs 4 --retry 3
39
+ bundler-cache: true
49
40
 
50
41
  - uses: actions/setup-python@v1
51
42
  with:
52
43
  python-version: '3.6'
53
- architecture: 'x64'
54
44
 
55
45
  - name: set PIP_DOWNLOAD_CACHE
56
46
  shell: python
@@ -89,3 +79,14 @@ jobs:
89
79
  - run: pip install xml2rfc
90
80
 
91
81
  - run: bundle exec rake
82
+
83
+ tests-passed:
84
+ needs: rake
85
+ runs-on: ubuntu-latest
86
+ steps:
87
+ - uses: peter-evans/repository-dispatch@v1
88
+ with:
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,14 @@
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
12
+ TargetRubyVersion: 2.4
14
13
  Rails:
15
14
  Enabled: true
@@ -596,6 +596,7 @@
596
596
  <ref name="bookmark"/>
597
597
  <ref name="image"/>
598
598
  <ref name="index"/>
599
+ <ref name="index-xref"/>
599
600
  </choice>
600
601
  </define>
601
602
  <define name="PureTextElement">
@@ -728,13 +729,61 @@
728
729
  </define>
729
730
  <define name="index">
730
731
  <element name="index">
731
- <attribute name="primary"/>
732
732
  <optional>
733
- <attribute name="secondary"/>
733
+ <attribute name="to">
734
+ <data type="IDREF"/>
735
+ </attribute>
736
+ </optional>
737
+ <element name="primary">
738
+ <oneOrMore>
739
+ <ref name="PureTextElement"/>
740
+ </oneOrMore>
741
+ </element>
742
+ <optional>
743
+ <element name="secondary">
744
+ <oneOrMore>
745
+ <ref name="PureTextElement"/>
746
+ </oneOrMore>
747
+ </element>
748
+ </optional>
749
+ <optional>
750
+ <element name="tertiary">
751
+ <oneOrMore>
752
+ <ref name="PureTextElement"/>
753
+ </oneOrMore>
754
+ </element>
755
+ </optional>
756
+ </element>
757
+ </define>
758
+ <define name="index-xref">
759
+ <element name="index-xref">
760
+ <attribute name="also">
761
+ <data type="boolean"/>
762
+ </attribute>
763
+ <element name="primary">
764
+ <oneOrMore>
765
+ <ref name="PureTextElement"/>
766
+ </oneOrMore>
767
+ </element>
768
+ <optional>
769
+ <element name="secondary">
770
+ <oneOrMore>
771
+ <ref name="PureTextElement"/>
772
+ </oneOrMore>
773
+ </element>
734
774
  </optional>
735
775
  <optional>
736
- <attribute name="tertiary"/>
776
+ <element name="tertiary">
777
+ <oneOrMore>
778
+ <ref name="PureTextElement"/>
779
+ </oneOrMore>
780
+ </element>
737
781
  </optional>
782
+ <element name="target">
783
+ <oneOrMore>
784
+ <ref name="PureTextElement"/>
785
+ </oneOrMore>
786
+ </element>
738
787
  </element>
739
788
  </define>
740
789
  <!-- bare ID element, used for referencing arbitrary spans of text -->
@@ -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>
@@ -6,17 +6,17 @@ module Asciidoctor
6
6
  node.attr("keep-with-next"),
7
7
  "keep-with-previous": node.attr("keepWithPrevious") ||
8
8
  node.attr("keep-with-previous"),
9
- id: ::Asciidoctor::Standoc::Utils::anchor_or_uuid(node))
9
+ id: ::Metanorma::Utils::anchor_or_uuid(node))
10
10
  end
11
11
 
12
12
  def ul_attrs(node)
13
- attr_code(id: ::Asciidoctor::Standoc::Utils::anchor_or_uuid(node),
13
+ attr_code(id: ::Metanorma::Utils::anchor_or_uuid(node),
14
14
  nobullet: node.attr("nobullet"),
15
15
  spacing: node.attr("spacing"))
16
16
  end
17
17
 
18
18
  def ol_attrs(node)
19
- attr_code(id: ::Asciidoctor::Standoc::Utils::anchor_or_uuid(node),
19
+ attr_code(id: ::Metanorma::Utils::anchor_or_uuid(node),
20
20
  type: node.attr("format") || olist_style(node.style),
21
21
  group: node.attr("group"),
22
22
  spacing: node.attr("spacing"),
@@ -24,7 +24,7 @@ module Asciidoctor
24
24
  end
25
25
 
26
26
  def dl_attrs(node)
27
- attr_code(id: ::Asciidoctor::Standoc::Utils::anchor_or_uuid(node),
27
+ attr_code(id: ::Metanorma::Utils::anchor_or_uuid(node),
28
28
  newline: node.attr("newline"),
29
29
  indent: node.attr("indent"),
30
30
  spacing: node.attr("spacing"))
@@ -46,7 +46,7 @@ module Asciidoctor
46
46
 
47
47
  def note(n)
48
48
  noko do |xml|
49
- xml.note **attr_code(id: ::Asciidoctor::Standoc::Utils::anchor_or_uuid(n),
49
+ xml.note **attr_code(id: ::Metanorma::Utils::anchor_or_uuid(n),
50
50
  removeInRFC: n.attr("remove-in-rfc")) do |c|
51
51
  n.title.nil? or c.name { |name| name << n.title }
52
52
  wrap_in_para(n, c)
@@ -60,7 +60,7 @@ module Asciidoctor
60
60
  figure_title(node, f)
61
61
  f.pre node.lines.join("\n"),
62
62
  **attr_code(align: node.attr("align"),
63
- id: ::Asciidoctor::Standoc::Utils::anchor_or_uuid(nil),
63
+ id: ::Metanorma::Utils::anchor_or_uuid(nil),
64
64
  alt: node.attr("alt"))
65
65
  end
66
66
  end
@@ -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
@@ -211,6 +231,13 @@ module Asciidoctor
211
231
  def rfc_converter(node)
212
232
  IsoDoc::Ietf::RfcConvert.new(html_extract_attributes(node))
213
233
  end
234
+
235
+ def isodoc(lang, script, i18nyaml = nil)
236
+ conv = rfc_converter(EmptyAttr.new)
237
+ i18n = conv.i18n_init(lang, script, i18nyaml)
238
+ conv.metadata_init(lang, script, i18n)
239
+ conv
240
+ end
214
241
  end
215
242
  end
216
243
  end
@@ -51,8 +51,8 @@ module Asciidoctor
51
51
  ["en"].each do |lang|
52
52
  at = { language: lang, format: "text/plain" }
53
53
  xml.title **attr_code(at.merge(type: "main")) do |t|
54
- t << (::Asciidoctor::Standoc::Utils::asciidoc_sub(node.attr("title")) ||
55
- ::Asciidoctor::Standoc::Utils::asciidoc_sub(node.attr("title-en")) ||
54
+ t << (::Metanorma::Utils::asciidoc_sub(node.attr("title")) ||
55
+ ::Metanorma::Utils::asciidoc_sub(node.attr("title-en")) ||
56
56
  node.title)
57
57
  end
58
58
  a = node.attr("abbrev") and
@@ -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>
@@ -55,6 +55,13 @@
55
55
  <param name="pattern">\i\c*|\c+#\c+</param>
56
56
  </data>
57
57
  </attribute>
58
+ <optional>
59
+ <attribute name="to">
60
+ <data type="string">
61
+ <param name="pattern">\i\c*|\c+#\c+</param>
62
+ </data>
63
+ </attribute>
64
+ </optional>
58
65
  <optional>
59
66
  <attribute name="type">
60
67
  <ref name="ReferenceFormat"/>
@@ -95,7 +102,7 @@
95
102
  </attribute>
96
103
  </optional>
97
104
  <oneOrMore>
98
- <ref name="li"/>
105
+ <ref name="ul_li"/>
99
106
  </oneOrMore>
100
107
  <zeroOrMore>
101
108
  <ref name="note"/>
@@ -246,6 +253,12 @@
246
253
  <data type="boolean"/>
247
254
  </attribute>
248
255
  </optional>
256
+ <optional>
257
+ <attribute name="width"/>
258
+ </optional>
259
+ <optional>
260
+ <ref name="colgroup"/>
261
+ </optional>
249
262
  <optional>
250
263
  <ref name="tname"/>
251
264
  </optional>
@@ -764,6 +777,21 @@
764
777
  </define>
765
778
  </include>
766
779
  <!-- end overrides -->
780
+ <define name="colgroup">
781
+ <element name="colgroup">
782
+ <oneOrMore>
783
+ <ref name="col"/>
784
+ </oneOrMore>
785
+ </element>
786
+ </define>
787
+ <define name="col">
788
+ <element name="col">
789
+ <attribute name="width"/>
790
+ </element>
791
+ </define>
792
+ <define name="BibItemType" combine="choice">
793
+ <value>internal</value>
794
+ </define>
767
795
  <define name="TextElement" combine="choice">
768
796
  <ref name="concept"/>
769
797
  </define>
@@ -784,6 +812,8 @@
784
812
  <ref name="requirement"/>
785
813
  <ref name="recommendation"/>
786
814
  <ref name="permission"/>
815
+ <ref name="imagemap"/>
816
+ <ref name="svgmap"/>
787
817
  </choice>
788
818
  </define>
789
819
  <define name="bibliography">
@@ -814,6 +844,9 @@
814
844
  <data type="boolean"/>
815
845
  </attribute>
816
846
  </optional>
847
+ <optional>
848
+ <attribute name="number"/>
849
+ </optional>
817
850
  <optional>
818
851
  <attribute name="obligation">
819
852
  <choice>
@@ -869,9 +902,11 @@
869
902
  <element name="code">
870
903
  <text/>
871
904
  </element>
872
- <element name="text">
873
- <text/>
874
- </element>
905
+ <optional>
906
+ <element name="text">
907
+ <text/>
908
+ </element>
909
+ </optional>
875
910
  </element>
876
911
  </define>
877
912
  <define name="standard-document">
@@ -884,6 +919,9 @@
884
919
  </choice>
885
920
  </attribute>
886
921
  <ref name="bibdata"/>
922
+ <optional>
923
+ <ref name="misccontainer"/>
924
+ </optional>
887
925
  <optional>
888
926
  <ref name="boilerplate"/>
889
927
  </optional>
@@ -894,11 +932,21 @@
894
932
  <zeroOrMore>
895
933
  <ref name="annex"/>
896
934
  </zeroOrMore>
935
+ <optional>
936
+ <ref name="bibliography"/>
937
+ </optional>
897
938
  <zeroOrMore>
898
- <ref name="references"/>
939
+ <ref name="indexsect"/>
899
940
  </zeroOrMore>
900
941
  </element>
901
942
  </define>
943
+ <define name="misccontainer">
944
+ <element name="misc-container">
945
+ <oneOrMore>
946
+ <ref name="AnyElement"/>
947
+ </oneOrMore>
948
+ </element>
949
+ </define>
902
950
  <define name="preface">
903
951
  <element name="preface">
904
952
  <oneOrMore>
@@ -922,6 +970,11 @@
922
970
  <ref name="Content-Section"/>
923
971
  </element>
924
972
  </define>
973
+ <define name="indexsect">
974
+ <element name="indexsect">
975
+ <ref name="Content-Section"/>
976
+ </element>
977
+ </define>
925
978
  <define name="boilerplate">
926
979
  <element name="boilerplate">
927
980
  <optional>
@@ -1041,6 +1094,9 @@
1041
1094
  </choice>
1042
1095
  </attribute>
1043
1096
  </optional>
1097
+ <optional>
1098
+ <attribute name="number"/>
1099
+ </optional>
1044
1100
  <optional>
1045
1101
  <attribute name="type"/>
1046
1102
  </optional>
@@ -1094,6 +1150,9 @@
1094
1150
  <optional>
1095
1151
  <attribute name="type"/>
1096
1152
  </optional>
1153
+ <optional>
1154
+ <attribute name="number"/>
1155
+ </optional>
1097
1156
  <optional>
1098
1157
  <ref name="section-title"/>
1099
1158
  </optional>
@@ -1196,6 +1255,9 @@
1196
1255
  <optional>
1197
1256
  <attribute name="type"/>
1198
1257
  </optional>
1258
+ <optional>
1259
+ <attribute name="number"/>
1260
+ </optional>
1199
1261
  <optional>
1200
1262
  <attribute name="obligation">
1201
1263
  <choice>
@@ -1524,6 +1586,7 @@
1524
1586
  <value>add</value>
1525
1587
  <value>modify</value>
1526
1588
  <value>delete</value>
1589
+ <value>replace</value>
1527
1590
  </choice>
1528
1591
  </attribute>
1529
1592
  <optional>
@@ -1554,6 +1617,11 @@
1554
1617
  </optional>
1555
1618
  <optional>
1556
1619
  <element name="newcontent">
1620
+ <optional>
1621
+ <attribute name="id">
1622
+ <data type="ID"/>
1623
+ </attribute>
1624
+ </optional>
1557
1625
  <zeroOrMore>
1558
1626
  <ref name="BasicBlock"/>
1559
1627
  </zeroOrMore>
@@ -1587,4 +1655,87 @@
1587
1655
  <text/>
1588
1656
  </element>
1589
1657
  </define>
1658
+ <define name="imagemap">
1659
+ <element name="imagemap">
1660
+ <ref name="figure"/>
1661
+ <zeroOrMore>
1662
+ <element name="area">
1663
+ <attribute name="type">
1664
+ <choice>
1665
+ <value>rect</value>
1666
+ <value>circle</value>
1667
+ <value>ellipse</value>
1668
+ <value>poly</value>
1669
+ </choice>
1670
+ </attribute>
1671
+ <choice>
1672
+ <ref name="xref"/>
1673
+ <ref name="hyperlink"/>
1674
+ <ref name="eref"/>
1675
+ </choice>
1676
+ <oneOrMore>
1677
+ <element name="coords">
1678
+ <attribute name="x">
1679
+ <data type="float"/>
1680
+ </attribute>
1681
+ <attribute name="y">
1682
+ <data type="float"/>
1683
+ </attribute>
1684
+ </element>
1685
+ </oneOrMore>
1686
+ <optional>
1687
+ <element name="radius">
1688
+ <attribute name="x">
1689
+ <data type="float"/>
1690
+ </attribute>
1691
+ <optional>
1692
+ <attribute name="y">
1693
+ <data type="float"/>
1694
+ </attribute>
1695
+ </optional>
1696
+ </element>
1697
+ </optional>
1698
+ </element>
1699
+ </zeroOrMore>
1700
+ </element>
1701
+ </define>
1702
+ <define name="svgmap">
1703
+ <element name="svgmap">
1704
+ <ref name="figure"/>
1705
+ <zeroOrMore>
1706
+ <element name="target">
1707
+ <attribute name="href">
1708
+ <data type="anyURI"/>
1709
+ </attribute>
1710
+ <choice>
1711
+ <ref name="xref"/>
1712
+ <ref name="hyperlink"/>
1713
+ <ref name="eref"/>
1714
+ </choice>
1715
+ </element>
1716
+ </zeroOrMore>
1717
+ </element>
1718
+ </define>
1719
+ <define name="ul_li">
1720
+ <element name="li">
1721
+ <optional>
1722
+ <attribute name="id">
1723
+ <data type="ID"/>
1724
+ </attribute>
1725
+ </optional>
1726
+ <optional>
1727
+ <attribute name="uncheckedcheckbox">
1728
+ <data type="boolean"/>
1729
+ </attribute>
1730
+ </optional>
1731
+ <optional>
1732
+ <attribute name="checkedcheckbox">
1733
+ <data type="boolean"/>
1734
+ </attribute>
1735
+ </optional>
1736
+ <oneOrMore>
1737
+ <ref name="BasicBlock"/>
1738
+ </oneOrMore>
1739
+ </element>
1740
+ </define>
1590
1741
  </grammar>