metanorma-iso 2.2.1 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (119) hide show
  1. checksums.yaml +4 -4
  2. data/lib/isodoc/iso/html/header-dis.html +111 -29
  3. data/lib/isodoc/iso/html/isodoc-dis.css +65 -64
  4. data/lib/isodoc/iso/html/isodoc-dis.scss +65 -64
  5. data/lib/isodoc/iso/html/style-human.css +2 -3
  6. data/lib/isodoc/iso/html/style-human.scss +0 -1
  7. data/lib/isodoc/iso/html/style-iso.css +2 -3
  8. data/lib/isodoc/iso/html/style-iso.scss +0 -1
  9. data/lib/isodoc/iso/html/wordstyle-dis.css +10 -4
  10. data/lib/isodoc/iso/html/wordstyle-dis.scss +10 -4
  11. data/lib/isodoc/iso/i18n-en.yaml +13 -8
  12. data/lib/isodoc/iso/i18n-fr.yaml +9 -3
  13. data/lib/isodoc/iso/i18n-ru.yaml +9 -2
  14. data/lib/isodoc/iso/i18n-zh-Hans.yaml +1 -2
  15. data/lib/isodoc/iso/iso.amendment.xsl +226 -40
  16. data/lib/isodoc/iso/iso.international-standard.xsl +226 -40
  17. data/lib/isodoc/iso/presentation_bibdata.rb +13 -9
  18. data/lib/isodoc/iso/presentation_xml_convert.rb +5 -3
  19. data/lib/isodoc/iso/presentation_xref.rb +10 -7
  20. data/lib/isodoc/iso/sections.rb +1 -1
  21. data/lib/isodoc/iso/word_convert.rb +6 -4
  22. data/lib/isodoc/iso/word_dis_cleanup.rb +24 -3
  23. data/lib/isodoc/iso/word_dis_convert.rb +4 -1
  24. data/lib/metanorma/iso/base.rb +2 -1
  25. data/lib/metanorma/iso/basicdoc.rng +0 -27
  26. data/lib/metanorma/iso/biblio-standoc.rng +164 -0
  27. data/lib/metanorma/iso/biblio.rng +50 -18
  28. data/lib/metanorma/iso/isodoc.rng +68 -206
  29. data/lib/metanorma/iso/isostandard-amd.rng +3 -54
  30. data/lib/metanorma/iso/isostandard-compile.rng +7 -0
  31. data/lib/metanorma/iso/isostandard.rng +1 -195
  32. data/lib/metanorma/iso/relaton-iso.rng +225 -0
  33. data/lib/metanorma/iso/validate.rb +6 -6
  34. data/lib/metanorma/iso/version.rb +1 -1
  35. data/lib/metanorma/requirements/modspec.rb +22 -38
  36. data/metanorma-iso.gemspec +5 -2
  37. metadata +7 -86
  38. data/.github/workflows/rake.yml +0 -15
  39. data/.github/workflows/release.yml +0 -24
  40. data/.github/workflows/ubuntu.yml +0 -41
  41. data/Rakefile +0 -8
  42. data/bin/rspec +0 -17
  43. data/spec/assets/header.html +0 -7
  44. data/spec/assets/html.css +0 -2
  45. data/spec/assets/htmlcover.html +0 -4
  46. data/spec/assets/htmlintro.html +0 -5
  47. data/spec/assets/i18n.yaml +0 -2
  48. data/spec/assets/iso.adoc +0 -10
  49. data/spec/assets/iso.headless.html +0 -33
  50. data/spec/assets/iso.xml +0 -71
  51. data/spec/assets/rice_image1.png +0 -0
  52. data/spec/assets/scripts.html +0 -3
  53. data/spec/assets/std.css +0 -2
  54. data/spec/assets/word.css +0 -2
  55. data/spec/assets/wordcover.html +0 -3
  56. data/spec/assets/wordintro.html +0 -4
  57. data/spec/examples/103_01_02.html +0 -247
  58. data/spec/examples/english.yaml +0 -69
  59. data/spec/examples/iso_123_.xml +0 -45
  60. data/spec/examples/iso_123_all_parts.xml +0 -45
  61. data/spec/examples/iso_123_no_year_note.xml +0 -46
  62. data/spec/examples/iso_124_.xml +0 -41
  63. data/spec/examples/iso_216_.xml +0 -47
  64. data/spec/examples/iso_iec_12382_.xml +0 -48
  65. data/spec/examples/rice.adoc +0 -714
  66. data/spec/examples/rice.preview.html +0 -1870
  67. data/spec/examples/rice.sh +0 -4
  68. data/spec/examples/rice_img/1000-1_ed2amd3fig1a.png +0 -0
  69. data/spec/examples/rice_img/1000-1_ed2amd3fig1b.png +0 -0
  70. data/spec/examples/rice_img/1000-1_ed2amd3fig2.png +0 -0
  71. data/spec/examples/rice_img/1000-1_ed2amd3fig3.png +0 -0
  72. data/spec/examples/rice_img/1000-1_ed2amd3fig4.png +0 -0
  73. data/spec/examples/rice_img/1000-1_ed2amd3fig5_f.png +0 -0
  74. data/spec/examples/rice_img/1000-1_ed2amd3figA.png +0 -0
  75. data/spec/examples/rice_img/1000-1_ed2amd3figA1.png +0 -0
  76. data/spec/examples/rice_img/1000-1_ed2amd3figA2.png +0 -0
  77. data/spec/examples/rice_img/1000-1_ed2amd3figTab1.png +0 -0
  78. data/spec/examples/rice_img/1000-1_ed2amd3figTab2.png +0 -0
  79. data/spec/examples/rice_img/1001_ed2amd3fig1.png +0 -0
  80. data/spec/examples/rice_img/ISO_1213_1.png +0 -0
  81. data/spec/examples/rice_img/SL1000-1_ed2amd3fig1.png +0 -0
  82. data/spec/examples/rice_img/rice_image1.png +0 -0
  83. data/spec/examples/rice_img/rice_image2.png +0 -0
  84. data/spec/examples/rice_img/rice_image3_1.png +0 -0
  85. data/spec/examples/rice_img/rice_image3_2.png +0 -0
  86. data/spec/examples/rice_img/rice_image3_3.png +0 -0
  87. data/spec/isodoc/amd_spec.rb +0 -986
  88. data/spec/isodoc/blocks_spec.rb +0 -1174
  89. data/spec/isodoc/i18n_spec.rb +0 -1579
  90. data/spec/isodoc/inline_spec.rb +0 -1060
  91. data/spec/isodoc/iso_spec.rb +0 -255
  92. data/spec/isodoc/metadata_spec.rb +0 -701
  93. data/spec/isodoc/postproc_spec.rb +0 -1089
  94. data/spec/isodoc/ref_spec.rb +0 -439
  95. data/spec/isodoc/section_spec.rb +0 -998
  96. data/spec/isodoc/table_spec.rb +0 -420
  97. data/spec/isodoc/terms_spec.rb +0 -314
  98. data/spec/isodoc/word_dis_spec.rb +0 -2064
  99. data/spec/isodoc/xref_spec.rb +0 -1747
  100. data/spec/metanorma/amd_spec.rb +0 -724
  101. data/spec/metanorma/base_spec.rb +0 -1384
  102. data/spec/metanorma/blank_spec.rb +0 -38
  103. data/spec/metanorma/blocks_spec.rb +0 -624
  104. data/spec/metanorma/cleanup_spec.rb +0 -1645
  105. data/spec/metanorma/inline_spec.rb +0 -203
  106. data/spec/metanorma/lists_spec.rb +0 -197
  107. data/spec/metanorma/macros_spec.rb +0 -99
  108. data/spec/metanorma/processor_spec.rb +0 -161
  109. data/spec/metanorma/refs_spec.rb +0 -672
  110. data/spec/metanorma/section_spec.rb +0 -492
  111. data/spec/metanorma/table_spec.rb +0 -329
  112. data/spec/metanorma/validate_spec.rb +0 -2153
  113. data/spec/relaton/render_spec.rb +0 -568
  114. data/spec/requirements/requirement_components_spec.rb +0 -622
  115. data/spec/requirements/requirements_spec.rb +0 -1681
  116. data/spec/requirements/xref_spec.rb +0 -1211
  117. data/spec/spec_helper.rb +0 -313
  118. data/spec/vcr_cassettes/docrels.yml +0 -385
  119. data/spec/vcr_cassettes/withdrawn_iso.yml +0 -295
@@ -1,1211 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Metanorma::Requirements::Iso::Modspec do
4
- it "cross-references requirements" do
5
- input = <<~INPUT
6
- <iso-standard xmlns="http://riboseinc.com/isoxml">
7
- <preface>
8
- <foreword>
9
- <p>
10
- <xref target="N1"/>
11
- <xref target="N2"/>
12
- <xref target="N"/>
13
- <xref target="note1"/>
14
- <xref target="note2"/>
15
- <xref target="AN"/>
16
- <xref target="Anote1"/>
17
- <xref target="Anote2"/>
18
- </p>
19
- </foreword>
20
- <introduction id="intro">
21
- <requirement model="ogc" id="N1">
22
- <stem type="AsciiMath">r = 1 %</stem>
23
- </requirement>
24
- <clause id="xyz"><title>Preparatory</title>
25
- <requirement model="ogc" id="N2" unnumbered="true">
26
- <stem type="AsciiMath">r = 1 %</stem>
27
- </requirement>
28
- </clause>
29
- </introduction>
30
- </preface>
31
- <sections>
32
- <clause id="scope" type="scope"><title>Scope</title>
33
- <requirement model="ogc" id="N">
34
- <title>First</title>
35
- <stem type="AsciiMath">r = 1 %</stem>
36
- </requirement>
37
- <p><xref target="N"/></p>
38
- </clause>
39
- <terms id="terms"/>
40
- <clause id="widgets"><title>Widgets</title>
41
- <clause id="widgets1">
42
- <requirement model="ogc" id="note1">
43
- <title>Second</title>
44
- <stem type="AsciiMath">r = 1 %</stem>
45
- </requirement>
46
- <requirement model="ogc" id="note2">
47
- <stem type="AsciiMath">r = 1 %</stem>
48
- </requirement>
49
- <p> <xref target="note1"/> <xref target="note2"/> </p>
50
- </clause>
51
- </clause>
52
- </sections>
53
- <annex id="annex1">
54
- <clause id="annex1a">
55
- <requirement model="ogc" id="AN">
56
- <title>Third</title>
57
- <stem type="AsciiMath">r = 1 %</stem>
58
- </requirement>
59
- </clause>
60
- <clause id="annex1b">
61
- <requirement model="ogc" id="Anote1" unnumbered="true">
62
- <stem type="AsciiMath">r = 1 %</stem>
63
- </requirement>
64
- <requirement model="ogc" id="Anote2">
65
- <stem type="AsciiMath">r = 1 %</stem>
66
- </requirement>
67
- </clause>
68
- </annex>
69
- </iso-standard>
70
- INPUT
71
- output = <<~OUTPUT
72
- <foreword displayorder='1'>
73
- <p>
74
- <xref target='N1'>
75
- <span class='citetbl'>Table 1, Requirement 1</span>
76
- </xref>
77
- <xref target='N2'>
78
- <span class='citetbl'>Table (??), Requirement (??)</span>
79
- </xref>
80
- <xref target='N'>
81
- <span class='citetbl'>Table 2, Requirement 2</span>
82
- </xref>
83
- <xref target='note1'>
84
- <span class='citetbl'>Table 3, Requirement 3</span>
85
- </xref>
86
- <xref target='note2'>
87
- <span class='citetbl'>Table 4, Requirement 4</span>
88
- </xref>
89
- <xref target='AN'>
90
- <span class='citetbl'>Table A.1, Requirement A.1</span>
91
- </xref>
92
- <xref target='Anote1'>
93
- <span class='citetbl'>Table (??), Requirement (??)</span>
94
- </xref>
95
- <xref target='Anote2'>
96
- <span class='citetbl'>Table A.2, Requirement A.2</span>
97
- </xref>
98
- </p>
99
- </foreword>
100
- OUTPUT
101
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
102
- .convert("test", input, true))
103
- .at("//xmlns:foreword").to_xml))
104
- .to be_equivalent_to xmlpp(output)
105
- end
106
-
107
- it "cross-references requirements with labels" do
108
- input = <<~INPUT
109
- <iso-standard xmlns="http://riboseinc.com/isoxml">
110
- <preface>
111
- <foreword>
112
- <p>
113
- <xref target="N1"/>
114
- <xref target="N2"/>
115
- <xref target="N"/>
116
- <xref target="note1"/>
117
- <xref target="note2"/>
118
- <xref target="AN"/>
119
- <xref target="Anote1"/>
120
- <xref target="Anote2"/>
121
- </p>
122
- </foreword>
123
- <introduction id="intro">
124
- <requirement model="ogc" id="N1">
125
- <identifier>/ogc/req1</identifier>
126
- <stem type="AsciiMath">r = 1 %</stem>
127
- </requirement>
128
- <clause id="xyz"><title>Preparatory</title>
129
- <requirement model="ogc" id="N2" unnumbered="true">
130
- <identifier>/ogc/req2</identifier>
131
- <stem type="AsciiMath">r = 1 %</stem>
132
- </requirement>
133
- </clause>
134
- </introduction>
135
- </preface>
136
- <sections>
137
- <clause id="scope" type="scope"><title>Scope</title>
138
- <requirement model="ogc" id="N">
139
- <title>First</title>
140
- <identifier>/ogc/req3</identifier>
141
- <stem type="AsciiMath">r = 1 %</stem>
142
- </requirement>
143
- <p><xref target="N"/></p>
144
- </clause>
145
- <terms id="terms"/>
146
- <clause id="widgets"><title>Widgets</title>
147
- <clause id="widgets1">
148
- <requirement model="ogc" id="note1">
149
- <title>Second</title>
150
- <identifier>/ogc/req4</identifier>
151
- <stem type="AsciiMath">r = 1 %</stem>
152
- </requirement>
153
- <requirement model="ogc" id="note2">
154
- <identifier>/ogc/req5</identifier>
155
- <stem type="AsciiMath">r = 1 %</stem>
156
- </requirement>
157
- <p> <xref target="note1"/> <xref target="note2"/> </p>
158
- </clause>
159
- </clause>
160
- </sections>
161
- <annex id="annex1">
162
- <clause id="annex1a">
163
- <requirement model="ogc" id="AN">
164
- <title>Third</title>
165
- <identifier>/ogc/req6</identifier>
166
- <stem type="AsciiMath">r = 1 %</stem>
167
- </requirement>
168
- </clause>
169
- <clause id="annex1b">
170
- <requirement model="ogc" id="Anote1" unnumbered="true">
171
- <identifier>/ogc/req7</identifier>
172
- <stem type="AsciiMath">r = 1 %</stem>
173
- </requirement>
174
- <requirement model="ogc" id="Anote2">
175
- <identifier>/ogc/req8</identifier>
176
- <stem type="AsciiMath">r = 1 %</stem>
177
- </requirement>
178
- </clause>
179
- </annex>
180
- </iso-standard>
181
- INPUT
182
- output = <<~OUTPUT
183
- <foreword displayorder='1'>
184
- <p>
185
- <xref target='N1'>
186
- <span class='citetbl'>Table 1, Requirement 1</span>
187
- </xref>
188
- <xref target='N2'>
189
- <span class='citetbl'>Table (??), Requirement (??)</span>
190
- </xref>
191
- <xref target='N'>
192
- <span class='citetbl'>Table 2, Requirement 2</span>
193
- </xref>
194
- <xref target='note1'>
195
- <span class='citetbl'>Table 3, Requirement 3</span>
196
- </xref>
197
- <xref target='note2'>
198
- <span class='citetbl'>Table 4, Requirement 4</span>
199
- </xref>
200
- <xref target='AN'>
201
- <span class='citetbl'>Table A.1, Requirement A.1</span>
202
- </xref>
203
- <xref target='Anote1'>
204
- <span class='citetbl'>Table (??), Requirement (??)</span>
205
- </xref>
206
- <xref target='Anote2'>
207
- <span class='citetbl'>Table A.2, Requirement A.2</span>
208
- </xref>
209
- </p>
210
- </foreword>
211
- OUTPUT
212
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
213
- .convert("test", input, true))
214
- .at("//xmlns:foreword").to_xml))
215
- .to be_equivalent_to xmlpp(output)
216
- end
217
-
218
- it "cross-references requirement parts" do
219
- input = <<~INPUT
220
- <iso-standard xmlns="http://riboseinc.com/isoxml">
221
- <preface>
222
- <foreword>
223
- <p>
224
- <xref target="N1a"/>
225
- <xref target="N1b"/>
226
- <xref target="N2a"/>
227
- <xref target="N2b"/>
228
- <xref target="Na"/>
229
- <xref target="Nb"/>
230
- <xref target="note1a"/>
231
- <xref target="note1b"/>
232
- <xref target="note2a"/>
233
- <xref target="note2b"/>
234
- <xref target="ANa"/>
235
- <xref target="ANb"/>
236
- <xref target="Anote1a"/>
237
- <xref target="Anote1b"/>
238
- <xref target="Anote2a"/>
239
- <xref target="Anote2b"/>
240
- </p>
241
- </foreword>
242
- <introduction id="intro">
243
- <requirement model="ogc" id="N1">
244
- <stem type="AsciiMath">r = 1 %</stem>
245
- <component class="part" id="N1a"/>
246
- <component class="part" id="N1b"/>
247
- </requirement>
248
- <clause id="xyz"><title>Preparatory</title>
249
- <requirement model="ogc" id="N2" unnumbered="true">
250
- <stem type="AsciiMath">r = 1 %</stem>
251
- <component class="part" id="N2a"/>
252
- <component class="part" id="N2b"/>
253
- </requirement>
254
- </clause>
255
- </introduction>
256
- </preface>
257
- <sections>
258
- <clause id="scope" type="scope"><title>Scope</title>
259
- <requirement model="ogc" id="N">
260
- <stem type="AsciiMath">r = 1 %</stem>
261
- <component class="part" id="Na"/>
262
- <component class="part" id="Nb"/>
263
- </requirement>
264
- <p><xref target="N"/></p>
265
- </clause>
266
- <terms id="terms"/>
267
- <clause id="widgets"><title>Widgets</title>
268
- <clause id="widgets1">
269
- <requirement model="ogc" id="note1">
270
- <stem type="AsciiMath">r = 1 %</stem>
271
- <component class="part" id="note1a"/>
272
- <component class="part" id="note1b"/>
273
- </requirement>
274
- <requirement model="ogc" id="note2">
275
- <stem type="AsciiMath">r = 1 %</stem>
276
- <component class="part" id="note2a"/>
277
- <component class="part" id="note2b"/>
278
- </requirement>
279
- <p> <xref target="note1a"/> <xref target="note2b"/> </p>
280
- </clause>
281
- </clause>
282
- </sections>
283
- <annex id="annex1">
284
- <clause id="annex1a">
285
- <requirement model="ogc" id="AN">
286
- <stem type="AsciiMath">r = 1 %</stem>
287
- <component class="part" id="ANa"/>
288
- <component class="part" id="ANb"/>
289
- </requirement>
290
- </clause>
291
- <clause id="annex1b">
292
- <requirement model="ogc" id="Anote1" unnumbered="true">
293
- <stem type="AsciiMath">r = 1 %</stem>
294
- <component class="part" id="Anote1a"/>
295
- <component class="part" id="Anote1b"/>
296
- </requirement>
297
- <requirement model="ogc" id="Anote2">
298
- <stem type="AsciiMath">r = 1 %</stem>
299
- <component class="part" id="Anote2a"/>
300
- <component class="part" id="Anote2b"/>
301
- </requirement>
302
- </clause>
303
- </annex>
304
- </iso-standard>
305
- INPUT
306
- output = <<~OUTPUT
307
- <foreword displayorder='1'>
308
- <p>
309
- <xref target='N1a'>Table 1, Requirement 1 A</xref>
310
- <xref target='N1b'>Table 1, Requirement 1 B</xref>
311
- <xref target='N2a'>Table (??), Requirement A</xref>
312
- <xref target='N2b'>Table (??), Requirement B</xref>
313
- <xref target='Na'>Table 2, Requirement 2 A</xref>
314
- <xref target='Nb'>Table 2, Requirement 2 B</xref>
315
- <xref target='note1a'>Table 3, Requirement 3 A</xref>
316
- <xref target='note1b'>Table 3, Requirement 3 B</xref>
317
- <xref target='note2a'>Table 4, Requirement 4 A</xref>
318
- <xref target='note2b'>Table 4, Requirement 4 B</xref>
319
- <xref target='ANa'>Table A.1, Requirement A.1 A</xref>
320
- <xref target='ANb'>Table A.1, Requirement A.1 B</xref>
321
- <xref target='Anote1a'>Table (??), Requirement A. A</xref>
322
- <xref target='Anote1b'>Table (??), Requirement A. B</xref>
323
- <xref target='Anote2a'>Table A.2, Requirement A.2 A</xref>
324
- <xref target='Anote2b'>Table A.2, Requirement A.2 B</xref>
325
- </p>
326
- </foreword>
327
- OUTPUT
328
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
329
- .convert("test", input, true))
330
- .at("//xmlns:foreword").to_xml))
331
- .to be_equivalent_to xmlpp(output)
332
- end
333
-
334
- it "cross-references requirement tests" do
335
- input = <<~INPUT
336
- <iso-standard xmlns="http://riboseinc.com/isoxml">
337
- <preface>
338
- <foreword>
339
- <p>
340
- <xref target="N1"/>
341
- <xref target="N2"/>
342
- <xref target="N"/>
343
- <xref target="note1"/>
344
- <xref target="note2"/>
345
- <xref target="AN"/>
346
- <xref target="Anote1"/>
347
- <xref target="Anote2"/>
348
- </p>
349
- </foreword>
350
- <introduction id="intro">
351
- <requirement model="ogc" id="N1" type="verification">
352
- <stem type="AsciiMath">r = 1 %</stem>
353
- </requirement>
354
- <clause id="xyz"><title>Preparatory</title>
355
- <requirement model="ogc" id="N2" unnumbered="true" type="verification">
356
- <stem type="AsciiMath">r = 1 %</stem>
357
- </requirement>
358
- </clause>
359
- </introduction>
360
- </preface>
361
- <sections>
362
- <clause id="scope" type="scope"><title>Scope</title>
363
- <requirement model="ogc" id="N" type="verification">
364
- <stem type="AsciiMath">r = 1 %</stem>
365
- </requirement>
366
- <p><xref target="N"/></p>
367
- </clause>
368
- <terms id="terms"/>
369
- <clause id="widgets"><title>Widgets</title>
370
- <clause id="widgets1">
371
- <requirement model="ogc" id="note1" type="verification">
372
- <stem type="AsciiMath">r = 1 %</stem>
373
- </requirement>
374
- <requirement model="ogc" id="note2" type="verification">
375
- <stem type="AsciiMath">r = 1 %</stem>
376
- </requirement>
377
- <p> <xref target="note1"/> <xref target="note2"/> </p>
378
- </clause>
379
- </clause>
380
- </sections>
381
- <annex id="annex1">
382
- <clause id="annex1a">
383
- <requirement model="ogc" id="AN" type="verification">
384
- <stem type="AsciiMath">r = 1 %</stem>
385
- </requirement>
386
- </clause>
387
- <clause id="annex1b">
388
- <requirement model="ogc" id="Anote1" unnumbered="true" type="verification">
389
- <stem type="AsciiMath">r = 1 %</stem>
390
- </requirement>
391
- <requirement model="ogc" id="Anote2" type="verification">
392
- <stem type="AsciiMath">r = 1 %</stem>
393
- </requirement>
394
- </clause>
395
- </annex>
396
- </iso-standard>
397
- INPUT
398
- output = <<~OUTPUT
399
- <foreword displayorder='1'>
400
- <p>
401
- <xref target='N1'>
402
- <span class='citetbl'>Table 1, Conformance test 1</span>
403
- </xref>
404
- <xref target='N2'>
405
- <span class='citetbl'>Table (??), Conformance test (??)</span>
406
- </xref>
407
- <xref target='N'>
408
- <span class='citetbl'>Table 2, Conformance test 2</span>
409
- </xref>
410
- <xref target='note1'>
411
- <span class='citetbl'>Table 3, Conformance test 3</span>
412
- </xref>
413
- <xref target='note2'>
414
- <span class='citetbl'>Table 4, Conformance test 4</span>
415
- </xref>
416
- <xref target='AN'>
417
- <span class='citetbl'>Table A.1, Conformance test A.1</span>
418
- </xref>
419
- <xref target='Anote1'>
420
- <span class='citetbl'>Table (??), Conformance test (??)</span>
421
- </xref>
422
- <xref target='Anote2'>
423
- <span class='citetbl'>Table A.2, Conformance test A.2</span>
424
- </xref>
425
- </p>
426
- </foreword>
427
- OUTPUT
428
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
429
- .convert("test", input, true))
430
- .at("//xmlns:foreword").to_xml))
431
- .to be_equivalent_to xmlpp(output)
432
- end
433
-
434
- it "cross-references requirement tests in French" do
435
- input = <<~INPUT
436
- <iso-standard xmlns="http://riboseinc.com/isoxml">
437
- <bibdata><language>fr</language></bibdata>
438
- <preface>
439
- <foreword>
440
- <p>
441
- <xref target="N1"/>
442
- <xref target="N2"/>
443
- <xref target="N"/>
444
- <xref target="note1"/>
445
- <xref target="note2"/>
446
- <xref target="AN"/>
447
- <xref target="Anote1"/>
448
- <xref target="Anote2"/>
449
- </p>
450
- </foreword>
451
- <introduction id="intro">
452
- <requirement model="ogc" id="N1" type="verification">
453
- <stem type="AsciiMath">r = 1 %</stem>
454
- </requirement>
455
- <clause id="xyz"><title>Preparatory</title>
456
- <requirement model="ogc" id="N2" unnumbered="true" type="verification">
457
- <stem type="AsciiMath">r = 1 %</stem>
458
- </requirement>
459
- </clause>
460
- </introduction>
461
- </preface>
462
- <sections>
463
- <clause id="scope" type="scope"><title>Scope</title>
464
- <requirement model="ogc" id="N" type="verification">
465
- <stem type="AsciiMath">r = 1 %</stem>
466
- </requirement>
467
- <p><xref target="N"/></p>
468
- </clause>
469
- <terms id="terms"/>
470
- <clause id="widgets"><title>Widgets</title>
471
- <clause id="widgets1">
472
- <requirement model="ogc" id="note1" type="verification">
473
- <stem type="AsciiMath">r = 1 %</stem>
474
- </requirement>
475
- <requirement model="ogc" id="note2" type="verification">
476
- <stem type="AsciiMath">r = 1 %</stem>
477
- </requirement>
478
- <p> <xref target="note1"/> <xref target="note2"/> </p>
479
- </clause>
480
- </clause>
481
- </sections>
482
- <annex id="annex1">
483
- <clause id="annex1a">
484
- <requirement model="ogc" id="AN" type="verification">
485
- <stem type="AsciiMath">r = 1 %</stem>
486
- </requirement>
487
- </clause>
488
- <clause id="annex1b">
489
- <requirement model="ogc" id="Anote1" unnumbered="true" type="verification">
490
- <stem type="AsciiMath">r = 1 %</stem>
491
- </requirement>
492
- <requirement model="ogc" id="Anote2" type="verification">
493
- <stem type="AsciiMath">r = 1 %</stem>
494
- </requirement>
495
- </clause>
496
- </annex>
497
- </iso-standard>
498
- INPUT
499
- output = <<~OUTPUT
500
- <foreword displayorder='1'>
501
- <p>
502
- <xref target='N1'>
503
- <span class='citetbl'>Tableau 1, Test de conformité 1</span>
504
- </xref>
505
- <xref target='N2'>
506
- <span class='citetbl'>Tableau (??), Test de conformité (??)</span>
507
- </xref>
508
- <xref target='N'>
509
- <span class='citetbl'>Tableau 2, Test de conformité 2</span>
510
- </xref>
511
- <xref target='note1'>
512
- <span class='citetbl'>Tableau 3, Test de conformité 3</span>
513
- </xref>
514
- <xref target='note2'>
515
- <span class='citetbl'>Tableau 4, Test de conformité 4</span>
516
- </xref>
517
- <xref target='AN'>
518
- <span class='citetbl'>Tableau A.1, Test de conformité A.1</span>
519
- </xref>
520
- <xref target='Anote1'>
521
- <span class='citetbl'>Tableau (??), Test de conformité (??)</span>
522
- </xref>
523
- <xref target='Anote2'>
524
- <span class='citetbl'>Tableau A.2, Test de conformité A.2</span>
525
- </xref>
526
- </p>
527
- </foreword>
528
- OUTPUT
529
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
530
- .convert("test", input, true))
531
- .at("//xmlns:foreword").to_xml))
532
- .to be_equivalent_to xmlpp(output)
533
- end
534
-
535
- it "cross-references recommendations" do
536
- input = <<~INPUT
537
- <iso-standard xmlns="http://riboseinc.com/isoxml">
538
- <preface>
539
- <foreword>
540
- <p>
541
- <xref target="N1"/>
542
- <xref target="N2"/>
543
- <xref target="N"/>
544
- <xref target="note1"/>
545
- <xref target="note2"/>
546
- <xref target="AN"/>
547
- <xref target="Anote1"/>
548
- <xref target="Anote2"/>
549
- </p>
550
- </foreword>
551
- <introduction id="intro">
552
- <recommendation model="ogc" id="N1">
553
- <stem type="AsciiMath">r = 1 %</stem>
554
- </recommendation>
555
- <clause id="xyz"><title>Preparatory</title>
556
- <recommendation model="ogc" id="N2" unnumbered="true">
557
- <stem type="AsciiMath">r = 1 %</stem>
558
- </recommendation>
559
- </clause>
560
- </introduction>
561
- </preface>
562
- <sections>
563
- <clause id="scope" type="scope"><title>Scope</title>
564
- <recommendation model="ogc" id="N">
565
- <stem type="AsciiMath">r = 1 %</stem>
566
- </recommendation>
567
- <p><xref target="N"/></p>
568
- </clause>
569
- <terms id="terms"/>
570
- <clause id="widgets"><title>Widgets</title>
571
- <clause id="widgets1">
572
- <recommendation model="ogc" id="note1">
573
- <stem type="AsciiMath">r = 1 %</stem>
574
- </recommendation>
575
- <recommendation model="ogc" id="note2">
576
- <stem type="AsciiMath">r = 1 %</stem>
577
- </recommendation>
578
- <p> <xref target="note1"/> <xref target="note2"/> </p>
579
- </clause>
580
- </clause>
581
- </sections>
582
- <annex id="annex1">
583
- <clause id="annex1a">
584
- <recommendation model="ogc" id="AN">
585
- <stem type="AsciiMath">r = 1 %</stem>
586
- </recommendation>
587
- </clause>
588
- <clause id="annex1b">
589
- <recommendation model="ogc" id="Anote1" unnumbered="true">
590
- <stem type="AsciiMath">r = 1 %</stem>
591
- </recommendation>
592
- <recommendation model="ogc" id="Anote2">
593
- <stem type="AsciiMath">r = 1 %</stem>
594
- </recommendation>
595
- </clause>
596
- </annex>
597
- </iso-standard>
598
- INPUT
599
- output = <<~OUTPUT
600
- <foreword displayorder='1'>
601
- <p>
602
- <xref target='N1'>
603
- <span class='citetbl'>Table 1, Recommendation 1</span>
604
- </xref>
605
- <xref target='N2'>
606
- <span class='citetbl'>Table (??), Recommendation (??)</span>
607
- </xref>
608
- <xref target='N'>
609
- <span class='citetbl'>Table 2, Recommendation 2</span>
610
- </xref>
611
- <xref target='note1'>
612
- <span class='citetbl'>Table 3, Recommendation 3</span>
613
- </xref>
614
- <xref target='note2'>
615
- <span class='citetbl'>Table 4, Recommendation 4</span>
616
- </xref>
617
- <xref target='AN'>
618
- <span class='citetbl'>Table A.1, Recommendation A.1</span>
619
- </xref>
620
- <xref target='Anote1'>
621
- <span class='citetbl'>Table (??), Recommendation (??)</span>
622
- </xref>
623
- <xref target='Anote2'>
624
- <span class='citetbl'>Table A.2, Recommendation A.2</span>
625
- </xref>
626
- </p>
627
- </foreword>
628
- OUTPUT
629
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
630
- .convert("test", input, true))
631
- .at("//xmlns:foreword").to_xml))
632
- .to be_equivalent_to xmlpp(output)
633
- end
634
-
635
- it "cross-references recommendation tests" do
636
- input = <<~INPUT
637
- <iso-standard xmlns="http://riboseinc.com/isoxml">
638
- <preface>
639
- <foreword>
640
- <p>
641
- <xref target="N1"/>
642
- <xref target="N2"/>
643
- <xref target="N"/>
644
- <xref target="note1"/>
645
- <xref target="note2"/>
646
- <xref target="AN"/>
647
- <xref target="Anote1"/>
648
- <xref target="Anote2"/>
649
- </p>
650
- </foreword>
651
- <introduction id="intro">
652
- <recommendation model="ogc" id="N1" type="verification">
653
- <stem type="AsciiMath">r = 1 %</stem>
654
- </recommendation>
655
- <clause id="xyz"><title>Preparatory</title>
656
- <recommendation model="ogc" id="N2" unnumbered="true" type="verification">
657
- <stem type="AsciiMath">r = 1 %</stem>
658
- </recommendation>
659
- </clause>
660
- </introduction>
661
- </preface>
662
- <sections>
663
- <clause id="scope" type="scope"><title>Scope</title>
664
- <recommendation model="ogc" id="N" type="verification">
665
- <stem type="AsciiMath">r = 1 %</stem>
666
- </recommendation>
667
- <p><xref target="N"/></p>
668
- </clause>
669
- <terms id="terms"/>
670
- <clause id="widgets"><title>Widgets</title>
671
- <clause id="widgets1">
672
- <recommendation model="ogc" id="note1" type="verification">
673
- <stem type="AsciiMath">r = 1 %</stem>
674
- </recommendation>
675
- <recommendation model="ogc" id="note2" type="verification">
676
- <stem type="AsciiMath">r = 1 %</stem>
677
- </recommendation>
678
- <p> <xref target="note1"/> <xref target="note2"/> </p>
679
- </clause>
680
- </clause>
681
- </sections>
682
- <annex id="annex1">
683
- <clause id="annex1a">
684
- <recommendation model="ogc" id="AN" type="verification">
685
- <stem type="AsciiMath">r = 1 %</stem>
686
- </recommendation>
687
- </clause>
688
- <clause id="annex1b">
689
- <recommendation model="ogc" id="Anote1" unnumbered="true" type="verification">
690
- <stem type="AsciiMath">r = 1 %</stem>
691
- </recommendation>
692
- <recommendation model="ogc" id="Anote2" type="verification">
693
- <stem type="AsciiMath">r = 1 %</stem>
694
- </recommendation>
695
- </clause>
696
- </annex>
697
- </iso-standard>
698
- INPUT
699
- output = <<~OUTPUT
700
- <foreword displayorder='1'>
701
- <p>
702
- <xref target='N1'>
703
- <span class='citetbl'>Table 1, Conformance test 1</span>
704
- </xref>
705
- <xref target='N2'>
706
- <span class='citetbl'>Table (??), Conformance test (??)</span>
707
- </xref>
708
- <xref target='N'>
709
- <span class='citetbl'>Table 2, Conformance test 2</span>
710
- </xref>
711
- <xref target='note1'>
712
- <span class='citetbl'>Table 3, Conformance test 3</span>
713
- </xref>
714
- <xref target='note2'>
715
- <span class='citetbl'>Table 4, Conformance test 4</span>
716
- </xref>
717
- <xref target='AN'>
718
- <span class='citetbl'>Table A.1, Conformance test A.1</span>
719
- </xref>
720
- <xref target='Anote1'>
721
- <span class='citetbl'>Table (??), Conformance test (??)</span>
722
- </xref>
723
- <xref target='Anote2'>
724
- <span class='citetbl'>Table A.2, Conformance test A.2</span>
725
- </xref>
726
- </p>
727
- </foreword>
728
- OUTPUT
729
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
730
- .convert("test", input, true))
731
- .at("//xmlns:foreword").to_xml))
732
- .to be_equivalent_to xmlpp(output)
733
- end
734
-
735
- it "cross-references permissions" do
736
- input = <<~INPUT
737
- <iso-standard xmlns="http://riboseinc.com/isoxml">
738
- <preface>
739
- <foreword>
740
- <p>
741
- <xref target="N1"/>
742
- <xref target="N2"/>
743
- <xref target="N"/>
744
- <xref target="note1"/>
745
- <xref target="note2"/>
746
- <xref target="AN"/>
747
- <xref target="Anote1"/>
748
- <xref target="Anote2"/>
749
- </p>
750
- </foreword>
751
- <introduction id="intro">
752
- <permission model="ogc" id="N1">
753
- <stem type="AsciiMath">r = 1 %</stem>
754
- </permission>
755
- <clause id="xyz"><title>Preparatory</title>
756
- <permission model="ogc" id="N2" unnumbered="true">
757
- <stem type="AsciiMath">r = 1 %</stem>
758
- </permission>
759
- </clause>
760
- </introduction>
761
- </preface>
762
- <sections>
763
- <clause id="scope" type="scope"><title>Scope</title>
764
- <permission model="ogc" id="N">
765
- <stem type="AsciiMath">r = 1 %</stem>
766
- </permission>
767
- <p><xref target="N"/></p>
768
- </clause>
769
- <terms id="terms"/>
770
- <clause id="widgets"><title>Widgets</title>
771
- <clause id="widgets1">
772
- <permission model="ogc" id="note1">
773
- <stem type="AsciiMath">r = 1 %</stem>
774
- </permission>
775
- <permission model="ogc" id="note2">
776
- <stem type="AsciiMath">r = 1 %</stem>
777
- </permission>
778
- <p> <xref target="note1"/> <xref target="note2"/> </p>
779
- </clause>
780
- </clause>
781
- </sections>
782
- <annex id="annex1">
783
- <clause id="annex1a">
784
- <permission model="ogc" id="AN">
785
- <stem type="AsciiMath">r = 1 %</stem>
786
- </permission>
787
- </clause>
788
- <clause id="annex1b">
789
- <permission model="ogc" id="Anote1" unnumbered="true">
790
- <stem type="AsciiMath">r = 1 %</stem>
791
- </permission>
792
- <permission model="ogc" id="Anote2">
793
- <stem type="AsciiMath">r = 1 %</stem>
794
- </permission>
795
- </clause>
796
- </annex>
797
- </iso-standard>
798
- INPUT
799
- output = <<~OUTPUT
800
- <foreword displayorder='1'>
801
- <p>
802
- <xref target='N1'>
803
- <span class='citetbl'>Table 1, Permission 1</span>
804
- </xref>
805
- <xref target='N2'>
806
- <span class='citetbl'>Table (??), Permission (??)</span>
807
- </xref>
808
- <xref target='N'>
809
- <span class='citetbl'>Table 2, Permission 2</span>
810
- </xref>
811
- <xref target='note1'>
812
- <span class='citetbl'>Table 3, Permission 3</span>
813
- </xref>
814
- <xref target='note2'>
815
- <span class='citetbl'>Table 4, Permission 4</span>
816
- </xref>
817
- <xref target='AN'>
818
- <span class='citetbl'>Table A.1, Permission A.1</span>
819
- </xref>
820
- <xref target='Anote1'>
821
- <span class='citetbl'>Table (??), Permission (??)</span>
822
- </xref>
823
- <xref target='Anote2'>
824
- <span class='citetbl'>Table A.2, Permission A.2</span>
825
- </xref>
826
- </p>
827
- </foreword>
828
- OUTPUT
829
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
830
- .convert("test", input, true))
831
- .at("//xmlns:foreword").to_xml))
832
- .to be_equivalent_to xmlpp(output)
833
- end
834
-
835
- it "cross-references permission tests" do
836
- input = <<~INPUT
837
- <iso-standard xmlns="http://riboseinc.com/isoxml">
838
- <preface>
839
- <foreword>
840
- <p>
841
- <xref target="N1"/>
842
- <xref target="N2"/>
843
- <xref target="N"/>
844
- <xref target="note1"/>
845
- <xref target="note2"/>
846
- <xref target="AN"/>
847
- <xref target="Anote1"/>
848
- <xref target="Anote2"/>
849
- </p>
850
- </foreword>
851
- <introduction id="intro">
852
- <permission model="ogc" id="N1" type="verification">
853
- <stem type="AsciiMath">r = 1 %</stem>
854
- </permission>
855
- <clause id="xyz"><title>Preparatory</title>
856
- <permission model="ogc" id="N2" unnumbered="true" type="verification">
857
- <stem type="AsciiMath">r = 1 %</stem>
858
- </permission>
859
- </clause>
860
- </introduction>
861
- </preface>
862
- <sections>
863
- <clause id="scope" type="scope"><title>Scope</title>
864
- <permission model="ogc" id="N" type="verification">
865
- <stem type="AsciiMath">r = 1 %</stem>
866
- </permission>
867
- <p><xref target="N"/></p>
868
- </clause>
869
- <terms id="terms"/>
870
- <clause id="widgets"><title>Widgets</title>
871
- <clause id="widgets1">
872
- <permission model="ogc" id="note1" type="verification">
873
- <stem type="AsciiMath">r = 1 %</stem>
874
- </permission>
875
- <permission model="ogc" id="note2" type="verification">
876
- <stem type="AsciiMath">r = 1 %</stem>
877
- </permission>
878
- <p> <xref target="note1"/> <xref target="note2"/> </p>
879
- </clause>
880
- </clause>
881
- </sections>
882
- <annex id="annex1">
883
- <clause id="annex1a">
884
- <permission model="ogc" id="AN" type="verification">
885
- <stem type="AsciiMath">r = 1 %</stem>
886
- </permission>
887
- </clause>
888
- <clause id="annex1b">
889
- <permission model="ogc" id="Anote1" unnumbered="true" type="verification">
890
- <stem type="AsciiMath">r = 1 %</stem>
891
- </permission>
892
- <permission model="ogc" id="Anote2" type="verification">
893
- <stem type="AsciiMath">r = 1 %</stem>
894
- </permission>
895
- </clause>
896
- </annex>
897
- </iso-standard>
898
- INPUT
899
- output = <<~OUTPUT
900
- <foreword displayorder='1'>
901
- <p>
902
- <xref target='N1'>
903
- <span class='citetbl'>Table 1, Conformance test 1</span>
904
- </xref>
905
- <xref target='N2'>
906
- <span class='citetbl'>Table (??), Conformance test (??)</span>
907
- </xref>
908
- <xref target='N'>
909
- <span class='citetbl'>Table 2, Conformance test 2</span>
910
- </xref>
911
- <xref target='note1'>
912
- <span class='citetbl'>Table 3, Conformance test 3</span>
913
- </xref>
914
- <xref target='note2'>
915
- <span class='citetbl'>Table 4, Conformance test 4</span>
916
- </xref>
917
- <xref target='AN'>
918
- <span class='citetbl'>Table A.1, Conformance test A.1</span>
919
- </xref>
920
- <xref target='Anote1'>
921
- <span class='citetbl'>Table (??), Conformance test (??)</span>
922
- </xref>
923
- <xref target='Anote2'>
924
- <span class='citetbl'>Table A.2, Conformance test A.2</span>
925
- </xref>
926
- </p>
927
- </foreword>
928
- OUTPUT
929
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
930
- .convert("test", input, true))
931
- .at("//xmlns:foreword").to_xml))
932
- .to be_equivalent_to xmlpp(output)
933
- end
934
-
935
- it "labels and cross-references nested requirements" do
936
- input = <<~INPUT
937
- <iso-standard xmlns="http://riboseinc.com/isoxml">
938
- <preface>
939
- <foreword>
940
- <p>
941
- <xref target="N1"/>
942
- <xref target="N2"/>
943
- <xref target="N"/>
944
- <xref target="Q1"/>
945
- <xref target="R1"/>
946
- <xref target="AN1"/>
947
- <xref target="AN2"/>
948
- <xref target="AN"/>
949
- <xref target="AQ1"/>
950
- <xref target="AR1"/>
951
- </p>
952
- </foreword>
953
- </preface>
954
- <sections>
955
- <clause id="xyz"><title>Preparatory</title>
956
- <permission model="ogc" id="N1">
957
- <permission model="ogc" id="N2" type="verification">
958
- <permission model="ogc" id="N">
959
- </permission>
960
- </permission>
961
- <requirement model="ogc" id="Q1">
962
- </requirement>
963
- <recommendation model="ogc" id="R1">
964
- </recommendation>
965
- <permission model="ogc" id="N3" type="verification"/>
966
- <permission model="ogc" id="N4"/>
967
- </permission>
968
- </clause>
969
- </sections>
970
- <annex id="Axyz"><title>Preparatory</title>
971
- <permission model="ogc" id="AN1" type="verification">
972
- <permission model="ogc" id="AN2">
973
- <permission model="ogc" id="AN" type="verification">
974
- </permission>
975
- </permission>
976
- <requirement model="ogc" id="AQ1">
977
- </requirement>
978
- <recommendation model="ogc" id="AR1">
979
- </recommendation>
980
- <permission model="ogc" id="AN3" type="verification"/>
981
- <permission model="ogc" id="AN4"/>
982
- </permission>
983
- </annex>
984
- </iso-standard>
985
- INPUT
986
- output = <<~OUTPUT
987
- <foreword displayorder='1'>
988
- <p>
989
- <xref target='N1'>
990
- <span class='citetbl'>Table 1, Permission 1</span>
991
- </xref>
992
- <xref target='N2'>Table 1, Conformance test 1-1</xref>
993
- <xref target='N'>Table 1, Permission 1-1-1</xref>
994
- <xref target='Q1'>Table 1, Requirement 1-1</xref>
995
- <xref target='R1'>Table 1, Recommendation 1-1</xref>
996
- <xref target='AN1'>
997
- <span class='citetbl'>Table A.1, Conformance test A.1</span>
998
- </xref>
999
- <xref target='AN2'>Table A.1, Permission A.1-1</xref>
1000
- <xref target='AN'>Table A.1, Conformance test A.1-1-1</xref>
1001
- <xref target='AQ1'>Table A.1, Requirement A.1-1</xref>
1002
- <xref target='AR1'>Table A.1, Recommendation A.1-1</xref>
1003
- </p>
1004
- </foreword>
1005
- OUTPUT
1006
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
1007
- .convert("test", input, true))
1008
- .at("//xmlns:foreword").to_xml))
1009
- .to be_equivalent_to xmlpp(output)
1010
- end
1011
-
1012
- it "cross-references abstract tests" do
1013
- input = <<~INPUT
1014
- <iso-standard xmlns="http://riboseinc.com/isoxml">
1015
- <preface>
1016
- <foreword>
1017
- <p>
1018
- <xref target="N1"/>
1019
- <xref target="N2"/>
1020
- <xref target="N"/>
1021
- <xref target="note1"/>
1022
- <xref target="note2"/>
1023
- <xref target="AN"/>
1024
- <xref target="Anote1"/>
1025
- <xref target="Anote2"/>
1026
- </p>
1027
- </foreword>
1028
- <introduction id="intro">
1029
- <permission model="ogc" id="N1" type="abstracttest">
1030
- <stem type="AsciiMath">r = 1 %</stem>
1031
- </permission>
1032
- <clause id="xyz"><title>Preparatory</title>
1033
- <permission model="ogc" id="N2" unnumbered="true" type="abstracttest">
1034
- <stem type="AsciiMath">r = 1 %</stem>
1035
- </permission>
1036
- </clause>
1037
- </introduction>
1038
- </preface>
1039
- <sections>
1040
- <clause id="scope" type="scope"><title>Scope</title>
1041
- <permission model="ogc" id="N" type="abstracttest">
1042
- <stem type="AsciiMath">r = 1 %</stem>
1043
- </permission>
1044
- <p><xref target="N"/></p>
1045
- </clause>
1046
- <terms id="terms"/>
1047
- <clause id="widgets"><title>Widgets</title>
1048
- <clause id="widgets1">
1049
- <permission model="ogc" id="note1" type="abstracttest">
1050
- <stem type="AsciiMath">r = 1 %</stem>
1051
- </permission>
1052
- <permission model="ogc" id="note2" type="abstracttest">
1053
- <stem type="AsciiMath">r = 1 %</stem>
1054
- </permission>
1055
- <p> <xref target="note1"/> <xref target="note2"/> </p>
1056
- </clause>
1057
- </clause>
1058
- </sections>
1059
- <annex id="annex1">
1060
- <clause id="annex1a">
1061
- <permission model="ogc" id="AN" type="abstracttest">
1062
- <stem type="AsciiMath">r = 1 %</stem>
1063
- </permission>
1064
- </clause>
1065
- <clause id="annex1b">
1066
- <permission model="ogc" id="Anote1" unnumbered="true" type="abstracttest">
1067
- <stem type="AsciiMath">r = 1 %</stem>
1068
- </permission>
1069
- <permission model="ogc" id="Anote2" type="abstracttest">
1070
- <stem type="AsciiMath">r = 1 %</stem>
1071
- </permission>
1072
- </clause>
1073
- </annex>
1074
- </iso-standard>
1075
- INPUT
1076
- output = <<~OUTPUT
1077
- <foreword displayorder='1'>
1078
- <p>
1079
- <xref target='N1'>
1080
- <span class='citetbl'>Table 1, Abstract test 1</span>
1081
- </xref>
1082
- <xref target='N2'>
1083
- <span class='citetbl'>Table (??), Abstract test (??)</span>
1084
- </xref>
1085
- <xref target='N'>
1086
- <span class='citetbl'>Table 2, Abstract test 2</span>
1087
- </xref>
1088
- <xref target='note1'>
1089
- <span class='citetbl'>Table 3, Abstract test 3</span>
1090
- </xref>
1091
- <xref target='note2'>
1092
- <span class='citetbl'>Table 4, Abstract test 4</span>
1093
- </xref>
1094
- <xref target='AN'>
1095
- <span class='citetbl'>Table A.1, Abstract test A.1</span>
1096
- </xref>
1097
- <xref target='Anote1'>
1098
- <span class='citetbl'>Table (??), Abstract test (??)</span>
1099
- </xref>
1100
- <xref target='Anote2'>
1101
- <span class='citetbl'>Table A.2, Abstract test A.2</span>
1102
- </xref>
1103
- </p>
1104
- </foreword>
1105
- OUTPUT
1106
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
1107
- .convert("test", input, true))
1108
- .at("//xmlns:foreword").to_xml))
1109
- .to be_equivalent_to xmlpp(output)
1110
- end
1111
-
1112
- it "cross-references conformance classes" do
1113
- input = <<~INPUT
1114
- <iso-standard xmlns="http://riboseinc.com/isoxml">
1115
- <preface>
1116
- <foreword>
1117
- <p>
1118
- <xref target="N1"/>
1119
- <xref target="N2"/>
1120
- <xref target="N"/>
1121
- <xref target="note1"/>
1122
- <xref target="note2"/>
1123
- <xref target="AN"/>
1124
- <xref target="Anote1"/>
1125
- <xref target="Anote2"/>
1126
- </p>
1127
- </foreword>
1128
- <introduction id="intro">
1129
- <permission model="ogc" id="N1" type="conformanceclass">
1130
- <stem type="AsciiMath">r = 1 %</stem>
1131
- </permission>
1132
- <clause id="xyz"><title>Preparatory</title>
1133
- <permission model="ogc" id="N2" unnumbered="true" type="conformanceclass">
1134
- <stem type="AsciiMath">r = 1 %</stem>
1135
- </permission>
1136
- </clause>
1137
- </introduction>
1138
- </preface>
1139
- <sections>
1140
- <clause id="scope" type="scope"><title>Scope</title>
1141
- <permission model="ogc" id="N" type="conformanceclass">
1142
- <stem type="AsciiMath">r = 1 %</stem>
1143
- </permission>
1144
- <p><xref target="N"/></p>
1145
- </clause>
1146
- <terms id="terms"/>
1147
- <clause id="widgets"><title>Widgets</title>
1148
- <clause id="widgets1">
1149
- <permission model="ogc" id="note1" type="conformanceclass">
1150
- <stem type="AsciiMath">r = 1 %</stem>
1151
- </permission>
1152
- <permission model="ogc" id="note2" type="conformanceclass">
1153
- <stem type="AsciiMath">r = 1 %</stem>
1154
- </permission>
1155
- <p> <xref target="note1"/> <xref target="note2"/> </p>
1156
- </clause>
1157
- </clause>
1158
- </sections>
1159
- <annex id="annex1">
1160
- <clause id="annex1a">
1161
- <permission model="ogc" id="AN" type="conformanceclass">
1162
- <stem type="AsciiMath">r = 1 %</stem>
1163
- </permission>
1164
- </clause>
1165
- <clause id="annex1b">
1166
- <permission model="ogc" id="Anote1" unnumbered="true" type="conformanceclass">
1167
- <stem type="AsciiMath">r = 1 %</stem>
1168
- </permission>
1169
- <permission model="ogc" id="Anote2" type="conformanceclass">
1170
- <stem type="AsciiMath">r = 1 %</stem>
1171
- </permission>
1172
- </clause>
1173
- </annex>
1174
- </iso-standard>
1175
- INPUT
1176
- output = <<~OUTPUT
1177
- <foreword displayorder='1'>
1178
- <p>
1179
- <xref target='N1'>
1180
- <span class='citetbl'>Table 1, Conformance class 1</span>
1181
- </xref>
1182
- <xref target='N2'>
1183
- <span class='citetbl'>Table (??), Conformance class (??)</span>
1184
- </xref>
1185
- <xref target='N'>
1186
- <span class='citetbl'>Table 2, Conformance class 2</span>
1187
- </xref>
1188
- <xref target='note1'>
1189
- <span class='citetbl'>Table 3, Conformance class 3</span>
1190
- </xref>
1191
- <xref target='note2'>
1192
- <span class='citetbl'>Table 4, Conformance class 4</span>
1193
- </xref>
1194
- <xref target='AN'>
1195
- <span class='citetbl'>Table A.1, Conformance class A.1</span>
1196
- </xref>
1197
- <xref target='Anote1'>
1198
- <span class='citetbl'>Table (??), Conformance class (??)</span>
1199
- </xref>
1200
- <xref target='Anote2'>
1201
- <span class='citetbl'>Table A.2, Conformance class A.2</span>
1202
- </xref>
1203
- </p>
1204
- </foreword>
1205
- OUTPUT
1206
- expect(xmlpp(Nokogiri::XML(IsoDoc::Iso::PresentationXMLConvert.new({})
1207
- .convert("test", input, true))
1208
- .at("//xmlns:foreword").to_xml))
1209
- .to be_equivalent_to xmlpp(output)
1210
- end
1211
- end