metanorma-ogc 1.0.7 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +0 -1
  3. data/.github/workflows/ubuntu.yml +10 -7
  4. data/.github/workflows/windows.yml +0 -1
  5. data/Rakefile +2 -0
  6. data/lib/asciidoctor/ogc/biblio.rng +14 -4
  7. data/lib/asciidoctor/ogc/boilerplate.xml +7 -22
  8. data/lib/asciidoctor/ogc/converter.rb +11 -16
  9. data/lib/asciidoctor/ogc/isodoc.rng +444 -1
  10. data/lib/asciidoctor/ogc/reqt.rng +23 -0
  11. data/lib/isodoc/ogc.rb +2 -0
  12. data/lib/isodoc/ogc/base_convert.rb +12 -60
  13. data/lib/isodoc/ogc/html/html_ogc_titlepage.html +0 -5
  14. data/lib/isodoc/ogc/html/wordstyle.scss +0 -1
  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 +1156 -430
  18. data/lib/isodoc/ogc/ogc.best-practice.xsl +1156 -430
  19. data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +1156 -430
  20. data/lib/isodoc/ogc/ogc.community-practice.xsl +1156 -430
  21. data/lib/isodoc/ogc/ogc.community-standard.xsl +1156 -430
  22. data/lib/isodoc/ogc/ogc.discussion-paper.xsl +1156 -430
  23. data/lib/isodoc/ogc/ogc.engineering-report.xsl +1156 -430
  24. data/lib/isodoc/ogc/ogc.other.xsl +1156 -430
  25. data/lib/isodoc/ogc/ogc.policy.xsl +1156 -430
  26. data/lib/isodoc/ogc/ogc.reference-model.xsl +1156 -430
  27. data/lib/isodoc/ogc/ogc.release-notes.xsl +1156 -430
  28. data/lib/isodoc/ogc/ogc.standard.xsl +1156 -430
  29. data/lib/isodoc/ogc/ogc.test-suite.xsl +1156 -430
  30. data/lib/isodoc/ogc/ogc.user-guide.xsl +1156 -430
  31. data/lib/isodoc/ogc/ogc.white-paper.xsl +1156 -430
  32. data/lib/isodoc/ogc/pdf_convert.rb +0 -13
  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 +7 -16
  37. data/lib/isodoc/ogc/xref.rb +158 -0
  38. data/lib/metanorma/ogc/processor.rb +6 -8
  39. data/lib/metanorma/ogc/version.rb +1 -1
  40. data/metanorma-ogc.gemspec +3 -2
  41. metadata +26 -11
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9953013528529acb9de2503a11568d71524b45a5f6c0597cd402d1df3c6d31b5
4
- data.tar.gz: cbaaba51c2115fa4e1c0aac37dbd52cdd317b8122930a6776f708983d465f0df
3
+ metadata.gz: 43f8c82b7c051c4ce9974cc59fd04888e7db9e8b770de76b4e9e9515e8560039
4
+ data.tar.gz: 1f2eb9c0ac27f25ba414ba90c5fa68ef9c633e1222db6ffc040c2b8b6d29cd26
5
5
  SHA512:
6
- metadata.gz: fbba1e0b0ba3502ec0f134da7b34a95e8c46f6cbae500b481d831fd6842cf45e53274e26d024e03ec3d5623d971d54ccd43c1dc67b397bb6f4c824423a272c90
7
- data.tar.gz: 40557374ec3fe844f5b20539975b1ff00661a82969e5577d2c02587c23d5963bab025444314d9c36d8b9142cd469132e7cf3f9c6ae4ef8c9a87707d4cef45f69
6
+ metadata.gz: 0f28e6bce33b702a3dfac144e92e712e92a10e13e37ad906f51a21bd238340502055fb23e8922c9314b3ff7aba4a78825effeaa4a0b7072e013bee82d35b237e
7
+ data.tar.gz: e1faf7484dcdbfaeb41fd394f3cbae90009d5cffe7dd72e54c271fa36e2d6d5586ec280bdf35f4b6bb028409ce55e72f30cfb87268ea36378d528488df67c735
@@ -29,7 +29,6 @@ jobs:
29
29
  uses: actions/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
- architecture: 'x64'
33
32
  - name: Update gems
34
33
  run: |
35
34
  sudo gem install bundler --force
@@ -31,7 +31,6 @@ jobs:
31
31
  uses: actions/setup-ruby@v1
32
32
  with:
33
33
  ruby-version: ${{ matrix.ruby }}
34
- architecture: 'x64'
35
34
  - name: Update gems
36
35
  run: |
37
36
  gem install bundler
@@ -39,15 +38,19 @@ jobs:
39
38
  - name: Run specs
40
39
  run: |
41
40
  bundle exec rake
42
- - name: Trigger dependent repositories
43
- if: github.ref == 'refs/heads/master' && matrix.ruby == '2.6'
41
+ - name: Trigger repositories
42
+ if: matrix.ruby == '2.6'
44
43
  env:
45
- GH_USERNAME: ${{ secrets.PAT_USERNAME }}
46
- GH_ACCESS_TOKEN: ${{ secrets.PAT_TOKEN }}
44
+ GH_USERNAME: metanorma-ci
45
+ GH_ACCESS_TOKEN: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
47
46
  run: |
48
47
  curl -LO --retry 3 https://raw.githubusercontent.com/metanorma/metanorma-build-scripts/master/trigger-gh-actions.sh
49
48
  [[ -f ".github/workflows/dependent_repos.env" ]] && source .github/workflows/dependent_repos.env
50
- for repo in $DEPENDENT_REPOS
49
+ CLIENT_PAYLOAD=$(cat <<EOF
50
+ "{ "ref": "${GITHUB_REF}", "repo": "${GITHUB_REPOSITORY}" }"
51
+ EOF
52
+ )
53
+ for repo in $REPOS
51
54
  do
52
- sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY "{ \"ref\": \"${GITHUB_REF}\" }"
55
+ sh trigger-gh-actions.sh $ORGANISATION $repo $GH_USERNAME $GH_ACCESS_TOKEN $GITHUB_REPOSITORY "$CLIENT_PAYLOAD"
53
56
  done
@@ -29,7 +29,6 @@ jobs:
29
29
  uses: actions/setup-ruby@v1
30
30
  with:
31
31
  ruby-version: ${{ matrix.ruby }}
32
- architecture: 'x64'
33
32
  - name: Update gems
34
33
  shell: pwsh
35
34
  run: |
data/Rakefile CHANGED
@@ -1,6 +1,8 @@
1
1
  require "bundler/gem_tasks"
2
2
  require "rspec/core/rake_task"
3
+ require 'isodoc/gem_tasks'
3
4
 
5
+ IsoDoc::GemTasks.install
4
6
  RSpec::Core::RakeTask.new(:spec)
5
7
 
6
8
  task :default => :spec
@@ -532,7 +532,7 @@
532
532
  </define>
533
533
  <define name="LocalityType">
534
534
  <data type="string">
535
- <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>
536
536
  </data>
537
537
  </define>
538
538
  <define name="referenceFrom">
@@ -661,9 +661,9 @@
661
661
  <optional>
662
662
  <ref name="status"/>
663
663
  </optional>
664
- <optional>
664
+ <zeroOrMore>
665
665
  <ref name="copyright"/>
666
- </optional>
666
+ </zeroOrMore>
667
667
  <zeroOrMore>
668
668
  <ref name="docrelation"/>
669
669
  </zeroOrMore>
@@ -1021,7 +1021,17 @@
1021
1021
  <optional>
1022
1022
  <ref name="to"/>
1023
1023
  </optional>
1024
- <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/>
1025
1035
  </element>
1026
1036
  </define>
1027
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>
@@ -52,21 +52,12 @@ module Asciidoctor
52
52
  end
53
53
  end
54
54
 
55
- def document(node)
56
- init(node)
57
- ret1 = makexml(node)
58
- ret = ret1.to_xml(indent: 2)
59
- unless node.attr("nodoc") || !node.attr("docfile")
60
- filename = node.attr("docfile").gsub(/\.adoc/, ".xml").
61
- gsub(%r{^.*/}, "")
62
- File.open(filename, "w") { |f| f.write(ret) }
63
- html_converter(node).convert filename unless node.attr("nodoc")
64
- word_converter(node).convert filename unless node.attr("nodoc")
65
- pdf_converter(node)&.convert filename unless node.attr("nodoc")
66
- end
67
- @log.write(@localdir + @filename + ".err") unless @novalid
68
- @files_to_delete.each { |f| FileUtils.rm f }
69
- 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")
70
61
  end
71
62
 
72
63
  def validate(doc)
@@ -118,6 +109,10 @@ module Asciidoctor
118
109
  super
119
110
  end
120
111
 
112
+ def presentation_xml_converter(node)
113
+ IsoDoc::Ogc::PresentationXMLConvert.new(html_extract_attributes(node))
114
+ end
115
+
121
116
  def html_converter(node)
122
117
  IsoDoc::Ogc::HtmlConvert.new(html_extract_attributes(node))
123
118
  end
@@ -127,7 +122,7 @@ module Asciidoctor
127
122
  IsoDoc::Ogc::PdfConvert.new(html_extract_attributes(node))
128
123
  end
129
124
 
130
- def word_converter(node)
125
+ def doc_converter(node)
131
126
  IsoDoc::Ogc::WordConvert.new(doc_extract_attributes(node))
132
127
  end
133
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>
@@ -157,6 +547,30 @@
157
547
  <attribute name="id">
158
548
  <data type="ID"/>
159
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>
160
574
  <oneOrMore>
161
575
  <choice>
162
576
  <ref name="paragraph"/>
@@ -902,7 +1316,36 @@
902
1316
  <attribute name="id">
903
1317
  <data type="ID"/>
904
1318
  </attribute>
905
- <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>
906
1349
  </element>
907
1350
  </define>
908
1351
  <define name="termexample">