metanorma-iso 2.2.2 → 2.2.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) 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 +7 -2
  6. data/lib/isodoc/iso/html/style-human.scss +0 -1
  7. data/lib/isodoc/iso/html/style-iso.css +7 -2
  8. data/lib/isodoc/iso/html/style-iso.scss +0 -1
  9. data/lib/isodoc/iso/html/wordstyle-dis.css +160 -4
  10. data/lib/isodoc/iso/html/wordstyle-dis.scss +154 -4
  11. data/lib/isodoc/iso/html/wordstyle.css +150 -0
  12. data/lib/isodoc/iso/html/wordstyle.scss +144 -0
  13. data/lib/isodoc/iso/i18n-en.yaml +4 -4
  14. data/lib/isodoc/iso/iso.amendment.xsl +1649 -1199
  15. data/lib/isodoc/iso/iso.international-standard.xsl +1649 -1199
  16. data/lib/isodoc/iso/presentation_bibdata.rb +13 -9
  17. data/lib/isodoc/iso/presentation_xml_convert.rb +5 -3
  18. data/lib/isodoc/iso/word_convert.rb +6 -4
  19. data/lib/isodoc/iso/word_dis_cleanup.rb +30 -8
  20. data/lib/isodoc/iso/word_dis_convert.rb +5 -2
  21. data/lib/metanorma/iso/base.rb +2 -1
  22. data/lib/metanorma/iso/biblio.rng +5 -0
  23. data/lib/metanorma/iso/isodoc.rng +47 -13
  24. data/lib/metanorma/iso/validate.rb +2 -2
  25. data/lib/metanorma/iso/version.rb +1 -1
  26. data/metanorma-iso.gemspec +5 -2
  27. metadata +4 -87
  28. data/.github/workflows/automerge.yml +0 -31
  29. data/.github/workflows/rake.yml +0 -15
  30. data/.github/workflows/release.yml +0 -24
  31. data/.github/workflows/ubuntu.yml +0 -41
  32. data/Rakefile +0 -8
  33. data/bin/rspec +0 -17
  34. data/spec/assets/header.html +0 -7
  35. data/spec/assets/html.css +0 -2
  36. data/spec/assets/htmlcover.html +0 -4
  37. data/spec/assets/htmlintro.html +0 -5
  38. data/spec/assets/i18n.yaml +0 -2
  39. data/spec/assets/iso.adoc +0 -10
  40. data/spec/assets/iso.headless.html +0 -33
  41. data/spec/assets/iso.xml +0 -71
  42. data/spec/assets/rice_image1.png +0 -0
  43. data/spec/assets/scripts.html +0 -3
  44. data/spec/assets/std.css +0 -2
  45. data/spec/assets/word.css +0 -2
  46. data/spec/assets/wordcover.html +0 -3
  47. data/spec/assets/wordintro.html +0 -4
  48. data/spec/examples/103_01_02.html +0 -247
  49. data/spec/examples/english.yaml +0 -69
  50. data/spec/examples/iso_123_.xml +0 -45
  51. data/spec/examples/iso_123_all_parts.xml +0 -45
  52. data/spec/examples/iso_123_no_year_note.xml +0 -46
  53. data/spec/examples/iso_124_.xml +0 -41
  54. data/spec/examples/iso_216_.xml +0 -47
  55. data/spec/examples/iso_iec_12382_.xml +0 -48
  56. data/spec/examples/rice.adoc +0 -714
  57. data/spec/examples/rice.preview.html +0 -1870
  58. data/spec/examples/rice.sh +0 -4
  59. data/spec/examples/rice_img/1000-1_ed2amd3fig1a.png +0 -0
  60. data/spec/examples/rice_img/1000-1_ed2amd3fig1b.png +0 -0
  61. data/spec/examples/rice_img/1000-1_ed2amd3fig2.png +0 -0
  62. data/spec/examples/rice_img/1000-1_ed2amd3fig3.png +0 -0
  63. data/spec/examples/rice_img/1000-1_ed2amd3fig4.png +0 -0
  64. data/spec/examples/rice_img/1000-1_ed2amd3fig5_f.png +0 -0
  65. data/spec/examples/rice_img/1000-1_ed2amd3figA.png +0 -0
  66. data/spec/examples/rice_img/1000-1_ed2amd3figA1.png +0 -0
  67. data/spec/examples/rice_img/1000-1_ed2amd3figA2.png +0 -0
  68. data/spec/examples/rice_img/1000-1_ed2amd3figTab1.png +0 -0
  69. data/spec/examples/rice_img/1000-1_ed2amd3figTab2.png +0 -0
  70. data/spec/examples/rice_img/1001_ed2amd3fig1.png +0 -0
  71. data/spec/examples/rice_img/ISO_1213_1.png +0 -0
  72. data/spec/examples/rice_img/SL1000-1_ed2amd3fig1.png +0 -0
  73. data/spec/examples/rice_img/rice_image1.png +0 -0
  74. data/spec/examples/rice_img/rice_image2.png +0 -0
  75. data/spec/examples/rice_img/rice_image3_1.png +0 -0
  76. data/spec/examples/rice_img/rice_image3_2.png +0 -0
  77. data/spec/examples/rice_img/rice_image3_3.png +0 -0
  78. data/spec/isodoc/amd_spec.rb +0 -986
  79. data/spec/isodoc/blocks_spec.rb +0 -1174
  80. data/spec/isodoc/i18n_spec.rb +0 -1579
  81. data/spec/isodoc/inline_spec.rb +0 -1060
  82. data/spec/isodoc/iso_spec.rb +0 -255
  83. data/spec/isodoc/metadata_spec.rb +0 -701
  84. data/spec/isodoc/postproc_spec.rb +0 -1089
  85. data/spec/isodoc/ref_spec.rb +0 -439
  86. data/spec/isodoc/section_spec.rb +0 -998
  87. data/spec/isodoc/table_spec.rb +0 -420
  88. data/spec/isodoc/terms_spec.rb +0 -314
  89. data/spec/isodoc/word_dis_spec.rb +0 -2064
  90. data/spec/isodoc/xref_spec.rb +0 -1747
  91. data/spec/metanorma/amd_spec.rb +0 -724
  92. data/spec/metanorma/base_spec.rb +0 -1384
  93. data/spec/metanorma/blank_spec.rb +0 -38
  94. data/spec/metanorma/blocks_spec.rb +0 -624
  95. data/spec/metanorma/cleanup_spec.rb +0 -1645
  96. data/spec/metanorma/inline_spec.rb +0 -203
  97. data/spec/metanorma/lists_spec.rb +0 -197
  98. data/spec/metanorma/macros_spec.rb +0 -99
  99. data/spec/metanorma/processor_spec.rb +0 -161
  100. data/spec/metanorma/refs_spec.rb +0 -672
  101. data/spec/metanorma/section_spec.rb +0 -492
  102. data/spec/metanorma/table_spec.rb +0 -329
  103. data/spec/metanorma/validate_spec.rb +0 -2153
  104. data/spec/relaton/render_spec.rb +0 -568
  105. data/spec/requirements/requirement_components_spec.rb +0 -610
  106. data/spec/requirements/requirements_spec.rb +0 -1596
  107. data/spec/requirements/xref_spec.rb +0 -1211
  108. data/spec/spec_helper.rb +0 -313
  109. data/spec/vcr_cassettes/docrels.yml +0 -385
  110. data/spec/vcr_cassettes/withdrawn_iso.yml +0 -295
@@ -1,610 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Metanorma::Requirements::Iso::Modspec do
4
- it "processes requirement components" do
5
- input = <<~INPUT
6
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
7
- <preface><foreword id="A"><title>Preface</title>
8
- <recommendation model="ogc" id="_">
9
- <identifier>/ogc/recommendation/wfs/2</identifier>
10
- <inherit>/ss/584/2015/level/1</inherit>
11
- <subject>user</subject>
12
- <description><p id="_">I recommend <em>1</em>.</p></description>
13
- <component class="test-purpose" id="A1"><p>TEST PURPOSE</p></component>
14
- <description><p id="_">I recommend <em>2</em>.</p></description>
15
- <component class="guidance" id="A7"><p>GUIDANCE #1</p></component>
16
- <description><p id="_">I recommend <em>2a</em>.</p></description>
17
- <component class="conditions" id="A2"><p>CONDITIONS</p></component>
18
- <description><p id="_">I recommend <em>3</em>.</p></description>
19
- <component class="part" id="A3"><p>FIRST PART</p></component>
20
- <description><p id="_">I recommend <em>4</em>.</p></description>
21
- <component class="part" id="A4"><p>SECOND PART</p></component>
22
- <description><p id="_">I recommend <em>5</em>.</p></description>
23
- <component class="test-method" id="A5"><p>TEST METHOD</p></component>
24
- <description><p id="_">I recommend <em>6</em>.</p></description>
25
- <component class="part" id="A6"><p>THIRD PART</p></component>
26
- <description><p id="_">I recommend <em>7</em>.</p></description>
27
- <component class="guidance" id="A8"><p>GUIDANCE #2</p></component>
28
- <description><p id="_">I recommend <em>7a</em>.</p></description>
29
- <component class="panda GHz express" id="A7"><p>PANDA PART</p></component>
30
- <description><p id="_">I recommend <em>8</em>.</p></description>
31
- </recommendation>
32
- </foreword>
33
- </preface>
34
- </ogc-standard>
35
- INPUT
36
- presxml = <<~OUTPUT
37
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
38
- <preface>
39
- <foreword id='A' displayorder='1'>
40
- <title>Preface</title>
41
- <table id='_' class='modspec' type='recommend'>
42
- <name>Table 1 — Recommendation 1</name>
43
- <tbody>
44
- <tr>
45
- <th>Identifier</th>
46
- <td>
47
- <tt>/ogc/recommendation/wfs/2</tt>
48
- </td>
49
- </tr>
50
- <tr>
51
- <th>Subject</th>
52
- <td>user</td>
53
- </tr>
54
- <tr>
55
- <th>Prerequisite</th>
56
- <td>/ss/584/2015/level/1</td>
57
- </tr>
58
- <tr>
59
- <th>Statement</th>
60
- <td>
61
- <p id='_'>
62
- I recommend
63
- <em>1</em>
64
- .
65
- </p>
66
- </td>
67
- </tr>
68
- <tr id='A1'>
69
- <th>Test purpose</th>
70
- <td>
71
- <p>TEST PURPOSE</p>
72
- </td>
73
- </tr>
74
- <tr>
75
- <th>Statements</th>
76
- <td>
77
- <p id='_'>
78
- I recommend
79
- <em>2</em>
80
- .
81
- </p>
82
- <br/>
83
- <p id='_'>
84
- I recommend
85
- <em>2a</em>
86
- .
87
- </p>
88
- </td>
89
- </tr>
90
- <tr id='A2'>
91
- <th>Conditions</th>
92
- <td>
93
- <p>CONDITIONS</p>
94
- </td>
95
- </tr>
96
- <tr>
97
- <th>Statement</th>
98
- <td>
99
- <p id='_'>
100
- I recommend
101
- <em>3</em>
102
- .
103
- </p>
104
- </td>
105
- </tr>
106
- <tr id='A3'>
107
- <th>A</th>
108
- <td>
109
- <p>FIRST PART</p>
110
- </td>
111
- </tr>
112
- <tr>
113
- <th>Statement</th>
114
- <td>
115
- <p id='_'>
116
- I recommend
117
- <em>4</em>
118
- .
119
- </p>
120
- </td>
121
- </tr>
122
- <tr id='A4'>
123
- <th>B</th>
124
- <td>
125
- <p>SECOND PART</p>
126
- </td>
127
- </tr>
128
- <tr>
129
- <th>Statement</th>
130
- <td>
131
- <p id='_'>
132
- I recommend
133
- <em>5</em>
134
- .
135
- </p>
136
- </td>
137
- </tr>
138
- <tr id='A5'>
139
- <th>Test method</th>
140
- <td>
141
- <p>TEST METHOD</p>
142
- </td>
143
- </tr>
144
- <tr>
145
- <th>Statement</th>
146
- <td>
147
- <p id='_'>
148
- I recommend
149
- <em>6</em>
150
- .
151
- </p>
152
- </td>
153
- </tr>
154
- <tr id='A6'>
155
- <th>C</th>
156
- <td>
157
- <p>THIRD PART</p>
158
- </td>
159
- </tr>
160
- <tr>
161
- <th>Statements</th>
162
- <td>
163
- <p id='_'>
164
- I recommend
165
- <em>7</em>
166
- .
167
- </p>
168
- <br/>
169
- <p id='_'>
170
- I recommend
171
- <em>7a</em>
172
- .
173
- </p>
174
- </td>
175
- </tr>
176
- <tr id='A7'>
177
- <th>Panda GHz express</th>
178
- <td>
179
- <p>PANDA PART</p>
180
- </td>
181
- </tr>
182
- <tr>
183
- <th>Statement</th>
184
- <td>
185
- <p id='_'>
186
- I recommend
187
- <em>8</em>
188
- .
189
- </p>
190
- </td>
191
- </tr>
192
- <tr id='A7'>
193
- <th>Guidance</th>
194
- <td>
195
- <p>GUIDANCE #1</p>
196
- <br/>
197
- <p>GUIDANCE #2</p>
198
- </td>
199
- </tr>
200
- </tbody>
201
- </table>
202
- </foreword>
203
- </preface>
204
- </ogc-standard>
205
- OUTPUT
206
-
207
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
208
- .convert("test", input, true)
209
- .gsub(%r{^.*<body}m, "<body")
210
- .gsub(%r{</body>.*}m, "</body>")))
211
- .to be_equivalent_to xmlpp(presxml)
212
- end
213
-
214
- it "processes requirement components for recommendation classes" do
215
- input = <<~INPUT
216
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
217
- <preface><foreword id="A"><title>Preface</title>
218
- <recommendation model="ogc" id="_" type="class">
219
- <identifier>/ogc/recommendation/wfs/2</identifier>
220
- <inherit>/ss/584/2015/level/1</inherit>
221
- <subject>user</subject>
222
- <description><p id="_">I recommend <em>1</em>.</p></description>
223
- <component class="test-purpose" id="A1"><p>TEST PURPOSE</p></component>
224
- <description><p id="_">I recommend <em>2</em>.</p></description>
225
- <component class="conditions" id="A2"><p>CONDITIONS</p></component>
226
- <description><p id="_">I recommend <em>3</em>.</p></description>
227
- <component class="part" id="A3"><p>FIRST PART</p></component>
228
- <description><p id="_">I recommend <em>4</em>.</p></description>
229
- <component class="part" id="A4"><p>SECOND PART</p></component>
230
- <description><p id="_">I recommend <em>5</em>.</p></description>
231
- <component class="test-method" id="A5"><p>TEST METHOD</p></component>
232
- <description><p id="_">I recommend <em>6</em>.</p></description>
233
- <component class="part" id="A6"><p>THIRD PART</p></component>
234
- <description><p id="_">I recommend <em>7</em>.</p></description>
235
- <component class="panda GHz express" id="A7"><p>PANDA PART</p></component>
236
- <description><p id="_">I recommend <em>8</em>.</p></description>
237
- </recommendation>
238
- </foreword>
239
- </preface>
240
- </ogc-standard>
241
- INPUT
242
- presxml = <<~OUTPUT
243
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
244
- <preface>
245
- <foreword id='A' displayorder='1'>
246
- <title>Preface</title>
247
- <table id='_' class='modspec' type='recommendclass'>
248
- <name>Table 1 — Recommendations class 1</name>
249
- <tbody>
250
- <tr>
251
- <th>Identifier</th>
252
- <td>
253
- <tt>/ogc/recommendation/wfs/2</tt>
254
- </td>
255
- </tr>
256
- <tr>
257
- <th>Target type</th>
258
- <td>user</td>
259
- </tr>
260
- <tr>
261
- <th>Prerequisite</th>
262
- <td>/ss/584/2015/level/1</td>
263
- </tr>
264
- <tr>
265
- <th>Description</th>
266
- <td>
267
- <p id='_'>
268
- I recommend
269
- <em>1</em>
270
- .
271
- </p>
272
- </td>
273
- </tr>
274
- <tr id='A1'>
275
- <th>Test purpose</th>
276
- <td>
277
- <p>TEST PURPOSE</p>
278
- </td>
279
- </tr>
280
- <tr>
281
- <th>Description</th>
282
- <td>
283
- <p id='_'>
284
- I recommend
285
- <em>2</em>
286
- .
287
- </p>
288
- </td>
289
- </tr>
290
- <tr id='A2'>
291
- <th>Conditions</th>
292
- <td>
293
- <p>CONDITIONS</p>
294
- </td>
295
- </tr>
296
- <tr>
297
- <th>Description</th>
298
- <td>
299
- <p id='_'>
300
- I recommend
301
- <em>3</em>
302
- .
303
- </p>
304
- </td>
305
- </tr>
306
- <tr id='A3'>
307
- <th>A</th>
308
- <td>
309
- <p>FIRST PART</p>
310
- </td>
311
- </tr>
312
- <tr>
313
- <th>Description</th>
314
- <td>
315
- <p id='_'>
316
- I recommend
317
- <em>4</em>
318
- .
319
- </p>
320
- </td>
321
- </tr>
322
- <tr id='A4'>
323
- <th>B</th>
324
- <td>
325
- <p>SECOND PART</p>
326
- </td>
327
- </tr>
328
- <tr>
329
- <th>Description</th>
330
- <td>
331
- <p id='_'>
332
- I recommend
333
- <em>5</em>
334
- .
335
- </p>
336
- </td>
337
- </tr>
338
- <tr id='A5'>
339
- <th>Test method</th>
340
- <td>
341
- <p>TEST METHOD</p>
342
- </td>
343
- </tr>
344
- <tr>
345
- <th>Description</th>
346
- <td>
347
- <p id='_'>
348
- I recommend
349
- <em>6</em>
350
- .
351
- </p>
352
- </td>
353
- </tr>
354
- <tr id='A6'>
355
- <th>C</th>
356
- <td>
357
- <p>THIRD PART</p>
358
- </td>
359
- </tr>
360
- <tr>
361
- <th>Description</th>
362
- <td>
363
- <p id='_'>
364
- I recommend
365
- <em>7</em>
366
- .
367
- </p>
368
- </td>
369
- </tr>
370
- <tr id='A7'>
371
- <th>Panda GHz express</th>
372
- <td>
373
- <p>PANDA PART</p>
374
- </td>
375
- </tr>
376
- <tr>
377
- <th>Description</th>
378
- <td>
379
- <p id='_'>
380
- I recommend
381
- <em>8</em>
382
- .
383
- </p>
384
- </td>
385
- </tr>
386
- </tbody>
387
- </table>
388
- </foreword>
389
- </preface>
390
- </ogc-standard>
391
- OUTPUT
392
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
393
- .convert("test", input, true)
394
- .gsub(%r{^.*<body}m, "<body")
395
- .gsub(%r{</body>.*}m, "</body>")))
396
- .to be_equivalent_to xmlpp(presxml)
397
- end
398
-
399
- it "processes nested requirement steps" do
400
- input = <<~INPUT
401
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
402
- <preface>
403
- <foreword id="A"><title>Preface</title>
404
- <requirement model="ogc" id='A1'>
405
- <component exclude='false' class='test method type'>
406
- <p id='_'>Manual Inspection</p>
407
- </component>
408
- <component exclude='false' class='test-method'>
409
- <p id='1'>
410
- <component exclude='false' class='step'>
411
- <p id='2'>For each UML class defined or referenced in the Tunnel Package:</p>
412
- <component exclude='false' class='step'>
413
- <p id='3'>
414
- Validate that the Implementation Specification contains a data
415
- element which represents the same concept as that defined for
416
- the UML class.
417
- </p>
418
- </component>
419
- <component exclude='false' class='step'>
420
- <p id='4'>
421
- Validate that the data element has the same relationships with
422
- other elements as those defined for the UML class. Validate that
423
- those relationships have the same source, target, direction,
424
- roles, and multiplicies as those documented in the Conceptual
425
- Model.
426
- </p>
427
- </component>
428
- </component>
429
- </p>
430
- </component>
431
- </requirement>
432
- </foreword></preface>
433
- </ogc-standard>
434
- INPUT
435
- presxml = <<~PRESXML
436
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
437
- <preface>
438
- <foreword id='A' displayorder='1'>
439
- <title>Preface</title>
440
- <table id='A1' class='modspec' type='recommend'>
441
- <name>Table 1 — Requirement 1</name>
442
- <tbody>
443
- <tr>
444
- <th>Test method type</th>
445
- <td>
446
- <p id='_'>Manual Inspection</p>
447
- </td>
448
- </tr>
449
- <tr>
450
- <th>Test method</th>
451
- <td>
452
- <p id='1'>
453
- <ol class="steps">
454
- <li>
455
- <p id='2'>For each UML class defined or referenced in the Tunnel Package:</p>
456
- <ol class="steps">
457
- <li>
458
- <p id='3'>
459
- Validate that the Implementation Specification
460
- contains a data element which represents the same
461
- concept as that defined for the UML class.
462
- </p>
463
- </li>
464
- <li>
465
- <p id='4'>
466
- Validate that the data element has the same
467
- relationships with other elements as those defined for
468
- the UML class. Validate that those relationships have
469
- the same source, target, direction, roles, and
470
- multiplicies as those documented in the Conceptual
471
- Model.
472
- </p>
473
- </li>
474
- </ol>
475
- </li>
476
- </ol>
477
- </p>
478
- </td>
479
- </tr>
480
- </tbody>
481
- </table>
482
- </foreword>
483
- </preface>
484
- </ogc-standard>
485
- PRESXML
486
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
487
- .convert("test", input, true)))
488
- .to be_equivalent_to xmlpp(presxml)
489
- end
490
-
491
- it "processes bidirectional requirement/conformance tests" do
492
- input = <<~INPUT
493
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
494
- <preface>
495
- <foreword id="A"><title>Preface</title>
496
- <requirement model="ogc" id='A1' type="general">
497
- <title>First</title>
498
- <identifier>/ogc/recommendation/wfs/1</identifier>
499
- </requirement>
500
- <requirement model="ogc" id='A2' type="verification">
501
- <title>Second</title>
502
- <identifier>/ogc/recommendation/wfs/2</identifier>
503
- <classification><tag>target</tag><value>/ogc/recommendation/wfs/1</value></classification>
504
- </requirement>
505
- <requirement model="ogc" id='A3' type="class">
506
- <title>Third</title>
507
- <identifier>/ogc/recommendation/wfs/3</identifier>
508
- </requirement>
509
- <requirement model="ogc" id='A4' type="conformanceclass">
510
- <title>Fourth</title>
511
- <identifier>/ogc/recommendation/wfs/4</identifier>
512
- <classification><tag>target</tag><value>/ogc/recommendation/wfs/3</value></classification>
513
- </requirement>
514
- </foreword></preface>
515
- </ogc-standard>
516
- INPUT
517
- presxml = <<~PRESXML
518
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
519
- <preface>
520
- <foreword id='A' displayorder='1'>
521
- <title>Preface</title>
522
- <table id='A1' class='modspec' type='recommend'>
523
- <name>Table 1 — Requirement 1: First</name>
524
- <tbody>
525
- <tr>
526
- <th>Identifier</th>
527
- <td>
528
- <tt>/ogc/recommendation/wfs/1</tt>
529
- </td>
530
- </tr>
531
- <tr>
532
- <th>Conformance test</th>
533
- <td>
534
- <xref target='A2'>
535
- Conformance test 1:
536
- Second
537
- </xref>
538
- </td>
539
- </tr>
540
- </tbody>
541
- </table>
542
- <table id='A2' class='modspec' type='recommendtest'>
543
- <name>Table 2 — Conformance test 1: Second</name>
544
- <tbody>
545
- <tr>
546
- <th>Identifier</th>
547
- <td>
548
- <tt>/ogc/recommendation/wfs/2</tt>
549
- </td>
550
- </tr>
551
- <tr>
552
- <th>Requirement</th>
553
- <td>
554
- <xref target='A1'>
555
- Requirement 1:
556
- First
557
- </xref>
558
- </td>
559
- </tr>
560
- </tbody>
561
- </table>
562
- <table id='A3' class='modspec' type='recommendclass'>
563
- <name>Table 3 — Requirements class 1: Third</name>
564
- <tbody>
565
- <tr>
566
- <th>Identifier</th>
567
- <td>
568
- <tt>/ogc/recommendation/wfs/3</tt>
569
- </td>
570
- </tr>
571
- <tr>
572
- <th>Conformance class</th>
573
- <td>
574
- <xref target='A4'>
575
- Conformance class 1:
576
- Fourth
577
- </xref>
578
- </td>
579
- </tr>
580
- </tbody>
581
- </table>
582
- <table id='A4' class='modspec' type='recommendclass'>
583
- <name>Table 4 — Conformance class 1: Fourth</name>
584
- <tbody>
585
- <tr>
586
- <th>Identifier</th>
587
- <td>
588
- <tt>/ogc/recommendation/wfs/4</tt>
589
- </td>
590
- </tr>
591
- <tr>
592
- <th>Requirements class</th>
593
- <td>
594
- <xref target='A3'>
595
- Requirements class 1:
596
- Third
597
- </xref>
598
- </td>
599
- </tr>
600
- </tbody>
601
- </table>
602
- </foreword>
603
- </preface>
604
- </ogc-standard>
605
- PRESXML
606
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
607
- .convert("test", input, true)))
608
- .to be_equivalent_to xmlpp(presxml)
609
- end
610
- end