metanorma-iso 1.6.1 → 1.7.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +11 -41
  3. data/.gitignore +2 -0
  4. data/.rubocop.yml +6 -2
  5. data/lib/asciidoctor/iso/base.rb +13 -13
  6. data/lib/asciidoctor/iso/basicdoc.rng +5 -3
  7. data/lib/asciidoctor/iso/biblio.rng +4 -6
  8. data/lib/asciidoctor/iso/cleanup.rb +1 -1
  9. data/lib/asciidoctor/iso/front.rb +6 -6
  10. data/lib/asciidoctor/iso/front_id.rb +30 -25
  11. data/lib/asciidoctor/iso/isodoc.rng +108 -2
  12. data/lib/asciidoctor/iso/isostandard-amd.rng +3 -0
  13. data/lib/asciidoctor/iso/isostandard.rng +17 -97
  14. data/lib/asciidoctor/iso/validate.rb +68 -1
  15. data/lib/asciidoctor/iso/validate_title.rb +21 -13
  16. data/lib/isodoc/iso/base_convert.rb +11 -0
  17. data/lib/isodoc/iso/html/header.html +12 -12
  18. data/lib/isodoc/iso/html/html_iso_intro.html +1 -1
  19. data/lib/isodoc/iso/html/html_iso_titlepage.html +1 -1
  20. data/lib/isodoc/iso/html/word_iso_intro.html +1 -1
  21. data/lib/isodoc/iso/html/word_iso_titlepage.html +1 -1
  22. data/lib/isodoc/iso/html_convert.rb +2 -2
  23. data/lib/isodoc/iso/i18n-en.yaml +6 -0
  24. data/lib/isodoc/iso/i18n-fr.yaml +4 -0
  25. data/lib/isodoc/iso/i18n-zh-Hans.yaml +4 -0
  26. data/lib/isodoc/iso/index.rb +140 -0
  27. data/lib/isodoc/iso/iso.amendment.xsl +1009 -321
  28. data/lib/isodoc/iso/iso.international-standard.xsl +1009 -321
  29. data/lib/isodoc/iso/presentation_xml_convert.rb +1 -4
  30. data/lib/isodoc/iso/word_convert.rb +2 -2
  31. data/lib/isodoc/iso/xref.rb +5 -0
  32. data/lib/metanorma/iso/version.rb +1 -1
  33. data/metanorma-iso.gemspec +4 -4
  34. data/spec/asciidoctor/amd_spec.rb +696 -0
  35. data/spec/asciidoctor/base_spec.rb +704 -0
  36. data/spec/asciidoctor/blocks_spec.rb +527 -0
  37. data/spec/asciidoctor/cleanup_spec.rb +1134 -0
  38. data/spec/asciidoctor/inline_spec.rb +195 -0
  39. data/spec/asciidoctor/lists_spec.rb +197 -0
  40. data/spec/asciidoctor/refs_spec.rb +375 -0
  41. data/spec/asciidoctor/section_spec.rb +393 -0
  42. data/spec/asciidoctor/table_spec.rb +329 -0
  43. data/spec/asciidoctor/validate_spec.rb +1572 -0
  44. data/spec/isodoc/amd_spec.rb +967 -946
  45. data/spec/isodoc/blocks_spec.rb +530 -507
  46. data/spec/isodoc/i18n_spec.rb +953 -911
  47. data/spec/isodoc/inline_spec.rb +355 -293
  48. data/spec/isodoc/iso_spec.rb +340 -316
  49. data/spec/isodoc/metadata_spec.rb +392 -382
  50. data/spec/isodoc/postproc_spec.rb +834 -656
  51. data/spec/isodoc/ref_spec.rb +374 -331
  52. data/spec/isodoc/section_spec.rb +821 -519
  53. data/spec/isodoc/table_spec.rb +472 -411
  54. data/spec/isodoc/terms_spec.rb +209 -185
  55. data/spec/isodoc/xref_spec.rb +1370 -1236
  56. data/spec/metanorma/processor_spec.rb +28 -26
  57. data/spec/spec_helper.rb +186 -189
  58. metadata +26 -27
  59. data/.rubocop.ribose.yml +0 -66
  60. data/spec/asciidoctor-iso/amd_spec.rb +0 -694
  61. data/spec/asciidoctor-iso/base_spec.rb +0 -713
  62. data/spec/asciidoctor-iso/blocks_spec.rb +0 -482
  63. data/spec/asciidoctor-iso/cleanup_spec.rb +0 -1025
  64. data/spec/asciidoctor-iso/inline_spec.rb +0 -170
  65. data/spec/asciidoctor-iso/lists_spec.rb +0 -190
  66. data/spec/asciidoctor-iso/refs_spec.rb +0 -317
  67. data/spec/asciidoctor-iso/section_spec.rb +0 -362
  68. data/spec/asciidoctor-iso/table_spec.rb +0 -313
  69. data/spec/asciidoctor-iso/validate_spec.rb +0 -1550
  70. data/spec/assets/xref_error.adoc +0 -7
@@ -1,362 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Asciidoctor::ISO do
4
- it "processes sections" do
5
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
6
- #{ASCIIDOC_BLANK_HDR}
7
- == Foreword
8
-
9
- Text
10
-
11
- == Introduction
12
-
13
- === Introduction Subsection
14
-
15
- == Scope
16
-
17
- Text
18
-
19
- == Acknowledgements
20
-
21
- == Normative References
22
-
23
- == Terms and Definitions
24
-
25
- === Term1
26
-
27
- == Terms, Definitions, Symbols and Abbreviated Terms
28
-
29
- === Normal Terms
30
-
31
- ==== Term2
32
-
33
- === Symbols and Abbreviated Terms
34
-
35
- == Symbols and Abbreviated Terms
36
-
37
- == Clause 4
38
-
39
- === Introduction
40
-
41
- === Clause 4.2
42
-
43
- == Terms and Definitions
44
-
45
- [appendix]
46
- == Annex
47
-
48
- === Annex A.1
49
-
50
- [%appendix]
51
- === Appendix 1
52
-
53
- ==== Appendix subclause
54
-
55
- == Bibliography
56
-
57
- === Bibliography Subsection
58
- INPUT
59
- #{BLANK_HDR}
60
- <preface><foreword id='_' obligation='informative'>
61
- <title>Foreword</title>
62
- <p id="_">Text</p>
63
- </foreword><introduction id="_" obligation="informative"><title>Introduction</title><clause id="_" inline-header="false" obligation="informative">
64
- <title>Introduction Subsection</title>
65
- </clause>
66
- </introduction>
67
- <acknowledgements id='_' obligation='informative'>
68
- <title>Acknowledgements</title>
69
- </acknowledgements>
70
- </preface><sections>
71
- <clause id="_" obligation="normative" inline-header='false' type="scope">
72
- <title>Scope</title>
73
- <p id="_">Text</p>
74
- </clause>
75
-
76
- <terms id="_" obligation="normative">
77
- <title>Terms and definitions</title>
78
- <p id="_">For the purposes of this document, the following terms and definitions apply.</p>
79
- <p id="_">ISO and IEC maintain terminological databases for use in
80
- standardization at the following addresses:</p>
81
-
82
- <ul id="_">
83
- <li> <p id="_">ISO Online browsing platform: available at
84
- <link target="http://www.iso.org/obp"/></p> </li>
85
- <li> <p id="_">IEC Electropedia: available at
86
- <link target="http://www.electropedia.org"/>
87
- </p> </li> </ul>
88
-
89
- <term id="term-term1">
90
- <preferred>Term1</preferred>
91
- </term>
92
- </terms>
93
- <clause id="_" obligation="normative"><title>Terms, definitions, symbols and abbreviated terms</title>
94
- <terms id="_" obligation="normative">
95
- <title>Normal Terms</title>
96
- <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
97
- <p id='_'>
98
- ISO and IEC maintain terminological databases for use in
99
- standardization at the following addresses:
100
- </p>
101
- <ul id='_'>
102
- <li>
103
- <p id='_'>
104
- ISO Online browsing platform: available at
105
- <link target='http://www.iso.org/obp'/>
106
- </p>
107
- </li>
108
- <li>
109
- <p id='_'>
110
- IEC Electropedia: available at
111
- <link target='http://www.electropedia.org'/>
112
- </p>
113
- </li>
114
- </ul>
115
- <term id="term-term2">
116
- <preferred>Term2</preferred>
117
- </term>
118
- </terms>
119
- <definitions id="_" obligation="normative">
120
- <title>Symbols and abbreviated terms</title></definitions></clause>
121
- <definitions id="_" obligation="normative">
122
- <title>Symbols and abbreviated terms</title></definitions>
123
- <clause id="_" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="_" inline-header="false" obligation="normative">
124
- <title>Introduction</title>
125
- </clause>
126
- <clause id="_" inline-header="false" obligation="normative">
127
- <title>Clause 4.2</title>
128
- </clause></clause>
129
- <clause id="_" inline-header="false" obligation="normative">
130
- <title>Terms and Definitions</title>
131
- </clause>
132
-
133
-
134
- </sections><annex id="_" inline-header="false" obligation="normative">
135
- <title>Annex</title>
136
- <clause id="_" inline-header="false" obligation="normative">
137
- <title>Annex A.1</title>
138
- </clause>
139
- <appendix id="_" inline-header="false" obligation="normative">
140
- <title>Appendix 1</title>
141
- <clause id='_' inline-header='false' obligation='normative'>
142
- <title>Appendix subclause</title>
143
- </clause>
144
- </appendix></annex><bibliography><references id="_" obligation="informative" normative="true">
145
- <title>Normative references</title>
146
- <p id="_">There are no normative references in this document.</p>
147
- </references><clause id="_" obligation="informative">
148
- <title>Bibliography</title>
149
- <references id="_" obligation="informative" normative="false">
150
- <title>Bibliography Subsection</title>
151
- </references>
152
- </clause>
153
- </bibliography>
154
- </iso-standard>
155
- OUTPUT
156
- end
157
-
158
- it "processes section obligations" do
159
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
160
- #{ASCIIDOC_BLANK_HDR}
161
- [obligation=informative]
162
- == Clause 1
163
-
164
- === Clause 1a
165
-
166
- [obligation=normative]
167
- == Clause 2
168
-
169
- [appendix,obligation=informative]
170
- == Annex
171
- INPUT
172
- #{BLANK_HDR}
173
- <sections><clause id="_" inline-header="false" obligation="informative">
174
- <title>Clause 1</title>
175
- <clause id="_" inline-header="false" obligation="informative">
176
- <title>Clause 1a</title>
177
- </clause>
178
- </clause>
179
- <clause id="_" inline-header="false" obligation="normative">
180
- <title>Clause 2</title>
181
- </clause>
182
- </sections><annex id="_" inline-header="false" obligation="informative">
183
- <title>Annex</title>
184
- </annex>
185
- </iso-standard>
186
- OUTPUT
187
- end
188
-
189
- it "processes inline headers" do
190
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
191
- #{ASCIIDOC_BLANK_HDR}
192
- == Clause 1
193
-
194
- [%inline-header]
195
- === Clause 1a
196
-
197
- [appendix]
198
- == Annex A
199
-
200
- [%inline-header]
201
- === Clause Aa
202
- INPUT
203
- #{BLANK_HDR}
204
- <sections><clause id="_" inline-header="false" obligation="normative">
205
- <title>Clause 1</title>
206
- <clause id="_" inline-header="true" obligation="normative">
207
- <title>Clause 1a</title>
208
- </clause>
209
- </clause>
210
- </sections><annex id="_" inline-header="false" obligation="normative">
211
- <title>Annex A</title>
212
- <clause id="_" inline-header="true" obligation="normative">
213
- <title>Clause Aa</title>
214
- </clause>
215
- </annex>
216
- </iso-standard>
217
- OUTPUT
218
- end
219
-
220
- it "processes blank headers" do
221
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
222
- #{ASCIIDOC_BLANK_HDR}
223
- == Clause 1
224
-
225
- === {blank}
226
-
227
- INPUT
228
- #{BLANK_HDR}
229
- <sections>
230
- <clause id="_" inline-header="false" obligation="normative">
231
- <title>Clause 1</title>
232
- <clause id="_" inline-header="false" obligation="normative">
233
- </clause>
234
- </clause>
235
- </sections>
236
- </iso-standard>
237
- OUTPUT
238
- end
239
-
240
- it "processes terms & definitions with external source" do
241
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
242
- #{ASCIIDOC_BLANK_HDR}
243
-
244
- Foreword
245
-
246
- [source="iso1234,iso5678"]
247
- == Terms and Definitions
248
-
249
- === Term1
250
-
251
- INPUT
252
- #{BLANK_HDR.sub(/<boilerplate>/, '<termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/><boilerplate>')}
253
- <preface><foreword id='_' obligation="informative">
254
- <title>Foreword</title>
255
- <p id="_">Foreword</p>
256
- </foreword></preface><sections>
257
- <terms id="_" obligation="normative">
258
- <title>Terms and definitions</title><p id="_">For the purposes of this document, the terms and definitions
259
- given in <eref bibitemid="iso1234"/> and <eref bibitemid="iso5678"/> and the following apply.</p>
260
- <p id="_">ISO and IEC maintain terminological databases for use in
261
- standardization at the following addresses:</p>
262
-
263
- <ul id="_">
264
- <li> <p id="_">ISO Online browsing platform: available at
265
- <link target="http://www.iso.org/obp"/></p> </li>
266
- <li> <p id="_">IEC Electropedia: available at
267
- <link target="http://www.electropedia.org"/>
268
- </p> </li> </ul>
269
-
270
- <term id="term-term1">
271
- <preferred>Term1</preferred>
272
- </term>
273
- </terms></sections>
274
- </iso-standard>
275
-
276
- OUTPUT
277
- end
278
-
279
- it "processes empty terms & definitions" do
280
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
281
- #{ASCIIDOC_BLANK_HDR}
282
-
283
- Foreword
284
-
285
- == Terms and Definitions
286
-
287
-
288
- INPUT
289
- #{BLANK_HDR}
290
- <preface>
291
- <foreword id='_' obligation='informative'>
292
- <title>Foreword</title>
293
- <p id='_'>Foreword</p>
294
- </foreword>
295
- </preface>
296
- <sections>
297
- <terms id='_' obligation='normative'>
298
- <title>Terms and definitions</title>
299
- <p id='_'>No terms and definitions are listed in this document.</p>
300
- <p id='_'>
301
- ISO and IEC maintain terminological databases for use in standardization
302
- at the following addresses:
303
- </p>
304
- <ul id='_'>
305
- <li>
306
- <p id='_'>
307
- ISO Online browsing platform: available at
308
- <link target='http://www.iso.org/obp'/>
309
- </p>
310
- </li>
311
- <li>
312
- <p id='_'>
313
- IEC Electropedia: available at
314
- <link target='http://www.electropedia.org'/>
315
- </p>
316
- </li>
317
- </ul>
318
- </terms>
319
- </sections>
320
- </iso-standard>
321
-
322
- OUTPUT
323
- end
324
-
325
- it "processes empty terms & definitions with external source" do
326
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
327
- #{ASCIIDOC_BLANK_HDR}
328
-
329
- Foreword
330
-
331
- [source="iso1234,iso5678"]
332
- == Terms and Definitions
333
-
334
- INPUT
335
- #{BLANK_HDR.sub(/<boilerplate>/, '<termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/><boilerplate>')}
336
- <preface><foreword id='_' obligation="informative">
337
- <title>Foreword</title>
338
- <p id="_">Foreword</p>
339
- </foreword></preface><sections>
340
- <terms id="_" obligation="normative">
341
- <title>Terms and definitions</title>
342
- <p id="_">For the purposes of this document,
343
- the terms and definitions given in <eref bibitemid="iso1234"/> and <eref bibitemid="iso5678"/> apply.</p>
344
- <p id="_">ISO and IEC maintain terminological databases for use in
345
- standardization at the following addresses:</p>
346
-
347
- <ul id="_">
348
- <li> <p id="_">ISO Online browsing platform: available at
349
- <link target="http://www.iso.org/obp"/></p> </li>
350
- <li> <p id="_">IEC Electropedia: available at
351
- <link target="http://www.electropedia.org"/>
352
- </p> </li> </ul>
353
-
354
-
355
-
356
- </terms></sections>
357
- </iso-standard>
358
-
359
- OUTPUT
360
- end
361
-
362
- end
@@ -1,313 +0,0 @@
1
- require "spec_helper"
2
-
3
- RSpec.describe Asciidoctor::ISO do
4
- it "processes basic tables" do
5
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
6
- #{ASCIIDOC_BLANK_HDR}
7
- .Table Name
8
- |===
9
- |A |B |C
10
-
11
- h|1 |2 |3
12
- |===
13
- INPUT
14
- #{BLANK_HDR}
15
- <sections>
16
- <table id="_">
17
- <name>Table Name</name>
18
- <thead>
19
- <tr>
20
- <th valign="top" align="left">A</th>
21
- <th valign="top" align="left">B</th>
22
- <th valign="top" align="left">C</th>
23
- </tr>
24
- </thead>
25
- <tbody>
26
- <tr>
27
- <th valign="top" align="left">1</th>
28
- <td valign="top" align="left">2</td>
29
- <td valign="top" align="left">3</td>
30
- </tr>
31
- </tbody>
32
- </table>
33
- </sections>
34
- </iso-standard>
35
- OUTPUT
36
- end
37
-
38
- it "inserts header rows in a table with a name and no header" do
39
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
40
- #{ASCIIDOC_BLANK_HDR}
41
- [headerrows=2]
42
- .Table Name
43
- |===
44
- |A |B |C
45
- h|1 |2 |3
46
- h|1 |2 |3
47
- |===
48
- INPUT
49
- #{BLANK_HDR}
50
- <sections>
51
- <table id="_">
52
- <name>Table Name</name>
53
- <thead><tr>
54
- <th valign="top" align="left">A</th>
55
- <th valign="top" align="left">B</th>
56
- <th valign="top" align="left">C</th>
57
- </tr><tr>
58
- <th valign="top" align="left">1</th>
59
- <th valign="top" align="left">2</th>
60
- <th valign="top" align="left">3</th>
61
- </tr></thead>
62
- <tbody>
63
-
64
-
65
- <tr>
66
- <th valign="top" align="left">1</th>
67
- <td valign="top" align="left">2</td>
68
- <td valign="top" align="left">3</td>
69
- </tr>
70
- </tbody>
71
- </table>
72
- </sections>
73
- </iso-standard>
74
- OUTPUT
75
- end
76
-
77
-
78
- it "inserts header rows in a table without a name and no header" do
79
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
80
- #{ASCIIDOC_BLANK_HDR}
81
- [headerrows=2]
82
- |===
83
- |A |B |C
84
- h|1 |2 |3
85
- h|1 |2 |3
86
- |===
87
- INPUT
88
- #{BLANK_HDR}
89
- <sections>
90
- <table id="_"><thead><tr>
91
- <th valign="top" align="left">A</th>
92
- <th valign="top" align="left">B</th>
93
- <th valign="top" align="left">C</th>
94
- </tr><tr>
95
- <th valign="top" align="left">1</th>
96
- <th valign="top" align="left">2</th>
97
- <th valign="top" align="left">3</th>
98
- </tr></thead>
99
- <tbody>
100
-
101
-
102
- <tr>
103
- <th valign="top" align="left">1</th>
104
- <td valign="top" align="left">2</td>
105
- <td valign="top" align="left">3</td>
106
- </tr>
107
- </tbody>
108
- </table>
109
- </sections>
110
- </iso-standard>
111
- OUTPUT
112
- end
113
-
114
- it "processes complex tables" do
115
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true, agree_to_terms: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
116
- #{ASCIIDOC_BLANK_HDR}
117
- [cols="<,^,^,^,^",options="header,footer",headerrows=2]
118
- .Maximum permissible mass fraction of defects
119
- |===
120
- .2+|Defect 4+^| Maximum permissible mass fraction of defects in husked rice +
121
- stem:[w_max]
122
- | in husked rice | in milled rice (non-glutinous) | in husked parboiled rice | in milled parboiled rice
123
-
124
- | Extraneous matter: organic footnote:[Organic extraneous matter includes foreign seeds, husks, bran, parts of straw, etc.] | 1,0 | 0,5 | 1,0 | 0,5
125
- // not rendered list here
126
- | Extraneous matter: inorganic footnote:[Inorganic extraneous matter includes stones, sand, dust, etc.] | 0,5 | 0,5 | 0,5 | 0,5
127
- | Paddy | 2,5 | 0,3 | 2,5 | 0,3
128
- | Husked rice, non-parboiled | Not applicable | 1,0 | 1,0 | 1,0
129
- | Milled rice, non-parboiled | 1,0 | Not applicable | 1,0 | 1,0
130
- | Husked rice, parboiled | 1,0 | 1,0 | Not applicable | 1,0
131
- | Milled rice, parboiled | 1,0 | 1,0 | 1,0 | Not applicable
132
- | Chips | 0,1 | 0,1 | 0,1 | 0,1
133
- | HDK | 2,0 footnote:defectsmass[The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.] | 2,0 | 2,0 footnote:defectsmass[] | 2,0
134
- | Damaged kernels | 4,0 | 3,0 | 4,0 | 3,0
135
- | Immature and/or malformed kernels | 8,0 | 2,0 | 8,0 | 2,0
136
- | Chalky kernels | 5,0 footnote:defectsmass[] | 5,0 | Not applicable | Not applicable
137
- | Red kernels and red-streaked kernels | 12,0 | 12,0 | 12,0 footnote:defectsmass[] | 12,0
138
- | Partly gelatinized kernels | Not applicable | Not applicable | 11,0 footnote:defectsmass[] | 11,0
139
- | Pecks | Not applicable | Not applicable | 4,0 | 2,0
140
- | Waxy rice | 1,0 footnote:defectsmass[] | 1,0 | 1,0 footnote:defectsmass[] | 1,0
141
-
142
- 5+a| Live insects shall not be present. Dead insects shall be included in extraneous matter.
143
- |===
144
- INPUT
145
- #{BLANK_HDR}
146
- <sections>
147
- <table id="_">
148
- <name>Maximum permissible mass fraction of defects</name>
149
- <thead>
150
- <tr>
151
- <th rowspan="2" valign="top" align="left">Defect</th>
152
- <th colspan="4" valign="top" align="center">Maximum permissible mass fraction of defects in husked rice<br/>
153
- <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mrow>
154
- <mi>w</mi>
155
- </mrow>
156
- <mrow>
157
- <mo>max</mo>
158
- </mrow>
159
- </msub></math></stem></th>
160
- </tr>
161
- <tr>
162
- <th valign="top" align="left">in husked rice</th>
163
- <th valign="top" align="center">in milled rice (non-glutinous)</th>
164
- <th valign="top" align="center">in husked parboiled rice</th>
165
- <th valign="top" align="center">in milled parboiled rice</th>
166
- </tr></thead>
167
- <tbody>
168
-
169
- <tr>
170
- <td valign="top" align="left">Extraneous matter: organic<fn reference="a">
171
- <p id="_">Organic extraneous matter includes foreign seeds, husks, bran, parts of straw, etc.</p>
172
- </fn></td>
173
- <td valign="top" align="center">1,0</td>
174
- <td valign="top" align="center">0,5</td>
175
- <td valign="top" align="center">1,0</td>
176
- <td valign="top" align="center">0,5</td>
177
- </tr>
178
- <tr>
179
- <td valign="top" align="left">Extraneous matter: inorganic<fn reference="b">
180
- <p id="_">Inorganic extraneous matter includes stones, sand, dust, etc.</p>
181
- </fn></td>
182
- <td valign="top" align="center">0,5</td>
183
- <td valign="top" align="center">0,5</td>
184
- <td valign="top" align="center">0,5</td>
185
- <td valign="top" align="center">0,5</td>
186
- </tr>
187
- <tr>
188
- <td valign="top" align="left">Paddy</td>
189
- <td valign="top" align="center">2,5</td>
190
- <td valign="top" align="center">0,3</td>
191
- <td valign="top" align="center">2,5</td>
192
- <td valign="top" align="center">0,3</td>
193
- </tr>
194
- <tr>
195
- <td valign="top" align="left">Husked rice, non-parboiled</td>
196
- <td valign="top" align="center">Not applicable</td>
197
- <td valign="top" align="center">1,0</td>
198
- <td valign="top" align="center">1,0</td>
199
- <td valign="top" align="center">1,0</td>
200
- </tr>
201
- <tr>
202
- <td valign="top" align="left">Milled rice, non-parboiled</td>
203
- <td valign="top" align="center">1,0</td>
204
- <td valign="top" align="center">Not applicable</td>
205
- <td valign="top" align="center">1,0</td>
206
- <td valign="top" align="center">1,0</td>
207
- </tr>
208
- <tr>
209
- <td valign="top" align="left">Husked rice, parboiled</td>
210
- <td valign="top" align="center">1,0</td>
211
- <td valign="top" align="center">1,0</td>
212
- <td valign="top" align="center">Not applicable</td>
213
- <td valign="top" align="center">1,0</td>
214
- </tr>
215
- <tr>
216
- <td valign="top" align="left">Milled rice, parboiled</td>
217
- <td valign="top" align="center">1,0</td>
218
- <td valign="top" align="center">1,0</td>
219
- <td valign="top" align="center">1,0</td>
220
- <td valign="top" align="center">Not applicable</td>
221
- </tr>
222
- <tr>
223
- <td valign="top" align="left">Chips</td>
224
- <td valign="top" align="center">0,1</td>
225
- <td valign="top" align="center">0,1</td>
226
- <td valign="top" align="center">0,1</td>
227
- <td valign="top" align="center">0,1</td>
228
- </tr>
229
- <tr>
230
- <td valign="top" align="left">HDK</td>
231
- <td valign="top" align="center">2,0<fn reference="c">
232
- <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
233
- </fn></td>
234
- <td valign="top" align="center">2,0</td>
235
- <td valign="top" align="center">2,0<fn reference="c">
236
- <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
237
- </fn></td>
238
- <td valign="top" align="center">2,0</td>
239
- </tr>
240
- <tr>
241
- <td valign="top" align="left">Damaged kernels</td>
242
- <td valign="top" align="center">4,0</td>
243
- <td valign="top" align="center">3,0</td>
244
- <td valign="top" align="center">4,0</td>
245
- <td valign="top" align="center">3,0</td>
246
- </tr>
247
- <tr>
248
- <td valign="top" align="left">Immature and/or malformed kernels</td>
249
- <td valign="top" align="center">8,0</td>
250
- <td valign="top" align="center">2,0</td>
251
- <td valign="top" align="center">8,0</td>
252
- <td valign="top" align="center">2,0</td>
253
- </tr>
254
- <tr>
255
- <td valign="top" align="left">Chalky kernels</td>
256
- <td valign="top" align="center">5,0<fn reference="c">
257
- <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
258
- </fn></td>
259
- <td valign="top" align="center">5,0</td>
260
- <td valign="top" align="center">Not applicable</td>
261
- <td valign="top" align="center">Not applicable</td>
262
- </tr>
263
- <tr>
264
- <td valign="top" align="left">Red kernels and red-streaked kernels</td>
265
- <td valign="top" align="center">12,0</td>
266
- <td valign="top" align="center">12,0</td>
267
- <td valign="top" align="center">12,0<fn reference="c">
268
- <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
269
- </fn></td>
270
- <td valign="top" align="center">12,0</td>
271
- </tr>
272
- <tr>
273
- <td valign="top" align="left">Partly gelatinized kernels</td>
274
- <td valign="top" align="center">Not applicable</td>
275
- <td valign="top" align="center">Not applicable</td>
276
- <td valign="top" align="center">11,0<fn reference="c">
277
- <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
278
- </fn></td>
279
- <td valign="top" align="center">11,0</td>
280
- </tr>
281
- <tr>
282
- <td valign="top" align="left">Pecks</td>
283
- <td valign="top" align="center">Not applicable</td>
284
- <td valign="top" align="center">Not applicable</td>
285
- <td valign="top" align="center">4,0</td>
286
- <td valign="top" align="center">2,0</td>
287
- </tr>
288
- <tr>
289
- <td valign="top" align="left">Waxy rice</td>
290
- <td valign="top" align="center">1,0<fn reference="c">
291
- <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
292
- </fn></td>
293
- <td valign="top" align="center">1,0</td>
294
- <td valign="top" align="center">1,0<fn reference="c">
295
- <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p>
296
- </fn></td>
297
- <td valign="top" align="center">1,0</td>
298
- </tr>
299
- </tbody>
300
- <tfoot>
301
- <tr>
302
- <td colspan="5" valign="top" align="left">
303
- <p id="_">Live insects shall not be present. Dead insects shall be included in extraneous matter.</p>
304
- </td>
305
- </tr>
306
- </tfoot>
307
- </table>
308
- </sections>
309
- </iso-standard>
310
- OUTPUT
311
- end
312
- end
313
-