metanorma-iso 1.5.14 → 1.7.2

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +17 -0
  3. data/.rubocop.yml +0 -4
  4. data/lib/asciidoctor/iso/base.rb +13 -13
  5. data/lib/asciidoctor/iso/basicdoc.rng +20 -3
  6. data/lib/asciidoctor/iso/cleanup.rb +1 -1
  7. data/lib/asciidoctor/iso/front.rb +5 -5
  8. data/lib/asciidoctor/iso/isodoc.rng +118 -4
  9. data/lib/asciidoctor/iso/isostandard-amd.rng +11 -4
  10. data/lib/asciidoctor/iso/isostandard.rng +22 -10
  11. data/lib/asciidoctor/iso/validate.rb +78 -0
  12. data/lib/asciidoctor/iso/validate_section.rb +12 -9
  13. data/lib/isodoc/iso/html/header.html +12 -12
  14. data/lib/isodoc/iso/html/html_iso_intro.html +1 -1
  15. data/lib/isodoc/iso/html/html_iso_titlepage.html +1 -1
  16. data/lib/isodoc/iso/html/word_iso_intro.html +1 -1
  17. data/lib/isodoc/iso/html/word_iso_titlepage.html +1 -1
  18. data/lib/isodoc/iso/html_convert.rb +2 -2
  19. data/lib/isodoc/iso/i18n-en.yaml +2 -0
  20. data/lib/isodoc/iso/i18n-fr.yaml +1 -1
  21. data/lib/isodoc/iso/i18n-zh-Hans.yaml +1 -1
  22. data/lib/isodoc/iso/iso.amendment.xsl +451 -208
  23. data/lib/isodoc/iso/iso.international-standard.xsl +451 -208
  24. data/lib/isodoc/iso/sections.rb +1 -1
  25. data/lib/isodoc/iso/word_convert.rb +2 -2
  26. data/lib/isodoc/iso/xref.rb +28 -12
  27. data/lib/metanorma/iso/processor.rb +11 -0
  28. data/lib/metanorma/iso/version.rb +1 -1
  29. data/metanorma-iso.gemspec +2 -2
  30. data/spec/asciidoctor-iso/amd_spec.rb +575 -573
  31. data/spec/asciidoctor-iso/base_spec.rb +449 -458
  32. data/spec/asciidoctor-iso/blocks_spec.rb +333 -288
  33. data/spec/asciidoctor-iso/cleanup_spec.rb +814 -699
  34. data/spec/asciidoctor-iso/inline_spec.rb +116 -91
  35. data/spec/asciidoctor-iso/lists_spec.rb +128 -121
  36. data/spec/asciidoctor-iso/refs_spec.rb +308 -250
  37. data/spec/asciidoctor-iso/section_spec.rb +273 -242
  38. data/spec/asciidoctor-iso/table_spec.rb +258 -242
  39. data/spec/asciidoctor-iso/validate_spec.rb +1223 -919
  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 +340 -316
  45. data/spec/isodoc/metadata_spec.rb +392 -382
  46. data/spec/isodoc/postproc_spec.rb +834 -656
  47. data/spec/isodoc/ref_spec.rb +374 -331
  48. data/spec/isodoc/section_spec.rb +608 -525
  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 +184 -189
  54. metadata +7 -10
  55. data/.rubocop.ribose.yml +0 -66
  56. data/lib/metanorma/iso/fonts_manifest.yaml +0 -6
  57. data/spec/assets/xref_error.adoc +0 -7
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  RSpec.describe Asciidoctor::ISO do
4
4
  it "processes basic tables" do
5
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
5
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
6
6
  #{ASCIIDOC_BLANK_HDR}
7
7
  .Table Name
8
8
  |===
@@ -11,32 +11,32 @@ RSpec.describe Asciidoctor::ISO do
11
11
  h|1 |2 |3
12
12
  |===
13
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>
14
+ #{BLANK_HDR}
15
+ <sections>
16
+ <table id="_">
17
+ <name>Table Name</name>
18
+ <thead>
19
+ <tr>
20
+ <th align="left" valign="top">A</th>
21
+ <th align="left" valign="top">B</th>
22
+ <th align="left" valign="top">C</th>
23
+ </tr>
24
+ </thead>
25
+ <tbody>
26
+ <tr>
27
+ <th align="left" valign="top">1</th>
28
+ <td align="left" valign="top">2</td>
29
+ <td align="left" valign="top">3</td>
30
+ </tr>
31
+ </tbody>
32
+ </table>
33
+ </sections>
34
+ </iso-standard>
35
35
  OUTPUT
36
36
  end
37
37
 
38
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)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
39
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
40
40
  #{ASCIIDOC_BLANK_HDR}
41
41
  [headerrows=2]
42
42
  .Table Name
@@ -46,37 +46,37 @@ RSpec.describe Asciidoctor::ISO do
46
46
  h|1 |2 |3
47
47
  |===
48
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>
49
+ #{BLANK_HDR}
50
+ <sections>
51
+ <table id="_">
52
+ <name>Table Name</name>
53
+ <thead>
54
+ <tr>
55
+ <th align="left" valign="top">A</th>
56
+ <th align="left" valign="top">B</th>
57
+ <th align="left" valign="top">C</th>
58
+ </tr>
59
+ <tr>
60
+ <th align="left" valign="top">1</th>
61
+ <th align="left" valign="top">2</th>
62
+ <th align="left" valign="top">3</th>
63
+ </tr>
64
+ </thead>
65
+ <tbody>
66
+ <tr>
67
+ <th align="left" valign="top">1</th>
68
+ <td align="left" valign="top">2</td>
69
+ <td align="left" valign="top">3</td>
70
+ </tr>
71
+ </tbody>
72
+ </table>
73
+ </sections>
74
+ </iso-standard>
74
75
  OUTPUT
75
76
  end
76
77
 
77
-
78
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)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
79
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
80
80
  #{ASCIIDOC_BLANK_HDR}
81
81
  [headerrows=2]
82
82
  |===
@@ -85,34 +85,36 @@ RSpec.describe Asciidoctor::ISO do
85
85
  h|1 |2 |3
86
86
  |===
87
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>
88
+ #{BLANK_HDR}
89
+ <sections>
90
+ <table id="_">
91
+ <thead>
92
+ <tr>
93
+ <th align="left" valign="top">A</th>
94
+ <th align="left" valign="top">B</th>
95
+ <th align="left" valign="top">C</th>
96
+ </tr>
97
+ <tr>
98
+ <th align="left" valign="top">1</th>
99
+ <th align="left" valign="top">2</th>
100
+ <th align="left" valign="top">3</th>
101
+ </tr>
102
+ </thead>
103
+ <tbody>
104
+ <tr>
105
+ <th align="left" valign="top">1</th>
106
+ <td align="left" valign="top">2</td>
107
+ <td align="left" valign="top">3</td>
108
+ </tr>
109
+ </tbody>
110
+ </table>
111
+ </sections>
112
+ </iso-standard>
111
113
  OUTPUT
112
114
  end
113
115
 
114
116
  it "processes complex tables" do
115
- expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :iso, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
117
+ expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", *OPTIONS)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
116
118
  #{ASCIIDOC_BLANK_HDR}
117
119
  [cols="<,^,^,^,^",options="header,footer",headerrows=2]
118
120
  .Maximum permissible mass fraction of defects
@@ -120,7 +122,7 @@ RSpec.describe Asciidoctor::ISO do
120
122
  .2+|Defect 4+^| Maximum permissible mass fraction of defects in husked rice +
121
123
  stem:[w_max]
122
124
  | in husked rice | in milled rice (non-glutinous) | in husked parboiled rice | in milled parboiled rice
123
-
125
+
124
126
  | 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
127
  // not rendered list here
126
128
  | Extraneous matter: inorganic footnote:[Inorganic extraneous matter includes stones, sand, dust, etc.] | 0,5 | 0,5 | 0,5 | 0,5
@@ -138,176 +140,190 @@ RSpec.describe Asciidoctor::ISO do
138
140
  | Partly gelatinized kernels | Not applicable | Not applicable | 11,0 footnote:defectsmass[] | 11,0
139
141
  | Pecks | Not applicable | Not applicable | 4,0 | 2,0
140
142
  | Waxy rice | 1,0 footnote:defectsmass[] | 1,0 | 1,0 footnote:defectsmass[] | 1,0
141
-
143
+
142
144
  5+a| Live insects shall not be present. Dead insects shall be included in extraneous matter.
143
145
  |===
144
146
  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>
147
+ #{BLANK_HDR}
148
+ <sections>
149
+ <table id="_">
150
+ <name>Maximum permissible mass fraction of defects</name>
151
+ <thead>
152
+ <tr>
153
+ <th align="left" rowspan="2" valign="top">Defect</th>
154
+ <th align="center" colspan="4" valign="top">Maximum permissible mass fraction of defects in husked rice
155
+ <br/>
156
+ <stem type="MathML">
157
+ <math xmlns="http://www.w3.org/1998/Math/MathML">
158
+ <msub>
159
+ <mrow>
160
+ <mi>w</mi></mrow>
161
+ <mrow>
162
+ <mo>max</mo>
163
+ </mrow>
164
+ </msub>
165
+ </math>
166
+ </stem>
167
+ </th>
168
+ </tr>
169
+ <tr>
170
+ <th align="left" valign="top">in husked rice</th>
171
+ <th align="center" valign="top">in milled rice (non-glutinous)</th>
172
+ <th align="center" valign="top">in husked parboiled rice</th>
173
+ <th align="center" valign="top">in milled parboiled rice</th>
174
+ </tr>
175
+ </thead>
176
+ <tbody>
177
+ <tr>
178
+ <td align="left" valign="top">Extraneous matter: organic
179
+ <fn reference="a">
180
+ <p id="_">Organic extraneous matter includes foreign seeds, husks, bran, parts of straw, etc.</p></fn>
181
+ </td>
182
+ <td align="center" valign="top">1,0</td>
183
+ <td align="center" valign="top">0,5</td>
184
+ <td align="center" valign="top">1,0</td>
185
+ <td align="center" valign="top">0,5</td>
186
+ </tr>
187
+ <tr>
188
+ <td align="left" valign="top">Extraneous matter: inorganic
189
+ <fn reference="b">
190
+ <p id="_">Inorganic extraneous matter includes stones, sand, dust, etc.</p></fn>
191
+ </td>
192
+ <td align="center" valign="top">0,5</td>
193
+ <td align="center" valign="top">0,5</td>
194
+ <td align="center" valign="top">0,5</td>
195
+ <td align="center" valign="top">0,5</td>
196
+ </tr>
197
+ <tr>
198
+ <td align="left" valign="top">Paddy</td>
199
+ <td align="center" valign="top">2,5</td>
200
+ <td align="center" valign="top">0,3</td>
201
+ <td align="center" valign="top">2,5</td>
202
+ <td align="center" valign="top">0,3</td>
203
+ </tr>
204
+ <tr>
205
+ <td align="left" valign="top">Husked rice, non-parboiled</td>
206
+ <td align="center" valign="top">Not applicable</td>
207
+ <td align="center" valign="top">1,0</td>
208
+ <td align="center" valign="top">1,0</td>
209
+ <td align="center" valign="top">1,0</td>
210
+ </tr>
211
+ <tr>
212
+ <td align="left" valign="top">Milled rice, non-parboiled</td>
213
+ <td align="center" valign="top">1,0</td>
214
+ <td align="center" valign="top">Not applicable</td>
215
+ <td align="center" valign="top">1,0</td>
216
+ <td align="center" valign="top">1,0</td>
217
+ </tr>
218
+ <tr>
219
+ <td align="left" valign="top">Husked rice, parboiled</td>
220
+ <td align="center" valign="top">1,0</td>
221
+ <td align="center" valign="top">1,0</td>
222
+ <td align="center" valign="top">Not applicable</td>
223
+ <td align="center" valign="top">1,0</td>
224
+ </tr>
225
+ <tr>
226
+ <td align="left" valign="top">Milled rice, parboiled</td>
227
+ <td align="center" valign="top">1,0</td>
228
+ <td align="center" valign="top">1,0</td>
229
+ <td align="center" valign="top">1,0</td>
230
+ <td align="center" valign="top">Not applicable</td>
231
+ </tr>
232
+ <tr>
233
+ <td align="left" valign="top">Chips</td>
234
+ <td align="center" valign="top">0,1</td>
235
+ <td align="center" valign="top">0,1</td>
236
+ <td align="center" valign="top">0,1</td>
237
+ <td align="center" valign="top">0,1</td>
238
+ </tr>
239
+ <tr>
240
+ <td align="left" valign="top">HDK</td>
241
+ <td align="center" valign="top">2,0
242
+ <fn reference="c">
243
+ <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p></fn>
244
+ </td>
245
+ <td align="center" valign="top">2,0</td>
246
+ <td align="center" valign="top">2,0
247
+ <fn reference="c">
248
+ <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p></fn>
249
+ </td>
250
+ <td align="center" valign="top">2,0</td>
251
+ </tr>
252
+ <tr>
253
+ <td align="left" valign="top">Damaged kernels</td>
254
+ <td align="center" valign="top">4,0</td>
255
+ <td align="center" valign="top">3,0</td>
256
+ <td align="center" valign="top">4,0</td>
257
+ <td align="center" valign="top">3,0</td>
258
+ </tr>
259
+ <tr>
260
+ <td align="left" valign="top">Immature and/or malformed kernels</td>
261
+ <td align="center" valign="top">8,0</td>
262
+ <td align="center" valign="top">2,0</td>
263
+ <td align="center" valign="top">8,0</td>
264
+ <td align="center" valign="top">2,0</td>
265
+ </tr>
266
+ <tr>
267
+ <td align="left" valign="top">Chalky kernels</td>
268
+ <td align="center" valign="top">5,0
269
+ <fn reference="c">
270
+ <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p></fn>
271
+ </td>
272
+ <td align="center" valign="top">5,0</td>
273
+ <td align="center" valign="top">Not applicable</td>
274
+ <td align="center" valign="top">Not applicable</td>
275
+ </tr>
276
+ <tr>
277
+ <td align="left" valign="top">Red kernels and red-streaked kernels</td>
278
+ <td align="center" valign="top">12,0</td>
279
+ <td align="center" valign="top">12,0</td>
280
+ <td align="center" valign="top">12,0
281
+ <fn reference="c">
282
+ <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p></fn>
283
+ </td>
284
+ <td align="center" valign="top">12,0</td>
285
+ </tr>
286
+ <tr>
287
+ <td align="left" valign="top">Partly gelatinized kernels</td>
288
+ <td align="center" valign="top">Not applicable</td>
289
+ <td align="center" valign="top">Not applicable</td>
290
+ <td align="center" valign="top">11,0
291
+ <fn reference="c">
292
+ <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p></fn>
293
+ </td>
294
+ <td align="center" valign="top">11,0</td>
295
+ </tr>
296
+ <tr>
297
+ <td align="left" valign="top">Pecks</td>
298
+ <td align="center" valign="top">Not applicable</td>
299
+ <td align="center" valign="top">Not applicable</td>
300
+ <td align="center" valign="top">4,0</td>
301
+ <td align="center" valign="top">2,0</td>
302
+ </tr>
303
+ <tr>
304
+ <td align="left" valign="top">Waxy rice</td>
305
+ <td align="center" valign="top">1,0
306
+ <fn reference="c">
307
+ <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p></fn>
308
+ </td>
309
+ <td align="center" valign="top">1,0</td>
310
+ <td align="center" valign="top">1,0
311
+ <fn reference="c">
312
+ <p id="_">The maximum permissible mass fraction of defects shall be determined with respect to the mass fraction obtained after milling.</p></fn>
313
+ </td>
314
+ <td align="center" valign="top">1,0</td>
315
+ </tr>
316
+ </tbody>
317
+ <tfoot>
318
+ <tr>
319
+ <td align="left" colspan="5" valign="top">
320
+ <p id="_">Live insects shall not be present. Dead insects shall be included in extraneous matter.</p>
321
+ </td>
322
+ </tr>
323
+ </tfoot>
324
+ </table>
325
+ </sections>
326
+ </iso-standard>
310
327
  OUTPUT
311
328
  end
312
329
  end
313
-