metanorma-standoc 1.4.0 → 1.5.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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/macos.yml +0 -7
  3. data/.github/workflows/ubuntu.yml +6 -11
  4. data/.github/workflows/windows.yml +0 -8
  5. data/.rubocop.yml +1 -1
  6. data/Rakefile +2 -0
  7. data/lib/asciidoctor/standoc/base.rb +28 -27
  8. data/lib/asciidoctor/standoc/biblio.rng +1 -1
  9. data/lib/asciidoctor/standoc/blocks.rb +25 -95
  10. data/lib/asciidoctor/standoc/blocks_notes.rb +89 -0
  11. data/lib/asciidoctor/standoc/cleanup.rb +10 -6
  12. data/lib/asciidoctor/standoc/cleanup_boilerplate.rb +11 -24
  13. data/lib/asciidoctor/standoc/cleanup_inline.rb +1 -1
  14. data/lib/asciidoctor/standoc/cleanup_ref.rb +47 -1
  15. data/lib/asciidoctor/standoc/cleanup_section.rb +72 -5
  16. data/lib/asciidoctor/standoc/cleanup_terms.rb +10 -0
  17. data/lib/asciidoctor/standoc/converter.rb +16 -2
  18. data/lib/asciidoctor/standoc/inline.rb +1 -1
  19. data/lib/asciidoctor/standoc/isodoc.rng +439 -6
  20. data/lib/asciidoctor/standoc/lists.rb +12 -12
  21. data/lib/asciidoctor/standoc/macros_yaml2text.rb +32 -15
  22. data/lib/asciidoctor/standoc/ref.rb +75 -34
  23. data/lib/asciidoctor/standoc/reqt.rb +11 -6
  24. data/lib/asciidoctor/standoc/reqt.rng +23 -0
  25. data/lib/asciidoctor/standoc/section.rb +27 -25
  26. data/lib/asciidoctor/standoc/table.rb +3 -2
  27. data/lib/asciidoctor/standoc/utils.rb +16 -0
  28. data/lib/asciidoctor/standoc/views/datamodel/model_representation.adoc.erb +1 -1
  29. data/lib/metanorma/standoc/processor.rb +5 -7
  30. data/lib/metanorma/standoc/version.rb +1 -1
  31. data/metanorma-standoc.gemspec +3 -2
  32. data/spec/asciidoctor-standoc/base_spec.rb +3 -2
  33. data/spec/asciidoctor-standoc/blocks_spec.rb +68 -32
  34. data/spec/asciidoctor-standoc/cleanup_spec.rb +1221 -17
  35. data/spec/asciidoctor-standoc/datamodel/attributes_table_preprocessor_spec.rb +35 -0
  36. data/spec/asciidoctor-standoc/inline_spec.rb +3 -3
  37. data/spec/asciidoctor-standoc/isobib_cache_spec.rb +4 -4
  38. data/spec/asciidoctor-standoc/lists_spec.rb +7 -5
  39. data/spec/asciidoctor-standoc/macros_spec.rb +4 -3
  40. data/spec/asciidoctor-standoc/refs_dl_spec.rb +8 -6
  41. data/spec/asciidoctor-standoc/refs_spec.rb +275 -30
  42. data/spec/asciidoctor-standoc/section_spec.rb +42 -38
  43. data/spec/asciidoctor-standoc/table_spec.rb +3 -3
  44. data/spec/asciidoctor-standoc/validate_spec.rb +56 -0
  45. data/spec/assets/{html.css → html.scss} +0 -0
  46. data/spec/assets/i18n.yaml +17 -2
  47. data/spec/assets/iso123.rxl +107 -0
  48. data/spec/assets/{word.css → word.scss} +0 -0
  49. data/spec/examples/datamodel/blank_definition_profile.adoc +4 -0
  50. data/spec/examples/datamodel/models/models/{Signature copy.yml → SignatureBlankDefinition.yml} +2 -2
  51. data/spec/fixtures/macros_datamodel/blank_definition_profile.xml +51 -0
  52. data/spec/metanorma/processor_spec.rb +5 -6
  53. data/spec/vcr_cassettes/dated_iso_ref_joint_iso_iec.yml +83 -83
  54. data/spec/vcr_cassettes/isobib_get_123.yml +19 -198
  55. data/spec/vcr_cassettes/isobib_get_123_1.yml +361 -0
  56. data/spec/vcr_cassettes/isobib_get_123_2001.yml +19 -19
  57. data/spec/vcr_cassettes/isobib_get_124.yml +21 -21
  58. data/spec/vcr_cassettes/rfcbib_get_rfc8341.yml +10 -10
  59. data/spec/vcr_cassettes/separates_iev_citations_by_top_level_clause.yml +42 -42
  60. metadata +32 -18
  61. data/lib/asciidoctor-yaml/i18n-en.yaml +0 -20
  62. data/lib/asciidoctor-yaml/i18n-fr.yaml +0 -13
  63. data/lib/asciidoctor-yaml/i18n-zh-Hans.yaml +0 -15
  64. data/lib/asciidoctor/standoc/i18n.rb +0 -39
@@ -59,7 +59,7 @@ RSpec.describe Asciidoctor::Standoc do
59
59
  [.nonterm]
60
60
  ==== General
61
61
 
62
- ==== Symbols 1
62
+ ==== Symbols
63
63
 
64
64
  == Abbreviated Terms
65
65
 
@@ -82,6 +82,7 @@ RSpec.describe Asciidoctor::Standoc do
82
82
  INPUT
83
83
  #{BLANK_HDR.sub(/<status>/, "<abstract> <p>Text</p> </abstract><status>")}
84
84
  <preface><abstract id="_">
85
+ <title>Abstract</title>
85
86
  <p id="_">Text</p>
86
87
  </abstract><foreword id='_' obligation="informative">
87
88
  <title>Foreword</title>
@@ -101,7 +102,7 @@ RSpec.describe Asciidoctor::Standoc do
101
102
  </preface><sections>
102
103
 
103
104
 
104
- <clause id="_" inline-header="false" obligation="normative">
105
+ <clause id="_" inline-header="false" obligation="normative" type="scope">
105
106
  <title>Scope</title>
106
107
  <p id="_">Text</p>
107
108
  </clause>
@@ -143,14 +144,14 @@ RSpec.describe Asciidoctor::Standoc do
143
144
  <preferred>Term2</preferred>
144
145
  </term>
145
146
  </terms>
146
- <definitions id="_"><title>Symbols and Abbreviated Terms</title><clause id="_" inline-header="false" obligation="normative">
147
+ <definitions id="_" obligation="normative"><title>Symbols and abbreviated terms</title><clause id="_" inline-header="false" obligation="normative">
147
148
  <title>General</title>
148
149
  </clause>
149
- <definitions id="_">
150
- <title>Symbols 1</title>
150
+ <definitions id="_" obligation="normative" type="symbols">
151
+ <title>Symbols</title>
151
152
  </definitions></definitions></clause>
152
- <definitions id="_">
153
- <title>Abbreviated Terms</title>
153
+ <definitions id="_" obligation="normative" type="abbreviated_terms">
154
+ <title>Abbreviated terms</title>
154
155
  </definitions>
155
156
  <clause id="_" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="_" inline-header="false" obligation="normative">
156
157
  <title>Introduction</title>
@@ -168,7 +169,7 @@ RSpec.describe Asciidoctor::Standoc do
168
169
  <title>Annex A.1</title>
169
170
  </clause>
170
171
  </annex><bibliography><references id="_" obligation="informative" normative="true">
171
- <title>Normative References</title>
172
+ <title>Normative references</title>
172
173
  <p id="_">There are no normative references in this document.</p>
173
174
  </references><clause id="_" obligation="informative">
174
175
  <title>Bibliography</title>
@@ -256,7 +257,7 @@ RSpec.describe Asciidoctor::Standoc do
256
257
  [language=en,script=Latn]
257
258
  ==== General
258
259
 
259
- ==== Symbols 1
260
+ ==== Symbols
260
261
 
261
262
  [language=en,script=Latn]
262
263
  == Abbreviated Terms
@@ -287,6 +288,7 @@ RSpec.describe Asciidoctor::Standoc do
287
288
  INPUT
288
289
  #{BLANK_HDR.sub(/<status>/, "<abstract> <p>Text</p> </abstract><status>")}
289
290
  <preface><abstract id="_" language="en" script="Latn">
291
+ <title>Abstract</title>
290
292
  <p id="_">Text</p>
291
293
  </abstract><foreword id='_' language='en' script='Latn' obligation='informative'>
292
294
  <title>Foreword</title>
@@ -306,7 +308,7 @@ RSpec.describe Asciidoctor::Standoc do
306
308
  </preface><sections>
307
309
 
308
310
 
309
- <clause id="_" language="en" script="Latn" inline-header="false" obligation="normative">
311
+ <clause id="_" language="en" script="Latn" inline-header="false" obligation="normative" type="scope">
310
312
  <title>Scope</title>
311
313
  <p id="_">Text</p>
312
314
  </clause>
@@ -348,14 +350,14 @@ RSpec.describe Asciidoctor::Standoc do
348
350
  <preferred>Term2</preferred>
349
351
  </term>
350
352
  </terms>
351
- <definitions id="_" language="en" script="Latn"><title>Symbols and Abbreviated Terms</title><clause id="_" language="en" script="Latn" inline-header="false" obligation="normative">
353
+ <definitions id="_" language="en" script="Latn" obligation="normative"><title>Symbols and abbreviated terms</title><clause id="_" language="en" script="Latn" inline-header="false" obligation="normative">
352
354
  <title>General</title>
353
355
  </clause>
354
- <definitions id="_">
355
- <title>Symbols 1</title>
356
+ <definitions id="_" obligation="normative" type="symbols">
357
+ <title>Symbols</title>
356
358
  </definitions></definitions></clause>
357
- <definitions id="_" language="en" script="Latn">
358
- <title>Abbreviated Terms</title>
359
+ <definitions id="_" language="en" script="Latn" obligation="normative" type="abbreviated_terms">
360
+ <title>Abbreviated terms</title>
359
361
  </definitions>
360
362
  <clause id="_" language="en" script="Latn" inline-header="false" obligation="normative"><title>Clause 4</title><clause id="_" language="en" script="Latn" inline-header="false" obligation="normative">
361
363
  <title>Introduction</title>
@@ -373,7 +375,7 @@ RSpec.describe Asciidoctor::Standoc do
373
375
  <title>Annex A.1</title>
374
376
  </clause>
375
377
  </annex><bibliography><references id="_" language="en" script="Latn" obligation="informative" normative="true">
376
- <title>Normative References</title>
378
+ <title>Normative references</title>
377
379
  <p id="_">There are no normative references in this document.</p>
378
380
  </references><clause id="_" language="en" script="Latn" obligation="informative">
379
381
  <title>Bibliography</title>
@@ -420,10 +422,10 @@ RSpec.describe Asciidoctor::Standoc do
420
422
 
421
423
  ==== Term2
422
424
 
423
- [heading=symbols and abbreviated terms]
425
+ [heading=symbols]
424
426
  === Σύμβολα και Συντομογραφίες
425
427
 
426
- [heading=symbols and abbreviated terms]
428
+ [heading=abbreviated terms]
427
429
  == Σύμβολα και Συντομογραφίες
428
430
 
429
431
  == Clause 4
@@ -445,6 +447,7 @@ RSpec.describe Asciidoctor::Standoc do
445
447
  #{BLANK_HDR.sub(/<status>/, "<abstract> <p>Text</p> </abstract><status>")}
446
448
  <preface>
447
449
  <abstract id='_'>
450
+ <title>Abstract</title>
448
451
  <p id='_'>Text</p>
449
452
  </abstract>
450
453
  <foreword id='_' obligation='informative'>
@@ -458,7 +461,7 @@ RSpec.describe Asciidoctor::Standoc do
458
461
  </clause>
459
462
  </introduction>
460
463
  <acknowledgements id='_' obligation='informative'>
461
- <title>Ευχαριστίες</title>
464
+ <title>Acknowledgements</title>
462
465
  </acknowledgements>
463
466
  </preface>
464
467
  <sections>
@@ -470,7 +473,7 @@ RSpec.describe Asciidoctor::Standoc do
470
473
  </term>
471
474
  </terms>
472
475
  <clause id='_' obligation='normative'>
473
- <title>Terms and definitions</title>
476
+ <title>Terms, definitions and symbols</title>
474
477
  <p id='_'>For the purposes of this document, the following terms and definitions apply.</p>
475
478
  <terms id='_' obligation='normative'>
476
479
  <title>Normal Terms</title>
@@ -478,12 +481,12 @@ RSpec.describe Asciidoctor::Standoc do
478
481
  <preferred>Term2</preferred>
479
482
  </term>
480
483
  </terms>
481
- <definitions id='_'>
482
- <title>Σύμβολα και Συντομογραφίες</title>
484
+ <definitions id='_' obligation="normative" type="symbols">
485
+ <title>Symbols</title>
483
486
  </definitions>
484
487
  </clause>
485
- <definitions id='_'>
486
- <title>Σύμβολα και Συντομογραφίες</title>
488
+ <definitions id='_' obligation="normative" type="abbreviated_terms">
489
+ <title>Abbreviated terms</title>
487
490
  </definitions>
488
491
  <clause id='_' inline-header='false' obligation='normative'>
489
492
  <title>Clause 4</title>
@@ -503,7 +506,7 @@ RSpec.describe Asciidoctor::Standoc do
503
506
  </annex>
504
507
  <bibliography>
505
508
  <references id='_' obligation='informative' normative="true">
506
- <title>Normative References</title>
509
+ <title>Normative references</title>
507
510
  <p id="_">There are no normative references in this document.</p>
508
511
  </references>
509
512
  <clause id='_' obligation='informative'>
@@ -537,7 +540,7 @@ RSpec.describe Asciidoctor::Standoc do
537
540
  <term id='_'>
538
541
  <preferred>Term</preferred>
539
542
  </term>
540
- <definitions id='_'>
543
+ <definitions id='_' obligation="normative" type="symbols">
541
544
  <title>Symbols</title>
542
545
  </definitions>
543
546
  </terms>
@@ -554,6 +557,7 @@ RSpec.describe Asciidoctor::Standoc do
554
557
 
555
558
  === Term
556
559
 
560
+ [heading="abbreviated terms"]
557
561
  === Symbols
558
562
 
559
563
  INPUT
@@ -565,8 +569,8 @@ RSpec.describe Asciidoctor::Standoc do
565
569
  <term id='_'>
566
570
  <preferred>Term</preferred>
567
571
  </term>
568
- <definitions id='_'>
569
- <title>Symbols</title>
572
+ <definitions id='_' obligation="normative" type="abbreviated_terms">
573
+ <title>Abbreviated terms</title>
570
574
  </definitions>
571
575
  </terms>
572
576
  </sections>
@@ -671,12 +675,12 @@ RSpec.describe Asciidoctor::Standoc do
671
675
  #{BLANK_HDR}
672
676
  <sections>
673
677
  <terms id='_' obligation='normative'>
674
- <title>Terms, definitions, symbols and abbreviated terms</title>
678
+ <title>Terms, definitions and symbols</title>
675
679
  <p id='_'>No terms and definitions are listed in this document.</p>
676
680
  <clause id='_' inline-header='false' obligation='normative'>
677
681
  <title>Terms and definitions</title>
678
682
  </clause>
679
- <definitions id='_'>
683
+ <definitions id='_' obligation="normative" type="symbols">
680
684
  <title>Symbols</title>
681
685
  </definitions>
682
686
  </terms>
@@ -787,11 +791,11 @@ RSpec.describe Asciidoctor::Standoc do
787
791
  #{BLANK_HDR.sub(%r{<language>en</language>}, "<language>fr</language>")}
788
792
  <termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/>
789
793
  <preface><foreword id='_' obligation="informative">
790
- <title>Foreword</title>
794
+ <title>Avant-propos</title>
791
795
  <p id="_">Foreword</p>
792
796
  </foreword></preface><sections>
793
797
  <terms id="_" obligation="normative">
794
- <title>Terms and definitions</title>
798
+ <title>Terms et définitions</title>
795
799
  <p id="_">Pour les besoins du présent document, les termes et définitions de <eref bibitemid="iso1234"/> et <eref bibitemid="iso5678"/> s’appliquent.</p>
796
800
 
797
801
 
@@ -820,11 +824,11 @@ RSpec.describe Asciidoctor::Standoc do
820
824
  INPUT
821
825
  #{BLANK_HDR.sub(%r{<language>en</language>}, "<language>zh</language>").sub(%r{<script>Latn</script>}, "<script>Hans</script>")}
822
826
  <termdocsource bibitemid="iso1234"/><termdocsource bibitemid="iso5678"/><preface><foreword id='_' obligation="informative">
823
- <title>Foreword</title>
827
+ <title>前言</title>
824
828
  <p id="_">Foreword</p>
825
829
  </foreword></preface><sections>
826
830
  <terms id="_" obligation="normative">
827
- <title>Terms and definitions</title><p id="_"><eref bibitemid="iso1234"/>和<eref bibitemid="iso5678"/>界定的术语和定义适用于本文件。</p>
831
+ <title>术语和定义</title><p id="_"><eref bibitemid="iso1234"/>和<eref bibitemid="iso5678"/>界定的术语和定义适用于本文件。</p>
828
832
 
829
833
 
830
834
 
@@ -858,12 +862,12 @@ INPUT
858
862
  #{BLANK_HDR}
859
863
  <sections>
860
864
  <terms id='tda' obligation='normative'>
861
- <title>Terms, definitions, symbols and abbreviated terms</title>
865
+ <title>Terms, definitions and symbols</title>
862
866
  <p id='_'>No terms and definitions are listed in this document.</p>
863
867
  <clause id='terms' inline-header='false' obligation='normative'>
864
868
  <title>Terms and definitions</title>
865
869
  </clause>
866
- <definitions id='_'>
870
+ <definitions id='_' obligation="normative" type="symbols">
867
871
  <title>Symbols</title>
868
872
  </definitions>
869
873
  </terms>
@@ -895,7 +899,7 @@ _time_ (<<term-time>>) on the _calendar_ (<<term-calendar>>) _time scale_ (<<ter
895
899
  INPUT
896
900
  #{BLANK_HDR}
897
901
  <sections>
898
- <clause id='_' inline-header='false' obligation='normative'>
902
+ <clause id='_' inline-header='false' obligation='normative' type="scope">
899
903
  <title>Scope</title>
900
904
  </clause>
901
905
  <clause id='tda' obligation='normative'>
@@ -963,7 +967,7 @@ INPUT
963
967
  </preface>
964
968
  <sections> </sections>
965
969
  <annex id='_' obligation='' language='fr' script=''>
966
- <definitions id='sym' language='fr'>
970
+ <definitions id='sym' language='fr' obligation="normative">
967
971
  <title>Symbols and abbreviated terms</title>
968
972
  </definitions>
969
973
  </annex>
@@ -114,7 +114,7 @@ RSpec.describe Asciidoctor::Standoc do
114
114
  it "processes complex tables" do
115
115
  expect(xmlpp(strip_guid(Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)))).to be_equivalent_to xmlpp(<<~"OUTPUT")
116
116
  #{ASCIIDOC_BLANK_HDR}
117
- [cols="<,^,^,^,^",options="header,footer",headerrows=2,alt="An extensive summary, and illustration, of tables",subsequence="A",options="unnumbered",summary="This is an extremely long, convoluted summary",width=70%]
117
+ [cols="<,^,^,^,^",options="header,footer",headerrows=2,alt="An extensive summary, and illustration, of tables",subsequence="A",options="unnumbered",summary="This is an extremely long, convoluted summary",width=70%,number="3",keep-with-next=true,keep-lines-together=true]
118
118
  .Maximum _permissible_ mass fraction of defects
119
119
  |===
120
120
  .2+|Defect 4+^| Maximum permissible mass fraction of defects in husked rice +
@@ -144,13 +144,13 @@ RSpec.describe Asciidoctor::Standoc do
144
144
  INPUT
145
145
  #{BLANK_HDR}
146
146
  <sections>
147
- <table id="_" alt="An extensive summary, and illustration, of tables" unnumbered="true" subsequence="A" summary="This is an extremely long, convoluted summary" width="70%">
147
+ <table id="_" alt="An extensive summary, and illustration, of tables" unnumbered="true" subsequence="A" summary="This is an extremely long, convoluted summary" width="70%" number="3" keep-with-next="true" keep-lines-together="true">
148
148
  <name>Maximum <em>permissible</em> mass fraction of defects</name>
149
149
  <thead>
150
150
  <tr>
151
151
  <th rowspan="2" align="left">Defect</th>
152
152
  <th colspan="4" 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><mi>w</mi><mi>max</mi></msub></math></stem></th>
153
+ <stem type="MathML"><math xmlns="http://www.w3.org/1998/Math/MathML"><msub><mi>w</mi><mo>max</mo></msub></math></stem></th>
154
154
  </tr>
155
155
  <tr>
156
156
  <th align="left">in husked rice</th>
@@ -9,6 +9,62 @@ RSpec.describe Asciidoctor::Standoc do
9
9
  expect(File.exist?("spec/assets/xref_error.err")).to be true
10
10
  end
11
11
 
12
+ it "warns about missing fields in asciibib" do
13
+ FileUtils.rm_f "test.err"
14
+ Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
15
+ #{VALIDATING_BLANK_HDR}
16
+
17
+ [bibliography]
18
+ == Normative References
19
+
20
+ [%bibitem]
21
+ === Standard
22
+ id:: iso123
23
+ type:: standard
24
+ contributor::
25
+ role::: publisher
26
+ organization:::
27
+ name:::: ISO
28
+ contributor::
29
+ role::: author
30
+ person:::
31
+ name::::
32
+ +
33
+ --
34
+ completename::
35
+ language::: en
36
+ content::: Fred
37
+ --
38
+ contributor::
39
+ role::: author
40
+ person:::
41
+ name::::
42
+ completename::::: Jack
43
+
44
+ INPUT
45
+ errf = File.read("test.err")
46
+ expect(errf).to include "Reference iso123 is missing a document identifier (docid)"
47
+ end
48
+
49
+ it "warns about missing fields in asciibib" do
50
+ FileUtils.rm_f "test.err"
51
+ Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
52
+ #{VALIDATING_BLANK_HDR}
53
+
54
+ [bibliography]
55
+ == Normative References
56
+
57
+ [%bibitem]
58
+ === Standard
59
+ type:: standard
60
+ contributor::
61
+ role::: publisher
62
+ organization:::
63
+ name:::: ISO
64
+ INPUT
65
+ errf = File.read("test.err")
66
+ expect(errf).to include "The following reference is missing an anchor"
67
+ end
12
68
  it "warns about malformed LaTeX" do
13
69
  FileUtils.rm_f "test.err"
14
70
  Asciidoctor.convert(<<~"INPUT", backend: :standoc, header_footer: true)
File without changes
@@ -1,2 +1,17 @@
1
- foreword: Enkonduko
2
-
1
+ foreword: Antaŭparolo
2
+ introduction: Enkonduko
3
+ clause: klaŭzo
4
+ table: Tabelo
5
+ source: SOURCE
6
+ modified: modified
7
+ scope: Amplekso
8
+ symbols: Simboloj kai mallongigitaj terminoj
9
+ annex: Aldono
10
+ normref: Normaj citaĵoj
11
+ bibliography: Bibliografio
12
+ inform_annex: informa
13
+ norm_annex: norma
14
+ all_parts: ĉiuj partoj
15
+ locality: {
16
+ table: Tabelo
17
+ }
@@ -0,0 +1,107 @@
1
+ <bibdata id='iso123' xmlns='http://www.example.com' type='standard'>
2
+ <fetched>2020-06-12</fetched>
3
+ <title type='title-intro' format='text/plain' language='en' script='Latn'>Rubber latex</title>
4
+ <title type='title-main' format='text/plain' language='en' script='Latn'>Sampling</title>
5
+ <title type='main' format='text/plain' language='en' script='Latn'>Rubber latex – Sampling</title>
6
+ <title type='title-intro' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc</title>
7
+ <title type='title-main' format='text/plain' language='fr' script='Latn'>Échantillonnage</title>
8
+ <title type='main' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc – Échantillonnage</title>
9
+ <uri type='src'>https://www.iso.org/standard/23281.html</uri>
10
+ <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
11
+ <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
12
+ <docidentifier type='ISO'>ISO 123 (all parts)</docidentifier>
13
+ <docnumber>123</docnumber>
14
+ <date type='published'>
15
+ <on>2001</on>
16
+ </date>
17
+ <contributor>
18
+ <role type='publisher'/>
19
+ <organization>
20
+ <name>International Organization for Standardization</name>
21
+ <abbreviation>ISO</abbreviation>
22
+ <uri>www.iso.org</uri>
23
+ </organization>
24
+ </contributor>
25
+ <edition>3</edition>
26
+ <language>en</language>
27
+ <language>fr</language>
28
+ <script>Latn</script>
29
+ <status>
30
+ <stage>90</stage>
31
+ <substage>93</substage>
32
+ </status>
33
+ <copyright>
34
+ <from>2001</from>
35
+ <owner>
36
+ <organization>
37
+ <name>ISO</name>
38
+ </organization>
39
+ </owner>
40
+ </copyright>
41
+ <relation type='obsoletes'>
42
+ <bibitem type='standard'>
43
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
44
+ </bibitem>
45
+ </relation>
46
+ <relation type='instance'>
47
+ <bibitem type='standard'>
48
+ <fetched>2020-06-12</fetched>
49
+ <title type='title-intro' format='text/plain' language='en' script='Latn'>Rubber latex</title>
50
+ <title type='title-main' format='text/plain' language='en' script='Latn'>Sampling</title>
51
+ <title type='main' format='text/plain' language='en' script='Latn'>Rubber latex – Sampling</title>
52
+ <title type='title-intro' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc</title>
53
+ <title type='title-main' format='text/plain' language='fr' script='Latn'>Échantillonnage</title>
54
+ <title type='main' format='text/plain' language='fr' script='Latn'>Latex de caoutchouc – Échantillonnage</title>
55
+ <uri type='src'>https://www.iso.org/standard/23281.html</uri>
56
+ <uri type='obp'>https://www.iso.org/obp/ui/#!iso:std:23281:en</uri>
57
+ <uri type='rss'>https://www.iso.org/contents/data/standard/02/32/23281.detail.rss</uri>
58
+ <docidentifier type='ISO'>ISO 123:2001</docidentifier>
59
+ <docnumber>123</docnumber>
60
+ <date type='published'>
61
+ <on>2001</on>
62
+ </date>
63
+ <contributor>
64
+ <role type='publisher'/>
65
+ <organization>
66
+ <name>International Organization for Standardization</name>
67
+ <abbreviation>ISO</abbreviation>
68
+ <uri>www.iso.org</uri>
69
+ </organization>
70
+ </contributor>
71
+ <edition>3</edition>
72
+ <language>en</language>
73
+ <language>fr</language>
74
+ <script>Latn</script>
75
+ <status>
76
+ <stage>90</stage>
77
+ <substage>93</substage>
78
+ </status>
79
+ <copyright>
80
+ <from>2001</from>
81
+ <owner>
82
+ <organization>
83
+ <name>ISO</name>
84
+ </organization>
85
+ </owner>
86
+ </copyright>
87
+ <relation type='obsoletes'>
88
+ <bibitem type='standard'>
89
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
90
+ </bibitem>
91
+ </relation>
92
+ <place>Geneva</place>
93
+ </bibitem>
94
+ </relation>
95
+ <relation type='instance'>
96
+ <bibitem type='standard'>
97
+ <formattedref format='text/plain'>ISO 123:1985</formattedref>
98
+ </bibitem>
99
+ </relation>
100
+ <relation type='instance'>
101
+ <bibitem type='standard'>
102
+ <formattedref format='text/plain'>ISO 123:1974</formattedref>
103
+ </bibitem>
104
+ </relation>
105
+ <place>Geneva</place>
106
+ </bibdata>
107
+