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,1596 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Metanorma::Requirements::Iso::Modspec do
4
- it "treates Modspec requirements as tables for cross-referencing" do
5
- input = <<~INPUT
6
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
7
- <preface><foreword id="A"><title>Preface</title>
8
- <table id="A0"/>
9
- <permission model="ogc" id="A1">
10
- <title>First</title>
11
- <identifier>/ogc/recommendation/wfs/2</identifier>
12
- </permission>
13
- <table id="A2"/>
14
- </foreword>
15
- <introduction id="B"><title>Introduction</title>
16
- <p><xref target="A0"/><xref target="A1"/><xref target="A2"/></p>
17
- </introduction>
18
- </preface>
19
- </ogc-standard>
20
- INPUT
21
- presxml = <<~OUTPUT
22
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
23
- <preface>
24
- <foreword id='A' displayorder='1'>
25
- <title>Preface</title>
26
- <table id='A0'>
27
- <name>Table 1</name>
28
- </table>
29
- <table id='A1' class='modspec' type='recommend'>
30
- <name>Table 2 — Permission 1: First</name>
31
- <tbody>
32
- <tr>
33
- <th>Identifier</th>
34
- <td>
35
- <tt>/ogc/recommendation/wfs/2</tt>
36
- </td>
37
- </tr>
38
- </tbody>
39
- </table>
40
- <table id='A2'>
41
- <name>Table 3</name>
42
- </table>
43
- </foreword>
44
- <introduction id='B' displayorder='2'>
45
- <title>Introduction</title>
46
- <p>
47
- <xref target='A0'>
48
- <span class='citetbl'>Table 1</span>
49
- </xref>
50
- <xref target='A1'>
51
- <span class='citetbl'>Table 2, Permission 1</span>
52
- </xref>
53
- <xref target='A2'>
54
- <span class='citetbl'>Table 3</span>
55
- </xref>
56
- </p>
57
- </introduction>
58
- </preface>
59
- </ogc-standard>
60
- OUTPUT
61
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
62
- .convert("test", input, true)
63
- .gsub(%r{^.*<body}m, "<body")
64
- .gsub(%r{</body>.*}m, "</body>")))
65
- .to be_equivalent_to xmlpp(presxml)
66
- end
67
-
68
- it "processes permissions" do
69
- input = <<~INPUT
70
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
71
- <preface><foreword id="A"><title>Preface</title>
72
- <permission model="ogc" id="A1">
73
- <title>First</title>
74
- <identifier>/ogc/recommendation/wfs/2</identifier>
75
- <inherit>/ss/584/2015/level/1</inherit>
76
- <inherit><eref type="inline" bibitemid="rfc2616" citeas="RFC 2616">RFC 2616 (HTTP/1.1)</eref></inherit>
77
- <subject>user</subject>
78
- <classification> <tag>control-class</tag> <value>Technical</value> </classification><classification> <tag>priority</tag> <value>P0</value> </classification><classification> <tag>family</tag> <value>System and Communications Protection</value> </classification><classification> <tag>family</tag> <value>System and Communications Protocols</value> </classification>
79
- <description>
80
- <p id="_">I recommend <em>this</em>.</p>
81
- </description>
82
- <specification exclude="true" type="tabular">
83
- <p id="_">This is the object of the recommendation:</p>
84
- <table id="_">
85
- <tbody>
86
- <tr>
87
- <td style="text-align:left;">Object</td>
88
- <td style="text-align:left;">Value</td>
89
- <td style="text-align:left;">Accomplished</td>
90
- </tr>
91
- </tbody>
92
- </table>
93
- </specification>
94
- <description>
95
- <dl>
96
- <dt>A</dt><dd>B</dd>
97
- <dt>C</dt><dd>D</dd>
98
- </dl>
99
- </description>
100
- <measurement-target exclude="false">
101
- <p id="_">The measurement target shall be measured as:</p>
102
- <formula id="_">
103
- <stem type="AsciiMath">r/1 = 0</stem>
104
- </formula>
105
- </measurement-target>
106
- <verification exclude="false">
107
- <p id="_">The following code will be run for verification:</p>
108
- <sourcecode id="_">CoreRoot(success): HttpResponse
109
- if (success)
110
- recommendation(label: success-response)
111
- end
112
- </sourcecode>
113
- </verification>
114
- <import exclude="true">
115
- <sourcecode id="_">success-response()</sourcecode>
116
- </import>
117
- <component class="test-purpose"><p>TEST PURPOSE</p></component>
118
- <component class="test-method"><p>TEST METHOD</p></component>
119
- <component class="conditions"><p>CONDITIONS</p></component>
120
- <component class="part"><p>FIRST PART</p></component>
121
- <component class="part"><p>SECOND PART</p></component>
122
- <component class="part"><p>THIRD PART</p></component>
123
- <component class="reference"><p>REFERENCE PART</p></component>
124
- <component class="panda GHz express"><p>PANDA PART</p></component>
125
- </permission>
126
- </foreword></preface>
127
- <bibliography><references id="_bibliography" obligation="informative" normative="false">
128
- <title>Bibliography</title>
129
- <bibitem id="rfc2616" type="standard"> <fetched>2020-03-27</fetched> <title format="text/plain" language="en" script="Latn">Hypertext Transfer Protocol — HTTP/1.1</title> <uri type="xml">https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2616.xml</uri> <uri type="src">https://www.rfc-editor.org/info/rfc2616</uri> <docidentifier type="IETF">RFC 2616</docidentifier> <docidentifier type="IETF" scope="anchor">RFC2616</docidentifier> <docidentifier type="DOI">10.17487/RFC2616</docidentifier> <date type="published"> <on>1999-06</on> </date> <contributor> <role type="author"/> <person> <name> <completename language="en">R. Fielding</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">J. Gettys</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">J. Mogul</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">H. Frystyk</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">L. Masinter</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">P. Leach</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <contributor> <role type="author"/> <person> <name> <completename language="en">T. Berners-Lee</completename> </name> <affiliation> <organization> <name>IETF</name> <abbreviation>IETF</abbreviation> </organization> </affiliation> </person> </contributor> <language>en</language> <script>Latn</script> <abstract format="text/plain" language="en" script="Latn">HTTP has been in use by the World-Wide Web global information initiative since 1990. This specification defines the protocol referred to as “HTTP/1.1”, and is an update to RFC 2068. [STANDARDS-TRACK]</abstract> <series type="main"> <title format="text/plain" language="en" script="Latn">RFC</title> <number>2616</number> </series> <place>Fremont, CA</place></bibitem>
130
- </references></bibliography>
131
- </ogc-standard>
132
- INPUT
133
-
134
- presxml = <<~OUTPUT
135
- <ogc-standard xmlns="https://standards.opengeospatial.org/document" type="presentation">
136
- <preface><foreword id="A" displayorder="1"><title>Preface</title>
137
- <table id="A1" class="modspec" type="recommend">
138
- <name>Table 1 — Permission 1: First</name>
139
- <tbody>
140
- <tr><th>Identifier</th><td><tt>/ogc/recommendation/wfs/2</tt></td></tr>
141
- <tr><th>Subject</th><td>user</td></tr>
142
- <tr><th>Prerequisites</th><td>/ss/584/2015/level/1<br/>
143
- <eref type="inline" bibitemid="rfc2616" citeas="RFC 2616">RFC 2616 (HTTP/1.1)</eref></td></tr>
144
- <tr>
145
- <th>Control-class</th>
146
- <td>Technical</td>
147
- </tr>
148
- <tr>
149
- <th>Priority</th>
150
- <td>P0</td>
151
- </tr>
152
- <tr>
153
- <th>Family</th>
154
- <td>System and Communications Protection<br/>
155
- System and Communications Protocols</td>
156
- </tr>
157
- <tr><th>Statement</th><td>
158
- <p id="_">I recommend <em>this</em>.</p>
159
- </td>
160
- </tr>
161
- <tr>
162
- <th>A</th>
163
- <td>B</td>
164
- </tr>
165
- <tr>
166
- <th>C</th>
167
- <td>D</td>
168
- </tr>
169
- <tr>
170
- <td colspan='2'>
171
- <p id='_'>The measurement target shall be measured as:</p>
172
- <formula id='_'>
173
- <name>1</name>
174
- <stem type='AsciiMath'>r/1 = 0</stem>
175
- </formula>
176
- </td>
177
- </tr>
178
- <tr>
179
- <td colspan='2'>
180
- <p id='_'>The following code will be run for verification:</p>
181
- <sourcecode id='_'>
182
- CoreRoot(success): HttpResponse if (success)
183
- recommendation(label: success-response) end
184
- </sourcecode>
185
- </td>
186
- </tr>
187
- <tr>
188
- <th>Test purpose</th>
189
- <td>
190
- <p>TEST PURPOSE</p>
191
- </td>
192
- </tr>
193
- <tr>
194
- <th>Test method</th>
195
- <td>
196
- <p>TEST METHOD</p>
197
- </td>
198
- </tr>
199
- <tr>
200
- <th>Conditions</th>
201
- <td>
202
- <p>CONDITIONS</p>
203
- </td>
204
- </tr>
205
- <tr>
206
- <th>A</th>
207
- <td>
208
- <p>FIRST PART</p>
209
- </td>
210
- </tr>
211
- <tr>
212
- <th>B</th>
213
- <td>
214
- <p>SECOND PART</p>
215
- </td>
216
- </tr>
217
- <tr>
218
- <th>C</th>
219
- <td>
220
- <p>THIRD PART</p>
221
- </td>
222
- </tr>
223
- <tr>
224
- <th>Reference</th>
225
- <td>
226
- <p>REFERENCE PART</p>
227
- </td>
228
- </tr>
229
- <tr>
230
- <th>Panda GHz express</th>
231
- <td>
232
- <p>PANDA PART</p>
233
- </td>
234
- </tr>
235
- </tbody></table>
236
- </foreword></preface>
237
- <bibliography><references id="_bibliography" obligation="informative" normative="false" displayorder="2">
238
- <title depth="1">Bibliography</title>
239
- <bibitem id="rfc2616" type="standard">
240
- <formattedref> <em>
241
- <span class='stddocTitle'>Hypertext Transfer Protocol — HTTP/1.1</span>
242
- </em>
243
- </formattedref>
244
- <uri type='xml'>https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2616.xml</uri>
245
- <uri type='src'>https://www.rfc-editor.org/info/rfc2616</uri>
246
- <docidentifier type='metanorma-ordinal'>[1]</docidentifier>
247
- <docidentifier type='IETF'>IETF RFC 2616</docidentifier>
248
- <docidentifier type='IETF' scope='anchor'>IETF RFC2616</docidentifier>
249
- <docidentifier type='DOI'>DOI 10.17487/RFC2616</docidentifier>
250
- </bibitem>
251
- </references></bibliography>
252
- </ogc-standard>
253
- OUTPUT
254
-
255
- html = <<~OUTPUT
256
- <body lang='en'>
257
- <div class='title-section'>
258
- <p> </p>
259
- </div>
260
- <br/>
261
- <div class='prefatory-section'>
262
- <p> </p>
263
- </div>
264
- <br/>
265
- <div class='main-section'>
266
- <br/>
267
- <div id='A'>
268
- <h1 class='ForewordTitle'>Preface</h1>
269
- <p class='TableTitle' style='text-align:center;'>Table 1 — Permission 1: First</p>
270
- <table id='A1' class='modspec' style='border-width:1px;border-spacing:0;'>
271
- <tbody>
272
- <tr>
273
- <th style='font-weight:bold;border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;' scope='row'>Identifier</th>
274
- <td style='border-top:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;'>
275
- <tt>/ogc/recommendation/wfs/2</tt>
276
- </td>
277
- </tr>
278
- <tr>
279
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Subject</th>
280
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>user</td>
281
- </tr>
282
- <tr>
283
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Prerequisites</th>
284
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
285
- /ss/584/2015/level/1
286
- <br/>
287
- <a href='#rfc2616'>RFC 2616 (HTTP/1.1)</a>
288
- </td>
289
- </tr>
290
- <tr>
291
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Control-class</th>
292
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>Technical</td>
293
- </tr>
294
- <tr>
295
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Priority</th>
296
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>P0</td>
297
- </tr>
298
- <tr>
299
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Family</th>
300
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
301
- System and Communications Protection
302
- <br/>
303
- System and Communications Protocols
304
- </td>
305
- </tr>
306
- <tr>
307
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Statement</th>
308
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
309
- <p id='_'>
310
- I recommend
311
- <i>this</i>
312
- .
313
- </p>
314
- </td>
315
- </tr>
316
- <tr>
317
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>A</th>
318
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>B</td>
319
- </tr>
320
- <tr>
321
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>C</th>
322
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>D</td>
323
- </tr>
324
- <tr>
325
- <td colspan='2' style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
326
- <p id='_'>The measurement target shall be measured as:</p>
327
- <div id='_'>
328
- <div class='formula'>
329
- <p>
330
- <span class='stem'>(#(r/1 = 0)#)</span>
331
-   (1)
332
- </p>
333
- </div>
334
- </div>
335
- </td>
336
- </tr>
337
- <tr>
338
- <td colspan='2' style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
339
- <p id='_'>The following code will be run for verification:</p>
340
- <pre id='_' class='prettyprint '>
341
- <br/>
342
-       CoreRoot(success): HttpResponse
343
- if (success)
344
- <br/>
345
-       recommendation(label:
346
- success-response) end
347
- <br/>
348
-    
349
- </pre>
350
- </td>
351
- </tr>
352
- <tr>
353
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Test purpose</th>
354
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
355
- <p>TEST PURPOSE</p>
356
- </td>
357
- </tr>
358
- <tr>
359
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Test method</th>
360
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
361
- <p>TEST METHOD</p>
362
- </td>
363
- </tr>
364
- <tr>
365
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Conditions</th>
366
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
367
- <p>CONDITIONS</p>
368
- </td>
369
- </tr>
370
- <tr>
371
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>A</th>
372
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
373
- <p>FIRST PART</p>
374
- </td>
375
- </tr>
376
- <tr>
377
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>B</th>
378
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
379
- <p>SECOND PART</p>
380
- </td>
381
- </tr>
382
- <tr>
383
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>C</th>
384
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
385
- <p>THIRD PART</p>
386
- </td>
387
- </tr>
388
- <tr>
389
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.0pt;' scope='row'>Reference</th>
390
- <td style='border-top:none;border-bottom:solid windowtext 1.0pt;'>
391
- <p>REFERENCE PART</p>
392
- </td>
393
- </tr>
394
- <tr>
395
- <th style='font-weight:bold;border-top:none;border-bottom:solid windowtext 1.5pt;' scope='row'>Panda GHz express</th>
396
- <td style='border-top:none;border-bottom:solid windowtext 1.5pt;'>
397
- <p>PANDA PART</p>
398
- </td>
399
- </tr>
400
- </tbody>
401
- </table>
402
- </div>
403
- <p class='zzSTDTitle1'/>
404
- <br/>
405
- <div>
406
- <h1 class='Section3'>Bibliography</h1>
407
- <p id='rfc2616' class='Biblio'>
408
- [1]  IETF RFC 2616,
409
- <i> Hypertext Transfer Protocol — HTTP/1.1 </i>
410
- </p>
411
- </div>
412
- </div>
413
- </body>
414
- OUTPUT
415
-
416
- doc = <<~OUTPUT
417
- <body lang='EN-US' link='blue' vlink='#954F72'>
418
- <div class='WordSection1'>
419
- <p> </p>
420
- </div>
421
- <p>
422
- <br clear='all' class='section'/>
423
- </p>
424
- <div class='WordSection2'>
425
- <p>
426
- <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
427
- </p>
428
- <div id='A'>
429
- <h1 class='ForewordTitle'>Preface</h1>
430
- <p class='Tabletitle' style='text-align:center;'>Table 1 — Permission 1: First</p>
431
- <div align='center' class='table_container'>
432
- <table id='A1' class='MsoISOTable' style='mso-table-anchor-horizontal:column;mso-table-overlap:never;border-spacing:0;border-width:1px;' width='100%'>
433
- <tbody>
434
- <tr>
435
- <th style='font-weight:bold;border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Identifier</th>
436
- <td style='border-top:solid windowtext 1.5pt;mso-border-top-alt:solid windowtext 1.5pt;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
437
- <tt>/ogc/recommendation/wfs/2</tt>
438
- </td>
439
- </tr>
440
- <tr>
441
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Subject</th>
442
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>user</td>
443
- </tr>
444
- <tr>
445
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Prerequisites</th>
446
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
447
- /ss/584/2015/level/1
448
- <br/>
449
- <a href='#rfc2616'>RFC 2616 (HTTP/1.1)</a>
450
- </td>
451
- </tr>
452
- <tr>
453
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Control-class</th>
454
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Technical</td>
455
- </tr>
456
- <tr>
457
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Priority</th>
458
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>P0</td>
459
- </tr>
460
- <tr>
461
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Family</th>
462
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
463
- System and Communications Protection
464
- <br/>
465
- System and Communications Protocols
466
- </td>
467
- </tr>
468
- <tr>
469
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Statement</th>
470
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
471
- <p class='ForewordText' id='_'>
472
- I recommend
473
- <i>this</i>
474
- .
475
- </p>
476
- </td>
477
- </tr>
478
- <tr>
479
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>A</th>
480
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>B</td>
481
- </tr>
482
- <tr>
483
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>C</th>
484
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>D</td>
485
- </tr>
486
- <tr>
487
- <td colspan='2' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
488
- <p class='ForewordText' id='_'>The measurement target shall be measured as:</p>
489
- <div id='_'>
490
- <div class='formula'>
491
- <p>
492
- <span class='stem'>(#(r/1 = 0)#)</span>
493
- <span style='mso-tab-count:1'>  </span>
494
- (1)
495
- </p>
496
- </div>
497
- </div>
498
- </td>
499
- </tr>
500
- <tr>
501
- <td colspan='2' style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
502
- <p class='ForewordText' id='_'>The following code will be run for verification:</p>
503
- <p id='_' class='Sourcecode'>
504
- <br/>
505
-       CoreRoot(success): HttpResponse
506
- if (success)
507
- <br/>
508
-       recommendation(label:
509
- success-response) end
510
- <br/>
511
-    
512
- </p>
513
- </td>
514
- </tr>
515
- <tr>
516
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Test purpose</th>
517
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
518
- <p class='ForewordText'>TEST PURPOSE</p>
519
- </td>
520
- </tr>
521
- <tr>
522
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Test method</th>
523
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
524
- <p class='ForewordText'>TEST METHOD</p>
525
- </td>
526
- </tr>
527
- <tr>
528
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Conditions</th>
529
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
530
- <p class='ForewordText'>CONDITIONS</p>
531
- </td>
532
- </tr>
533
- <tr>
534
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>A</th>
535
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
536
- <p class='ForewordText'>FIRST PART</p>
537
- </td>
538
- </tr>
539
- <tr>
540
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>B</th>
541
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
542
- <p class='ForewordText'>SECOND PART</p>
543
- </td>
544
- </tr>
545
- <tr>
546
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>C</th>
547
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
548
- <p class='ForewordText'>THIRD PART</p>
549
- </td>
550
- </tr>
551
- <tr>
552
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>Reference</th>
553
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.0pt;mso-border-bottom-alt:solid windowtext 1.0pt;'>
554
- <p class='ForewordText'>REFERENCE PART</p>
555
- </td>
556
- </tr>
557
- <tr>
558
- <th style='font-weight:bold;border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>Panda GHz express</th>
559
- <td style='border-top:none;mso-border-top-alt:none;border-bottom:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;'>
560
- <p class='ForewordText'>PANDA PART</p>
561
- </td>
562
- </tr>
563
- </tbody>
564
- </table>
565
- </div>
566
- </div>
567
- <p> </p>
568
- </div>
569
- <p>
570
- <br clear='all' class='section'/>
571
- </p>
572
- <div class='WordSection3'>
573
- <p class='zzSTDTitle1'/>
574
- <p>
575
- <br clear='all' style='mso-special-character:line-break;page-break-before:always'/>
576
- </p>
577
- <div>
578
- <h1 class='BiblioTitle'>Bibliography</h1>
579
- <p id='rfc2616' class='Biblio'>
580
- [1]
581
- <span style='mso-tab-count:1'>  </span>
582
- IETF RFC 2616,
583
- <i> Hypertext Transfer Protocol — HTTP/1.1 </i>
584
- </p>
585
- </div>
586
- </div>
587
- <br clear='all' style='page-break-before:left;mso-break-type:section-break'/>
588
- <div class='colophon'/>
589
- </body>
590
- OUTPUT
591
-
592
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
593
- .convert("test", input, true)
594
- .gsub(%r{^.*<body}m, "<body")
595
- .gsub(%r{</body>.*}m, "</body>")))
596
- .to be_equivalent_to xmlpp(presxml)
597
- expect(xmlpp(IsoDoc::Iso::HtmlConvert.new({})
598
- .convert("test", presxml, true)
599
- .gsub(%r{^.*<body}m, "<body")
600
- .gsub(%r{</body>.*}m, "</body>")))
601
- .to be_equivalent_to xmlpp(html)
602
- expect(xmlpp(IsoDoc::Iso::WordConvert.new({})
603
- .convert("test", presxml, true)
604
- .gsub(%r{^.*<body}m, "<body")
605
- .gsub(%r{</body>.*}m, "</body>")))
606
- .to be_equivalent_to xmlpp(doc)
607
- end
608
-
609
- it "processes permission verifications" do
610
- input = <<~INPUT
611
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
612
- <preface>
613
- <foreword id="A"><title>Preface</title>
614
- <permission model="ogc" id="A1" type="verification">
615
- <title>First</title>
616
- <identifier>/ogc/recommendation/wfs/2</identifier>
617
- <inherit>/ss/584/2015/level/1</inherit>
618
- <subject>user</subject>
619
- <classification> <tag>control-class</tag> <value>Technical</value> </classification><classification> <tag>priority</tag> <value>P0</value> </classification><classification> <tag>family</tag> <value>System and Communications Protection</value> </classification><classification> <tag>family</tag> <value>System and Communications Protocols</value> </classification>
620
- <description>
621
- <p id="_">I recommend <em>this</em>.</p>
622
- </description>
623
- <specification exclude="true" type="tabular">
624
- <p id="_">This is the object of the recommendation:</p>
625
- <table id="_">
626
- <tbody>
627
- <tr>
628
- <td style="text-align:left;">Object</td>
629
- <td style="text-align:left;">Value</td>
630
- <td style="text-align:left;">Accomplished</td>
631
- </tr>
632
- </tbody>
633
- </table>
634
- </specification>
635
- <description>
636
- <dl>
637
- <dt>A</dt><dd>B</dd>
638
- <dt>C</dt><dd>D</dd>
639
- </dl>
640
- </description>
641
- <measurement-target exclude="false">
642
- <p id="_">The measurement target shall be measured as:</p>
643
- <formula id="_">
644
- <stem type="AsciiMath">r/1 = 0</stem>
645
- </formula>
646
- </measurement-target>
647
- <verification exclude="false">
648
- <p id="_">The following code will be run for verification:</p>
649
- <sourcecode id="_">CoreRoot(success): HttpResponse
650
- if (success)
651
- recommendation(label: success-response)
652
- end
653
- </sourcecode>
654
- </verification>
655
- <import exclude="true">
656
- <sourcecode id="_">success-response()</sourcecode>
657
- </import>
658
- </permission>
659
- </foreword></preface>
660
- </ogc-standard>
661
- INPUT
662
-
663
- presxml = <<~OUTPUT
664
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
665
- <preface>
666
- <foreword id='A' displayorder='1'>
667
- <title>Preface</title>
668
- <table id='A1' class='modspec' type='recommendtest'>
669
- <name>Table 1 — Conformance test 1: First</name>
670
- <tbody>
671
- <tr>
672
- <th>Identifier</th>
673
- <td><tt>/ogc/recommendation/wfs/2</tt></td>
674
- </tr>
675
- <tr>
676
- <th>Subject</th>
677
- <td>user</td>
678
- </tr>
679
- <tr>
680
- <th>Prerequisite</th>
681
- <td>/ss/584/2015/level/1</td>
682
- </tr>
683
- <tr>
684
- <th>Control-class</th>
685
- <td>Technical</td>
686
- </tr>
687
- <tr>
688
- <th>Priority</th>
689
- <td>P0</td>
690
- </tr>
691
- <tr>
692
- <th>Family</th>
693
- <td>System and Communications Protection<br/>
694
- System and Communications Protocols</td>
695
- </tr>
696
- <tr><th>Statement</th><td>
697
- <p id="_">I recommend <em>this</em>.</p>
698
- </td>
699
- </tr>
700
- <tr>
701
- <th>A</th>
702
- <td>B</td>
703
- </tr>
704
- <tr>
705
- <th>C</th>
706
- <td>D</td>
707
- </tr>
708
- <tr>
709
- <td colspan='2'>
710
- <p id='_'>The measurement target shall be measured as:</p>
711
- <formula id='_'>
712
- <name>1</name>
713
- <stem type='AsciiMath'>r/1 = 0</stem>
714
- </formula>
715
- </td>
716
- </tr>
717
- <tr>
718
- <td colspan='2'>
719
- <p id='_'>The following code will be run for verification:</p>
720
- <sourcecode id='_'>
721
- CoreRoot(success): HttpResponse if (success)
722
- recommendation(label: success-response) end#{' '}
723
- </sourcecode>
724
- </td>
725
- </tr>
726
- </tbody>
727
- </table>
728
- </foreword>
729
- </preface>
730
- </ogc-standard>
731
- OUTPUT
732
-
733
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
734
- .convert("test", input, true)
735
- .gsub(%r{^.*<body}m, "<body")
736
- .gsub(%r{</body>.*}m, "</body>")))
737
- .to be_equivalent_to xmlpp(presxml)
738
- end
739
-
740
- it "processes abstract tests" do
741
- input = <<~INPUT
742
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
743
- <preface>
744
- <foreword id="A"><title>Preface</title>
745
- <permission model="ogc" id="A1" type="abstracttest">
746
- <title>First</title>
747
- <identifier>/ogc/recommendation/wfs/2</identifier>
748
- <inherit>/ss/584/2015/level/1</inherit>
749
- <subject>user</subject>
750
- <classification> <tag>control-class</tag> <value>Technical</value> </classification><classification> <tag>priority</tag> <value>P0</value> </classification><classification> <tag>family</tag> <value>System and Communications Protection</value> </classification><classification> <tag>family</tag> <value>System and Communications Protocols</value> </classification>
751
- <description>
752
- <p id="_">I recommend <em>this</em>.</p>
753
- </description>
754
- <specification exclude="true" type="tabular">
755
- <p id="_">This is the object of the recommendation:</p>
756
- <table id="_">
757
- <tbody>
758
- <tr>
759
- <td style="text-align:left;">Object</td>
760
- <td style="text-align:left;">Value</td>
761
- <td style="text-align:left;">Accomplished</td>
762
- </tr>
763
- </tbody>
764
- </table>
765
- </specification>
766
- <description>
767
- <dl>
768
- <dt>A</dt><dd>B</dd>
769
- <dt>C</dt><dd>D</dd>
770
- </dl>
771
- </description>
772
- <measurement-target exclude="false">
773
- <p id="_">The measurement target shall be measured as:</p>
774
- <formula id="_">
775
- <stem type="AsciiMath">r/1 = 0</stem>
776
- </formula>
777
- </measurement-target>
778
- <verification exclude="false">
779
- <p id="_">The following code will be run for verification:</p>
780
- <sourcecode id="_">CoreRoot(success): HttpResponse
781
- if (success)
782
- recommendation(label: success-response)
783
- end
784
- </sourcecode>
785
- </verification>
786
- <import exclude="true">
787
- <sourcecode id="_">success-response()</sourcecode>
788
- </import>
789
- </permission>
790
- </foreword></preface>
791
- </ogc-standard>
792
- INPUT
793
- presxml = <<~OUTPUT
794
- <ogc-standard xmlns="https://standards.opengeospatial.org/document" type="presentation">
795
- <preface>
796
- <foreword id="A" displayorder="1"><title>Preface</title>
797
- <table id="A1" type="recommendtest" class="modspec">
798
- <name>Table 1 — Abstract test 1: First</name>
799
- <tbody>
800
- <tr><th>Identifier</th><td><tt>/ogc/recommendation/wfs/2</tt></td></tr>
801
- <tr><th>Subject</th><td>user</td></tr>
802
- <tr><th>Prerequisite</th><td>/ss/584/2015/level/1</td></tr><tr><th>Control-class</th><td>Technical</td></tr><tr><th>Priority</th><td>P0</td></tr>
803
- <tr><th>Family</th><td>System and Communications Protection<br/>
804
- System and Communications Protocols</td></tr>
805
-
806
- <tr><th>Statement</th><td>
807
- <p id="_">I recommend <em>this</em>.</p>
808
- </td>
809
- </tr>
810
- <tr>
811
- <th>A</th>
812
- <td>B</td>
813
- </tr>
814
- <tr>
815
- <th>C</th>
816
- <td>D</td>
817
- </tr>
818
- <tr> <td colspan='2'>
819
- <p id="_">The measurement target shall be measured as:</p>
820
- <formula id="_"><name>1</name>
821
- <stem type="AsciiMath">r/1 = 0</stem>
822
- </formula>
823
- </td></tr><tr><td colspan="2">
824
- <p id="_">The following code will be run for verification:</p>
825
- <sourcecode id="_">CoreRoot(success): HttpResponse
826
- if (success)
827
- recommendation(label: success-response)
828
- end
829
- </sourcecode>
830
- </td></tr></tbody></table>
831
- </foreword></preface>
832
- </ogc-standard>
833
- OUTPUT
834
-
835
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
836
- .convert("test", input, true)
837
- .gsub(%r{^.*<body}m, "<body")
838
- .gsub(%r{</body>.*}m, "</body>")))
839
- .to be_equivalent_to xmlpp(presxml)
840
- end
841
-
842
- it "processes permission classes" do
843
- input = <<~INPUT
844
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
845
- <preface><foreword id="A"><title>Preface</title>
846
- <permission model="ogc" id="A1" type="class" keep-with-next="true" keep-lines-together="true">
847
- <title>First</title>
848
- <identifier>/ogc/recommendation/wfs/2</identifier>
849
- <inherit>/ss/584/2015/level/1</inherit>
850
- <inherit>/ss/584/2015/level/2</inherit>
851
- <subject>user</subject>
852
- <permission model="ogc" id="A2">
853
- <title>First #1</title>
854
- <identifier>/ogc/recommendation/wfs/10</identifier>
855
- </permission>
856
- <requirement model="ogc" id="A3">
857
- <title>First #2</title>
858
- <identifier>Requirement 1</identifier>
859
- </requirement>
860
- <recommendation model="ogc" id="A4">
861
- <title>First #3</title>
862
- <identifier>Recommendation 1</identifier>
863
- </recommendation>
864
- </permission>
865
- <permission model="ogc" id="B1">
866
- <title>Second</title>
867
- <identifier>/ogc/recommendation/wfs/10</identifier>
868
- </permission>
869
- </foreword></preface>
870
- </ogc-standard>
871
- INPUT
872
-
873
- presxml = <<~OUTPUT
874
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
875
- <preface>
876
- <foreword id='A' displayorder='1'>
877
- <title>Preface</title>
878
- <table id='A1' keep-with-next='true' keep-lines-together='true' class='modspec' type='recommendclass'>
879
- <name>Table 1 — Permissions class 1: First</name>
880
- <tbody>
881
- <tr>
882
- <th>Identifier</th>
883
- <td><tt>/ogc/recommendation/wfs/2</tt></td>
884
- </tr>
885
- <tr>
886
- <th>Target type</th>
887
- <td>user</td>
888
- </tr>
889
- <tr>
890
- <th>Prerequisites</th>
891
- <td>/ss/584/2015/level/1<br/>
892
- /ss/584/2015/level/2</td>
893
- </tr>
894
- <tr>
895
- <th>Provisions</th>
896
- <td>
897
- <xref target='B1'>
898
- Permission 1:
899
- Second
900
- </xref>
901
- <br/>
902
- <xref target='A3'>
903
- Requirement 1-1:
904
- First #2
905
- </xref>
906
- <br/>
907
- <xref target='A4'>
908
- Recommendation 1-1:
909
- First #3
910
- </xref>
911
- </td>
912
- </tr>
913
- </tbody>
914
- </table>
915
- <table id='B1' class='modspec' type='recommend'>
916
- <name>Table 2 — Permission 1: Second</name>
917
- <tbody>
918
- <tr>
919
- <th>Identifier</th>
920
- <td><tt>/ogc/recommendation/wfs/10</tt></td>
921
- </tr>
922
- <tr>
923
- <th>Included in</th>
924
- <td>
925
- <xref target='A1'>Permissions class 1: First</xref>
926
- </td>
927
- </tr>
928
- </tbody>
929
- </table>
930
- </foreword>
931
- </preface>
932
- </ogc-standard>
933
- OUTPUT
934
-
935
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
936
- .convert("test", input, true)
937
- .gsub(%r{^.*<body}m, "<body")
938
- .gsub(%r{</body>.*}m, "</body>")))
939
- .to be_equivalent_to xmlpp(presxml)
940
- end
941
-
942
- it "processes conformance classes" do
943
- input = <<~INPUT
944
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
945
- <preface><foreword id="A"><title>Preface</title>
946
- <permission model="ogc" id="A1" type="conformanceclass">
947
- <title>First</title>
948
- <identifier>/ogc/recommendation/wfs/2</identifier>
949
- <inherit>/ss/584/2015/level/1</inherit>
950
- <inherit>ABC</inherit>
951
- <subject>user</subject>
952
- <classification><tag>target</target><value>ABC</value></classification>
953
- <classification><tag>indirect-dependency</target><value><link target="http://www.example.com/"/></value></classification>
954
- <classification><tag>indirect-dependency</target><value>ABC</value></classification>
955
- <permission model="ogc" id="A2">
956
- <identifier>Permission 1</identifier>
957
- </permission>
958
- <requirement model="ogc" id="A3">
959
- <identifier>Requirement 1</identifier>
960
- </requirement>
961
- <recommendation model="ogc" id="A4">
962
- <identifier>Recommendation 1</identifier>
963
- </recommendation>
964
- </permission>
965
- <permission model="ogc" id="B" type="conformanceclass">
966
- <title>Second</title>
967
- <identifier>ABC</identifier>
968
- </permission>
969
- <permission model="ogc" id="B2">
970
- <title>Third</title>
971
- <identifier>Permission 1</identifier>
972
- </permission>
973
- </foreword></preface>
974
- </ogc-standard>
975
- INPUT
976
-
977
- presxml = <<~OUTPUT
978
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
979
- <preface>
980
- <foreword id='A' displayorder='1'>
981
- <title>Preface</title>
982
- <table id='A1' class='modspec' type='recommendclass'>
983
- <name>Table 1 — Conformance class 1: First</name>
984
- <tbody>
985
- <tr>
986
- <th>Identifier</th>
987
- <td><tt>/ogc/recommendation/wfs/2</tt></td>
988
- </tr>
989
- <tr>
990
- <th>Subject</th>
991
- <td>user</td>
992
- </tr>
993
- <tr>
994
- <th>Requirements class</th>
995
- <td>
996
- <xref target='B'>Conformance class 2: Second</xref>
997
- </td>
998
- </tr>
999
- <tr>
1000
- <th>Prerequisites</th>
1001
- <td>/ss/584/2015/level/1<br/>
1002
- <xref target='B'>Conformance class 2: Second</xref>
1003
- </td>
1004
- </tr>
1005
- <tr>
1006
- <th>Indirect prerequisites</th>
1007
- <td>
1008
- <link target='http://www.example.com/'/>
1009
- <br/>
1010
- <xref target='B'>Conformance class 2: Second</xref>
1011
- </td>
1012
- </tr>
1013
- <tr>
1014
- <th>Conformance tests</th>
1015
- <td>
1016
- <xref target='B2'>
1017
- Permission 1:
1018
- Third
1019
- </xref>
1020
- <br/>
1021
- <xref target='A3'>
1022
- Requirement 1-1
1023
- </xref>
1024
- <br/>
1025
- <xref target='A4'>
1026
- Recommendation 1-1
1027
- </xref>
1028
- </td>
1029
- </tr>
1030
- </tbody>
1031
- </table>
1032
- <table id='B' class='modspec' type='recommendclass'>
1033
- <name>Table 2 — Conformance class 2: Second</name>
1034
- <tbody>
1035
- <tr>
1036
- <th>Identifier</th>
1037
- <td><tt>ABC</tt></td>
1038
- </tr>
1039
- </tbody>
1040
- </table>
1041
- <table id='B2' class='modspec' type='recommend'>
1042
- <name>Table 3 — Permission 1: Third</name>
1043
- <tbody>
1044
- <tr>
1045
- <th>Identifier</th>
1046
- <td><tt>Permission 1</tt></td>
1047
- </tr>
1048
- <tr>
1049
- <th>Included in</th>
1050
- <td>
1051
- <xref target='A1'>
1052
- Conformance class 1:
1053
- First
1054
- </xref>
1055
- </td>
1056
- </tr>
1057
- </tbody>
1058
- </table>
1059
- </foreword>
1060
- </preface>
1061
- </ogc-standard>
1062
- OUTPUT
1063
-
1064
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1065
- .convert("test", input, true)
1066
- .gsub(%r{^.*<body}m, "<body")
1067
- .gsub(%r{</body>.*}m, "</body>")))
1068
- .to be_equivalent_to xmlpp(presxml)
1069
- end
1070
-
1071
- it "processes conformance classes in French" do
1072
- input = <<~INPUT
1073
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
1074
- <bibdata><language>fr</language></bibdata>
1075
- <preface><foreword id="A"><title>Preface</title>
1076
- <permission model="ogc" id="A1" type="conformanceclass">
1077
- <title>First</title>
1078
- <identifier>/ogc/recommendation/wfs/2</identifier>
1079
- <inherit>/ss/584/2015/level/1</inherit>
1080
- <inherit>ABC</inherit>
1081
- <subject>user</subject>
1082
- <classification><tag>target</target><value>ABC</value></classification>
1083
- <classification><tag>indirect-dependency</target><value><link target="http://www.example.com/"/></value></classification>
1084
- <classification><tag>indirect-dependency</target><value>ABC</value></classification>
1085
- <permission model="ogc" id="A2">
1086
- <identifier>Permission 1</identifier>
1087
- </permission>
1088
- <requirement model="ogc" id="A3">
1089
- <identifier>Requirement 1</identifier>
1090
- </requirement>
1091
- <recommendation model="ogc" id="A4">
1092
- <identifier>Recommendation 1</identifier>
1093
- </recommendation>
1094
- </permission>
1095
- <permission model="ogc" id="B" type="conformanceclass">
1096
- <title>Second</title>
1097
- <identifier>ABC</identifier>
1098
- </permission>
1099
- <permission model="ogc" id="B2">
1100
- <title>Third</title>
1101
- <identifier>Permission 1</identifier>
1102
- </permission>
1103
- </foreword></preface>
1104
- </ogc-standard>
1105
- INPUT
1106
- presxml = <<~OUTPUT
1107
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
1108
- <bibdata>
1109
- <language current='true'>fr</language>
1110
- </bibdata>
1111
- <preface>
1112
- <foreword id='A' displayorder='1'>
1113
- <title>Preface</title>
1114
- <table id='A1' class='modspec' type='recommendclass'>
1115
- <name>Tableau 1 — Classe de confirmité 1&#xa0;: First</name>
1116
- <tbody>
1117
- <tr>
1118
- <th>Identifiant</th>
1119
- <td><tt>/ogc/recommendation/wfs/2</tt></td>
1120
- </tr>
1121
- <tr>
1122
- <th>Sujet</th>
1123
- <td>user</td>
1124
- </tr>
1125
- <tr>
1126
- <th>Classe d&#x2019;exigences</th>
1127
- <td>
1128
- <xref target='B'>Classe de confirmité 2&#xa0;: Second</xref>
1129
- </td>
1130
- </tr>
1131
- <tr>
1132
- <th>Prérequis</th>
1133
- <td>/ss/584/2015/level/1<br/>
1134
- <xref target='B'>Classe de confirmité 2&#xa0;: Second</xref>
1135
- </td>
1136
- </tr>
1137
- <tr>
1138
- <th>Prérequis indirect</th>
1139
- <td>
1140
- <link target='http://www.example.com/'/>
1141
- <br/>
1142
- <xref target='B'>Classe de confirmité 2&#xa0;: Second</xref>
1143
- </td>
1144
- </tr>
1145
- <tr>
1146
- <th>Tests de conformité</th>
1147
- <td>
1148
- <xref target='B2'>
1149
- Autorisation 1&#xa0;:
1150
- Third
1151
- </xref>
1152
- <br/>
1153
- <xref target='A3'>
1154
- Exigence 1-1
1155
- </xref>
1156
- <br/>
1157
- <xref target='A4'>
1158
- Recommandation 1-1
1159
- </xref>
1160
- </td>
1161
- </tr>
1162
- </tbody>
1163
- </table>
1164
- <table id='B' class='modspec' type='recommendclass'>
1165
- <name>Tableau 2 — Classe de confirmité 2&#xa0;: Second</name>
1166
- <tbody>
1167
- <tr>
1168
- <th>Identifiant</th>
1169
- <td><tt>ABC</tt></td>
1170
- </tr>
1171
- </tbody>
1172
- </table>
1173
- <table id='B2' class='modspec' type='recommend'>
1174
- <name>Tableau 3 — Autorisation 1&#xa0;: Third</name>
1175
- <tbody>
1176
- <tr>
1177
- <th>Identifiant</th>
1178
- <td><tt>Permission 1</tt></td>
1179
- </tr>
1180
- <tr>
1181
- <th>Inclus dans</th>
1182
- <td>
1183
- <xref target='A1'>
1184
- Classe de confirmit&#xE9; 1&#xa0;:
1185
- First
1186
- </xref>
1187
- </td>
1188
- </tr>
1189
- </tbody>
1190
- </table>
1191
- </foreword>
1192
- </preface>
1193
- </ogc-standard>
1194
- OUTPUT
1195
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1196
- .convert("test", input, true)
1197
- .gsub(%r{<localized-strings>.*</localized-strings>}m, "")
1198
- .gsub(%r{^.*<body}m, "<body")
1199
- .gsub(%r{</body>.*}m, "</body>")))
1200
- .to be_equivalent_to xmlpp(presxml)
1201
- end
1202
-
1203
- it "processes requirement classes" do
1204
- input = <<~INPUT
1205
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
1206
- <preface><foreword id="A"><title>Preface</title>
1207
- <requirement model="ogc" id="A1" type="class">
1208
- <title>First</title>
1209
- <identifier>/ogc/recommendation/wfs/2</identifier>
1210
- <inherit>/ss/584/2015/level/1</inherit>
1211
- <inherit>/ss/584/2015/level/2</inherit>
1212
- <subject>user</subject>
1213
- <permission model="ogc" id="A2">
1214
- <title>First #1</title>
1215
- <identifier>Permission 1</identifier>
1216
- </permission>
1217
- </requirement>
1218
- <permission model="ogc" id="A5">
1219
- <title>Second</title>
1220
- <identifier>Permission 1</identifier>
1221
- </permission>
1222
- </foreword></preface>
1223
- </ogc-standard>
1224
- INPUT
1225
-
1226
- presxml = <<~OUTPUT
1227
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
1228
- <preface>
1229
- <foreword id='A' displayorder='1'>
1230
- <title>Preface</title>
1231
- <table id='A1' class='modspec' type='recommendclass'>
1232
- <name>Table 1 — Requirements class 1: First</name>
1233
- <tbody>
1234
- <tr>
1235
- <th>Identifier</th>
1236
- <td><tt>/ogc/recommendation/wfs/2</tt></td>
1237
- </tr>
1238
- <tr>
1239
- <th>Target type</th>
1240
- <td>user</td>
1241
- </tr>
1242
- <tr>
1243
- <th>Prerequisites</th>
1244
- <td>/ss/584/2015/level/1<br/>
1245
- /ss/584/2015/level/2</td>
1246
- </tr>
1247
- <tr>
1248
- <th>Provision</th>
1249
- <td>
1250
- <xref target='A5'>
1251
- Permission 1:
1252
- Second
1253
- </xref>
1254
- </td>
1255
- </tr>
1256
- </tbody>
1257
- </table>
1258
- <table id='A5' class='modspec' type='recommend'>
1259
- <name>Table 2 — Permission 1: Second</name>
1260
- <tbody>
1261
- <tr>
1262
- <th>Identifier</th>
1263
- <td><tt>Permission 1</tt></td>
1264
- </tr>
1265
- <tr>
1266
- <th>Included in</th>
1267
- <td>
1268
- <xref target='A1'>
1269
- Requirements class 1:
1270
- First
1271
- </xref>
1272
- </td>
1273
- </tr>
1274
- </tbody>
1275
- </table>
1276
- </foreword>
1277
- </preface>
1278
- </ogc-standard>
1279
- OUTPUT
1280
-
1281
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1282
- .convert("test", input, true)
1283
- .gsub(%r{^.*<body}m, "<body")
1284
- .gsub(%r{</body>.*}m, "</body>")))
1285
- .to be_equivalent_to xmlpp(presxml)
1286
- end
1287
-
1288
- it "processes recommendation classes" do
1289
- input = <<~INPUT
1290
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
1291
- <preface><foreword id="A"><title>Preface</title>
1292
- <recommendation model="ogc" id="A1" type="class">
1293
- <title>First</title>
1294
- <identifier>/ogc/recommendation/wfs/2</identifier>
1295
- <inherit>/ss/584/2015/level/1</inherit>
1296
- <inherit>/ss/584/2015/level/2</inherit>
1297
- <subject>user</subject>
1298
- <permission model="ogc" id="A2">
1299
- <title>First #1</title>
1300
- <identifier>Permission 1</identifier>
1301
- </permission>
1302
- <requirement model="ogc" id="A3">
1303
- <title>First #2</title>
1304
- <identifier>Requirement 1</identifier>
1305
- </requirement>
1306
- <recommendation model="ogc" id="A4">
1307
- <title>First #3</title>
1308
- <identifier>Recommendation 1</identifier>
1309
- </recommendation>
1310
- </recommendation>
1311
- </foreword></preface>
1312
- </ogc-standard>
1313
- INPUT
1314
-
1315
- presxml = <<~OUTPUT
1316
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
1317
- <preface>
1318
- <foreword id='A' displayorder='1'>
1319
- <title>Preface</title>
1320
- <table id='A1' class='modspec' type='recommendclass'>
1321
- <name>Table 1 — Recommendations class 1: First</name>
1322
- <tbody>
1323
- <tr>
1324
- <th>Identifier</th>
1325
- <td><tt>/ogc/recommendation/wfs/2</tt></td>
1326
- </tr>
1327
- <tr>
1328
- <th>Target type</th>
1329
- <td>user</td>
1330
- </tr>
1331
- <tr>
1332
- <th>Prerequisites</th>
1333
- <td>/ss/584/2015/level/1<br/>
1334
- /ss/584/2015/level/2</td>
1335
- </tr>
1336
- <tr>
1337
- <th>Provisions</th>
1338
- <td>
1339
- <xref target='A2'>Permission 1-1:
1340
- First #1
1341
- </xref>
1342
- <br/>
1343
- <xref target='A3'>
1344
- Requirement 1-1:
1345
- First #2
1346
- </xref>
1347
- <br/>
1348
- <xref target='A4'>
1349
- Recommendation 1-1:
1350
- First #3
1351
- </xref>
1352
- </td>
1353
- </tr>
1354
- </tbody>
1355
- </table>
1356
- </foreword>
1357
- </preface>
1358
- </ogc-standard>
1359
- OUTPUT
1360
-
1361
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1362
- .convert("test", input, true)
1363
- .gsub(%r{^.*<body}m, "<body")
1364
- .gsub(%r{</body>.*}m, "</body>")))
1365
- .to be_equivalent_to xmlpp(presxml)
1366
- end
1367
-
1368
- it "processes requirements" do
1369
- input = <<~INPUT
1370
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
1371
- <preface><foreword id="A0"><title>Preface</title>
1372
- <requirement model="ogc" id="A" unnumbered="true">
1373
- <title>A New Requirement</title>
1374
- <identifier>/ogc/recommendation/wfs/2</identifier>
1375
- <inherit>/ss/584/2015/level/1</inherit>
1376
- <subject>user</subject>
1377
- <description>
1378
- <p id="_">I recommend <em>this</em>.</p>
1379
- </description>
1380
- <specification exclude="true" type="tabular" keep-with-next="true" keep-lines-together="true">
1381
- <p id="_">This is the object of the recommendation:</p>
1382
- <table id="_">
1383
- <tbody>
1384
- <tr>
1385
- <td style="text-align:left;">Object</td>
1386
- <td style="text-align:left;">Value</td>
1387
- </tr>
1388
- <tr>
1389
- <td style="text-align:left;">Mission</td>
1390
- <td style="text-align:left;">Accomplished</td>
1391
- </tr>
1392
- </tbody>
1393
- </table>
1394
- </specification>
1395
- <description>
1396
- <p id="_">As for the measurement targets,</p>
1397
- </description>
1398
- <measurement-target exclude="false">
1399
- <p id="_">The measurement target shall be measured as:</p>
1400
- <formula id="B">
1401
- <stem type="AsciiMath">r/1 = 0</stem>
1402
- </formula>
1403
- </measurement-target>
1404
- <verification exclude="false">
1405
- <p id="_">The following code will be run for verification:</p>
1406
- <sourcecode id="_">CoreRoot(success): HttpResponse
1407
- if (success)
1408
- recommendation(label: success-response)
1409
- end
1410
- </sourcecode>
1411
- </verification>
1412
- <import exclude="true">
1413
- <sourcecode id="_">success-response()</sourcecode>
1414
- </import>
1415
- </requirement>
1416
- </foreword></preface>
1417
- </ogc-standard>
1418
- INPUT
1419
- presxml = <<~OUTPUT
1420
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
1421
- <preface>
1422
- <foreword id='A0' displayorder='1'>
1423
- <title>Preface</title>
1424
- <table id='A' unnumbered='true' class='modspec' type='recommend'>
1425
- <name>Table — Requirement: A New Requirement</name>
1426
- <tbody>
1427
- <tr>
1428
- <th>Identifier</th>
1429
- <td><tt>/ogc/recommendation/wfs/2</tt></td>
1430
- </tr>
1431
- <tr>
1432
- <th>Subject</th>
1433
- <td>user</td>
1434
- </tr>
1435
- <tr>
1436
- <th>Prerequisite</th>
1437
- <td>/ss/584/2015/level/1</td>
1438
- </tr>
1439
- <tr>
1440
- <th>Statements</th><td>
1441
- <p id='_'>
1442
- I recommend
1443
- <em>this</em>
1444
- .
1445
- </p>
1446
- <br/>
1447
- <p id='_'>As for the measurement targets,</p>
1448
- </td>
1449
- </tr>
1450
- <tr>
1451
- <td colspan='2'>
1452
- <p id='_'>The measurement target shall be measured as:</p>
1453
- <formula id='B'>
1454
- <name>1</name>
1455
- <stem type='AsciiMath'>r/1 = 0</stem>
1456
- </formula>
1457
- </td>
1458
- </tr>
1459
- <tr>
1460
- <td colspan='2'>
1461
- <p id='_'>The following code will be run for verification:</p>
1462
- <sourcecode id='_'>
1463
- CoreRoot(success): HttpResponse if (success)
1464
- recommendation(label: success-response) end
1465
- </sourcecode>
1466
- </td>
1467
- </tr>
1468
- </tbody>
1469
- </table>
1470
- </foreword>
1471
- </preface>
1472
- </ogc-standard>
1473
- OUTPUT
1474
-
1475
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1476
- .convert("test", input, true)
1477
- .gsub(%r{^.*<body}m, "<body")
1478
- .gsub(%r{</body>.*}m, "</body>")))
1479
- .to be_equivalent_to xmlpp(presxml)
1480
- end
1481
-
1482
- it "processes recommendations" do
1483
- input = <<~INPUT
1484
- <ogc-standard xmlns="https://standards.opengeospatial.org/document">
1485
- <preface><foreword id="A"><title>Preface</title>
1486
- <recommendation model="ogc" id="_">
1487
- <title>First</title>
1488
- <identifier>/ogc/recommendation/wfs/2</identifier>
1489
- <inherit>/ss/584/2015/level/1</inherit>
1490
- <subject>user</subject>
1491
- <description>
1492
- <p id="_">I recommend <em>this</em>.</p>
1493
- </description>
1494
- <specification exclude="true" type="tabular">
1495
- <p id="_">This is the object of the recommendation:</p>
1496
- <table id="_">
1497
- <tbody>
1498
- <tr>
1499
- <td style="text-align:left;">Object</td>
1500
- <td style="text-align:left;">Value</td>
1501
- </tr>
1502
- <tr>
1503
- <td style="text-align:left;">Mission</td>
1504
- <td style="text-align:left;">Accomplished</td>
1505
- </tr>
1506
- </tbody>
1507
- </table>
1508
- </specification>
1509
- <description>
1510
- <p id="_">As for the measurement targets,</p>
1511
- </description>
1512
- <measurement-target exclude="false">
1513
- <p id="_">The measurement target shall be measured as:</p>
1514
- <formula id="_">
1515
- <stem type="AsciiMath">r/1 = 0</stem>
1516
- </formula>
1517
- </measurement-target>
1518
- <verification exclude="false">
1519
- <p id="_">The following code will be run for verification:</p>
1520
- <sourcecode id="_">CoreRoot(success): HttpResponse
1521
- if (success)
1522
- recommendation(label: success-response)
1523
- end
1524
- </sourcecode>
1525
- </verification>
1526
- <import exclude="true">
1527
- <sourcecode id="_">success-response()</sourcecode>
1528
- </import>
1529
- </recommendation>
1530
- </foreword></preface>
1531
- </ogc-standard>
1532
- INPUT
1533
-
1534
- presxml = <<~OUTPUT
1535
- <ogc-standard xmlns='https://standards.opengeospatial.org/document' type='presentation'>
1536
- <preface>
1537
- <foreword id='A' displayorder='1'>
1538
- <title>Preface</title>
1539
- <table id='_' class='modspec' type='recommend'>
1540
- <name>Table 1 — Recommendation 1: First</name>
1541
- <tbody>
1542
- <tr>
1543
- <th>Identifier</th>
1544
- <td><tt>/ogc/recommendation/wfs/2</tt></td>
1545
- </tr>
1546
- <tr>
1547
- <th>Subject</th>
1548
- <td>user</td>
1549
- </tr>
1550
- <tr>
1551
- <th>Prerequisite</th>
1552
- <td>/ss/584/2015/level/1</td>
1553
- </tr>
1554
- <tr>
1555
- <th>Statements</th><td>
1556
- <p id='_'>
1557
- I recommend
1558
- <em>this</em>
1559
- .
1560
- </p>
1561
- <br/>
1562
- <p id='_'>As for the measurement targets,</p>
1563
- </td>
1564
- </tr>
1565
- <tr>
1566
- <td colspan='2'>
1567
- <p id='_'>The measurement target shall be measured as:</p>
1568
- <formula id='_'>
1569
- <name>1</name>
1570
- <stem type='AsciiMath'>r/1 = 0</stem>
1571
- </formula>
1572
- </td>
1573
- </tr>
1574
- <tr>
1575
- <td colspan='2'>
1576
- <p id='_'>The following code will be run for verification:</p>
1577
- <sourcecode id='_'>
1578
- CoreRoot(success): HttpResponse if (success)
1579
- recommendation(label: success-response) end
1580
- </sourcecode>
1581
- </td>
1582
- </tr>
1583
- </tbody>
1584
- </table>
1585
- </foreword>
1586
- </preface>
1587
- </ogc-standard>
1588
- OUTPUT
1589
-
1590
- expect(xmlpp(IsoDoc::Iso::PresentationXMLConvert.new({})
1591
- .convert("test", input, true)
1592
- .gsub(%r{^.*<body}m, "<body")
1593
- .gsub(%r{</body>.*}m, "</body>")))
1594
- .to be_equivalent_to xmlpp(presxml)
1595
- end
1596
- end