metanorma-iec 1.4.3 → 1.4.4
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.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/lib/asciidoctor/iec/converter.rb +1 -1
- data/lib/asciidoctor/iec/isodoc.rng +14 -0
- data/lib/asciidoctor/iec/isostandard.rng +14 -0
- data/lib/isodoc/iec/base_convert.rb +0 -12
- data/lib/isodoc/iec/html/htmlstyle.css +21 -0
- data/lib/isodoc/iec/html/htmlstyle.scss +26 -0
- data/lib/isodoc/iec/html/scripts.html +0 -1
- data/lib/isodoc/iec/iec.international-standard.xsl +344 -95
- data/lib/isodoc/iec/presentation_xml_convert.rb +131 -0
- data/lib/metanorma/iec/version.rb +1 -1
- data/spec/isodoc/iev_spec.rb +321 -97
- data/spec/isodoc/postproc_spec.rb +2 -5
- data/spec/isodoc/terms_spec.rb +14 -21
- metadata +3 -3
@@ -4,6 +4,14 @@ require "isodoc"
|
|
4
4
|
module IsoDoc
|
5
5
|
module Iec
|
6
6
|
class PresentationXMLConvert < IsoDoc::Iso::PresentationXMLConvert
|
7
|
+
def i18n_init(lang, script, i18nyaml = nil)
|
8
|
+
super
|
9
|
+
@i18n_lg = {}
|
10
|
+
@i18n_lg["en"] = I18n.new("en", "Latn", i18nyaml || @i18nyaml)
|
11
|
+
@i18n_lg["fr"] = I18n.new("fr", "Latn", i18nyaml || @i18nyaml)
|
12
|
+
@i18n_lg["default"] = @i18n
|
13
|
+
end
|
14
|
+
|
7
15
|
def clause(docxml)
|
8
16
|
docxml.xpath(ns("//clause[not(ancestor::annex)] | "\
|
9
17
|
"//definitions | //references | "\
|
@@ -68,6 +76,129 @@ module IsoDoc
|
|
68
76
|
termref["target"] = newtarget
|
69
77
|
end
|
70
78
|
|
79
|
+
def terms(docxml)
|
80
|
+
otherlang_designations(docxml)
|
81
|
+
super
|
82
|
+
merge_fr_into_en_term(docxml)
|
83
|
+
end
|
84
|
+
|
85
|
+
def merge_fr_into_en_term(docxml)
|
86
|
+
return unless @is_iev
|
87
|
+
|
88
|
+
docxml.xpath(ns("//term[@language = 'en'][@tag]")).each do |en|
|
89
|
+
fr = docxml.at(ns("//term[@language = 'fr'][@tag = '#{en['tag']}']"))
|
90
|
+
merge_fr_into_en_term1(en, fr) if fr
|
91
|
+
end
|
92
|
+
@xrefs.parse docxml
|
93
|
+
docxml.xpath(ns("//term/name")).each(&:remove)
|
94
|
+
term(docxml)
|
95
|
+
end
|
96
|
+
|
97
|
+
def merge_fr_into_en_term1(en_term, fr_term)
|
98
|
+
dl = en_term&.at(ns("./dl[@type = 'other-lang']"))&.remove
|
99
|
+
en_term << fr_term.remove.children
|
100
|
+
en_term << dl if dl
|
101
|
+
en_term["language"] = "en,fr"
|
102
|
+
en_term.delete("tag")
|
103
|
+
end
|
104
|
+
|
105
|
+
def otherlang_designations(docxml)
|
106
|
+
return unless @is_iev
|
107
|
+
|
108
|
+
docxml.xpath(ns("//term")).each do |t|
|
109
|
+
otherlang_designations1(t, t["language"]&.split(/,/) || %w(en fr))
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
def extract_otherlang_designations(term, lgs)
|
114
|
+
term.xpath(ns(".//preferred/expression[@language]"))
|
115
|
+
.each_with_object([]) do |d, m|
|
116
|
+
lg = d["language"]
|
117
|
+
d.delete("language")
|
118
|
+
next if lgs.include?(lg)
|
119
|
+
|
120
|
+
p = d.parent
|
121
|
+
designation_annotate(p, d.at(ns("./name")))
|
122
|
+
m << { lang: lg, script: Metanorma::Utils.default_script(lg),
|
123
|
+
designation: l10n_recursive(p.remove, lg) }
|
124
|
+
end
|
125
|
+
end
|
126
|
+
|
127
|
+
def l10n_recursive(xml, lang)
|
128
|
+
script = Metanorma::Utils.default_script(lang)
|
129
|
+
xml.traverse do |x|
|
130
|
+
next unless x.text?
|
131
|
+
|
132
|
+
x.replace(l10n(x, lang, script))
|
133
|
+
end
|
134
|
+
xml
|
135
|
+
end
|
136
|
+
|
137
|
+
def otherlang_designations1(term, lgs)
|
138
|
+
pr = extract_otherlang_designations(term, lgs)
|
139
|
+
return if pr.empty?
|
140
|
+
|
141
|
+
prefs = pr.map do |p|
|
142
|
+
"<dt>#{p[:lang]}</dt>"\
|
143
|
+
"<dd language='#{p[:lang]}' script='#{p[:script]}'>"\
|
144
|
+
"#{p[:designation].to_xml}</dd>"
|
145
|
+
end
|
146
|
+
term << "<dl type='other-lang'>#{prefs.join}</dl>"
|
147
|
+
end
|
148
|
+
|
149
|
+
def related1(node)
|
150
|
+
lg = node&.at("./ancestor::xmlns:term/@language")&.text
|
151
|
+
@i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
|
152
|
+
super
|
153
|
+
@i18n = @i18n_lg["default"]
|
154
|
+
end
|
155
|
+
|
156
|
+
def termsource_modification(node)
|
157
|
+
lg = node&.at("./ancestor::xmlns:term/@language")&.text
|
158
|
+
@i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
|
159
|
+
super
|
160
|
+
@i18n = @i18n_lg["default"]
|
161
|
+
end
|
162
|
+
|
163
|
+
def termsource1(node)
|
164
|
+
lg = node&.at("./ancestor::xmlns:term/@language")&.text
|
165
|
+
@i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
|
166
|
+
if @is_iev then termsource1_iev(node)
|
167
|
+
else super
|
168
|
+
end
|
169
|
+
@i18n = @i18n_lg["default"]
|
170
|
+
end
|
171
|
+
|
172
|
+
def termsource1_iev(elem)
|
173
|
+
while elem&.next_element&.name == "termsource"
|
174
|
+
elem << "; #{elem.next_element.remove.children.to_xml}"
|
175
|
+
end
|
176
|
+
elem.children = l10n("#{@i18n.source}: #{elem.children.to_xml.strip}")
|
177
|
+
end
|
178
|
+
|
179
|
+
def termexample(docxml)
|
180
|
+
docxml.xpath(ns("//termexample")).each do |f|
|
181
|
+
termexample1(f)
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
def termexample1(elem)
|
186
|
+
lg = elem&.at("./ancestor::xmlns:term/@language")&.text
|
187
|
+
@i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
|
188
|
+
example1(elem)
|
189
|
+
@i18n = @i18n_lg["default"]
|
190
|
+
end
|
191
|
+
|
192
|
+
def termnote1(elem)
|
193
|
+
lg = elem&.at("./ancestor::xmlns:term/@language")&.text
|
194
|
+
@i18n = @i18n_lg[lg] if lg && @i18n_lg[lg]
|
195
|
+
|
196
|
+
val = @xrefs.anchor(elem["id"], :value) || "???"
|
197
|
+
lbl = @i18n.termnote.gsub(/%/, val)
|
198
|
+
prefix_name(elem, "", lower2cap(lbl), "name")
|
199
|
+
@i18n = @i18n_lg["default"]
|
200
|
+
end
|
201
|
+
|
71
202
|
include Init
|
72
203
|
end
|
73
204
|
end
|
data/spec/isodoc/iev_spec.rb
CHANGED
@@ -324,12 +324,10 @@ RSpec.describe IsoDoc do
|
|
324
324
|
<li>A</li>
|
325
325
|
</ul>
|
326
326
|
</termexample>
|
327
|
-
<termsource status="modified">
|
328
|
-
<origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality>ISO 7301:2011, 3.1</origin
|
329
|
-
|
330
|
-
|
331
|
-
</modification>
|
332
|
-
</termsource></term>
|
327
|
+
<termsource status="modified">SOURCE:
|
328
|
+
<origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality>ISO 7301:2011, 3.1</origin>, modified –
|
329
|
+
The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here</termsource>
|
330
|
+
</term>
|
333
331
|
<term id="paddy">
|
334
332
|
<name>192-01-02</name>
|
335
333
|
<preferred><strong>paddy</strong></preferred><admitted>paddy rice</admitted>
|
@@ -351,7 +349,7 @@ RSpec.describe IsoDoc do
|
|
351
349
|
<ul><li>A</li></ul>
|
352
350
|
<p id="_19830f33-e46c-42cc-94ca-a5ef101132d5">The starch of waxy rice consists almost entirely of amylopectin. The kernels have a tendency to stick together after cooking.</p>
|
353
351
|
</termnote>
|
354
|
-
<termsource status="identical">
|
352
|
+
<termsource status="identical">SOURCE:
|
355
353
|
<origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality>ISO 7301:2011, 3.1</origin>
|
356
354
|
</termsource></term>
|
357
355
|
</terms>
|
@@ -367,84 +365,87 @@ RSpec.describe IsoDoc do
|
|
367
365
|
<div class='boilerplate_legal'/>
|
368
366
|
</div>
|
369
367
|
#{IEC_TITLE1}
|
370
|
-
|
371
|
-
|
372
|
-
|
373
|
-
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
|
395
|
-
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
435
|
-
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
368
|
+
<div id='_terms_and_definitions'>
|
369
|
+
<h1>1  Terms and definitions</h1>
|
370
|
+
<br/>
|
371
|
+
<div id='_general'>
|
372
|
+
<p class='zzSTDTitle2'>
|
373
|
+
<b>192-01 General</b>
|
374
|
+
</p>
|
375
|
+
<p class='TermNum' id='paddy1'>192-01-01</p>
|
376
|
+
<p class='Terms' style='text-align:left;'>
|
377
|
+
<b>paddy</b>
|
378
|
+
</p>
|
379
|
+
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747f'>rice retaining its husk after threshing</p>
|
380
|
+
<div id='_bd57bbf1-f948-4bae-b0ce-73c00431f892' class='example'>
|
381
|
+
<p>
|
382
|
+
<span class='example_label'>EXAMPLE 1</span>
|
383
|
+
  Foreign seeds, husks, bran, sand, dust.
|
384
|
+
</p>
|
385
|
+
<ul>
|
386
|
+
<li>A</li>
|
387
|
+
</ul>
|
388
|
+
</div>
|
389
|
+
<div id='_bd57bbf1-f948-4bae-b0ce-73c00431f894' class='example'>
|
390
|
+
<p>
|
391
|
+
<span class='example_label'>EXAMPLE 2</span>
|
392
|
+
 
|
393
|
+
</p>
|
394
|
+
<ul>
|
395
|
+
<li>A</li>
|
396
|
+
</ul>
|
397
|
+
</div>
|
398
|
+
<p>
|
399
|
+
SOURCE:
|
400
|
+
<a href='#ISO7301'>ISO 7301:2011, 3.1</a>
|
401
|
+
, modified – The term "cargo rice" is shown as deprecated, and
|
402
|
+
Note 1 to entry is not included here
|
403
|
+
</p>
|
404
|
+
<p class='TermNum' id='paddy'>192-01-02</p>
|
405
|
+
<p class='Terms' style='text-align:left;'>
|
406
|
+
<b>paddy</b>
|
407
|
+
</p>
|
408
|
+
<p class='AltTerms' style='text-align:left;'>paddy rice</p>
|
409
|
+
<p class='AltTerms' style='text-align:left;'>rough rice</p>
|
410
|
+
<p class='DeprecatedTerms' style='text-align:left;'>DEPRECATED: cargo rice</p>
|
411
|
+
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747f'><rice> rice retaining its husk after threshing</p>
|
412
|
+
<div id='_bd57bbf1-f948-4bae-b0ce-73c00431f893' class='example'>
|
413
|
+
<p>
|
414
|
+
<span class='example_label'>EXAMPLE</span>
|
415
|
+
 
|
416
|
+
</p>
|
417
|
+
<ul>
|
418
|
+
<li>A</li>
|
419
|
+
</ul>
|
420
|
+
</div>
|
421
|
+
<div id='_671a1994-4783-40d0-bc81-987d06ffb74e' class='Note'>
|
422
|
+
<p>
|
423
|
+
Note 1 to entry: The starch of waxy rice consists almost entirely
|
424
|
+
of amylopectin. The kernels have a tendency to stick together
|
425
|
+
after cooking.
|
426
|
+
</p>
|
427
|
+
</div>
|
428
|
+
<div id='_671a1994-4783-40d0-bc81-987d06ffb74f' class='Note'>
|
429
|
+
<p>
|
430
|
+
Note 2 to entry:
|
431
|
+
<ul>
|
432
|
+
<li>A</li>
|
433
|
+
</ul>
|
434
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d5'>
|
435
|
+
The starch of waxy rice consists almost entirely of amylopectin.
|
436
|
+
The kernels have a tendency to stick together after cooking.
|
437
|
+
</p>
|
438
|
+
</p>
|
439
|
+
</div>
|
440
|
+
<p>
|
441
|
+
SOURCE:
|
442
|
+
<a href='#ISO7301'>ISO 7301:2011, 3.1</a>
|
443
|
+
</p>
|
444
|
+
</div>
|
445
|
+
</div>
|
446
|
+
</div>
|
447
|
+
</body>
|
448
|
+
</html>
|
448
449
|
OUTPUT
|
449
450
|
expect(xmlpp(IsoDoc::Iec::PresentationXMLConvert.new({})
|
450
451
|
.convert("test", input, true)
|
@@ -497,19 +498,12 @@ RSpec.describe IsoDoc do
|
|
497
498
|
<definition>
|
498
499
|
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747f'>rice retaining its husk after threshing</p>
|
499
500
|
</definition>
|
500
|
-
<termsource status='modified'>
|
501
|
-
<origin bibitemid='ISO7301' type='inline' citeas='ISO 7301:2011'>
|
502
|
-
<locality type='clause'>
|
501
|
+
<termsource status='modified'>SOURCE:
|
502
|
+
<origin bibitemid='ISO7301' type='inline' citeas='ISO 7301:2011'><locality type='clause'>
|
503
503
|
<referenceFrom>3.1</referenceFrom>
|
504
|
-
</locality>
|
505
|
-
ISO 7301:2011, 3.1
|
506
|
-
</origin>
|
507
|
-
<modification>
|
508
|
-
<p id='_e73a417d-ad39-417d-a4c8-20e4e2529489'>
|
504
|
+
</locality>ISO 7301:2011, 3.1</origin>, modified –
|
509
505
|
The term "cargo rice" is shown as deprecated, and Note 1 to
|
510
506
|
entry is not included here
|
511
|
-
</p>
|
512
|
-
</modification>
|
513
507
|
</termsource>
|
514
508
|
</term>
|
515
509
|
</terms>
|
@@ -558,7 +552,7 @@ RSpec.describe IsoDoc do
|
|
558
552
|
<p class='MsoNormal'>
|
559
553
|
SOURCE:
|
560
554
|
<a href='#ISO7301'>ISO 7301:2011, 3.1</a>
|
561
|
-
, modified &#
|
555
|
+
, modified – The term "cargo rice" is shown as deprecated, and
|
562
556
|
Note 1 to entry is not included here
|
563
557
|
</p>
|
564
558
|
</div>
|
@@ -622,7 +616,7 @@ RSpec.describe IsoDoc do
|
|
622
616
|
<title>192-01 General</title>
|
623
617
|
<term id='term-durability'>
|
624
618
|
<name>192-01-01</name>
|
625
|
-
<preferred><strong>durability
|
619
|
+
<preferred><strong>durability</strong>, <of an item></preferred>
|
626
620
|
<definition>
|
627
621
|
<verbaldefinition>
|
628
622
|
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747f'>rice retaining its husk after threshing</p>
|
@@ -654,4 +648,234 @@ RSpec.describe IsoDoc do
|
|
654
648
|
.sub(%r{<localized-strings>.*</localized-strings>}m, "")))
|
655
649
|
.to be_equivalent_to xmlpp(presxml)
|
656
650
|
end
|
651
|
+
|
652
|
+
it "processes multilingual IEV terms" do
|
653
|
+
input = <<~INPUT
|
654
|
+
<iso-standard xmlns="http://riboseinc.com/isoxml">
|
655
|
+
<bibdata type='standard'>
|
656
|
+
<docidentifier type='ISO'>IEC 60050-192 ED 1</docidentifier>
|
657
|
+
<docnumber>60050</docnumber>
|
658
|
+
</bibdata>
|
659
|
+
<sections>
|
660
|
+
<clause id="_terms_and_definitions" obligation="normative"><title>Terms and definitions</title>
|
661
|
+
<terms id="_general" obligation="normative"><title>General</title>
|
662
|
+
<term id="item" language="en" tag="item">
|
663
|
+
<preferred><expression language="en"><name>system</name></expression><field-of-application>in dependability</field-of-application></preferred>
|
664
|
+
<preferred><expression language="ar"><name>نظام،</name></expression><field-of-application>في الاعتمادیة</field-of-application></preferred>
|
665
|
+
<preferred><expression language="de"><name>Betrachtungseinheit</name<grammar><gender>feminine</gender></grammar></expression></preferred>
|
666
|
+
<preferred><expression language="de"><name>Einheit</name><grammar><gender>feminine</gender></grammar></expression></preferred>
|
667
|
+
<preferred><expression language="ja"><name>アイテム</name></expression></preferred>
|
668
|
+
<admitted><expression><name>paddy rice</name></expression></admitted>
|
669
|
+
<admitted><expression><name>rough rice</name></expression></admitted>
|
670
|
+
<deprecates><expression><name>cargo rice</name></expression></deprecates>
|
671
|
+
<related type='contrast'><preferred><expression><name>Fifth Designation</name></expression></preferred><xref target="paddy1"/></related>
|
672
|
+
<definition><verbal-definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f">set of interrelated items that collectively fulfil a requirement</p></verbal-definition></definition>
|
673
|
+
<termnote id="_671a1994-4783-40d0-bc81-987d06ffb74e">
|
674
|
+
<p id="_19830f33-e46c-42cc-94ca-a5ef101132d5">A system is considered to have a defined real or abstract boundary.</p>
|
675
|
+
</termnote>
|
676
|
+
<termnote id="_671a1994-4783-40d0-bc81-987d06ffb74d">
|
677
|
+
<p id="_19830f33-e46c-42cc-94ca-a5ef101132d5">External resources (from outside the system boundary) may be required for the system to operate.</p>
|
678
|
+
</termnote>
|
679
|
+
<termexample id="_671a1994-4783-40d0-bc81-987d06ffb740">
|
680
|
+
<p id="_19830f33-e46c-42cc-94ca-a5ef101132d0">External resources (from outside the system boundary) may be required for the system to operate.</p>
|
681
|
+
</termexample>
|
682
|
+
<termsource status="modified">
|
683
|
+
<origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality>ISO 7301:2011, 3.1</origin>
|
684
|
+
<modification>modified by extension to suit the dependability context</modification>
|
685
|
+
</termsource></term>
|
686
|
+
<term id="item-fr" language="fr" tag="item">
|
687
|
+
<preferred><expression language="fr"><name>entité</name<grammar><gender>masculine</gender></grammar></expression>
|
688
|
+
<field-of-application>en sûreté de fonctionnement</field-of-application>
|
689
|
+
</preferred>
|
690
|
+
<related type='contrast'><preferred><expression><name>Designation cinquième</name></expression></preferred><xref target="paddy1"/></related>
|
691
|
+
<definition><verbal-definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747d">ensemble d’entités reliées entre elles qui satisfont collectivement à une exigence</p></verbal-definition></definition>
|
692
|
+
<termnote id="_671a1994-4783-40d0-bc81-987d06ffb74c">
|
693
|
+
<p id="_19830f33-e46c-42cc-94ca-a5ef101132d5">Un système est considéré comme ayant une frontière définie, réelle ou abstraite.</p>
|
694
|
+
</termnote>
|
695
|
+
<termnote id="_671a1994-4783-40d0-bc81-987d06ffb74b">
|
696
|
+
<p id="_19830f33-e46c-42cc-94ca-a5ef101132d5">Des ressources externes (provenant d’au-delà de la frontière) peuvent être nécessaires au fonctionnement du système.</p>
|
697
|
+
</termnote>
|
698
|
+
<termexample id="_671a1994-4783-40d0-bc81-987d06ffb741">
|
699
|
+
<p id="_19830f33-e46c-42cc-94ca-a5ef101132d1">External resources (from outside the system boundary) may be required for the system to operate.</p>
|
700
|
+
</termexample>
|
701
|
+
<termsource status="modified">
|
702
|
+
<origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality>ISO 7301:2011, 3.1</origin>
|
703
|
+
<modification>modifié pour adapter au contexte de la sûreté de fonctionnement</modification>
|
704
|
+
</termsource></term>
|
705
|
+
<term id="paddy1"><preferred><expression><name>paddy</name></expression></preferred>
|
706
|
+
<definition><verbal-definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747d">rice retaining its husk after threshing</p></verbal-definition></definition>
|
707
|
+
</term>
|
708
|
+
</terms>
|
709
|
+
</clause>
|
710
|
+
</sections>
|
711
|
+
</iso-standard>
|
712
|
+
INPUT
|
713
|
+
|
714
|
+
presxml = <<~PRESXML
|
715
|
+
<iso-standard xmlns='http://riboseinc.com/isoxml' type='presentation'>
|
716
|
+
<bibdata type='standard'>
|
717
|
+
<docidentifier type='ISO'>IEC 60050-192 ED 1</docidentifier>
|
718
|
+
<docnumber>60050</docnumber>
|
719
|
+
</bibdata>
|
720
|
+
<sections>
|
721
|
+
<clause id='_terms_and_definitions' obligation='normative' displayorder='1'>
|
722
|
+
<title depth='1'>
|
723
|
+
1
|
724
|
+
<tab/>
|
725
|
+
Terms and definitions
|
726
|
+
</title>
|
727
|
+
<terms id='_general' obligation='normative'>
|
728
|
+
<title>192-01 General</title>
|
729
|
+
<term id='item' language='en,fr'>
|
730
|
+
<name>192-01-01</name>
|
731
|
+
<preferred>
|
732
|
+
<strong>system</strong>
|
733
|
+
, <in dependability>
|
734
|
+
</preferred>
|
735
|
+
<admitted>paddy rice</admitted>
|
736
|
+
<admitted>rough rice</admitted>
|
737
|
+
<deprecates>cargo rice</deprecates>
|
738
|
+
<p>
|
739
|
+
<strong>CONTRAST:</strong>
|
740
|
+
<em>
|
741
|
+
<preferred>
|
742
|
+
<strong>Fifth Designation</strong>
|
743
|
+
</preferred>
|
744
|
+
</em>
|
745
|
+
(
|
746
|
+
<xref target='paddy1'>192-01-02</xref>
|
747
|
+
)
|
748
|
+
</p>
|
749
|
+
<definition>
|
750
|
+
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747f'>set of interrelated items that collectively fulfil a requirement</p>
|
751
|
+
</definition>
|
752
|
+
<termnote id='_671a1994-4783-40d0-bc81-987d06ffb74e'>
|
753
|
+
<name>Note 1 to entry</name>
|
754
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d5'>A system is considered to have a defined real or abstract boundary.</p>
|
755
|
+
</termnote>
|
756
|
+
<termnote id='_671a1994-4783-40d0-bc81-987d06ffb74d'>
|
757
|
+
<name>Note 2 to entry</name>
|
758
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d5'>
|
759
|
+
External resources (from outside the system boundary) may be
|
760
|
+
required for the system to operate.
|
761
|
+
</p>
|
762
|
+
</termnote>
|
763
|
+
<termexample id='_671a1994-4783-40d0-bc81-987d06ffb740'>
|
764
|
+
<name>EXAMPLE</name>
|
765
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d0'>
|
766
|
+
External resources (from outside the system boundary) may be
|
767
|
+
required for the system to operate.
|
768
|
+
</p>
|
769
|
+
</termexample>
|
770
|
+
<termsource status='modified'>SOURCE:
|
771
|
+
<origin bibitemid='ISO7301' type='inline' citeas='ISO 7301:2011'>
|
772
|
+
<locality type='clause'>
|
773
|
+
<referenceFrom>3.1</referenceFrom>
|
774
|
+
</locality>
|
775
|
+
ISO 7301:2011, 3.1
|
776
|
+
</origin>, modified –
|
777
|
+
modified by extension to suit the dependability context
|
778
|
+
</termsource>
|
779
|
+
<preferred>
|
780
|
+
<strong>entité</strong>
|
781
|
+
, <en sûreté de fonctionnement>, m
|
782
|
+
</preferred>
|
783
|
+
<p>
|
784
|
+
<strong>CONTRASTEZ:</strong>
|
785
|
+
<em>
|
786
|
+
<preferred>
|
787
|
+
<strong>Designation cinquième</strong>
|
788
|
+
</preferred>
|
789
|
+
</em>
|
790
|
+
(
|
791
|
+
<xref target='paddy1'>192-01-02</xref>
|
792
|
+
)
|
793
|
+
</p>
|
794
|
+
<definition>
|
795
|
+
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747d'>
|
796
|
+
ensemble d’entités reliées entre elles qui
|
797
|
+
satisfont collectivement à une exigence
|
798
|
+
</p>
|
799
|
+
</definition>
|
800
|
+
<termnote id='_671a1994-4783-40d0-bc81-987d06ffb74c'>
|
801
|
+
<name>Note 1 à l’article</name>
|
802
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d5'>
|
803
|
+
Un système est considéré comme ayant une
|
804
|
+
frontière définie, réelle ou abstraite.
|
805
|
+
</p>
|
806
|
+
</termnote>
|
807
|
+
<termnote id='_671a1994-4783-40d0-bc81-987d06ffb74b'>
|
808
|
+
<name>Note 2 à l’article</name>
|
809
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d5'>
|
810
|
+
Des ressources externes (provenant d’au-delà de la
|
811
|
+
frontière) peuvent être nécessaires au
|
812
|
+
fonctionnement du système.
|
813
|
+
</p>
|
814
|
+
</termnote>
|
815
|
+
<termexample id='_671a1994-4783-40d0-bc81-987d06ffb741'>
|
816
|
+
<name>EXEMPLE</name>
|
817
|
+
<p id='_19830f33-e46c-42cc-94ca-a5ef101132d1'>
|
818
|
+
External resources (from outside the system boundary) may be
|
819
|
+
required for the system to operate.
|
820
|
+
</p>
|
821
|
+
</termexample>
|
822
|
+
<termsource status='modified'>SOURCE:
|
823
|
+
<origin bibitemid='ISO7301' type='inline' citeas='ISO 7301:2011'>
|
824
|
+
<locality type='clause'>
|
825
|
+
<referenceFrom>3.1</referenceFrom>
|
826
|
+
</locality>
|
827
|
+
ISO 7301:2011, 3.1
|
828
|
+
</origin>, modifié –
|
829
|
+
modifié pour adapter au contexte de la sûreté de fonctionnement
|
830
|
+
</termsource>
|
831
|
+
<dl type='other-lang'>
|
832
|
+
<dt>ar</dt>
|
833
|
+
<dd language="ar" script="Arab">
|
834
|
+
<preferred>
|
835
|
+
<strong>؜نظام،؜</strong>
|
836
|
+
؜, <في
|
837
|
+
الاعتمادیة>؜
|
838
|
+
</preferred>
|
839
|
+
</dd>
|
840
|
+
<dt>de</dt>
|
841
|
+
<dd language="de" script="Latn">
|
842
|
+
<preferred>
|
843
|
+
<strong>Betrachtungseinheit</strong>
|
844
|
+
, f
|
845
|
+
</preferred>
|
846
|
+
</dd>
|
847
|
+
<dt>de</dt>
|
848
|
+
<dd language="de" script="Latn">
|
849
|
+
<preferred>
|
850
|
+
<strong>Einheit</strong>
|
851
|
+
, f
|
852
|
+
</preferred>
|
853
|
+
</dd>
|
854
|
+
<dt>ja</dt>
|
855
|
+
<dd language="ja" script="Jpan">
|
856
|
+
<preferred>
|
857
|
+
<strong>アイテム</strong>
|
858
|
+
</preferred>
|
859
|
+
</dd>
|
860
|
+
</dl>
|
861
|
+
</term>
|
862
|
+
<term id='paddy1'>
|
863
|
+
<name>192-01-02</name>
|
864
|
+
<preferred>
|
865
|
+
<strong>paddy</strong>
|
866
|
+
</preferred>
|
867
|
+
<definition>
|
868
|
+
<p id='_eb29b35e-123e-4d1c-b50b-2714d41e747d'>rice retaining its husk after threshing</p>
|
869
|
+
</definition>
|
870
|
+
</term>
|
871
|
+
</terms>
|
872
|
+
</clause>
|
873
|
+
</sections>
|
874
|
+
</iso-standard>
|
875
|
+
PRESXML
|
876
|
+
expect(xmlpp(IsoDoc::Iec::PresentationXMLConvert.new({})
|
877
|
+
.convert("test", input, true)
|
878
|
+
.sub(%r{<localized-strings>.*</localized-strings>}m, "")))
|
879
|
+
.to be_equivalent_to xmlpp(presxml)
|
880
|
+
end
|
657
881
|
end
|
@@ -127,11 +127,8 @@ RSpec.describe IsoDoc do
|
|
127
127
|
<name>1.1</name>
|
128
128
|
<preferred>paddy</preferred>
|
129
129
|
<definition><p id="_eb29b35e-123e-4d1c-b50b-2714d41e747f">rice retaining its husk after threshing</p></definition>
|
130
|
-
<termsource status="modified">
|
131
|
-
<origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality>ISO 7301:2011, 3.1</origin
|
132
|
-
<modification>
|
133
|
-
<p id="_e73a417d-ad39-417d-a4c8-20e4e2529489">The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here</p>
|
134
|
-
</modification>
|
130
|
+
<termsource status="modified">[SOURCE:
|
131
|
+
<origin bibitemid="ISO7301" type="inline" citeas="ISO 7301:2011"><locality type="clause"><referenceFrom>3.1</referenceFrom></locality>ISO 7301:2011, 3.1</origin>, modified — The term "cargo rice" is shown as deprecated, and Note 1 to entry is not included here]
|
135
132
|
</termsource></term>
|
136
133
|
</terms>
|
137
134
|
</sections>
|