metanorma-iec 1.2.9 → 1.2.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +3 -0
  3. data/.rubocop.yml +0 -4
  4. data/lib/asciidoctor/iec/basicdoc.rng +52 -3
  5. data/lib/asciidoctor/iec/converter.rb +20 -0
  6. data/lib/asciidoctor/iec/front.rb +29 -58
  7. data/lib/asciidoctor/iec/iec.rng +47 -2
  8. data/lib/asciidoctor/iec/iec_intro_en.xml +37 -12
  9. data/lib/asciidoctor/iec/iec_intro_fr.xml +38 -6
  10. data/lib/asciidoctor/iec/isodoc.rng +114 -3
  11. data/lib/asciidoctor/iec/isostandard.rng +19 -10
  12. data/lib/isodoc/iec/base_convert.rb +2 -2
  13. data/lib/isodoc/iec/html/html_iec_intro.html +1 -1
  14. data/lib/isodoc/iec/html/word_iec_intro.html +1 -1
  15. data/lib/isodoc/iec/html_convert.rb +2 -2
  16. data/lib/isodoc/iec/i18n-en.yaml +1 -0
  17. data/lib/isodoc/iec/i18n-fr.yaml +1 -0
  18. data/lib/isodoc/iec/iec.international-standard.xsl +848 -363
  19. data/lib/isodoc/iec/word_convert.rb +2 -2
  20. data/lib/metanorma/iec/processor.rb +11 -0
  21. data/lib/metanorma/iec/version.rb +1 -1
  22. data/metanorma-iec.gemspec +2 -2
  23. data/spec/asciidoctor-iec/base_spec.rb +436 -10
  24. data/spec/asciidoctor-iec/blocks_spec.rb +24 -20
  25. data/spec/asciidoctor-iec/cleanup_spec.rb +99 -14
  26. data/spec/asciidoctor-iec/iev_spec.rb +12 -6
  27. data/spec/asciidoctor-iec/inline_spec.rb +11 -7
  28. data/spec/asciidoctor-iec/lists_spec.rb +7 -3
  29. data/spec/asciidoctor-iec/section_spec.rb +9 -5
  30. data/spec/asciidoctor-iec/validate_spec.rb +22 -21
  31. data/spec/isodoc/iso_spec.rb +2 -2
  32. data/spec/metanorma/processor_spec.rb +1 -1
  33. data/spec/spec_helper.rb +25 -33
  34. metadata +6 -7
  35. data/lib/metanorma/iec/fonts_manifest.yaml +0 -5
@@ -55,6 +55,13 @@
55
55
  <param name="pattern">\i\c*|\c+#\c+</param>
56
56
  </data>
57
57
  </attribute>
58
+ <optional>
59
+ <attribute name="to">
60
+ <data type="string">
61
+ <param name="pattern">\i\c*|\c+#\c+</param>
62
+ </data>
63
+ </attribute>
64
+ </optional>
58
65
  <optional>
59
66
  <attribute name="type">
60
67
  <ref name="ReferenceFormat"/>
@@ -246,6 +253,12 @@
246
253
  <data type="boolean"/>
247
254
  </attribute>
248
255
  </optional>
256
+ <optional>
257
+ <attribute name="width"/>
258
+ </optional>
259
+ <optional>
260
+ <ref name="colgroup"/>
261
+ </optional>
249
262
  <optional>
250
263
  <ref name="tname"/>
251
264
  </optional>
@@ -764,6 +777,21 @@
764
777
  </define>
765
778
  </include>
766
779
  <!-- end overrides -->
780
+ <define name="colgroup">
781
+ <element name="colgroup">
782
+ <oneOrMore>
783
+ <ref name="col"/>
784
+ </oneOrMore>
785
+ </element>
786
+ </define>
787
+ <define name="col">
788
+ <element name="col">
789
+ <attribute name="width"/>
790
+ </element>
791
+ </define>
792
+ <define name="BibItemType" combine="choice">
793
+ <value>internal</value>
794
+ </define>
767
795
  <define name="TextElement" combine="choice">
768
796
  <ref name="concept"/>
769
797
  </define>
@@ -784,6 +812,8 @@
784
812
  <ref name="requirement"/>
785
813
  <ref name="recommendation"/>
786
814
  <ref name="permission"/>
815
+ <ref name="imagemap"/>
816
+ <ref name="svgmap"/>
787
817
  </choice>
788
818
  </define>
789
819
  <define name="bibliography">
@@ -814,6 +844,9 @@
814
844
  <data type="boolean"/>
815
845
  </attribute>
816
846
  </optional>
847
+ <optional>
848
+ <attribute name="number"/>
849
+ </optional>
817
850
  <optional>
818
851
  <attribute name="obligation">
819
852
  <choice>
@@ -869,9 +902,11 @@
869
902
  <element name="code">
870
903
  <text/>
871
904
  </element>
872
- <element name="text">
873
- <text/>
874
- </element>
905
+ <optional>
906
+ <element name="text">
907
+ <text/>
908
+ </element>
909
+ </optional>
875
910
  </element>
876
911
  </define>
877
912
  <define name="standard-document">
@@ -1041,6 +1076,9 @@
1041
1076
  </choice>
1042
1077
  </attribute>
1043
1078
  </optional>
1079
+ <optional>
1080
+ <attribute name="number"/>
1081
+ </optional>
1044
1082
  <optional>
1045
1083
  <attribute name="type"/>
1046
1084
  </optional>
@@ -1094,6 +1132,9 @@
1094
1132
  <optional>
1095
1133
  <attribute name="type"/>
1096
1134
  </optional>
1135
+ <optional>
1136
+ <attribute name="number"/>
1137
+ </optional>
1097
1138
  <optional>
1098
1139
  <ref name="section-title"/>
1099
1140
  </optional>
@@ -1196,6 +1237,9 @@
1196
1237
  <optional>
1197
1238
  <attribute name="type"/>
1198
1239
  </optional>
1240
+ <optional>
1241
+ <attribute name="number"/>
1242
+ </optional>
1199
1243
  <optional>
1200
1244
  <attribute name="obligation">
1201
1245
  <choice>
@@ -1524,6 +1568,7 @@
1524
1568
  <value>add</value>
1525
1569
  <value>modify</value>
1526
1570
  <value>delete</value>
1571
+ <value>replace</value>
1527
1572
  </choice>
1528
1573
  </attribute>
1529
1574
  <optional>
@@ -1554,6 +1599,11 @@
1554
1599
  </optional>
1555
1600
  <optional>
1556
1601
  <element name="newcontent">
1602
+ <optional>
1603
+ <attribute name="id">
1604
+ <data type="ID"/>
1605
+ </attribute>
1606
+ </optional>
1557
1607
  <zeroOrMore>
1558
1608
  <ref name="BasicBlock"/>
1559
1609
  </zeroOrMore>
@@ -1587,4 +1637,65 @@
1587
1637
  <text/>
1588
1638
  </element>
1589
1639
  </define>
1640
+ <define name="imagemap">
1641
+ <element name="imagemap">
1642
+ <ref name="figure"/>
1643
+ <zeroOrMore>
1644
+ <element name="area">
1645
+ <attribute name="type">
1646
+ <choice>
1647
+ <value>rect</value>
1648
+ <value>circle</value>
1649
+ <value>ellipse</value>
1650
+ <value>poly</value>
1651
+ </choice>
1652
+ </attribute>
1653
+ <choice>
1654
+ <ref name="xref"/>
1655
+ <ref name="hyperlink"/>
1656
+ <ref name="eref"/>
1657
+ </choice>
1658
+ <oneOrMore>
1659
+ <element name="coords">
1660
+ <attribute name="x">
1661
+ <data type="float"/>
1662
+ </attribute>
1663
+ <attribute name="y">
1664
+ <data type="float"/>
1665
+ </attribute>
1666
+ </element>
1667
+ </oneOrMore>
1668
+ <optional>
1669
+ <element name="radius">
1670
+ <attribute name="x">
1671
+ <data type="float"/>
1672
+ </attribute>
1673
+ <optional>
1674
+ <attribute name="y">
1675
+ <data type="float"/>
1676
+ </attribute>
1677
+ </optional>
1678
+ </element>
1679
+ </optional>
1680
+ </element>
1681
+ </zeroOrMore>
1682
+ </element>
1683
+ </define>
1684
+ <define name="svgmap">
1685
+ <element name="svgmap">
1686
+ <ref name="figure"/>
1687
+ <zeroOrMore>
1688
+ <element name="target">
1689
+ <attribute name="href">
1690
+ <data type="anyURI"/>
1691
+ </attribute>
1692
+ <choice>
1693
+ <ref name="xref"/>
1694
+ <ref name="hyperlink"/>
1695
+ <ref name="eref"/>
1696
+ </choice>
1697
+ </element>
1698
+ </zeroOrMore>
1699
+ </element>
1700
+ </define>
1590
1701
  </grammar>
@@ -140,22 +140,28 @@
140
140
  </choice>
141
141
  </attribute>
142
142
  </optional>
143
+ <optional>
144
+ <attribute name="type"/>
145
+ </optional>
143
146
  <optional>
144
147
  <ref name="section-title"/>
145
148
  </optional>
146
- <choice>
147
- <group>
148
- <oneOrMore>
149
- <ref name="BasicBlock"/>
150
- </oneOrMore>
151
- <zeroOrMore>
152
- <ref name="note"/>
153
- </zeroOrMore>
154
- </group>
149
+ <group>
150
+ <choice>
151
+ <group>
152
+ <oneOrMore>
153
+ <ref name="BasicBlock"/>
154
+ </oneOrMore>
155
+ <zeroOrMore>
156
+ <ref name="note"/>
157
+ </zeroOrMore>
158
+ </group>
159
+ <ref name="amend"/>
160
+ </choice>
155
161
  <oneOrMore>
156
162
  <ref name="clause-subsection"/>
157
163
  </oneOrMore>
158
- </choice>
164
+ </group>
159
165
  </define>
160
166
  <define name="term">
161
167
  <element name="term">
@@ -382,6 +388,9 @@
382
388
  <data type="anyURI"/>
383
389
  </attribute>
384
390
  </optional>
391
+ <optional>
392
+ <ref name="colgroup"/>
393
+ </optional>
385
394
  <optional>
386
395
  <ref name="tname"/>
387
396
  </optional>
@@ -13,7 +13,7 @@ module IsoDoc
13
13
  b = isoxml.at(ns("//boilerplate/legal-statement"))
14
14
  page_break(out)
15
15
  iec_orgname(out)
16
- middle_title(out)
16
+ middle_title(isoxml, out)
17
17
  out.div **attr_code(id: f ? f["id"] : "") do |s|
18
18
  s.h1(**{ class: "ForewordTitle" }) { |h1| h1 << @i18n.foreword }
19
19
  @meta.get[:doctype] == "Amendment" or
@@ -30,7 +30,7 @@ module IsoDoc
30
30
  out.p(**{ class: "zzSTDTitle1" }) { |p| p << "&nbsp;" }
31
31
  end
32
32
 
33
- def middle_title(out)
33
+ def middle_title(_isoxml, out)
34
34
  title1 = @meta.get[:doctitlemain]&.sub(/\s+$/, "")
35
35
  @meta.get[:doctitleintro] and
36
36
  title1 = "#{@meta.get[:doctitleintro]} &mdash; #{title1}"
@@ -2,7 +2,7 @@
2
2
 
3
3
  <nav>
4
4
 
5
- <h1 id="content">Contents</h1>
5
+ <h1 id="content">{{ labels["table_of_contents"] }}</h1>
6
6
  <div id="toc"></div>
7
7
 
8
8
  </nav>
@@ -1,3 +1,3 @@
1
- <p class="zzContents" style='margin-top:0cm'><span lang="EN-GB">Contents</span></p>
1
+ <p class="zzContents" style='margin-top:0cm'><span lang="EN-GB">{{ labels["table_of_contents"] }}</span></p>
2
2
 
3
3
  WORDTOC
@@ -13,8 +13,8 @@ module IsoDoc
13
13
 
14
14
  def default_fonts(options)
15
15
  {
16
- bodyfont: (options[:script] == "Hans" ? '"SimSun",serif' : '"Arial",sans-serif'),
17
- headerfont: (options[:script] == "Hans" ? '"SimHei",sans-serif' : '"Arial",sans-serif'),
16
+ bodyfont: (options[:script] == "Hans" ? '"Source Han Sans",serif' : '"Arial",sans-serif'),
17
+ headerfont: (options[:script] == "Hans" ? '"Source Han Sans",sans-serif' : '"Arial",sans-serif'),
18
18
  monospacefont: ('"Courier New",monospace'),
19
19
  monospacefontsize: "1.0em",
20
20
  footnotefontsize: "0.9em",
@@ -5,6 +5,7 @@ IEC: INTERNATIONAL ELECTROTECHNICAL COMMISSION
5
5
  formula: Equation
6
6
  inequality: Inequality
7
7
  section_iev: Section
8
+ price-code: Price Code
8
9
  term_def_boilerplate: |
9
10
  <p>ISO and IEC maintain terminological databases for use in
10
11
  standardization at the following addresses:</p>
@@ -5,6 +5,7 @@ formula: Equation
5
5
  inequality: Inégalité
6
6
  IEC: COMMISSION ELECTROTECHNIQUE INTERNATIONALE
7
7
  section_iev: Section
8
+ price-code: Code prix
8
9
  term_def_boilerplate: |
9
10
  <p>L'ISO et l'IEC tiennent à jour des bases de données terminologiques
10
11
  destinées à être utilisées en normalisation, consultables aux adresses
@@ -17,31 +17,23 @@
17
17
 
18
18
 
19
19
 
20
- <xsl:variable name="debug">true</xsl:variable>
20
+ <xsl:variable name="debug">false</xsl:variable>
21
21
  <xsl:variable name="pageWidth" select="'210mm'"/>
22
22
  <xsl:variable name="pageHeight" select="'297mm'"/>
23
23
 
24
- <xsl:variable name="copyrightText" select="concat('© ', /iec:iec-standard/iec:bibdata/iec:copyright/iec:owner/iec:organization/iec:abbreviation, ':', iec:iec-standard/iec:bibdata/iec:copyright/iec:from)"/>
24
+ <xsl:variable name="copyrightText" select="concat('© ', //iec:iec-standard/iec:bibdata/iec:copyright/iec:owner/iec:organization/iec:abbreviation, ':', //iec:iec-standard/iec:bibdata/iec:copyright/iec:from)"/>
25
25
  <!-- <xsl:variable name="lang-1st-letter" select="concat('(', translate(substring(iec:iec-standard/iec:bibdata/iec:language,1,1),$lower, $upper), ')')"/> -->
26
26
  <xsl:variable name="lang-1st-letter" select="''"/>
27
- <xsl:variable name="ISOname" select="/iec:iec-standard/iec:bibdata/iec:docidentifier[@type='iso']"/>
27
+ <xsl:variable name="ISOname" select="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='iso' or @type='ISO']"/>
28
28
 
29
- <xsl:variable name="title-intro" select="/iec:iec-standard/iec:bibdata/iec:title[@language = 'en' and @type = 'title-intro']"/>
30
- <xsl:variable name="title-intro-fr" select="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr' and @type = 'title-intro']"/>
31
- <xsl:variable name="title-main" select="/iec:iec-standard/iec:bibdata/iec:title[@language = 'en' and @type = 'title-main']"/>
32
- <xsl:variable name="title-main-fr" select="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr' and @type = 'title-main']"/>
33
- <xsl:variable name="part" select="/iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:project-number/@part"/>
29
+ <xsl:variable name="part" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:project-number/@part"/>
34
30
 
35
- <xsl:variable name="doctype_uppercased" select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:doctype[@language = $lang]))"/>
36
-
37
-
38
-
39
- <xsl:variable name="publisher" select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:contributor[iec:role/@type = 'publisher']/iec:organization/iec:name))"/>
31
+ <xsl:variable name="doctype_uppercased" select="java:toUpperCase(java:java.lang.String.new(//iec:iec-standard/iec:bibdata/iec:ext/iec:doctype[@language = $lang]))"/>
40
32
 
41
- <xsl:variable name="stage" select="number(/iec:iec-standard/iec:bibdata/iec:status/iec:stage)"/>
42
- <xsl:variable name="substage" select="number(/iec:iec-standard/iec:bibdata/iec:status/iec:substage)"/>
43
- <xsl:variable name="stagename" select="normalize-space(/iec:iec-standard/iec:bibdata/iec:ext/iec:stagename)"/>
44
- <xsl:variable name="abbreviation" select="normalize-space(/iec:iec-standard/iec:bibdata/iec:status/iec:stage/@abbreviation)"/>
33
+ <xsl:variable name="stage" select="number(//iec:iec-standard/iec:bibdata/iec:status/iec:stage)"/>
34
+ <xsl:variable name="substage" select="number(//iec:iec-standard/iec:bibdata/iec:status/iec:substage)"/>
35
+ <xsl:variable name="stagename" select="normalize-space(//iec:iec-standard/iec:bibdata/iec:ext/iec:stagename)"/>
36
+ <xsl:variable name="abbreviation" select="normalize-space(//iec:iec-standard/iec:bibdata/iec:status/iec:stage/@abbreviation)"/>
45
37
 
46
38
  <xsl:variable name="stage-abbreviation">
47
39
  <xsl:choose>
@@ -87,7 +79,24 @@
87
79
  <item id="term-script" display="false">3.2</item>
88
80
  -->
89
81
  <xsl:variable name="contents">
90
- <xsl:variable name="docid">
82
+
83
+ <xsl:for-each select="//iec:iec-standard">
84
+ <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
85
+ <xsl:variable name="current_document">
86
+ <xsl:copy-of select="."/>
87
+ </xsl:variable>
88
+ <xsl:for-each select="xalan:nodeset($current_document)">
89
+ <xsl:variable name="docid">
90
+ <xsl:call-template name="getDocumentId"/>
91
+ </xsl:variable>
92
+ <doc id="{$docid}" lang="{$lang}">
93
+ <xsl:call-template name="generateContents"/>
94
+ </doc>
95
+ </xsl:for-each>
96
+ </xsl:for-each>
97
+
98
+
99
+ <!-- <xsl:variable name="docid">
91
100
  <xsl:call-template name="getDocumentId"/>
92
101
  </xsl:variable>
93
102
  <doc id="{$docid}" lang="{$lang}">
@@ -113,7 +122,7 @@
113
122
  </doc>
114
123
  </xsl:for-each>
115
124
  </xsl:for-each>
116
- </xsl:for-each>
125
+ </xsl:for-each> -->
117
126
 
118
127
 
119
128
  </xsl:variable>
@@ -122,6 +131,16 @@
122
131
  <contents>
123
132
  <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
124
133
  <xsl:call-template name="processMainSectionsDefault_Contents"/>
134
+ <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name']]">
135
+ <figure id="{@id}">
136
+ <title><xsl:value-of select="*[local-name() = 'name']/text()"/></title>
137
+ </figure>
138
+ </xsl:for-each>
139
+ <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name']]">
140
+ <table id="{@id}">
141
+ <title><xsl:value-of select="*[local-name() = 'name']/text()"/></title>
142
+ </table>
143
+ </xsl:for-each>
125
144
  </contents>
126
145
  </xsl:template>
127
146
 
@@ -210,7 +229,7 @@
210
229
  <fo:static-content flow-name="left-region">
211
230
  <fo:block-container reference-orientation="90">
212
231
  <fo:block font-size="7pt" margin-left="0.5mm" margin-top="5mm">
213
- <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:docidentifier[@type = 'iso-with-lang']"/>
232
+ <xsl:value-of select="(//iec:iec-standard)[1]/iec:bibdata/iec:docidentifier[@type = 'iso-with-lang']"/>
214
233
  </fo:block>
215
234
  </fo:block-container>
216
235
  </fo:static-content>
@@ -245,7 +264,7 @@
245
264
  <fo:block margin-bottom="3pt">THIS PUBLICATION IS COPYRIGHT PROTECTED</fo:block>
246
265
  <fo:block margin-bottom="10pt">
247
266
  <!-- Example: Copyright © 2014 IEC, Geneva, Switzerland -->
248
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-year']"/>
267
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-year')]"/>
249
268
  </fo:block>
250
269
  </fo:table-cell>
251
270
  </fo:table-row>
@@ -258,15 +277,18 @@
258
277
  either IEC or IEC's member National Committee in the country of the requester. If you have any questions about IEC
259
278
  copyright or have an enquiry about obtaining additional rights to this publication, please contact the address below or
260
279
  your local IEC member National Committee for further information. -->
261
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-message']"/>
280
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-message')]"/>
262
281
  </fo:block>
263
- <fo:block margin-bottom="8pt" text-align="justify">Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite
282
+ <!-- Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite
264
283
  ni utilisée sous quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie
265
284
  et les microfilms, sans l'accord écrit de l'IEC ou du Comité national de l'IEC du pays du demandeur. Si vous avez des
266
285
  questions sur le copyright de l'IEC ou si vous désirez obtenir des droits supplémentaires sur cette publication, utilisez
267
- les coordonnées ci-après ou contactez le Comité national de l'IEC de votre pays de résidence.</fo:block>
286
+ les coordonnées ci-après ou contactez le Comité national de l'IEC de votre pays de résidence. -->
287
+ <fo:block margin-bottom="8pt" text-align="justify">
288
+ <xsl:apply-templates select="(//iec:iec-standard)[2]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-message')]"/>
289
+ </fo:block>
268
290
 
269
- <xsl:variable name="telpos" select="count(/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/text()[contains(., 'Tel.')]/preceding-sibling::node())"/>
291
+ <xsl:variable name="telpos" select="count((//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]/text()[contains(., 'Tel.')]/preceding-sibling::node())"/>
270
292
  <fo:table table-layout="fixed" width="100%">
271
293
  <fo:table-column column-width="59mm"/>
272
294
  <fo:table-column column-width="90mm"/>
@@ -278,13 +300,13 @@
278
300
  3, rue de Varembé
279
301
  CH-1211 Geneva 20
280
302
  Switzerland -->
281
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-name']" mode="coverpage"/>
303
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-name')]" mode="coverpage"/>
282
304
  <xsl:choose>
283
305
  <xsl:when test="$telpos != 0">
284
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/node()[position() &lt; $telpos]" mode="coverpage"/>
306
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]/node()[position() &lt; $telpos]" mode="coverpage"/>
285
307
  </xsl:when>
286
308
  <xsl:otherwise>
287
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']" mode="coverpage"/>
309
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]" mode="coverpage"/>
288
310
  </xsl:otherwise>
289
311
  </xsl:choose>
290
312
  </fo:block>
@@ -297,7 +319,7 @@
297
319
  www.iec.ch -->
298
320
  <xsl:choose>
299
321
  <xsl:when test="$telpos != 0">
300
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/node()[position() &gt; $telpos]" mode="coverpage"/>
322
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]/node()[position() &gt; $telpos]" mode="coverpage"/>
301
323
  </xsl:when>
302
324
  <xsl:otherwise> </xsl:otherwise>
303
325
  </xsl:choose>
@@ -313,9 +335,12 @@
313
335
  </fo:block-container>
314
336
  </fo:block>
315
337
 
316
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:feedback-statement"/>
338
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:feedback-statement"/> <!-- //iec:clause[not(@id) or @id != 'boilerplate-cenelec-attention'] -->
317
339
  <fo:block span="all" border-bottom="0.5pt solid black"/>
318
-
340
+ <xsl:if test="(//iec:iec-standard)[2]/iec:boilerplate/iec:feedback-statement">
341
+ <xsl:apply-templates select="(//iec:iec-standard)[2]/iec:boilerplate/iec:feedback-statement"/>
342
+ <fo:block span="all"/>
343
+ </xsl:if>
319
344
  <!-- <fo:block span="all">
320
345
  <fo:block-container margin-top="6pt">
321
346
  <fo:block-container text-align="justify" margin-left="0mm" margin-right="0mm">
@@ -452,7 +477,7 @@
452
477
  </fo:flow>
453
478
  </fo:page-sequence>
454
479
  </xsl:if>
455
-
480
+ <xsl:variable name="lang_second" select="(//iec:iec-standard)[2]/iec:bibdata/iec:language[@current = 'true']"/>
456
481
  <!-- For 'Published' documents insert 3rd Cover Page
457
482
  OR insert first Covert Page for FDIS -->
458
483
  <xsl:if test="$stage &gt;= 60 or $stage-abbreviation = 'FDIS'">
@@ -464,15 +489,18 @@
464
489
  <fo:block font-size="9pt" color="{$color_blue}" line-height="150%">
465
490
  <fo:block-container width="40mm">
466
491
  <fo:block>
467
- <xsl:value-of select="$publisher"/>
492
+ <!-- <xsl:variable name="publisher" select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:contributor[iec:role/@type = 'publisher']/iec:organization/iec:name))"/> -->
493
+ <!-- <xsl:value-of select="$publisher"/> -->
494
+ <xsl:value-of select="(//iec:iec-standard)[1]/iec:localized-strings/iec:localized-string[@key='IEC' and @language=$lang]"/>
468
495
  </fo:block>
469
496
  </fo:block-container>
470
497
  </fo:block>
471
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
498
+ <xsl:if test="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='IEC' and @language=$lang_second]">
472
499
  <fo:block font-size="9pt" line-height="150%" margin-top="8pt">
473
500
  <fo:block-container width="40mm">
474
501
  <fo:block>
475
- <xsl:value-of select="'COMMISSION ELECTROTECHNIQUE INTERNATIONALE'"/>
502
+ <!-- <xsl:value-of select="'COMMISSION ELECTROTECHNIQUE INTERNATIONALE'"/> -->
503
+ <xsl:value-of select="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='IEC' and @language=$lang_second]"/>
476
504
  </fo:block>
477
505
  </fo:block-container>
478
506
  </fo:block>
@@ -486,18 +514,35 @@
486
514
  <fo:table-row border-bottom="0.5pt solid {$color_gray}" height="16mm">
487
515
  <fo:table-cell font-size="8pt" text-align="right" display-align="center">
488
516
  <fo:block>
489
- <fo:block color="{$color_blue}" margin-bottom="3pt">PRICE CODE</fo:block>
490
- <fo:block>CODE PRIX</fo:block>
517
+ <fo:block color="{$color_blue}" margin-bottom="3pt">
518
+ <!-- PRICE CODE -->
519
+ <xsl:variable name="price_code">
520
+ <!-- <xsl:call-template name="getLocalizedString">
521
+ <xsl:with-param name="key">price-code</xsl:with-param>
522
+ </xsl:call-template> -->
523
+ <xsl:value-of select="(//iec:iec-standard)[1]/iec:localized-strings/iec:localized-string[@key='price-code' and @language=$lang]"/>
524
+ </xsl:variable>
525
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
526
+ </fo:block>
527
+ <!-- <xsl:if test="$lang != 'fr'">
528
+ <fo:block>CODE PRIX</fo:block>
529
+ </xsl:if> -->
530
+ <fo:block>
531
+ <xsl:variable name="price_code">
532
+ <xsl:value-of select="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='price-code' and @language=$lang_second]"/>
533
+ </xsl:variable>
534
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
535
+ </fo:block>
491
536
  </fo:block>
492
537
  </fo:table-cell>
493
538
  <fo:table-cell font-size="25pt" font-weight="bold" color="{$color_gray}" text-align="right" display-align="center">
494
- <fo:block padding-top="1mm">XC</fo:block>
539
+ <fo:block padding-top="1mm"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:ext/iec:price-code"/></fo:block>
495
540
  </fo:table-cell>
496
541
  </fo:table-row>
497
542
  </fo:table-body>
498
543
  </fo:table>
499
544
  <fo:block font-size="8pt" text-align-last="justify">
500
- <xsl:for-each select="/iec:iec-standard/iec:bibdata/iec:ext/iec:ics">
545
+ <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:ext/iec:ics">
501
546
  <xsl:if test="position() = 1">ICS </xsl:if>
502
547
  <xsl:value-of select="iec:code"/>
503
548
  <xsl:if test="position() != last()"><xsl:text> </xsl:text></xsl:if>
@@ -505,9 +550,9 @@
505
550
  <xsl:text> </xsl:text>
506
551
  <fo:inline keep-together.within-line="always"><fo:leader leader-pattern="space"/>
507
552
  <xsl:text> </xsl:text>
508
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']">
553
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']">
509
554
  <!-- <xsl:text>Example: ISBN 978-2-8322-1532-6</xsl:text> -->
510
- <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']"/>
555
+ <xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']"/>
511
556
  </xsl:if>
512
557
  </fo:inline>
513
558
  </fo:block>
@@ -515,7 +560,7 @@
515
560
  <fo:block-container margin-left="0mm">
516
561
  <fo:block-container border="0.5pt solid black" font-size="10pt" margin-top="8mm" font-weight="bold" padding-left="1.5mm" padding-top="0.5mm" width="102%" height="11mm" display-align="center">
517
562
  <fo:block>Warning! Make sure that you obtained this publication from an authorized distributor.</fo:block>
518
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
563
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
519
564
  <fo:block margin-top="3pt">Attention! Veuillez vous assurer que vous avez obtenu cette publication via un distributeur agréé.</fo:block>
520
565
  </xsl:if>
521
566
  </fo:block-container>
@@ -523,7 +568,7 @@
523
568
  </fo:block-container>
524
569
  <fo:block font-size="6pt" margin-top="6mm" margin-left="1mm">
525
570
  <fo:block>® Registered trademark of the International Electrotechnical Commission</fo:block>
526
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
571
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
527
572
  <fo:block margin-left="2mm">Marque déposée de la Commission Electrotechnique Internationale</fo:block>
528
573
  </xsl:if>
529
574
  </fo:block>
@@ -539,10 +584,15 @@
539
584
  <fo:static-content flow-name="footer-FDIS">
540
585
  <fo:block-container background-color="rgb(236, 232, 232)" padding="2mm" border="1.5pt solid white">
541
586
  <fo:block font-size="8pt" margin-bottom="6pt">
542
- <fo:inline font-weight="bold">
587
+
588
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[not(@id)]"/>
589
+
590
+ <!-- <fo:inline font-weight="bold">
543
591
  <xsl:call-template name="addLetterSpacing">
544
592
  <xsl:with-param name="text">
545
- <xsl:text>Copyright © 2019 International Electrotechnical Commission, IEC</xsl:text>
593
+ <xsl:for-each select="(//iec:iec-standard)[1]/iec:bibdata/iec:copyright">
594
+ <xsl:text>Copyright © </xsl:text><xsl:value-of select="iec:from"/><xsl:text> </xsl:text><xsl:value-of select="iec:owner/iec:organization/iec:name"/><xsl:text>, </xsl:text><xsl:value-of select="iec:owner/iec:organization/iec:abbreviation"/>
595
+ </xsl:for-each>
546
596
  </xsl:with-param>
547
597
  </xsl:call-template>
548
598
  </fo:inline>
@@ -552,7 +602,7 @@
552
602
  <xsl:text>. All rights reserved. It is permitted to download this electronic file, to make a copy and to print out the content for the sole purpose of preparing National Committee positions. You may not copy or "mirror" the file or printed version of the document, or any part of it, for any other purpose without permission in writing from IEC.</xsl:text>
553
603
  </xsl:with-param>
554
604
  </xsl:call-template>
555
- </fo:inline>
605
+ </fo:inline> -->
556
606
  </fo:block>
557
607
  </fo:block-container>
558
608
  </fo:static-content>
@@ -564,7 +614,8 @@
564
614
  <fo:inline font-size="8pt" padding-left="0.5mm" color="{$color_blue}">®</fo:inline>
565
615
  </xsl:if>
566
616
  <fo:inline keep-together.within-line="always" font-size="18pt" font-weight="bold" baseline-shift="10mm"><fo:leader leader-pattern="space"/>
567
- <xsl:text>Ex: 34D/1511/FDIS</xsl:text>
617
+ <!-- Ex: 34D/1511/FDIS -->
618
+ <xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='iso-tc']"/>
568
619
  <xsl:text> </xsl:text>
569
620
  </fo:inline>
570
621
  </fo:block>
@@ -599,7 +650,7 @@
599
650
  </fo:block>
600
651
  <fo:block font-size="9pt" font-weight="bold">
601
652
  <xsl:call-template name="addLetterSpacing">
602
- <xsl:with-param name="text"><xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:project-number"/></xsl:with-param>
653
+ <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:project-number"/></xsl:with-param>
603
654
  </xsl:call-template>
604
655
  </fo:block>
605
656
  </fo:table-cell>
@@ -613,7 +664,7 @@
613
664
  </fo:block>
614
665
  <fo:block font-size="9pt" font-weight="bold">
615
666
  <xsl:call-template name="addLetterSpacing">
616
- <xsl:with-param name="text"><xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:date[@type ='circulated']/iec:on"/></xsl:with-param>
667
+ <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type ='circulated']/iec:on"/></xsl:with-param>
617
668
  </xsl:call-template>
618
669
  </fo:block>
619
670
  </fo:table-cell>
@@ -625,7 +676,8 @@
625
676
  </fo:block>
626
677
  <fo:block font-size="9pt" font-weight="bold">
627
678
  <xsl:call-template name="addLetterSpacing">
628
- <xsl:with-param name="text">2019-12-06</xsl:with-param>
679
+ <!-- 2019-12-06 -->
680
+ <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type='vote-ended']/iec:on"/></xsl:with-param>
629
681
  </xsl:call-template>
630
682
  </fo:block>
631
683
  </fo:table-cell>
@@ -639,7 +691,8 @@
639
691
  </fo:block>
640
692
  <fo:block font-size="9pt" font-weight="bold">
641
693
  <xsl:variable name="supersedes_documents">
642
- <xsl:for-each select="/iec:iec-standard/iec:bibdata/iec:relation[@type='supersedes']/iec:bibitem/iec:docnumber">
694
+ <!-- <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:relation[@type='supersedes']/iec:bibitem/iec:docnumber"> -->
695
+ <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:relation[@type='obsoletes']/iec:bibitem/iec:docidentifier">
643
696
  <xsl:value-of select="."/>
644
697
  <xsl:if test="position() != last()">,</xsl:if>
645
698
  </xsl:for-each>
@@ -665,22 +718,26 @@
665
718
  <fo:table-row height="4mm">
666
719
  <fo:table-cell number-columns-spanned="2" border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
667
720
  <fo:block>
668
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee">
669
- <fo:block font-size="6.5pt">
670
- <fo:inline font-size="8pt">IEC SC <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee/@number"/> : </fo:inline>
671
- <xsl:call-template name="addLetterSpacingSmallCaps">
672
- <xsl:with-param name="text" select="/iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee"/>
673
- </xsl:call-template>
674
- </fo:block>
675
- </xsl:if>
676
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee">
677
- <fo:block font-size="6.5pt">
678
- <fo:inline font-size="8pt">IEC TC <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee/@number"/> : </fo:inline>
679
- <xsl:call-template name="addLetterSpacingSmallCaps">
680
- <xsl:with-param name="text" select="/iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee"/>
681
- </xsl:call-template>
682
- </fo:block>
683
- </xsl:if>
721
+ <!-- If //bibdata/ext/editorialgroup/subcommittee exists, use "IEC SC" + //bibdata/ext/editorialgroup/subcommittee/@number + //bibdata/ext/editorialgroup/subcommittee,
722
+ else use "IEC TC" + //bibdata/ext/editorialgroup/technical-committee/@number + //bibdata/ext/editorialgroup/technical-committee -->
723
+ <xsl:choose>
724
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee">
725
+ <fo:block font-size="6.5pt">
726
+ <fo:inline font-size="8pt">IEC SC <xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee/@number"/> : </fo:inline>
727
+ <xsl:call-template name="addLetterSpacingSmallCaps">
728
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee"/>
729
+ </xsl:call-template>
730
+ </fo:block>
731
+ </xsl:when>
732
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee">
733
+ <fo:block font-size="6.5pt">
734
+ <fo:inline font-size="8pt">IEC TC <xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee/@number"/> : </fo:inline>
735
+ <xsl:call-template name="addLetterSpacingSmallCaps">
736
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee"/>
737
+ </xsl:call-template>
738
+ </fo:block>
739
+ </xsl:when>
740
+ </xsl:choose>
684
741
  </fo:block>
685
742
  </fo:table-cell>
686
743
  </fo:table-row>
@@ -693,7 +750,7 @@
693
750
  </fo:block>
694
751
  <fo:block font-size="9pt">
695
752
  <xsl:call-template name="addLetterSpacing">
696
- <xsl:with-param name="text" select="/iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:secretariat"/>
753
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:secretariat"/>
697
754
  </xsl:call-template>
698
755
  </fo:block>
699
756
  </fo:table-cell>
@@ -704,8 +761,9 @@
704
761
  </xsl:call-template>
705
762
  </fo:block>
706
763
  <fo:block font-size="9pt">
764
+ <!-- Example: Ms Shanti Conn -->
707
765
  <xsl:call-template name="addLetterSpacing">
708
- <xsl:with-param name="text" select="'Ms Shanti Conn'"/>
766
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:secretary"/>
709
767
  </xsl:call-template>
710
768
  </fo:block>
711
769
  </fo:table-cell>
@@ -720,6 +778,11 @@
720
778
  <xsl:with-param name="text" select="'Of interest to the following committees:'"/>
721
779
  </xsl:call-template>
722
780
  </fo:block>
781
+ <fo:block font-size="9pt">
782
+ <xsl:call-template name="addLetterSpacing">
783
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:interest-to-committees"/>
784
+ </xsl:call-template>
785
+ </fo:block>
723
786
  </fo:table-cell>
724
787
  <xsl:if test="$stage-abbreviation = 'FDIS' or $stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD'">
725
788
  <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
@@ -735,9 +798,15 @@
735
798
  </xsl:call-template>
736
799
  </xsl:if>
737
800
  </fo:block>
738
-
739
801
  <fo:block>
740
- <xsl:call-template name="insertCheckBoxOff"/>
802
+ <xsl:choose>
803
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
804
+ <xsl:call-template name="insertCheckBoxOn"/>
805
+ </xsl:when>
806
+ <xsl:otherwise>
807
+ <xsl:call-template name="insertCheckBoxOff"/>
808
+ </xsl:otherwise>
809
+ </xsl:choose>
741
810
  </fo:block>
742
811
 
743
812
  <xsl:if test="$stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD'">
@@ -766,7 +835,7 @@
766
835
  <!-- function: { emc | safety | environment | quality-assurance } -->
767
836
  <fo:block font-size="6.5pt">
768
837
  <xsl:choose>
769
- <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'emc'">
838
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'emc'">
770
839
  <xsl:call-template name="insertCheckBoxOn"/>
771
840
  </xsl:when>
772
841
  <xsl:otherwise>
@@ -778,7 +847,7 @@
778
847
  </xsl:call-template>
779
848
  <fo:inline padding-right="33mm"> </fo:inline>
780
849
  <xsl:choose>
781
- <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'environment'">
850
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'environment'">
782
851
  <xsl:call-template name="insertCheckBoxOn"/>
783
852
  </xsl:when>
784
853
  <xsl:otherwise>
@@ -794,7 +863,7 @@
794
863
  <fo:block font-size="6.5pt" margin-bottom="6pt"> </fo:block>
795
864
  <fo:block font-size="6.5pt">
796
865
  <xsl:choose>
797
- <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'quality-assurance'">
866
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'quality-assurance'">
798
867
  <xsl:call-template name="insertCheckBoxOn"/>
799
868
  </xsl:when>
800
869
  <xsl:otherwise>
@@ -806,7 +875,7 @@
806
875
  </xsl:call-template>
807
876
  <fo:inline padding-right="13mm"> </fo:inline>
808
877
  <xsl:choose>
809
- <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'safety'">
878
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'safety'">
810
879
  <xsl:call-template name="insertCheckBoxOn"/>
811
880
  </xsl:when>
812
881
  <xsl:otherwise>
@@ -826,18 +895,22 @@
826
895
  <fo:table-row>
827
896
  <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
828
897
  <fo:block font-size="6.5pt" margin-bottom="12pt">
829
- <xsl:call-template name="insertCheckBoxOn"/>
898
+ <xsl:choose>
899
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:cen-processing = 'true'">
900
+ <xsl:call-template name="insertCheckBoxOn"/>
901
+ </xsl:when>
902
+ <xsl:otherwise>
903
+ <xsl:call-template name="insertCheckBoxOff"/>
904
+ </xsl:otherwise>
905
+ </xsl:choose>
830
906
  <xsl:call-template name="addLetterSpacingSmallCaps">
831
907
  <xsl:with-param name="text" select="'Submitted for CENELEC parallel voting'"/>
832
908
  </xsl:call-template>
833
909
  </fo:block>
834
- <fo:block font-size="8pt" font-weight="bold" margin-bottom="10pt">
835
- <xsl:call-template name="addLetterSpacing">
836
- <xsl:with-param name="text" select="'Attention IEC-CENELEC parallel voting'"/>
837
- </xsl:call-template>
838
- </fo:block>
839
910
 
840
- <fo:block font-size="8pt" margin-bottom="10pt" text-align="justify">
911
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:feedback-statement/iec:clause[@id = 'boilerplate-cenelec-attention']"/>
912
+
913
+ <!-- <fo:block font-size="8pt" margin-bottom="10pt" text-align="justify">
841
914
  <xsl:if test="$stage-abbreviation = 'FDIS'">
842
915
  <xsl:call-template name="addLetterSpacing">
843
916
  <xsl:with-param name="text" select="'The attention of IEC National Committees, members of CENELEC, is drawn to the fact that this Final Draft International Standard (FDIS) is submitted for parallel voting.'"/>
@@ -853,11 +926,19 @@
853
926
  <xsl:call-template name="addLetterSpacing">
854
927
  <xsl:with-param name="text" select="'The CENELEC members are invited to vote through the CENELEC online voting system.'"/>
855
928
  </xsl:call-template>
856
- </fo:block>
929
+ </fo:block> -->
930
+
857
931
  </fo:table-cell>
858
932
  <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
859
933
  <fo:block font-size="6.5pt" margin-bottom="6pt">
860
- <xsl:call-template name="insertCheckBoxOff"/>
934
+ <xsl:choose>
935
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:cen-processing = 'true'">
936
+ <xsl:call-template name="insertCheckBoxOff"/>
937
+ </xsl:when>
938
+ <xsl:otherwise>
939
+ <xsl:call-template name="insertCheckBoxOn"/>
940
+ </xsl:otherwise>
941
+ </xsl:choose>
861
942
  <xsl:call-template name="addLetterSpacingSmallCaps">
862
943
  <xsl:with-param name="text" select="'Not submitted for CENELEC parallel voting'"/>
863
944
  </xsl:call-template>
@@ -871,7 +952,10 @@
871
952
  </fo:block-container>
872
953
 
873
954
  <fo:block-container font-size="8pt" background-color="rgb(236, 232, 232)" margin-top="5mm" padding="2mm" text-align="justify" border="1.5pt solid white">
874
- <xsl:if test="$stage-abbreviation = 'FDIS'">
955
+ <fo:block>
956
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:license-statement" mode="cover-page-internal"/>
957
+ </fo:block>
958
+ <!-- <xsl:if test="$stage-abbreviation = 'FDIS'">
875
959
  <fo:block margin-bottom="6pt">
876
960
  <xsl:call-template name="addLetterSpacing">
877
961
  <xsl:with-param name="text">This document is a draft distributed for approval. It may not be referred to as an International Standard until published as such.</xsl:with-param>
@@ -888,7 +972,17 @@
888
972
  </xsl:call-template>
889
973
  </fo:block>
890
974
  </xsl:if>
891
- <xsl:if test="$stage-abbreviation = 'NWIP' or $stage-abbreviation = 'PWI' or $stage-abbreviation = 'NP' or $stage-abbreviation = 'AWI' or $stage-abbreviation = 'WD' or $stage-abbreviation = 'CD' or $stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD-TSTR' or $stage-abbreviation = 'DTS' or $stage-abbreviation = 'DTR' or $stage-abbreviation = 'DPAS'">
975
+ <xsl:if test="$stage-abbreviation = 'NWIP' or
976
+ $stage-abbreviation = 'PWI' or
977
+ $stage-abbreviation = 'NP' or
978
+ $stage-abbreviation = 'AWI' or
979
+ $stage-abbreviation = 'WD' or
980
+ $stage-abbreviation = 'CD' or
981
+ $stage-abbreviation = 'CDV' or
982
+ $stage-abbreviation = 'CD-TSTR' or
983
+ $stage-abbreviation = 'DTS' or
984
+ $stage-abbreviation = 'DTR' or
985
+ $stage-abbreviation = 'DPAS'">
892
986
  <fo:block margin-bottom="6pt">
893
987
  <xsl:call-template name="addLetterSpacing">
894
988
  <xsl:with-param name="text">This document is still under study and subject to change. It should not be used for reference purposes.</xsl:with-param>
@@ -899,7 +993,7 @@
899
993
  <xsl:with-param name="text">Recipients of this document are invited to submit, with their comments, notification of any relevant patent rights of which they are aware and to provide supporting documentation.</xsl:with-param>
900
994
  </xsl:call-template>
901
995
  </fo:block>
902
- </xsl:if>
996
+ </xsl:if> -->
903
997
  </fo:block-container>
904
998
 
905
999
  <fo:block-container background-color="rgb(219, 229, 241)" margin-top="4mm" padding="2mm" padding-top="1mm" border="1.5pt solid white">
@@ -910,7 +1004,7 @@
910
1004
  </fo:block>
911
1005
  <fo:block font-size="9pt" font-weight="bold">
912
1006
  <xsl:call-template name="addLetterSpacing">
913
- <xsl:with-param name="text"><xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:title[@language = 'en' and @type = 'main']"/></xsl:with-param>
1007
+ <xsl:with-param name="text"><xsl:value-of select="(//iec:iec-standard)[1]/iec:bibdata/iec:title[@language = $lang and @type = 'main']"/></xsl:with-param>
914
1008
  </xsl:call-template>
915
1009
  </fo:block>
916
1010
  </fo:block-container>
@@ -923,24 +1017,24 @@
923
1017
  <xsl:text>PROPOSED STABILITY DATE: </xsl:text>
924
1018
  </xsl:with-param>
925
1019
  </xsl:call-template>
926
- <fo:inline font-size="9pt">2023</fo:inline>
1020
+ <!-- 2023 -->
1021
+ <fo:inline font-size="9pt"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type='unchanged']/iec:on"/></fo:inline>
927
1022
  </fo:block>
928
1023
  </fo:block-container>
929
1024
  </xsl:if>
930
1025
 
931
- <fo:block-container border="1.5 solid" border-color="rgb(221, 213, 213)" height="13mm" padding="1mm" margin-top="3mm">
1026
+ <fo:block-container border="1.5 solid" border-color="rgb(221, 213, 213)" padding="1mm" margin-top="3mm">
932
1027
  <fo:block font-size="6.5pt" margin-bottom="6pt">
933
1028
  <xsl:call-template name="addLetterSpacingSmallCaps">
934
1029
  <xsl:with-param name="text">Note from TC/SC officers:</xsl:with-param>
935
1030
  </xsl:call-template>
936
1031
  </fo:block>
937
- <!-- <fo:block font-size="9pt">This FDIS is the result of the discussion between the IEC SC21A experts WG 3 during the meeting held in</fo:block> -->
1032
+ <!-- Example: This FDIS is the result of the discussion between the IEC SC21A experts WG 3 during the meeting held in -->
1033
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:bibdata/iec:ext/iec:tc-sc-officers-note"/>
938
1034
  </fo:block-container>
939
1035
 
940
-
941
-
942
- <xsl:if test="$stage-abbreviation = 'FDIS'">
943
- <fo:block-container font-size="9pt" border="1.5 solid" border-color="rgb(221, 213, 213)" height="13mm" padding="1mm" margin-top="3mm">
1036
+ <!-- <xsl:if test="$stage-abbreviation = 'FDIS'">
1037
+ <fo:block-container font-size="9pt" border="1.5 solid" border-color="rgb(221, 213, 213)" height="13mm" padding="1mm" margin-top="3mm">
944
1038
  <fo:block margin-bottom="6pt">
945
1039
  <xsl:call-template name="addLetterSpacing">
946
1040
  <xsl:with-param name="text">
@@ -956,14 +1050,62 @@
956
1050
  </xsl:call-template>
957
1051
  </fo:block>
958
1052
  </fo:block-container>
959
- </xsl:if>
1053
+ </xsl:if> -->
960
1054
 
961
1055
  </fo:flow>
962
1056
  </fo:page-sequence>
963
1057
  </xsl:if>
964
1058
 
1059
+ <xsl:if test="$debug = 'true'">
1060
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
1061
+ DEBUG
1062
+ contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
1063
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
1064
+ </xsl:if>
965
1065
 
966
- <fo:page-sequence master-reference="document" format="1" initial-page-number="2" force-page-count="no-force">
1066
+ <xsl:for-each select="//iec:iec-standard">
1067
+ <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
1068
+ <xsl:variable name="current_document">
1069
+ <xsl:copy-of select="."/>
1070
+ </xsl:variable>
1071
+ <xsl:for-each select="xalan:nodeset($current_document)">
1072
+
1073
+ <xsl:variable name="docid">
1074
+ <xsl:call-template name="getDocumentId"/>
1075
+ </xsl:variable>
1076
+
1077
+
1078
+ <fo:page-sequence master-reference="document" format="1" force-page-count="no-force"> <!-- initial-page-number="2" -->
1079
+ <xsl:variable name="num"><xsl:number count="iec:iec-standard" level="any"/></xsl:variable>
1080
+ <xsl:if test="$num = '1'">
1081
+ <xsl:attribute name="initial-page-number">2</xsl:attribute>
1082
+ </xsl:if>
1083
+
1084
+ <xsl:call-template name="insertHeaderFooter"/>
1085
+ <fo:flow flow-name="xsl-region-body">
1086
+
1087
+ <xsl:call-template name="insertTOCpages">
1088
+ <xsl:with-param name="contents" select="xalan:nodeset($contents)/doc[@id = $docid]"/>
1089
+ </xsl:call-template>
1090
+
1091
+ <xsl:call-template name="insertPrefacepages">
1092
+ <xsl:with-param name="lang" select="$lang"/>
1093
+ </xsl:call-template>
1094
+
1095
+
1096
+ </fo:flow>
1097
+ </fo:page-sequence>
1098
+
1099
+ <xsl:call-template name="insertBodypages">
1100
+ <xsl:with-param name="lang" select="$lang"/>
1101
+ </xsl:call-template>
1102
+
1103
+ </xsl:for-each>
1104
+ </xsl:for-each>
1105
+
1106
+
1107
+
1108
+ <!-- <fo:page-sequence master-reference="document" format="1" initial-page-number="2" force-page-count="no-force">
967
1109
  <xsl:call-template name="insertHeaderFooter"/>
968
1110
  <fo:flow flow-name="xsl-region-body">
969
1111
 
@@ -971,13 +1113,7 @@
971
1113
  <xsl:call-template name="getDocumentId"/>
972
1114
  </xsl:variable>
973
1115
 
974
- <xsl:if test="$debug = 'true'">
975
- <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
976
- DEBUG
977
- contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
978
- <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
979
- </xsl:if>
980
-
1116
+
981
1117
  <xsl:call-template name="insertTOCpages">
982
1118
  <xsl:with-param name="contents" select="xalan:nodeset($contents)/doc[@id = $docid]"/>
983
1119
  </xsl:call-template>
@@ -989,11 +1125,11 @@
989
1125
 
990
1126
 
991
1127
  <xsl:call-template name="insertBodypages"/>
992
-
1128
+ -->
993
1129
 
994
1130
 
995
1131
  <!-- Test=<xsl:copy-of select="$additionalDocs"/> Test -->
996
- <xsl:for-each select="xalan:nodeset($additionalXMLsArray)/*">
1132
+ <!-- <xsl:for-each select="xalan:nodeset($additionalXMLsArray)/*">
997
1133
 
998
1134
  <xsl:for-each select="document(.)">
999
1135
  <xsl:variable name="lang">
@@ -1034,7 +1170,7 @@
1034
1170
 
1035
1171
  </xsl:for-each>
1036
1172
  </xsl:for-each>
1037
- </xsl:for-each>
1173
+ </xsl:for-each> -->
1038
1174
 
1039
1175
 
1040
1176
 
@@ -1053,6 +1189,7 @@
1053
1189
  <fo:block font-size="11pt" color="{$color_blue}" margin-bottom="12pt" line-height="150%">
1054
1190
  <fo:block-container width="42mm">
1055
1191
  <fo:block>
1192
+ <xsl:variable name="publisher" select="java:toUpperCase(java:java.lang.String.new(//iec:iec-standard/iec:bibdata/iec:contributor[iec:role/@type = 'publisher']/iec:organization/iec:name))"/>
1056
1193
  <xsl:value-of select="$publisher"/>
1057
1194
  </fo:block>
1058
1195
  </fo:block-container>
@@ -1068,14 +1205,14 @@
1068
1205
  Fax: + 41 22 919 03 00
1069
1206
  info@iec.ch
1070
1207
  www.iec.ch -->
1071
- <xsl:variable name="telpos" select="count(/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/text()[contains(., 'Tel.')]/preceding-sibling::node())"/>
1208
+ <xsl:variable name="telpos" select="count((//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]/text()[contains(., 'Tel.')]/preceding-sibling::node())"/>
1072
1209
  <xsl:choose>
1073
1210
  <xsl:when test="$telpos != 0">
1074
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/node()[position() &lt;= $telpos]" mode="coverpage"/>
1075
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']/node()[position() &gt;= $telpos]" mode="coverpage"/>
1211
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]/node()[position() &lt;= $telpos]" mode="coverpage"/>
1212
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]/node()[position() &gt;= $telpos]" mode="coverpage"/>
1076
1213
  </xsl:when>
1077
1214
  <xsl:otherwise>
1078
- <xsl:apply-templates select="/iec:iec-standard/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[@id = 'boilerplate-address']" mode="coverpage"/>
1215
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]" mode="coverpage"/>
1079
1216
  </xsl:otherwise>
1080
1217
  </xsl:choose>
1081
1218
  </fo:block>
@@ -1087,11 +1224,25 @@
1087
1224
  </fo:root>
1088
1225
  </xsl:template>
1089
1226
 
1227
+ <xsl:template match="iec:tc-sc-officers-note/iec:p">
1228
+ <fo:block><xsl:apply-templates/></fo:block>
1229
+ </xsl:template>
1230
+
1090
1231
  <xsl:template name="insertCoverPart1">
1232
+ <xsl:variable name="lang_second">
1233
+ <xsl:choose>
1234
+ <xsl:when test="(//iec:iec-standard)[2]/iec:bibdata/iec:language[@current = 'true']">
1235
+ <xsl:value-of select="(//iec:iec-standard)[2]/iec:bibdata/iec:language[@current = 'true']"/>
1236
+ </xsl:when>
1237
+ <xsl:otherwise>
1238
+ <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:title[@language and @language != $lang]/@language"/>
1239
+ </xsl:otherwise>
1240
+ </xsl:choose>
1241
+ </xsl:variable>
1091
1242
  <fo:block text-align-last="justify">
1092
1243
  <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Logo-IEC))}" width="18mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Logo IEC"/>
1093
1244
  <fo:inline font-size="8pt" padding-left="0.5mm" color="rgb(88, 88, 90)">®</fo:inline>
1094
- <fo:inline keep-together.within-line="always" font-size="25pt" font-weight="bold" color="{$color_gray}" border-bottom="0.5pt solid {$color_gray}" padding-bottom="3.5mm" baseline-shift="5.5mm"><fo:leader leader-pattern="space"/><xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:docidentifier[@type = 'iso']"/></fo:inline>
1245
+ <fo:inline keep-together.within-line="always" font-size="25pt" font-weight="bold" color="{$color_gray}" border-bottom="0.5pt solid {$color_gray}" padding-bottom="3.5mm" baseline-shift="5.5mm"><fo:leader leader-pattern="space"/><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type = 'iso' or @type = 'ISO']"/></fo:inline>
1095
1246
  </fo:block>
1096
1247
  <fo:block font-size="10.5pt" text-align="right" margin-top="0.5mm">
1097
1248
  <xsl:variable name="title-edition">
@@ -1101,12 +1252,13 @@
1101
1252
  </xsl:variable>
1102
1253
  <xsl:value-of select="$title-edition"/>
1103
1254
  <fo:inline>
1104
- <xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:edition"/>
1105
- <xsl:if test="not(contains(/iec:iec-standard/iec:bibdata/iec:edition, '.'))">.0</xsl:if>
1255
+ <xsl:variable name="edition" select="//iec:iec-standard/iec:bibdata/iec:edition"/>
1256
+ <xsl:value-of select="$edition"/>
1257
+ <xsl:if test="not(contains($edition, '.'))">.0</xsl:if>
1106
1258
  </fo:inline>
1107
1259
  <fo:inline padding-left="4mm">
1108
1260
  <!-- Example 2014-05 -->
1109
- <xsl:value-of select="substring(/iec:iec-standard/iec:bibdata/iec:version/iec:revision-date, 1, 7)"/>
1261
+ <xsl:value-of select="substring(//iec:iec-standard/iec:bibdata/iec:version/iec:revision-date, 1, 7)"/>
1110
1262
  </fo:inline>
1111
1263
  <fo:block> </fo:block>
1112
1264
  </fo:block>
@@ -1122,6 +1274,7 @@
1122
1274
  <xsl:text>PRE-RELEASE VERSION (FDIS)</xsl:text>
1123
1275
  </xsl:when>
1124
1276
  <xsl:when test="$stage &gt;= 60">
1277
+ <xsl:variable name="doctype_uppercased" select="java:toUpperCase(java:java.lang.String.new((//iec:iec-standard)[1]/iec:bibdata/iec:ext/iec:doctype[@language = $lang]))"/>
1125
1278
  <xsl:value-of select="$doctype_uppercased"/>
1126
1279
  </xsl:when>
1127
1280
  <xsl:otherwise>
@@ -1129,10 +1282,10 @@
1129
1282
  <xsl:text> (</xsl:text><xsl:value-of select="$stage-abbreviation"/><xsl:text>)</xsl:text>
1130
1283
  </xsl:otherwise>
1131
1284
  </xsl:choose>
1132
-
1133
1285
  </fo:block>
1134
1286
  </fo:block-container>
1135
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr'] and $lang != 'fr'">
1287
+
1288
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second]">
1136
1289
  <fo:block-container height="26mm" margin-top="10pt" display-align="after">
1137
1290
  <xsl:if test="$stage &gt;= 60">
1138
1291
  <xsl:attribute name="width">100mm</xsl:attribute>
@@ -1140,7 +1293,7 @@
1140
1293
  <fo:block color="{$color_gray}">
1141
1294
  <xsl:if test="$stage &gt;= 60">
1142
1295
  <!-- <xsl:text>NORME INTERNATIONALE</xsl:text> -->
1143
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:doctype[@language = 'fr']))"/>
1296
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(//iec:iec-standard/iec:bibdata/iec:ext/iec:doctype[@language = $lang_second]))"/>
1144
1297
  </xsl:if>
1145
1298
  </fo:block>
1146
1299
  </fo:block-container>
@@ -1151,17 +1304,19 @@
1151
1304
  <fo:block-container margin-left="0mm">
1152
1305
  <fo:block-container height="6mm">
1153
1306
  <fo:block text-align="right" margin-top="-4.5mm" margin-right="-1mm">
1154
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Colour-Inside))}" width="19mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Logo IEC"/>
1307
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:ext/iec:accessibility-color-inside = 'true'">
1308
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Colour-Inside))}" width="19mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Logo IEC"/>
1309
+ </xsl:if>
1155
1310
  </fo:block>
1156
1311
  </fo:block-container>
1157
1312
  <fo:block-container border-bottom="0.5pt solid {$color_gray}" margin-top="4mm" margin-bottom="16pt" height="14mm" display-align="center">
1158
1313
  <fo:block font-size="10pt" color="{$color_blue}" margin-bottom="4pt">
1159
1314
  <xsl:choose>
1160
- <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
1161
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal[@language = $lang]))"/>
1315
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
1316
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(//iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal[@language = $lang]))"/>
1162
1317
  </xsl:when>
1163
1318
  <xsl:otherwise><!-- horizontal is false -->
1164
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:function[@language = $lang]))"/>
1319
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(//iec:iec-standard/iec:bibdata/iec:ext/iec:function[@language = $lang]))"/>
1165
1320
  </xsl:otherwise>
1166
1321
  </xsl:choose>
1167
1322
  <!-- Example: BASIC EMC PUBLICATION -->
@@ -1171,14 +1326,14 @@
1171
1326
  Basic Environment Publication
1172
1327
  Basic Quality Assurance Publication -->
1173
1328
  </fo:block>
1174
- <xsl:if test="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr'] and $lang != 'fr'">
1329
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second]">
1175
1330
  <fo:block font-size="10pt" margin-bottom="10pt">
1176
1331
  <xsl:choose>
1177
- <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
1178
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal[@language = 'fr']))"/>
1332
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
1333
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(//iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal[@language = $lang_second]))"/>
1179
1334
  </xsl:when>
1180
1335
  <xsl:otherwise><!-- horizontal is false -->
1181
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:ext/iec:function[@language = 'fr']))"/>
1336
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(//iec:iec-standard/iec:bibdata/iec:ext/iec:function[@language = $lang_second]))"/>
1182
1337
  </xsl:otherwise>
1183
1338
  </xsl:choose>
1184
1339
  <!-- Example: PUBLICATION FONDAMENTALE EN CEM -->
@@ -1195,42 +1350,62 @@
1195
1350
  Electromagnetic compatibility (EMC) –
1196
1351
  Part 4-5: Testing and measurement techniques – Surge immunity test
1197
1352
  -->
1353
+ <xsl:variable name="title-intro" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-intro']"/>
1198
1354
  <xsl:value-of select="$title-intro"/>
1355
+ <xsl:variable name="title-main" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-main']"/>
1199
1356
  <xsl:if test="$title-main != ''">
1200
1357
  <xsl:text> — </xsl:text>
1201
1358
  <xsl:value-of select="$title-main"/>
1202
1359
  </xsl:if>
1203
- <xsl:variable name="part-en" select="/iec:iec-standard/iec:bibdata/iec:title[@language = 'en' and @type = 'title-part']"/>
1204
- <xsl:if test="$part-en != ''">
1360
+ <xsl:variable name="title-part" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-part']"/>
1361
+ <xsl:if test="$title-part != ''">
1205
1362
  <xsl:text> — </xsl:text>
1206
1363
  <xsl:value-of select="$linebreak"/>
1207
1364
  <xsl:if test="$part != ''">
1208
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='en']),'#',$part)"/>
1365
+ <xsl:variable name="localized_part" select="(//iec:iec-standard)[1]/iec:localized-strings/iec:localized-string[@key='locality.part' and @language=$lang]"/>
1366
+ <!-- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($localized_part),'#',$part)"/> -->
1367
+ <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1209
1368
  <!-- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
1210
1369
  <xsl:text>: </xsl:text> -->
1211
1370
  </xsl:if>
1212
- <xsl:value-of select="$part-en"/>
1371
+ <xsl:value-of select="$title-part"/>
1213
1372
  </xsl:if>
1214
1373
  </fo:block>
1215
1374
  <fo:block font-size="12pt" font-weight="bold">
1216
1375
  <!-- Example: Compatibilité électromagnétique (CEM) –
1217
1376
  Partie 4-5: Techniques d'essai et de mesure – Essai d'immunité aux ondes de
1218
1377
  choc -->
1219
- <xsl:value-of select="$title-intro-fr"/>
1220
- <xsl:if test="$title-main-fr != ''">
1378
+ <xsl:variable name="title-intro-second" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-intro']"/>
1379
+ <xsl:value-of select="$title-intro-second"/>
1380
+ <xsl:variable name="title-main-second" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-main']"/>
1381
+ <xsl:if test="$title-main-second != ''">
1221
1382
  <xsl:text> — </xsl:text>
1222
- <xsl:value-of select="$title-main-fr"/>
1383
+ <xsl:value-of select="$title-main-second"/>
1223
1384
  </xsl:if>
1224
- <xsl:variable name="part-fr" select="/iec:iec-standard/iec:bibdata/iec:title[@language = 'fr' and @type = 'title-part']"/>
1225
- <xsl:if test="$part-fr != ''">
1385
+ <xsl:variable name="part-second" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-part']"/>
1386
+ <xsl:if test="$part-second != ''">
1226
1387
  <xsl:text> — </xsl:text>
1227
1388
  <xsl:value-of select="$linebreak"/>
1228
1389
  <xsl:if test="$part != ''">
1229
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='en']),'#',$part)"/>
1390
+
1391
+ <xsl:choose>
1392
+ <xsl:when test="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='locality.part' and @language=$lang_second]">
1393
+ <xsl:variable name="localized_part">
1394
+ <xsl:value-of select="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='locality.part' and @language=$lang_second]"/>
1395
+ </xsl:variable>
1396
+ <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1397
+ </xsl:when>
1398
+ <xsl:otherwise>
1399
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang_second]),'#',$part)"/>
1400
+ </xsl:otherwise>
1401
+ </xsl:choose>
1402
+
1403
+ <!-- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($localized_part),'#',$part)"/> -->
1404
+
1230
1405
  <!-- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
1231
1406
  <xsl:text>: </xsl:text> -->
1232
1407
  </xsl:if>
1233
- <xsl:value-of select="$part-fr"/>
1408
+ <xsl:value-of select="$part-second"/>
1234
1409
  </xsl:if>
1235
1410
  </fo:block>
1236
1411
  </fo:block-container>
@@ -1352,7 +1527,8 @@
1352
1527
  <xsl:param name="lang" select="$lang"/>
1353
1528
  <fo:block break-after="page"/>
1354
1529
  <fo:block-container font-size="12pt" text-align="center" margin-bottom="18pt">
1355
- <fo:block><xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:contributor/iec:organization/iec:name))"/></fo:block>
1530
+ <!-- <fo:block><xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:contributor/iec:organization/iec:name))"/></fo:block> -->
1531
+ <fo:block><xsl:value-of select="/iec:iec-standard/iec:localized-strings/iec:localized-string[@key='IEC' and @language=$lang]"/></fo:block>
1356
1532
  <fo:block>___________</fo:block>
1357
1533
  <fo:block> </fo:block>
1358
1534
  <fo:block font-weight="bold">
@@ -1367,7 +1543,9 @@
1367
1543
  <fo:block>
1368
1544
  <xsl:if test="$part != ''">
1369
1545
  <!-- Example: Part 1: Riz -->
1370
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang]),'#',$part)"/>
1546
+ <!-- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang]),'#',$part)"/> -->
1547
+ <xsl:variable name="localized_part" select="//iec:iec-standard/iec:localized-strings/iec:localized-string[@key='locality.part' and @language = $lang]"/>
1548
+ <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1371
1549
  </xsl:if>
1372
1550
  <xsl:value-of select="$title-part"/>
1373
1551
  </fo:block>
@@ -1407,7 +1585,9 @@
1407
1585
  <fo:block>
1408
1586
  <xsl:if test="$part != ''">
1409
1587
  <!-- Example: Part 1: Rice -->
1410
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang]),'#',$part)"/>
1588
+ <!-- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang]),'#',$part)"/> -->
1589
+ <xsl:variable name="localized_part" select="//iec:iec-standard/iec:localized-strings/iec:localized-string[@key='locality.part' and @language = $lang]"/>
1590
+ <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1411
1591
  </xsl:if>
1412
1592
  <xsl:value-of select="$title-part"/>
1413
1593
  </fo:block>
@@ -1431,6 +1611,39 @@
1431
1611
  </xsl:template>
1432
1612
 
1433
1613
 
1614
+ <xsl:template match="iec:feedback-statement/iec:clause[@id = 'boilerplate-cenelec-attention']" priority="3">
1615
+ <fo:block font-size="8pt" margin-bottom="10pt" text-align="justify">
1616
+ <xsl:apply-templates/>
1617
+ </fo:block>
1618
+ </xsl:template>
1619
+
1620
+ <xsl:template match="iec:feedback-statement/iec:clause[@id = 'boilerplate-cenelec-attention']//iec:title" priority="3">
1621
+ <fo:block font-size="8pt" font-weight="bold" margin-bottom="10pt">
1622
+ <xsl:apply-templates/>
1623
+ </fo:block>
1624
+ </xsl:template>
1625
+
1626
+ <xsl:template match="iec:feedback-statement/iec:clause[@id = 'boilerplate-cenelec-attention']//iec:p" priority="3">
1627
+ <fo:block font-size="8pt" margin-bottom="10pt" text-align="justify">
1628
+ <xsl:apply-templates/>
1629
+ </fo:block>
1630
+ </xsl:template>
1631
+
1632
+ <xsl:template match="iec:feedback-statement/iec:clause[@id = 'boilerplate-cenelec-attention']//text()" priority="3">
1633
+ <!-- Example: Attention IEC-CENELEC parallel voting -->
1634
+ <xsl:if test="normalize-space() ! = ''">
1635
+ <xsl:call-template name="addLetterSpacing">
1636
+ <xsl:with-param name="text" select="."/>
1637
+ </xsl:call-template>
1638
+ </xsl:if>
1639
+ </xsl:template>
1640
+
1641
+ <xsl:template match="iec:boilerplate/iec:feedback-statement">
1642
+ <fo:block margin-top="6pt" font-size="1pt" span="all">
1643
+ </fo:block>
1644
+ <xsl:apply-templates select="*[not(@id) or @id != 'boilerplate-cenelec-attention']"/>
1645
+ </xsl:template>
1646
+
1434
1647
  <xsl:template match="iec:feedback-statement//iec:clause/iec:title" priority="2">
1435
1648
  <fo:block font-weight="bold" keep-with-next="always"><xsl:apply-templates/></fo:block>
1436
1649
  </xsl:template>
@@ -1441,9 +1654,9 @@
1441
1654
 
1442
1655
  <xsl:template match="iec:feedback-statement/iec:clause[not(iec:clause)]" priority="2">
1443
1656
  <fo:block span="all" text-align="justify">
1444
- <xsl:if test="not(preceding-sibling::iec:clause)">
1657
+ <!-- <xsl:if test="not(preceding-sibling::iec:clause)">
1445
1658
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
1446
- </xsl:if>
1659
+ </xsl:if> -->
1447
1660
  <xsl:apply-templates/>
1448
1661
  </fo:block>
1449
1662
  </xsl:template>
@@ -1550,6 +1763,23 @@
1550
1763
  </fo:block>
1551
1764
  </xsl:template>
1552
1765
 
1766
+ <xsl:template match="iec:license-statement//iec:title" mode="cover-page-internal">
1767
+ <fo:block text-align="center" font-weight="bold">
1768
+ <xsl:apply-templates/>
1769
+ </fo:block>
1770
+ </xsl:template>
1771
+ <xsl:template match="iec:license-statement//iec:p" mode="cover-page-internal">
1772
+ <fo:block margin-bottom="6pt">
1773
+ <xsl:apply-templates mode="cover-page-internal"/>
1774
+ </fo:block>
1775
+ </xsl:template>
1776
+ <xsl:template match="iec:license-statement//iec:p//text()" mode="cover-page-internal">
1777
+ <xsl:call-template name="addLetterSpacing">
1778
+ <xsl:with-param name="text"><xsl:value-of select="."/></xsl:with-param>
1779
+ </xsl:call-template>
1780
+ </xsl:template>
1781
+
1782
+
1553
1783
  <!-- <fo:block margin-bottom="12pt">© ISO 2019, Published in Switzerland.</fo:block>
1554
1784
  <fo:block font-size="10pt" margin-bottom="12pt">All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester.</fo:block>
1555
1785
  <fo:block font-size="10pt" text-indent="7.1mm">
@@ -1585,6 +1815,15 @@
1585
1815
  <xsl:apply-templates/>
1586
1816
  </fo:block>
1587
1817
  </xsl:template>
1818
+
1819
+ <!-- copyright text in footer internal footer -->
1820
+ <xsl:template match="iec:copyright-statement//iec:p[not(@id)]//text()">
1821
+ <xsl:if test="normalize-space() ! = ''">
1822
+ <xsl:call-template name="addLetterSpacing">
1823
+ <xsl:with-param name="text" select="normalize-space(.)"/>
1824
+ </xsl:call-template>
1825
+ </xsl:if>
1826
+ </xsl:template>
1588
1827
 
1589
1828
 
1590
1829
  <xsl:template match="iec:iec-standard/iec:preface/iec:foreword" priority="3">
@@ -1813,9 +2052,9 @@
1813
2052
  <fo:inline id="{$lang}_footnote_{@reference}" keep-with-next.within-line="always" baseline-shift="15%" padding-right="3mm"> <!-- padding-right="3mm" font-size="60%" alignment-baseline="hanging" -->
1814
2053
  <xsl:value-of select="$number + count(//iec:bibitem/iec:note)"/><!-- <xsl:text>)</xsl:text> -->
1815
2054
  </fo:inline>
1816
- <xsl:for-each select="iec:p">
1817
- <xsl:apply-templates/>
1818
- </xsl:for-each>
2055
+ <!-- <xsl:for-each select="iec:p"> -->
2056
+ <xsl:apply-templates/>
2057
+ <!-- </xsl:for-each> -->
1819
2058
  </fo:block>
1820
2059
  </fo:footnote-body>
1821
2060
  </fo:footnote>
@@ -1911,10 +2150,10 @@
1911
2150
  <xsl:otherwise> <!-- for ordered lists -->
1912
2151
  <xsl:choose>
1913
2152
  <xsl:when test="../@type = 'arabic'">
1914
- <xsl:number format="a)"/>
2153
+ <xsl:number format="a)" lang="en"/>
1915
2154
  </xsl:when>
1916
2155
  <xsl:when test="../@type = 'alphabet'">
1917
- <xsl:number format="a)"/>
2156
+ <xsl:number format="a)" lang="en"/>
1918
2157
  </xsl:when>
1919
2158
  <xsl:otherwise>
1920
2159
  <xsl:number format="1)"/>
@@ -2600,10 +2839,12 @@
2600
2839
 
2601
2840
  </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
2602
2841
 
2842
+
2603
2843
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
2604
2844
 
2605
2845
 
2606
2846
 
2847
+
2607
2848
  <xsl:attribute name="margin-top">5pt</xsl:attribute>
2608
2849
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2609
2850
  <xsl:attribute name="margin-left">12mm</xsl:attribute>
@@ -2754,185 +2995,237 @@
2754
2995
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2755
2996
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
2756
2997
  <xsl:call-template name="add-zero-spaces-java"/>
2757
- </xsl:template><xsl:template match="*[local-name()='table']">
2998
+ </xsl:template><xsl:template match="*[local-name()='table']" name="table">
2758
2999
 
2759
- <xsl:variable name="simple-table">
2760
- <xsl:call-template name="getSimpleTable"/>
2761
- </xsl:variable>
3000
+ <xsl:variable name="table">
2762
3001
 
2763
-
2764
-
2765
-
2766
-
2767
- <!-- <xsl:if test="$namespace = 'bipm'">
2768
- <fo:block>&#xA0;</fo:block>
2769
- </xsl:if> -->
2770
-
2771
- <!-- $namespace = 'iso' or -->
2772
-
2773
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2774
-
2775
-
2776
-
2777
- <xsl:call-template name="fn_name_display"/>
3002
+ <xsl:variable name="simple-table">
3003
+ <xsl:call-template name="getSimpleTable"/>
3004
+ </xsl:variable>
2778
3005
 
2779
3006
 
2780
-
2781
- <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2782
-
2783
- <!-- <xsl:variable name="cols-count">
2784
- <xsl:choose>
2785
- <xsl:when test="*[local-name()='thead']">
2786
- <xsl:call-template name="calculate-columns-numbers">
2787
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2788
- </xsl:call-template>
2789
- </xsl:when>
2790
- <xsl:otherwise>
2791
- <xsl:call-template name="calculate-columns-numbers">
2792
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2793
- </xsl:call-template>
2794
- </xsl:otherwise>
2795
- </xsl:choose>
2796
- </xsl:variable> -->
2797
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2798
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2799
-
2800
-
2801
-
2802
- <xsl:variable name="colwidths">
2803
- <xsl:call-template name="calculate-column-widths">
2804
- <xsl:with-param name="cols-count" select="$cols-count"/>
2805
- <xsl:with-param name="table" select="$simple-table"/>
2806
- </xsl:call-template>
2807
- </xsl:variable>
2808
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2809
-
2810
- <!-- <xsl:variable name="colwidths2">
2811
- <xsl:call-template name="calculate-column-widths">
2812
- <xsl:with-param name="cols-count" select="$cols-count"/>
2813
- </xsl:call-template>
2814
- </xsl:variable> -->
2815
-
2816
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2817
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
2818
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2819
-
2820
- <xsl:variable name="margin-left">
2821
- <xsl:choose>
2822
- <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2823
- <xsl:otherwise>0</xsl:otherwise>
2824
- </xsl:choose>
2825
- </xsl:variable>
2826
-
2827
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2828
3007
 
2829
3008
 
2830
3009
 
2831
- <xsl:attribute name="font-size">8pt</xsl:attribute>
2832
- <xsl:attribute name="space-after">12pt</xsl:attribute>
2833
- <xsl:if test="ancestor::*[local-name() = 'preface']">
2834
- <xsl:attribute name="space-after">16pt</xsl:attribute>
2835
- </xsl:if>
2836
-
2837
-
2838
-
3010
+ <!-- <xsl:if test="$namespace = 'bipm'">
3011
+ <fo:block>&#xA0;</fo:block>
3012
+ </xsl:if> -->
2839
3013
 
3014
+ <!-- $namespace = 'iso' or -->
2840
3015
 
2841
-
3016
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2842
3017
 
3018
+
2843
3019
 
3020
+ <xsl:call-template name="fn_name_display"/>
2844
3021
 
3022
+
2845
3023
 
3024
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2846
3025
 
3026
+ <!-- <xsl:variable name="cols-count">
3027
+ <xsl:choose>
3028
+ <xsl:when test="*[local-name()='thead']">
3029
+ <xsl:call-template name="calculate-columns-numbers">
3030
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
3031
+ </xsl:call-template>
3032
+ </xsl:when>
3033
+ <xsl:otherwise>
3034
+ <xsl:call-template name="calculate-columns-numbers">
3035
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
3036
+ </xsl:call-template>
3037
+ </xsl:otherwise>
3038
+ </xsl:choose>
3039
+ </xsl:variable> -->
3040
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
3041
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
3042
+
3043
+
3044
+
3045
+ <xsl:variable name="colwidths">
3046
+ <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
3047
+ <xsl:call-template name="calculate-column-widths">
3048
+ <xsl:with-param name="cols-count" select="$cols-count"/>
3049
+ <xsl:with-param name="table" select="$simple-table"/>
3050
+ </xsl:call-template>
3051
+ </xsl:if>
3052
+ </xsl:variable>
3053
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
3054
+
3055
+ <!-- <xsl:variable name="colwidths2">
3056
+ <xsl:call-template name="calculate-column-widths">
3057
+ <xsl:with-param name="cols-count" select="$cols-count"/>
3058
+ </xsl:call-template>
3059
+ </xsl:variable> -->
2847
3060
 
3061
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
3062
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
3063
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2848
3064
 
2849
- <xsl:variable name="table_attributes">
2850
- <attribute name="table-layout">fixed</attribute>
2851
- <attribute name="width">100%</attribute>
2852
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2853
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
3065
+ <xsl:variable name="margin-left">
3066
+ <xsl:choose>
3067
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
3068
+ <xsl:otherwise>0</xsl:otherwise>
3069
+ </xsl:choose>
3070
+ </xsl:variable>
3071
+
3072
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2854
3073
 
2855
3074
 
2856
- <attribute name="border">0.5pt solid black</attribute>
2857
3075
 
3076
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
3077
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
3078
+ <xsl:if test="ancestor::*[local-name() = 'preface']">
3079
+ <xsl:attribute name="space-after">16pt</xsl:attribute>
3080
+ </xsl:if>
3081
+
3082
+
3083
+
2858
3084
 
2859
3085
 
2860
-
2861
-
2862
-
3086
+
2863
3087
 
2864
-
2865
3088
 
2866
- </xsl:variable>
2867
-
2868
-
2869
- <fo:table id="{@id}" table-omit-footer-at-break="true">
2870
3089
 
2871
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2872
- <xsl:attribute name="{@name}">
2873
- <xsl:value-of select="."/>
2874
- </xsl:attribute>
2875
- </xsl:for-each>
2876
3090
 
2877
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2878
- <xsl:if test="$isNoteOrFnExist = 'true'">
2879
- <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2880
- </xsl:if>
2881
3091
 
2882
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
3092
+
3093
+ <xsl:variable name="table_width">
3094
+ <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
3095
+ 100%
3096
+
3097
+
3098
+ </xsl:variable>
3099
+
3100
+ <xsl:variable name="table_attributes">
3101
+ <attribute name="table-layout">fixed</attribute>
3102
+ <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
3103
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
3104
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
3105
+
3106
+
3107
+ <attribute name="border">0.5pt solid black</attribute>
3108
+
3109
+
3110
+
3111
+
3112
+
3113
+
3114
+
3115
+
3116
+
3117
+ </xsl:variable>
3118
+
3119
+
3120
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
3121
+
3122
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3123
+ <xsl:attribute name="{@name}">
3124
+ <xsl:value-of select="."/>
3125
+ </xsl:attribute>
3126
+ </xsl:for-each>
3127
+
3128
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
3129
+ <xsl:if test="$isNoteOrFnExist = 'true'">
3130
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
3131
+ </xsl:if>
3132
+
2883
3133
  <xsl:choose>
2884
- <xsl:when test=". = 1 or . = 0">
2885
- <fo:table-column column-width="proportional-column-width(2)"/>
3134
+ <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
3135
+ <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
3136
+ <fo:table-column column-width="{@width}"/>
3137
+ </xsl:for-each>
2886
3138
  </xsl:when>
2887
3139
  <xsl:otherwise>
2888
- <fo:table-column column-width="proportional-column-width({.})"/>
3140
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3141
+ <xsl:choose>
3142
+ <xsl:when test=". = 1 or . = 0">
3143
+ <fo:table-column column-width="proportional-column-width(2)"/>
3144
+ </xsl:when>
3145
+ <xsl:otherwise>
3146
+ <fo:table-column column-width="proportional-column-width({.})"/>
3147
+ </xsl:otherwise>
3148
+ </xsl:choose>
3149
+ </xsl:for-each>
2889
3150
  </xsl:otherwise>
2890
3151
  </xsl:choose>
2891
- </xsl:for-each>
2892
-
2893
- <xsl:choose>
2894
- <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
2895
- <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2896
- </xsl:when>
2897
- <xsl:otherwise>
2898
- <xsl:apply-templates/>
2899
- </xsl:otherwise>
2900
- </xsl:choose>
2901
-
2902
- </fo:table>
2903
-
2904
- <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2905
- <xsl:call-template name="insertTableFooterInSeparateTable">
2906
- <xsl:with-param name="table_attributes" select="$table_attributes"/>
2907
- <xsl:with-param name="colwidths" select="$colwidths"/>
2908
- </xsl:call-template>
2909
- </xsl:for-each>
2910
-
2911
- <!-- insert footer as table -->
2912
- <!-- <fo:table>
2913
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2914
- <xsl:attribute name="{@name}">
2915
- <xsl:value-of select="."/>
2916
- </xsl:attribute>
2917
- </xsl:for-each>
2918
-
2919
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
3152
+
2920
3153
  <xsl:choose>
2921
- <xsl:when test=". = 1 or . = 0">
2922
- <fo:table-column column-width="proportional-column-width(2)"/>
3154
+ <xsl:when test="not(*[local-name()='tbody']) and *[local-name()='thead']">
3155
+ <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
2923
3156
  </xsl:when>
2924
3157
  <xsl:otherwise>
2925
- <fo:table-column column-width="proportional-column-width({.})"/>
3158
+ <xsl:apply-templates/>
2926
3159
  </xsl:otherwise>
2927
3160
  </xsl:choose>
3161
+
3162
+ </fo:table>
3163
+
3164
+ <xsl:variable name="colgroup" select="*[local-name()='colgroup']"/>
3165
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
3166
+ <xsl:call-template name="insertTableFooterInSeparateTable">
3167
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
3168
+ <xsl:with-param name="colwidths" select="$colwidths"/>
3169
+ <xsl:with-param name="colgroup" select="$colgroup"/>
3170
+ </xsl:call-template>
2928
3171
  </xsl:for-each>
2929
- </fo:table>-->
2930
-
2931
-
2932
-
2933
-
2934
-
2935
- </fo:block-container>
3172
+
3173
+ <!-- insert footer as table -->
3174
+ <!-- <fo:table>
3175
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
3176
+ <xsl:attribute name="{@name}">
3177
+ <xsl:value-of select="."/>
3178
+ </xsl:attribute>
3179
+ </xsl:for-each>
3180
+
3181
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3182
+ <xsl:choose>
3183
+ <xsl:when test=". = 1 or . = 0">
3184
+ <fo:table-column column-width="proportional-column-width(2)"/>
3185
+ </xsl:when>
3186
+ <xsl:otherwise>
3187
+ <fo:table-column column-width="proportional-column-width({.})"/>
3188
+ </xsl:otherwise>
3189
+ </xsl:choose>
3190
+ </xsl:for-each>
3191
+ </fo:table>-->
3192
+
3193
+
3194
+
3195
+
3196
+
3197
+ </fo:block-container>
3198
+ </xsl:variable>
3199
+
3200
+
3201
+
3202
+ <xsl:choose>
3203
+ <xsl:when test="@width">
3204
+
3205
+ <!-- centered table when table name is centered (see table-name-style) -->
3206
+
3207
+ <fo:table table-layout="fixed" width="100%">
3208
+ <fo:table-column column-width="proportional-column-width(1)"/>
3209
+ <fo:table-column column-width="{@width}"/>
3210
+ <fo:table-column column-width="proportional-column-width(1)"/>
3211
+ <fo:table-body>
3212
+ <fo:table-row>
3213
+ <fo:table-cell column-number="2">
3214
+ <fo:block><xsl:copy-of select="$table"/></fo:block>
3215
+ </fo:table-cell>
3216
+ </fo:table-row>
3217
+ </fo:table-body>
3218
+ </fo:table>
3219
+
3220
+
3221
+
3222
+
3223
+ </xsl:when>
3224
+ <xsl:otherwise>
3225
+ <xsl:copy-of select="$table"/>
3226
+ </xsl:otherwise>
3227
+ </xsl:choose>
3228
+
2936
3229
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
2937
3230
  <xsl:if test="normalize-space() != ''">
2938
3231
  <fo:block xsl:use-attribute-sets="table-name-style">
@@ -3170,12 +3463,22 @@
3170
3463
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
3171
3464
  <xsl:param name="table_attributes"/>
3172
3465
  <xsl:param name="colwidths"/>
3466
+ <xsl:param name="colgroup"/>
3173
3467
 
3174
3468
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3175
3469
 
3176
3470
  <xsl:if test="$isNoteOrFnExist = 'true'">
3177
3471
 
3178
- <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
3472
+ <xsl:variable name="cols-count">
3473
+ <xsl:choose>
3474
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
3475
+ <xsl:value-of select="count(xalan:nodeset($colgroup)//*[local-name()='col'])"/>
3476
+ </xsl:when>
3477
+ <xsl:otherwise>
3478
+ <xsl:value-of select="count(xalan:nodeset($colwidths)//column)"/>
3479
+ </xsl:otherwise>
3480
+ </xsl:choose>
3481
+ </xsl:variable>
3179
3482
 
3180
3483
  <fo:table keep-with-previous="always">
3181
3484
  <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
@@ -3193,16 +3496,25 @@
3193
3496
  </xsl:choose>
3194
3497
  </xsl:for-each>
3195
3498
 
3196
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
3197
- <xsl:choose>
3198
- <xsl:when test=". = 1 or . = 0">
3199
- <fo:table-column column-width="proportional-column-width(2)"/>
3200
- </xsl:when>
3201
- <xsl:otherwise>
3202
- <fo:table-column column-width="proportional-column-width({.})"/>
3203
- </xsl:otherwise>
3204
- </xsl:choose>
3205
- </xsl:for-each>
3499
+ <xsl:choose>
3500
+ <xsl:when test="xalan:nodeset($colgroup)//*[local-name()='col']">
3501
+ <xsl:for-each select="xalan:nodeset($colgroup)//*[local-name()='col']">
3502
+ <fo:table-column column-width="{@width}"/>
3503
+ </xsl:for-each>
3504
+ </xsl:when>
3505
+ <xsl:otherwise>
3506
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3507
+ <xsl:choose>
3508
+ <xsl:when test=". = 1 or . = 0">
3509
+ <fo:table-column column-width="proportional-column-width(2)"/>
3510
+ </xsl:when>
3511
+ <xsl:otherwise>
3512
+ <fo:table-column column-width="proportional-column-width({.})"/>
3513
+ </xsl:otherwise>
3514
+ </xsl:choose>
3515
+ </xsl:for-each>
3516
+ </xsl:otherwise>
3517
+ </xsl:choose>
3206
3518
 
3207
3519
  <fo:table-body>
3208
3520
  <fo:table-row>
@@ -3665,7 +3977,9 @@
3665
3977
  </xsl:template><xsl:template match="*[local-name()='dl']">
3666
3978
  <fo:block-container>
3667
3979
 
3668
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
3980
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
3981
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3982
+ </xsl:if>
3669
3983
 
3670
3984
 
3671
3985
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -3680,6 +3994,7 @@
3680
3994
  <fo:block-container>
3681
3995
 
3682
3996
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
3997
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
3683
3998
 
3684
3999
 
3685
4000
  <xsl:variable name="parent" select="local-name(..)"/>
@@ -3812,7 +4127,7 @@
3812
4127
  <xsl:with-param name="table" select="$html-table"/>
3813
4128
  </xsl:call-template>
3814
4129
  </xsl:variable>
3815
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
4130
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
3816
4131
  <xsl:variable name="maxlength_dt">
3817
4132
  <xsl:call-template name="getMaxLength_dt"/>
3818
4133
  </xsl:variable>
@@ -3841,13 +4156,22 @@
3841
4156
  </xsl:when>
3842
4157
  <xsl:otherwise>
3843
4158
  <xsl:choose>
4159
+ <!-- to set width check most wide chars like `W` -->
3844
4160
  <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 2"> <!-- if dt contains short text like t90, a, etc -->
3845
- <fo:table-column column-width="5%"/>
3846
- <fo:table-column column-width="95%"/>
4161
+ <fo:table-column column-width="7%"/>
4162
+ <fo:table-column column-width="93%"/>
4163
+ </xsl:when>
4164
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like ABC, etc -->
4165
+ <fo:table-column column-width="15%"/>
4166
+ <fo:table-column column-width="85%"/>
4167
+ </xsl:when>
4168
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 7"> <!-- if dt contains short text like ABCDEF, etc -->
4169
+ <fo:table-column column-width="20%"/>
4170
+ <fo:table-column column-width="80%"/>
3847
4171
  </xsl:when>
3848
- <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 5"> <!-- if dt contains short text like t90, a, etc -->
3849
- <fo:table-column column-width="10%"/>
3850
- <fo:table-column column-width="90%"/>
4172
+ <xsl:when test="normalize-space($maxlength_dt) != '' and number($maxlength_dt) &lt;= 10"> <!-- if dt contains short text like ABCDEFEF, etc -->
4173
+ <fo:table-column column-width="25%"/>
4174
+ <fo:table-column column-width="75%"/>
3851
4175
  </xsl:when>
3852
4176
  <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
3853
4177
  <fo:table-column column-width="60%"/>
@@ -3879,12 +4203,32 @@
3879
4203
  </xsl:otherwise>
3880
4204
  </xsl:choose>
3881
4205
  </xsl:template><xsl:template name="getMaxLength_dt">
3882
- <xsl:for-each select="*[local-name()='dt']">
3883
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
3884
- <xsl:if test="position() = 1">
3885
- <xsl:value-of select="string-length(normalize-space(.))"/>
3886
- </xsl:if>
3887
- </xsl:for-each>
4206
+ <xsl:variable name="lengths">
4207
+ <xsl:for-each select="*[local-name()='dt']">
4208
+ <xsl:variable name="maintext_length" select="string-length(normalize-space(.))"/>
4209
+ <xsl:variable name="attributes">
4210
+ <xsl:for-each select=".//@open"><xsl:value-of select="."/></xsl:for-each>
4211
+ <xsl:for-each select=".//@close"><xsl:value-of select="."/></xsl:for-each>
4212
+ </xsl:variable>
4213
+ <length><xsl:value-of select="string-length(normalize-space(.)) + string-length($attributes)"/></length>
4214
+ </xsl:for-each>
4215
+ </xsl:variable>
4216
+ <xsl:variable name="maxLength">
4217
+ <!-- <xsl:for-each select="*[local-name()='dt']">
4218
+ <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
4219
+ <xsl:if test="position() = 1">
4220
+ <xsl:value-of select="string-length(normalize-space(.))"/>
4221
+ </xsl:if>
4222
+ </xsl:for-each> -->
4223
+ <xsl:for-each select="xalan:nodeset($lengths)/length">
4224
+ <xsl:sort select="." data-type="number" order="descending"/>
4225
+ <xsl:if test="position() = 1">
4226
+ <xsl:value-of select="."/>
4227
+ </xsl:if>
4228
+ </xsl:for-each>
4229
+ </xsl:variable>
4230
+ <!-- <xsl:message>DEBUG:<xsl:value-of select="$maxLength"/></xsl:message> -->
4231
+ <xsl:value-of select="$maxLength"/>
3888
4232
  </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']" priority="2">
3889
4233
  <xsl:param name="key_iso"/>
3890
4234
 
@@ -4027,6 +4371,7 @@
4027
4371
 
4028
4372
 
4029
4373
 
4374
+
4030
4375
 
4031
4376
  </xsl:variable>
4032
4377
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
@@ -4040,6 +4385,10 @@
4040
4385
  </xsl:if>
4041
4386
  <xsl:apply-templates/>
4042
4387
  </fo:inline>
4388
+ </xsl:template><xsl:template match="*[local-name()='underline']">
4389
+ <fo:inline text-decoration="underline">
4390
+ <xsl:apply-templates/>
4391
+ </fo:inline>
4043
4392
  </xsl:template><xsl:template match="*[local-name()='del']">
4044
4393
  <fo:inline font-size="10pt" color="red" text-decoration="line-through">
4045
4394
  <xsl:apply-templates/>
@@ -4133,6 +4482,10 @@
4133
4482
  <xsl:param name="text" select="."/>
4134
4483
  <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
4135
4484
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
4485
+ </xsl:template><xsl:template name="add-zero-spaces-link-java">
4486
+ <xsl:param name="text" select="."/>
4487
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
4488
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |,)','$1​')"/>
4136
4489
  </xsl:template><xsl:template name="add-zero-spaces">
4137
4490
  <xsl:param name="text" select="."/>
4138
4491
  <xsl:variable name="zero-space-after-chars">-</xsl:variable>
@@ -4393,6 +4746,11 @@
4393
4746
  <!-- replace start and end spaces to non-break space -->
4394
4747
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
4395
4748
  </xsl:copy>
4749
+ </xsl:template><xsl:template match="mathml:mi[. = ',' and not(following-sibling::*[1][local-name() = 'mtext' and text() = ' '])]" mode="mathml">
4750
+ <xsl:copy>
4751
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
4752
+ </xsl:copy>
4753
+ <mathml:mspace width="0.5ex"/>
4396
4754
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
4397
4755
  <xsl:variable name="target">
4398
4756
  <xsl:choose>
@@ -4418,7 +4776,10 @@
4418
4776
  <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
4419
4777
  <xsl:choose>
4420
4778
  <xsl:when test="normalize-space(.) = ''">
4421
- <xsl:value-of select="$target"/>
4779
+ <!-- <xsl:value-of select="$target"/> -->
4780
+ <xsl:call-template name="add-zero-spaces-link-java">
4781
+ <xsl:with-param name="text" select="$target"/>
4782
+ </xsl:call-template>
4422
4783
  </xsl:when>
4423
4784
  <xsl:otherwise>
4424
4785
  <xsl:apply-templates/>
@@ -4622,7 +4983,7 @@
4622
4983
  </xsl:if> -->
4623
4984
  </fo:inline>
4624
4985
  </xsl:if>
4625
- </xsl:template><xsl:template match="*[local-name() = 'figure']">
4986
+ </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
4626
4987
  <fo:block-container id="{@id}">
4627
4988
 
4628
4989
  <fo:block>
@@ -4691,6 +5052,8 @@
4691
5052
  <xsl:variable name="bookmark-title_">
4692
5053
  <xsl:call-template name="getLangVersion">
4693
5054
  <xsl:with-param name="lang" select="@lang"/>
5055
+ <xsl:with-param name="doctype" select="@doctype"/>
5056
+ <xsl:with-param name="title" select="@title-part"/>
4694
5057
  </xsl:call-template>
4695
5058
  </xsl:variable>
4696
5059
  <xsl:choose>
@@ -4708,13 +5071,34 @@
4708
5071
  </xsl:choose>
4709
5072
  </fo:bookmark-title>
4710
5073
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
5074
+
5075
+ <xsl:call-template name="insertFigureBookmarks">
5076
+ <xsl:with-param name="contents" select="contents"/>
5077
+ </xsl:call-template>
5078
+
5079
+ <xsl:call-template name="insertTableBookmarks">
5080
+ <xsl:with-param name="contents" select="contents"/>
5081
+ <xsl:with-param name="lang" select="@lang"/>
5082
+ </xsl:call-template>
5083
+
4711
5084
  </fo:bookmark>
4712
5085
 
4713
5086
  </xsl:for-each>
4714
5087
  </xsl:when>
4715
5088
  <xsl:otherwise>
4716
5089
  <xsl:for-each select="xalan:nodeset($contents)/doc">
5090
+
4717
5091
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
5092
+
5093
+ <xsl:call-template name="insertFigureBookmarks">
5094
+ <xsl:with-param name="contents" select="contents"/>
5095
+ </xsl:call-template>
5096
+
5097
+ <xsl:call-template name="insertTableBookmarks">
5098
+ <xsl:with-param name="contents" select="contents"/>
5099
+ <xsl:with-param name="lang" select="@lang"/>
5100
+ </xsl:call-template>
5101
+
4718
5102
  </xsl:for-each>
4719
5103
  </xsl:otherwise>
4720
5104
  </xsl:choose>
@@ -4726,42 +5110,51 @@
4726
5110
 
4727
5111
 
4728
5112
 
4729
- <xsl:if test="//*[local-name() = 'figure'][@id and *[local-name() = 'name']]">
4730
- <fo:bookmark internal-destination="{//*[local-name() = 'figure'][@id and *[local-name() = 'name']][1]/@id}" starting-state="hide">
4731
- <fo:bookmark-title>Figures</fo:bookmark-title>
4732
- <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name']]">
4733
- <fo:bookmark internal-destination="{@id}">
4734
- <fo:bookmark-title><xsl:apply-templates select="*[local-name() = 'name']/text()" mode="bookmarks"/></fo:bookmark-title>
4735
- </fo:bookmark>
4736
- </xsl:for-each>
4737
- </fo:bookmark>
4738
- </xsl:if>
4739
-
4740
5113
 
4741
-
4742
- <xsl:if test="//*[local-name() = 'table'][@id and *[local-name() = 'name']]">
4743
- <fo:bookmark internal-destination="{//*[local-name() = 'table'][@id and *[local-name() = 'name']][1]/@id}" starting-state="hide">
4744
- <fo:bookmark-title>
4745
- <xsl:choose>
4746
- <xsl:when test="@lang = 'fr'">Tableaux</xsl:when>
4747
- <xsl:otherwise>Tables</xsl:otherwise>
4748
- </xsl:choose>
4749
- </fo:bookmark-title>
4750
- <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name']]">
4751
- <fo:bookmark internal-destination="{@id}">
4752
- <fo:bookmark-title><xsl:apply-templates select="*[local-name() = 'name']//text()" mode="bookmarks"/></fo:bookmark-title>
4753
- </fo:bookmark>
4754
- </xsl:for-each>
4755
- </fo:bookmark>
4756
- </xsl:if>
4757
5114
 
4758
5115
 
4759
5116
 
4760
5117
 
4761
5118
  </fo:bookmark-tree>
4762
5119
  </xsl:if>
5120
+ </xsl:template><xsl:template name="insertFigureBookmarks">
5121
+ <xsl:param name="contents"/>
5122
+ <xsl:if test="xalan:nodeset($contents)/figure">
5123
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
5124
+ <fo:bookmark-title>Figures</fo:bookmark-title>
5125
+ <xsl:for-each select="xalan:nodeset($contents)/figure">
5126
+ <fo:bookmark internal-destination="{@id}">
5127
+ <fo:bookmark-title>
5128
+ <xsl:value-of select="normalize-space(title)"/>
5129
+ </fo:bookmark-title>
5130
+ </fo:bookmark>
5131
+ </xsl:for-each>
5132
+ </fo:bookmark>
5133
+ </xsl:if>
5134
+ </xsl:template><xsl:template name="insertTableBookmarks">
5135
+ <xsl:param name="contents"/>
5136
+ <xsl:param name="lang"/>
5137
+ <xsl:if test="xalan:nodeset($contents)/table">
5138
+ <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
5139
+ <fo:bookmark-title>
5140
+ <xsl:choose>
5141
+ <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
5142
+ <xsl:otherwise>Tables</xsl:otherwise>
5143
+ </xsl:choose>
5144
+ </fo:bookmark-title>
5145
+ <xsl:for-each select="xalan:nodeset($contents)/table">
5146
+ <fo:bookmark internal-destination="{@id}">
5147
+ <fo:bookmark-title>
5148
+ <xsl:value-of select="normalize-space(title)"/>
5149
+ </fo:bookmark-title>
5150
+ </fo:bookmark>
5151
+ </xsl:for-each>
5152
+ </fo:bookmark>
5153
+ </xsl:if>
4763
5154
  </xsl:template><xsl:template name="getLangVersion">
4764
5155
  <xsl:param name="lang"/>
5156
+ <xsl:param name="doctype" select="''"/>
5157
+ <xsl:param name="title" select="''"/>
4765
5158
  <xsl:choose>
4766
5159
  <xsl:when test="$lang = 'en'">
4767
5160
  English
@@ -4797,6 +5190,12 @@
4797
5190
  <!-- <xsl:text> </xsl:text> -->
4798
5191
  </xsl:template><xsl:template name="getSection">
4799
5192
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
5193
+ <!--
5194
+ <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
5195
+ <xsl:value-of select="."/>
5196
+ </xsl:for-each>
5197
+ -->
5198
+
4800
5199
  </xsl:template><xsl:template name="getName">
4801
5200
  <xsl:choose>
4802
5201
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -4849,6 +5248,12 @@
4849
5248
  <xsl:copy>
4850
5249
  <xsl:apply-templates mode="contents_item"/>
4851
5250
  </xsl:copy>
5251
+ </xsl:template><xsl:template match="*[local-name() = 'em']" mode="contents_item">
5252
+ <xsl:copy>
5253
+ <xsl:apply-templates mode="contents_item"/>
5254
+ </xsl:copy>
5255
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents_item">
5256
+ <xsl:copy-of select="."/>
4852
5257
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
4853
5258
  <xsl:text> </xsl:text>
4854
5259
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
@@ -4874,6 +5279,7 @@
4874
5279
 
4875
5280
 
4876
5281
 
5282
+
4877
5283
 
4878
5284
 
4879
5285
 
@@ -5254,10 +5660,13 @@
5254
5660
  </xsl:if>
5255
5661
  </xsl:if>
5256
5662
 
5663
+
5257
5664
  <fo:block-container margin-left="0mm">
5258
5665
 
5259
5666
  <fo:block xsl:use-attribute-sets="quote-style">
5260
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
5667
+ <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
5668
+
5669
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5261
5670
  </fo:block>
5262
5671
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
5263
5672
  <fo:block xsl:use-attribute-sets="quote-source-style">
@@ -5410,6 +5819,7 @@
5410
5819
 
5411
5820
 
5412
5821
 
5822
+
5413
5823
 
5414
5824
 
5415
5825
 
@@ -5421,7 +5831,7 @@
5421
5831
 
5422
5832
 
5423
5833
 
5424
- </xsl:template><xsl:template match="/*/*[local-name() = 'preface']/*" priority="2">
5834
+ </xsl:template><xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
5425
5835
  <fo:block break-after="page"/>
5426
5836
  <fo:block>
5427
5837
  <xsl:call-template name="setId"/>
@@ -5429,7 +5839,8 @@
5429
5839
  </fo:block>
5430
5840
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
5431
5841
  <fo:block>
5432
- <xsl:call-template name="setId"/>
5842
+ <xsl:call-template name="setId"/>
5843
+
5433
5844
 
5434
5845
  <xsl:apply-templates/>
5435
5846
  </fo:block>
@@ -5494,7 +5905,8 @@
5494
5905
  <fo:table-column column-width="107mm"/>
5495
5906
  <fo:table-column column-width="15mm"/>
5496
5907
  <fo:table-body>
5497
- <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
5908
+ <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
5909
+
5498
5910
  <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
5499
5911
  <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
5500
5912
  <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
@@ -5512,6 +5924,10 @@
5512
5924
  <fo:block><xsl:apply-templates/></fo:block>
5513
5925
  </fo:table-cell>
5514
5926
  </xsl:template><xsl:template name="processBibitem">
5927
+
5928
+
5929
+ <!-- end BIPM bibitem processing-->
5930
+
5515
5931
 
5516
5932
 
5517
5933
 
@@ -5570,6 +5986,8 @@
5570
5986
  <xsl:value-of select="translate(.,'. ','')"/>
5571
5987
  </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
5572
5988
  <xsl:value-of select="substring(.,1,1)"/>
5989
+ </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
5990
+ <fo:inline><xsl:apply-templates/></fo:inline>
5573
5991
  </xsl:template><xsl:template name="convertDate">
5574
5992
  <xsl:param name="date"/>
5575
5993
  <xsl:param name="format" select="'short'"/>
@@ -5594,6 +6012,57 @@
5594
6012
  </xsl:variable>
5595
6013
  <xsl:variable name="result">
5596
6014
  <xsl:choose>
6015
+ <xsl:when test="$format = 'ddMMyyyy'">
6016
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
6017
+ <xsl:text> </xsl:text>
6018
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
6019
+ </xsl:when>
6020
+ <xsl:when test="$format = 'ddMM'">
6021
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
6022
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
6023
+ </xsl:when>
6024
+ <xsl:when test="$format = 'short' or $day = ''">
6025
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6026
+ </xsl:when>
6027
+ <xsl:otherwise>
6028
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
6029
+ </xsl:otherwise>
6030
+ </xsl:choose>
6031
+ </xsl:variable>
6032
+ <xsl:value-of select="$result"/>
6033
+ </xsl:template><xsl:template name="convertDateLocalized">
6034
+ <xsl:param name="date"/>
6035
+ <xsl:param name="format" select="'short'"/>
6036
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
6037
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
6038
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
6039
+ <xsl:variable name="monthStr">
6040
+ <xsl:choose>
6041
+ <xsl:when test="$month = '01'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_january</xsl:with-param></xsl:call-template></xsl:when>
6042
+ <xsl:when test="$month = '02'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_february</xsl:with-param></xsl:call-template></xsl:when>
6043
+ <xsl:when test="$month = '03'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_march</xsl:with-param></xsl:call-template></xsl:when>
6044
+ <xsl:when test="$month = '04'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_april</xsl:with-param></xsl:call-template></xsl:when>
6045
+ <xsl:when test="$month = '05'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_may</xsl:with-param></xsl:call-template></xsl:when>
6046
+ <xsl:when test="$month = '06'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_june</xsl:with-param></xsl:call-template></xsl:when>
6047
+ <xsl:when test="$month = '07'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_july</xsl:with-param></xsl:call-template></xsl:when>
6048
+ <xsl:when test="$month = '08'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_august</xsl:with-param></xsl:call-template></xsl:when>
6049
+ <xsl:when test="$month = '09'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_september</xsl:with-param></xsl:call-template></xsl:when>
6050
+ <xsl:when test="$month = '10'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_october</xsl:with-param></xsl:call-template></xsl:when>
6051
+ <xsl:when test="$month = '11'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_november</xsl:with-param></xsl:call-template></xsl:when>
6052
+ <xsl:when test="$month = '12'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_december</xsl:with-param></xsl:call-template></xsl:when>
6053
+ </xsl:choose>
6054
+ </xsl:variable>
6055
+ <xsl:variable name="result">
6056
+ <xsl:choose>
6057
+ <xsl:when test="$format = 'ddMMyyyy'">
6058
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
6059
+ <xsl:text> </xsl:text>
6060
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
6061
+ </xsl:when>
6062
+ <xsl:when test="$format = 'ddMM'">
6063
+ <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
6064
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
6065
+ </xsl:when>
5597
6066
  <xsl:when test="$format = 'short' or $day = ''">
5598
6067
  <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
5599
6068
  </xsl:when>
@@ -5609,7 +6078,7 @@
5609
6078
  <xsl:param name="charDelim" select="', '"/>
5610
6079
  <xsl:choose>
5611
6080
  <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
5612
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
6081
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5613
6082
  <xsl:sort data-type="text" order="ascending"/>
5614
6083
  <xsl:call-template name="insertKeyword">
5615
6084
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
@@ -5618,7 +6087,7 @@
5618
6087
  </xsl:for-each>
5619
6088
  </xsl:when>
5620
6089
  <xsl:otherwise>
5621
- <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
6090
+ <xsl:for-each select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
5622
6091
  <xsl:call-template name="insertKeyword">
5623
6092
  <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
5624
6093
  <xsl:with-param name="charDelim" select="$charDelim"/>
@@ -5635,6 +6104,9 @@
5635
6104
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
5636
6105
  </xsl:choose>
5637
6106
  </xsl:template><xsl:template name="addPDFUAmeta">
6107
+ <xsl:variable name="lang">
6108
+ <xsl:call-template name="getLang"/>
6109
+ </xsl:variable>
5638
6110
  <fo:declarations>
5639
6111
  <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
5640
6112
  <pdf:dictionary type="normal" key="ViewerPreferences">
@@ -5647,13 +6119,16 @@
5647
6119
  <!-- Dublin Core properties go here -->
5648
6120
  <dc:title>
5649
6121
  <xsl:variable name="title">
5650
-
5651
- <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = 'en' and @type = 'main']"/>
5652
-
5653
-
5654
-
5655
-
5656
-
6122
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
6123
+
6124
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
6125
+
6126
+
6127
+
6128
+
6129
+
6130
+
6131
+ </xsl:for-each>
5657
6132
  </xsl:variable>
5658
6133
  <xsl:choose>
5659
6134
  <xsl:when test="normalize-space($title) != ''">
@@ -5665,17 +6140,21 @@
5665
6140
  </xsl:choose>
5666
6141
  </dc:title>
5667
6142
  <dc:creator>
5668
-
5669
-
5670
-
5671
- </dc:creator>
5672
- <dc:description>
5673
- <xsl:variable name="abstract">
6143
+ <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5674
6144
 
6145
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
6146
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
6147
+ <xsl:if test="position() != last()">; </xsl:if>
6148
+ </xsl:for-each>
5675
6149
 
5676
- <xsl:copy-of select="/*/*[local-name() = 'bibliography']/*[local-name() = 'references']/*[local-name() = 'bibitem']/*[local-name() = 'abstract'][@language = 'en']//text()"/>
5677
6150
 
5678
6151
 
6152
+ </xsl:for-each>
6153
+ </dc:creator>
6154
+ <dc:description>
6155
+ <xsl:variable name="abstract">
6156
+
6157
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
5679
6158
 
5680
6159
 
5681
6160
  </xsl:variable>
@@ -5788,6 +6267,7 @@
5788
6267
 
5789
6268
 
5790
6269
 
6270
+
5791
6271
  </xsl:variable>
5792
6272
  <xsl:if test="$documentNS != $XSLNS">
5793
6273
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -5847,6 +6327,11 @@
5847
6327
  <xsl:call-template name="getLang"/>
5848
6328
  </xsl:variable>
5849
6329
 
5850
- <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
6330
+ <xsl:choose>
6331
+ <xsl:when test="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]">
6332
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
6333
+ </xsl:when>
6334
+ <xsl:otherwise><xsl:value-of select="$key"/></xsl:otherwise>
6335
+ </xsl:choose>
5851
6336
 
5852
6337
  </xsl:template></xsl:stylesheet>