metanorma-ogc 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +8 -0
  3. data/.github/workflows/ubuntu.yml +10 -0
  4. data/.github/workflows/windows.yml +8 -0
  5. data/lib/asciidoctor/ogc/biblio.rng +36 -6
  6. data/lib/asciidoctor/ogc/boilerplate.xml +7 -22
  7. data/lib/asciidoctor/ogc/converter.rb +12 -24
  8. data/lib/asciidoctor/ogc/isodoc.rng +450 -4
  9. data/lib/asciidoctor/ogc/reqt.rng +23 -0
  10. data/lib/isodoc/ogc.rb +2 -0
  11. data/lib/isodoc/ogc/base_convert.rb +12 -60
  12. data/lib/isodoc/ogc/biblio.rb +6 -5
  13. data/lib/isodoc/ogc/html/html_ogc_titlepage.html +0 -5
  14. data/lib/isodoc/ogc/html/scripts.html +10 -7
  15. data/lib/isodoc/ogc/html_convert.rb +0 -4
  16. data/lib/isodoc/ogc/metadata.rb +0 -8
  17. data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +3843 -0
  18. data/lib/isodoc/ogc/ogc.best-practice.xsl +3843 -0
  19. data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +3843 -0
  20. data/lib/isodoc/ogc/ogc.community-practice.xsl +3843 -0
  21. data/lib/isodoc/ogc/ogc.community-standard.xsl +1194 -491
  22. data/lib/isodoc/ogc/ogc.discussion-paper.xsl +3843 -0
  23. data/lib/isodoc/ogc/ogc.engineering-report.xsl +1194 -491
  24. data/lib/isodoc/ogc/ogc.other.xsl +1194 -491
  25. data/lib/isodoc/ogc/ogc.policy.xsl +1194 -491
  26. data/lib/isodoc/ogc/ogc.reference-model.xsl +1194 -491
  27. data/lib/isodoc/ogc/ogc.release-notes.xsl +1194 -491
  28. data/lib/isodoc/ogc/ogc.standard.xsl +1194 -491
  29. data/lib/isodoc/ogc/ogc.test-suite.xsl +1194 -491
  30. data/lib/isodoc/ogc/ogc.user-guide.xsl +1194 -491
  31. data/lib/isodoc/ogc/ogc.white-paper.xsl +3843 -0
  32. data/lib/isodoc/ogc/pdf_convert.rb +6 -15
  33. data/lib/isodoc/ogc/presentation_xml_convert.rb +10 -0
  34. data/lib/isodoc/ogc/reqt.rb +49 -125
  35. data/lib/isodoc/ogc/sections.rb +9 -8
  36. data/lib/isodoc/ogc/word_convert.rb +3 -12
  37. data/lib/isodoc/ogc/xref.rb +158 -0
  38. data/lib/metanorma/ogc/processor.rb +12 -6
  39. data/lib/metanorma/ogc/version.rb +1 -1
  40. data/metanorma-ogc.gemspec +2 -2
  41. metadata +18 -12
  42. data/lib/isodoc/ogc/html/scripts.pdf.html +0 -72
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a75c31de8888444e5fd9973771e9a9c24ac1541eae103f8a55f02605d4837f91
4
- data.tar.gz: abf157ea956927268720b5582cfa0fb6d8986b45c1041bafc783dcf28d9c6b84
3
+ metadata.gz: c9414ccffb628182f075ac6cb325a701e3e467ec9f63e39b6dc34ffcaf292267
4
+ data.tar.gz: 813fed6e91b026a7fd2086fd881df0c8ce71398e96eb25e86d8666d90f8bde60
5
5
  SHA512:
6
- metadata.gz: 539fc9469c898441e23cf956da90c9f5c443ed6db504b3250e2ee9b5341addf00b2ba884aaacecd621852b4b66ddfd02598f4b7ce40f7111a85c77d0da054c9a
7
- data.tar.gz: 3bb45e8622ff63c69fd3f1024b8d4c75411750bd7f25eac53d777c21caaea10852d9776861d6387dbe76442b093b503d503ff9c76e90c7c8d36cfb46a3425254
6
+ metadata.gz: 92d1bc132ea6ba8fe709b3be9987032b5d07f49578ca0f47d18559f06376dd8d4f5473e10c64e25b9f888bdec005bfa165f6829bdde41260cc95392f566a4a68
7
+ data.tar.gz: 76b456a146b61ba58161226ca05ac9da0f2159ac9bfb2f97bef9012f709880b11a936fd10f07f0d50b8be48c476a8d23d23193de4cc4196f92669972cc9b1c39
@@ -6,15 +6,23 @@ on:
6
6
  push:
7
7
  branches: [ master ]
8
8
  pull_request:
9
+ paths-ignore:
10
+ - .github/workflows/ubuntu.yml
11
+ - .github/workflows/windows.yml
9
12
 
10
13
  jobs:
11
14
  test-macos:
12
15
  name: Test on Ruby ${{ matrix.ruby }} macOS
13
16
  runs-on: macos-latest
17
+ continue-on-error: ${{ matrix.experimental }}
14
18
  strategy:
15
19
  fail-fast: false
16
20
  matrix:
17
21
  ruby: [ '2.6', '2.5', '2.4' ]
22
+ experimental: [false]
23
+ include:
24
+ - ruby: '2.7'
25
+ experimental: true
18
26
  steps:
19
27
  - uses: actions/checkout@master
20
28
  - name: Use Ruby
@@ -5,16 +5,26 @@ name: ubuntu
5
5
  on:
6
6
  push:
7
7
  branches: [ master ]
8
+ tags:
9
+ - '*'
8
10
  pull_request:
11
+ paths-ignore:
12
+ - .github/workflows/macos.yml
13
+ - .github/workflows/windows.yml
9
14
 
10
15
  jobs:
11
16
  test-linux:
12
17
  name: Test on Ruby ${{ matrix.ruby }} Ubuntu
13
18
  runs-on: ubuntu-latest
19
+ continue-on-error: ${{ matrix.experimental }}
14
20
  strategy:
15
21
  fail-fast: false
16
22
  matrix:
17
23
  ruby: [ '2.6', '2.5', '2.4' ]
24
+ experimental: [false]
25
+ include:
26
+ - ruby: '2.7'
27
+ experimental: true
18
28
  steps:
19
29
  - uses: actions/checkout@master
20
30
  - name: Use Ruby
@@ -6,15 +6,23 @@ on:
6
6
  push:
7
7
  branches: [ master ]
8
8
  pull_request:
9
+ paths-ignore:
10
+ - .github/workflows/macos.yml
11
+ - .github/workflows/ubuntu.yml
9
12
 
10
13
  jobs:
11
14
  test-windows:
12
15
  name: Test on Ruby ${{ matrix.ruby }} Windows
13
16
  runs-on: windows-latest
17
+ continue-on-error: ${{ matrix.experimental }}
14
18
  strategy:
15
19
  fail-fast: false
16
20
  matrix:
17
21
  ruby: [ '2.6', '2.5', '2.4' ]
22
+ experimental: [false]
23
+ include:
24
+ - ruby: '2.7'
25
+ experimental: true
18
26
  steps:
19
27
  - uses: actions/checkout@master
20
28
  - name: Use Ruby
@@ -88,7 +88,7 @@
88
88
  <text/>
89
89
  </element>
90
90
  </define>
91
- <define name="LocalizedString">
91
+ <define name="LocalizedString1">
92
92
  <optional>
93
93
  <!-- multiple languages and scripts possible: comma delimit them if so -->
94
94
  <attribute name="language"/>
@@ -98,6 +98,16 @@
98
98
  </optional>
99
99
  <text/>
100
100
  </define>
101
+ <define name="LocalizedString">
102
+ <choice>
103
+ <ref name="LocalizedString1"/>
104
+ <oneOrMore>
105
+ <element name="variant">
106
+ <ref name="LocalizedString1"/>
107
+ </element>
108
+ </oneOrMore>
109
+ </choice>
110
+ </define>
101
111
  <!--
102
112
  Unlike UML, change type to format: type is overloaded
103
113
  Would be need if plain were default value and could omit the attribute
@@ -121,7 +131,7 @@
121
131
  </optional>
122
132
  <ref name="LocalizedStringOrXsAny"/>
123
133
  </define>
124
- <define name="LocalizedStringOrXsAny">
134
+ <define name="LocalizedStringOrXsAny1">
125
135
  <optional>
126
136
  <!-- multiple languages and scripts possible: comma delimit them if so -->
127
137
  <attribute name="language"/>
@@ -136,6 +146,16 @@
136
146
  </choice>
137
147
  </oneOrMore>
138
148
  </define>
149
+ <define name="LocalizedStringOrXsAny">
150
+ <choice>
151
+ <ref name="LocalizedStringOrXsAny1"/>
152
+ <oneOrMore>
153
+ <element name="variant">
154
+ <ref name="LocalizedStringOrXsAny1"/>
155
+ </element>
156
+ </oneOrMore>
157
+ </choice>
158
+ </define>
139
159
  <define name="contributor">
140
160
  <element name="contributor">
141
161
  <zeroOrMore>
@@ -512,7 +532,7 @@
512
532
  </define>
513
533
  <define name="LocalityType">
514
534
  <data type="string">
515
- <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|locality:[a-zA-Z0-9_]+</param>
535
+ <param name="pattern">section|clause|part|paragraph|chapter|page|whole|table|annex|figure|note|list|example|volume|issue|time|anchor|locality:[a-zA-Z0-9_]+</param>
516
536
  </data>
517
537
  </define>
518
538
  <define name="referenceFrom">
@@ -641,9 +661,9 @@
641
661
  <optional>
642
662
  <ref name="status"/>
643
663
  </optional>
644
- <optional>
664
+ <zeroOrMore>
645
665
  <ref name="copyright"/>
646
- </optional>
666
+ </zeroOrMore>
647
667
  <zeroOrMore>
648
668
  <ref name="docrelation"/>
649
669
  </zeroOrMore>
@@ -1001,7 +1021,17 @@
1001
1021
  <optional>
1002
1022
  <ref name="to"/>
1003
1023
  </optional>
1004
- <ref name="owner"/>
1024
+ <oneOrMore>
1025
+ <ref name="owner"/>
1026
+ </oneOrMore>
1027
+ <optional>
1028
+ <ref name="copyright_scope"/>
1029
+ </optional>
1030
+ </element>
1031
+ </define>
1032
+ <define name="copyright_scope">
1033
+ <element name="scope">
1034
+ <text/>
1005
1035
  </element>
1006
1036
  </define>
1007
1037
  <define name="from">
@@ -36,9 +36,8 @@
36
36
  modifications that have not been approved or adopted by LICENSOR.</p>
37
37
 
38
38
  <p>THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT
39
- CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD.</p>
40
-
41
- <p>THE INTELLECTUAL PROPERTY IS PROVIDED "AS
39
+ CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD.
40
+ THE INTELLECTUAL PROPERTY IS PROVIDED "AS
42
41
  IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
43
42
  LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE,
44
43
  AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS
@@ -77,9 +76,8 @@
77
76
  authorization of LICENSOR or such copyright holder. LICENSOR is and shall at
78
77
  all times be the sole entity that may authorize you or any third party to use
79
78
  certification marks, trademarks or other special designations to indicate
80
- compliance with any LICENSOR standards or specifications.</p>
81
-
82
- <p> This Agreement is
79
+ compliance with any LICENSOR standards or specifications.
80
+ This Agreement is
83
81
  governed by the laws of the Commonwealth of Massachusetts. The application to
84
82
  this Agreement of the United Nations Convention on Contracts for the
85
83
  International Sale of Goods is hereby expressly excluded. In the event any
@@ -150,24 +148,11 @@
150
148
 
151
149
 
152
150
 
153
- {% if doctype == "Standard" or doctype == "Community Standard" %}
154
151
  <feedback-statement>
155
- <clause>
152
+ {% if doctype == "Standard" %}
153
+ <clause id="boilerplate-standard-feedback">
156
154
  <p>Suggested additions, changes and comments on this standard are welcome and encouraged. Such suggestions may be submitted using the online change request form on OGC web site: <link target="http://portal.opengeospatial.org/public_ogc/change_request.php">http://portal.opengeospatial.org/public_ogc/change_request.php</link></p>
157
155
  </clause>
158
- <clause id="boilerplate-contact">
159
- <p id="boilerplate-name">Open Geospatial Consortium</p>
160
- <p id="boilerplate-address" align="left">
161
- 35 Main Street<br />
162
- Suite 5<br />
163
- Wayland<br />
164
- MA, 01778<br />
165
- United States of America<br />
166
- <br />
167
- <link target="mailto:copyright@opengeospatial.org">copyright@opengeospatial.org</link><br />
168
- <link target="www.opengeospatial.org">www.opengeospatial.org</link>
169
- </p>
170
- </clause>
156
+ {% endif %}
171
157
  </feedback-statement>
172
- {% endif %}
173
158
  </boilerplate>
@@ -46,26 +46,18 @@ module Asciidoctor
46
46
  when "preface" then "foreword"
47
47
  when "foreword" then "donotrecognise-foreword"
48
48
  when "introduction" then "donotrecognise-foreword"
49
+ when "references" then "normative references"
49
50
  else
50
51
  super
51
52
  end
52
53
  end
53
54
 
54
- def document(node)
55
- init(node)
56
- ret1 = makexml(node)
57
- ret = ret1.to_xml(indent: 2)
58
- unless node.attr("nodoc") || !node.attr("docfile")
59
- filename = node.attr("docfile").gsub(/\.adoc/, ".xml").
60
- gsub(%r{^.*/}, "")
61
- File.open(filename, "w") { |f| f.write(ret) }
62
- html_converter(node).convert filename unless node.attr("nodoc")
63
- word_converter(node).convert filename unless node.attr("nodoc")
64
- pdf_converter(node)&.convert filename unless node.attr("nodoc")
65
- end
66
- @log.write(@localdir + @filename + ".err") unless @novalid
67
- @files_to_delete.each { |f| FileUtils.rm f }
68
- ret
55
+ def outputs(node, ret)
56
+ File.open(@filename + ".xml", "w:UTF-8") { |f| f.write(ret) }
57
+ presentation_xml_converter(node).convert(@filename + ".xml")
58
+ html_converter(node).convert(@filename + ".presentation.xml", nil, false, "#{@filename}.html")
59
+ doc_converter(node).convert(@filename + ".presentation.xml", nil, false, "#{@filename}.doc")
60
+ pdf_converter(node)&.convert(@filename + ".presentation.xml", nil, false, "#{@filename}.pdf")
69
61
  end
70
62
 
71
63
  def validate(doc)
@@ -99,14 +91,6 @@ module Asciidoctor
99
91
  end
100
92
  end
101
93
 
102
- def bibliography_parse(attrs, xml, node)
103
- clausetype = node&.attr("heading")&.downcase || node.title.downcase
104
- if clausetype == "references" then norm_ref_parse(attrs, xml, node)
105
- else
106
- super
107
- end
108
- end
109
-
110
94
  def submitters_parse(attrs, xml, node)
111
95
  xml.submitters **attr_code(attrs) do |xml_section|
112
96
  xml_section << node.content
@@ -125,6 +109,10 @@ module Asciidoctor
125
109
  super
126
110
  end
127
111
 
112
+ def presentation_xml_converter(node)
113
+ IsoDoc::Ogc::PresentationXMLConvert.new(html_extract_attributes(node))
114
+ end
115
+
128
116
  def html_converter(node)
129
117
  IsoDoc::Ogc::HtmlConvert.new(html_extract_attributes(node))
130
118
  end
@@ -134,7 +122,7 @@ module Asciidoctor
134
122
  IsoDoc::Ogc::PdfConvert.new(html_extract_attributes(node))
135
123
  end
136
124
 
137
- def word_converter(node)
125
+ def doc_converter(node)
138
126
  IsoDoc::Ogc::WordConvert.new(doc_extract_attributes(node))
139
127
  end
140
128
  end
@@ -53,9 +53,96 @@
53
53
  <optional>
54
54
  <attribute name="alt"/>
55
55
  </optional>
56
+ <optional>
57
+ <attribute name="case">
58
+ <choice>
59
+ <value>capital</value>
60
+ <value>lowercase</value>
61
+ </choice>
62
+ </attribute>
63
+ </optional>
56
64
  <text/>
57
65
  </element>
58
66
  </define>
67
+ <define name="ul">
68
+ <element name="ul">
69
+ <attribute name="id">
70
+ <data type="ID"/>
71
+ </attribute>
72
+ <optional>
73
+ <attribute name="keep-with-next">
74
+ <data type="boolean"/>
75
+ </attribute>
76
+ </optional>
77
+ <optional>
78
+ <attribute name="keep-lines-together">
79
+ <data type="boolean"/>
80
+ </attribute>
81
+ </optional>
82
+ <oneOrMore>
83
+ <ref name="li"/>
84
+ </oneOrMore>
85
+ <zeroOrMore>
86
+ <ref name="note"/>
87
+ </zeroOrMore>
88
+ </element>
89
+ </define>
90
+ <define name="ol">
91
+ <element name="ol">
92
+ <attribute name="id">
93
+ <data type="ID"/>
94
+ </attribute>
95
+ <optional>
96
+ <attribute name="keep-with-next">
97
+ <data type="boolean"/>
98
+ </attribute>
99
+ </optional>
100
+ <optional>
101
+ <attribute name="keep-lines-together">
102
+ <data type="boolean"/>
103
+ </attribute>
104
+ </optional>
105
+ <attribute name="type">
106
+ <choice>
107
+ <value>roman</value>
108
+ <value>alphabet</value>
109
+ <value>arabic</value>
110
+ <value>roman_upper</value>
111
+ <value>alphabet_upper</value>
112
+ </choice>
113
+ </attribute>
114
+ <oneOrMore>
115
+ <ref name="li"/>
116
+ </oneOrMore>
117
+ <zeroOrMore>
118
+ <ref name="note"/>
119
+ </zeroOrMore>
120
+ </element>
121
+ </define>
122
+ <define name="dl">
123
+ <element name="dl">
124
+ <attribute name="id">
125
+ <data type="ID"/>
126
+ </attribute>
127
+ <optional>
128
+ <attribute name="keep-with-next">
129
+ <data type="boolean"/>
130
+ </attribute>
131
+ </optional>
132
+ <optional>
133
+ <attribute name="keep-lines-together">
134
+ <data type="boolean"/>
135
+ </attribute>
136
+ </optional>
137
+ <oneOrMore>
138
+ <ref name="dt"/>
139
+ <ref name="dd"/>
140
+ </oneOrMore>
141
+ <zeroOrMore>
142
+ <ref name="note"/>
143
+ </zeroOrMore>
144
+ </element>
145
+ </define>
59
146
  <define name="example">
60
147
  <element name="example">
61
148
  <attribute name="id">
@@ -69,6 +156,19 @@
69
156
  <optional>
70
157
  <attribute name="subsequence"/>
71
158
  </optional>
159
+ <optional>
160
+ <attribute name="number"/>
161
+ </optional>
162
+ <optional>
163
+ <attribute name="keep-with-next">
164
+ <data type="boolean"/>
165
+ </attribute>
166
+ </optional>
167
+ <optional>
168
+ <attribute name="keep-lines-together">
169
+ <data type="boolean"/>
170
+ </attribute>
171
+ </optional>
72
172
  <optional>
73
173
  <ref name="tname"/>
74
174
  </optional>
@@ -89,6 +189,296 @@
89
189
  </zeroOrMore>
90
190
  </element>
91
191
  </define>
192
+ <define name="table">
193
+ <element name="table">
194
+ <attribute name="id">
195
+ <data type="ID"/>
196
+ </attribute>
197
+ <optional>
198
+ <attribute name="unnumbered">
199
+ <data type="boolean"/>
200
+ </attribute>
201
+ </optional>
202
+ <optional>
203
+ <attribute name="number"/>
204
+ </optional>
205
+ <optional>
206
+ <attribute name="subsequence"/>
207
+ </optional>
208
+ <optional>
209
+ <attribute name="alt"/>
210
+ </optional>
211
+ <optional>
212
+ <attribute name="summary"/>
213
+ </optional>
214
+ <optional>
215
+ <attribute name="uri">
216
+ <data type="anyURI"/>
217
+ </attribute>
218
+ </optional>
219
+ <optional>
220
+ <attribute name="keep-with-next">
221
+ <data type="boolean"/>
222
+ </attribute>
223
+ </optional>
224
+ <optional>
225
+ <attribute name="keep-lines-together">
226
+ <data type="boolean"/>
227
+ </attribute>
228
+ </optional>
229
+ <optional>
230
+ <ref name="tname"/>
231
+ </optional>
232
+ <optional>
233
+ <ref name="thead"/>
234
+ </optional>
235
+ <ref name="tbody"/>
236
+ <optional>
237
+ <ref name="tfoot"/>
238
+ </optional>
239
+ <zeroOrMore>
240
+ <ref name="table-note"/>
241
+ </zeroOrMore>
242
+ <optional>
243
+ <ref name="dl"/>
244
+ </optional>
245
+ </element>
246
+ </define>
247
+ <define name="figure">
248
+ <element name="figure">
249
+ <attribute name="id">
250
+ <data type="ID"/>
251
+ </attribute>
252
+ <optional>
253
+ <attribute name="unnumbered">
254
+ <data type="boolean"/>
255
+ </attribute>
256
+ </optional>
257
+ <optional>
258
+ <attribute name="number"/>
259
+ </optional>
260
+ <optional>
261
+ <attribute name="subsequence"/>
262
+ </optional>
263
+ <optional>
264
+ <attribute name="keep-with-next">
265
+ <data type="boolean"/>
266
+ </attribute>
267
+ </optional>
268
+ <optional>
269
+ <attribute name="keep-lines-together">
270
+ <data type="boolean"/>
271
+ </attribute>
272
+ </optional>
273
+ <optional>
274
+ <attribute name="class"/>
275
+ </optional>
276
+ <optional>
277
+ <ref name="source"/>
278
+ </optional>
279
+ <optional>
280
+ <ref name="tname"/>
281
+ </optional>
282
+ <choice>
283
+ <ref name="image"/>
284
+ <ref name="video"/>
285
+ <ref name="audio"/>
286
+ <ref name="pre"/>
287
+ <oneOrMore>
288
+ <ref name="paragraph-with-footnote"/>
289
+ </oneOrMore>
290
+ <zeroOrMore>
291
+ <ref name="figure"/>
292
+ </zeroOrMore>
293
+ </choice>
294
+ <zeroOrMore>
295
+ <ref name="fn"/>
296
+ </zeroOrMore>
297
+ <optional>
298
+ <ref name="dl"/>
299
+ </optional>
300
+ <zeroOrMore>
301
+ <ref name="note"/>
302
+ </zeroOrMore>
303
+ </element>
304
+ </define>
305
+ <define name="sourcecode">
306
+ <element name="sourcecode">
307
+ <attribute name="id">
308
+ <data type="ID"/>
309
+ </attribute>
310
+ <optional>
311
+ <attribute name="unnumbered">
312
+ <data type="boolean"/>
313
+ </attribute>
314
+ </optional>
315
+ <optional>
316
+ <attribute name="number"/>
317
+ </optional>
318
+ <optional>
319
+ <attribute name="subsequence"/>
320
+ </optional>
321
+ <optional>
322
+ <attribute name="keep-with-next">
323
+ <data type="boolean"/>
324
+ </attribute>
325
+ </optional>
326
+ <optional>
327
+ <attribute name="keep-lines-together">
328
+ <data type="boolean"/>
329
+ </attribute>
330
+ </optional>
331
+ <optional>
332
+ <attribute name="lang"/>
333
+ </optional>
334
+ <optional>
335
+ <ref name="tname"/>
336
+ </optional>
337
+ <oneOrMore>
338
+ <choice>
339
+ <text/>
340
+ <ref name="callout"/>
341
+ </choice>
342
+ </oneOrMore>
343
+ <zeroOrMore>
344
+ <ref name="annotation"/>
345
+ </zeroOrMore>
346
+ <zeroOrMore>
347
+ <ref name="note"/>
348
+ </zeroOrMore>
349
+ </element>
350
+ </define>
351
+ <define name="formula">
352
+ <element name="formula">
353
+ <attribute name="id">
354
+ <data type="ID"/>
355
+ </attribute>
356
+ <optional>
357
+ <attribute name="unnumbered">
358
+ <data type="boolean"/>
359
+ </attribute>
360
+ </optional>
361
+ <optional>
362
+ <attribute name="number"/>
363
+ </optional>
364
+ <optional>
365
+ <attribute name="subsequence"/>
366
+ </optional>
367
+ <optional>
368
+ <attribute name="keep-with-next">
369
+ <data type="boolean"/>
370
+ </attribute>
371
+ </optional>
372
+ <optional>
373
+ <attribute name="keep-lines-together">
374
+ <data type="boolean"/>
375
+ </attribute>
376
+ </optional>
377
+ <optional>
378
+ <attribute name="inequality">
379
+ <data type="boolean"/>
380
+ </attribute>
381
+ </optional>
382
+ <ref name="stem"/>
383
+ <optional>
384
+ <ref name="dl"/>
385
+ </optional>
386
+ <zeroOrMore>
387
+ <ref name="note"/>
388
+ </zeroOrMore>
389
+ </element>
390
+ </define>
391
+ <define name="ParagraphType">
392
+ <attribute name="id">
393
+ <data type="ID"/>
394
+ </attribute>
395
+ <optional>
396
+ <attribute name="align">
397
+ <ref name="Alignments"/>
398
+ </attribute>
399
+ </optional>
400
+ <optional>
401
+ <attribute name="keep-with-next">
402
+ <data type="boolean"/>
403
+ </attribute>
404
+ </optional>
405
+ <optional>
406
+ <attribute name="keep-lines-together">
407
+ <data type="boolean"/>
408
+ </attribute>
409
+ </optional>
410
+ <zeroOrMore>
411
+ <ref name="TextElement"/>
412
+ </zeroOrMore>
413
+ <zeroOrMore>
414
+ <ref name="note"/>
415
+ </zeroOrMore>
416
+ </define>
417
+ <define name="paragraph-with-footnote">
418
+ <element name="p">
419
+ <attribute name="id">
420
+ <data type="ID"/>
421
+ </attribute>
422
+ <optional>
423
+ <attribute name="align">
424
+ <ref name="Alignments"/>
425
+ </attribute>
426
+ </optional>
427
+ <optional>
428
+ <attribute name="keep-with-next">
429
+ <data type="boolean"/>
430
+ </attribute>
431
+ </optional>
432
+ <optional>
433
+ <attribute name="keep-lines-together">
434
+ <data type="boolean"/>
435
+ </attribute>
436
+ </optional>
437
+ <zeroOrMore>
438
+ <choice>
439
+ <ref name="TextElement"/>
440
+ <ref name="fn"/>
441
+ </choice>
442
+ </zeroOrMore>
443
+ <zeroOrMore>
444
+ <ref name="note"/>
445
+ </zeroOrMore>
446
+ </element>
447
+ </define>
448
+ <define name="quote">
449
+ <element name="quote">
450
+ <attribute name="id">
451
+ <data type="ID"/>
452
+ </attribute>
453
+ <optional>
454
+ <attribute name="alignment">
455
+ <ref name="Alignments"/>
456
+ </attribute>
457
+ </optional>
458
+ <optional>
459
+ <attribute name="keep-with-next">
460
+ <data type="boolean"/>
461
+ </attribute>
462
+ </optional>
463
+ <optional>
464
+ <attribute name="keep-lines-together">
465
+ <data type="boolean"/>
466
+ </attribute>
467
+ </optional>
468
+ <optional>
469
+ <ref name="quote-source"/>
470
+ </optional>
471
+ <optional>
472
+ <ref name="quote-author"/>
473
+ </optional>
474
+ <oneOrMore>
475
+ <ref name="paragraph-with-footnote"/>
476
+ </oneOrMore>
477
+ <zeroOrMore>
478
+ <ref name="note"/>
479
+ </zeroOrMore>
480
+ </element>
481
+ </define>
92
482
  <define name="BibDataExtensionType">
93
483
  <ref name="doctype"/>
94
484
  <optional>
@@ -129,6 +519,9 @@
129
519
  </choice>
130
520
  </attribute>
131
521
  </optional>
522
+ <attribute name="normative">
523
+ <data type="boolean"/>
524
+ </attribute>
132
525
  <optional>
133
526
  <ref name="section-title"/>
134
527
  </optional>
@@ -154,6 +547,30 @@
154
547
  <attribute name="id">
155
548
  <data type="ID"/>
156
549
  </attribute>
550
+ <optional>
551
+ <attribute name="unnumbered">
552
+ <data type="boolean"/>
553
+ </attribute>
554
+ </optional>
555
+ <optional>
556
+ <attribute name="number"/>
557
+ </optional>
558
+ <optional>
559
+ <attribute name="subsequence"/>
560
+ </optional>
561
+ <optional>
562
+ <attribute name="keep-with-next">
563
+ <data type="boolean"/>
564
+ </attribute>
565
+ </optional>
566
+ <optional>
567
+ <attribute name="keep-lines-together">
568
+ <data type="boolean"/>
569
+ </attribute>
570
+ </optional>
571
+ <optional>
572
+ <attribute name="type"/>
573
+ </optional>
157
574
  <oneOrMore>
158
575
  <choice>
159
576
  <ref name="paragraph"/>
@@ -303,11 +720,11 @@
303
720
  <ref name="paragraph"/>
304
721
  </element>
305
722
  </define>
306
- <define name="TextElement" combine="choice">
307
- <ref name="concept"/>
308
- </define>
309
723
  </include>
310
724
  <!-- end overrides -->
725
+ <define name="TextElement" combine="choice">
726
+ <ref name="concept"/>
727
+ </define>
311
728
  <define name="concept">
312
729
  <element name="concept">
313
730
  <optional>
@@ -899,7 +1316,36 @@
899
1316
  <attribute name="id">
900
1317
  <data type="ID"/>
901
1318
  </attribute>
902
- <ref name="paragraph"/>
1319
+ <optional>
1320
+ <attribute name="unnumbered">
1321
+ <data type="boolean"/>
1322
+ </attribute>
1323
+ </optional>
1324
+ <optional>
1325
+ <attribute name="number"/>
1326
+ </optional>
1327
+ <optional>
1328
+ <attribute name="subsequence"/>
1329
+ </optional>
1330
+ <optional>
1331
+ <attribute name="keep-with-next">
1332
+ <data type="boolean"/>
1333
+ </attribute>
1334
+ </optional>
1335
+ <optional>
1336
+ <attribute name="keep-lines-together">
1337
+ <data type="boolean"/>
1338
+ </attribute>
1339
+ </optional>
1340
+ <oneOrMore>
1341
+ <choice>
1342
+ <ref name="paragraph"/>
1343
+ <ref name="ul"/>
1344
+ <ref name="ol"/>
1345
+ <ref name="dl"/>
1346
+ <ref name="formula"/>
1347
+ </choice>
1348
+ </oneOrMore>
903
1349
  </element>
904
1350
  </define>
905
1351
  <define name="termexample">