metanorma-iso 1.7.0 → 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) 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 +12 -12
  6. data/lib/asciidoctor/iso/biblio.rng +4 -6
  7. data/lib/asciidoctor/iso/cleanup.rb +1 -1
  8. data/lib/asciidoctor/iso/front.rb +1 -1
  9. data/lib/asciidoctor/iso/front_id.rb +30 -25
  10. data/lib/asciidoctor/iso/isodoc.rng +235 -3
  11. data/lib/asciidoctor/iso/isostandard-amd.rng +3 -0
  12. data/lib/asciidoctor/iso/isostandard.rng +17 -97
  13. data/lib/asciidoctor/iso/validate.rb +1 -0
  14. data/lib/asciidoctor/iso/validate_title.rb +21 -13
  15. data/lib/isodoc/iso/base_convert.rb +11 -0
  16. data/lib/isodoc/iso/html/style-human.css +7 -0
  17. data/lib/isodoc/iso/html/style-iso.css +7 -0
  18. data/lib/isodoc/iso/html_convert.rb +0 -1
  19. data/lib/isodoc/iso/i18n-en.yaml +4 -0
  20. data/lib/isodoc/iso/i18n-fr.yaml +4 -0
  21. data/lib/isodoc/iso/i18n-zh-Hans.yaml +4 -0
  22. data/lib/isodoc/iso/index.rb +140 -0
  23. data/lib/isodoc/iso/iso.amendment.xsl +1010 -324
  24. data/lib/isodoc/iso/iso.international-standard.xsl +1010 -324
  25. data/lib/isodoc/iso/presentation_xml_convert.rb +32 -25
  26. data/lib/isodoc/iso/word_convert.rb +0 -1
  27. data/lib/isodoc/iso/xref.rb +13 -5
  28. data/lib/metanorma/iso/version.rb +1 -1
  29. data/metanorma-iso.gemspec +8 -8
  30. data/spec/asciidoctor/amd_spec.rb +696 -0
  31. data/spec/asciidoctor/base_spec.rb +704 -0
  32. data/spec/asciidoctor/blocks_spec.rb +527 -0
  33. data/spec/asciidoctor/cleanup_spec.rb +1134 -0
  34. data/spec/asciidoctor/inline_spec.rb +195 -0
  35. data/spec/asciidoctor/lists_spec.rb +197 -0
  36. data/spec/asciidoctor/refs_spec.rb +375 -0
  37. data/spec/asciidoctor/section_spec.rb +393 -0
  38. data/spec/asciidoctor/table_spec.rb +329 -0
  39. data/spec/asciidoctor/validate_spec.rb +1572 -0
  40. data/spec/isodoc/amd_spec.rb +967 -946
  41. data/spec/isodoc/blocks_spec.rb +530 -507
  42. data/spec/isodoc/i18n_spec.rb +953 -911
  43. data/spec/isodoc/inline_spec.rb +355 -293
  44. data/spec/isodoc/iso_spec.rb +338 -314
  45. data/spec/isodoc/metadata_spec.rb +392 -382
  46. data/spec/isodoc/postproc_spec.rb +837 -657
  47. data/spec/isodoc/ref_spec.rb +374 -331
  48. data/spec/isodoc/section_spec.rb +821 -519
  49. data/spec/isodoc/table_spec.rb +472 -411
  50. data/spec/isodoc/terms_spec.rb +209 -185
  51. data/spec/isodoc/xref_spec.rb +1370 -1236
  52. data/spec/metanorma/processor_spec.rb +28 -26
  53. data/spec/spec_helper.rb +186 -189
  54. metadata +65 -67
  55. data/.rubocop.ribose.yml +0 -66
  56. data/lib/isodoc/iso/html/scripts.html +0 -178
  57. data/spec/asciidoctor-iso/amd_spec.rb +0 -694
  58. data/spec/asciidoctor-iso/base_spec.rb +0 -713
  59. data/spec/asciidoctor-iso/blocks_spec.rb +0 -482
  60. data/spec/asciidoctor-iso/cleanup_spec.rb +0 -1025
  61. data/spec/asciidoctor-iso/inline_spec.rb +0 -170
  62. data/spec/asciidoctor-iso/lists_spec.rb +0 -190
  63. data/spec/asciidoctor-iso/refs_spec.rb +0 -317
  64. data/spec/asciidoctor-iso/section_spec.rb +0 -362
  65. data/spec/asciidoctor-iso/table_spec.rb +0 -313
  66. data/spec/asciidoctor-iso/validate_spec.rb +0 -1619
  67. 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
-