metanorma-iec 2.2.4 → 2.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -117,810 +117,849 @@
117
117
 
118
118
  <xsl:template match="/">
119
119
  <xsl:call-template name="namespaceCheck"/>
120
- <!-- https://stackoverflow.com/questions/25261949/xsl-fo-letter-spacing-with-text-align -->
121
- <!-- https://xmlgraphics.apache.org/fop/knownissues.html -->
122
- <fo:root xml:lang="{$lang}">
123
- <xsl:variable name="root-style">
124
- <root-style xsl:use-attribute-sets="root-style"/>
125
- </xsl:variable>
126
- <xsl:call-template name="insertRootStyle">
127
- <xsl:with-param name="root-style" select="$root-style"/>
128
- </xsl:call-template>
129
- <fo:layout-master-set>
130
- <!-- cover pages -->
131
- <fo:simple-page-master master-name="cover" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
132
- <fo:region-body margin-top="17.5mm" margin-bottom="12.5mm" margin-left="18mm" margin-right="20.5mm"/>
133
- <fo:region-before region-name="header" extent="17.5mm"/>
134
- <fo:region-after region-name="footer" extent="12.5mm" precedence="true"/>
135
- <fo:region-start region-name="left-region" extent="18mm"/>
136
- <fo:region-end region-name="right-region" extent="20.5mm"/>
137
- </fo:simple-page-master>
138
- <fo:simple-page-master master-name="cover_2nd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
139
- <fo:region-body margin-top="17.5mm" margin-bottom="12.5mm" margin-left="25mm" margin-right="25mm" column-count="2" column-gap="5mm"/>
140
- <fo:region-before region-name="header" extent="17.5mm"/>
141
- <fo:region-after region-name="footer" extent="12.5mm" precedence="true"/>
142
- <fo:region-start region-name="left-region" extent="25mm"/>
143
- <fo:region-end region-name="right-region" extent="25mm"/>
144
- </fo:simple-page-master>
145
-
146
- <fo:simple-page-master master-name="cover-FDIS" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
147
- <fo:region-body margin-top="17.5mm" margin-bottom="29mm" margin-left="18mm" margin-right="19mm"/>
148
- <fo:region-before region-name="header" extent="17.5mm"/>
149
- <fo:region-after region-name="footer-FDIS" extent="29mm"/>
150
- <fo:region-start region-name="left-region" extent="18mm"/>
151
- <fo:region-end region-name="right-region" extent="19mm"/>
152
- </fo:simple-page-master>
153
-
154
- <!-- odd pages -->
155
- <fo:simple-page-master master-name="odd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
156
- <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
157
- <fo:region-before region-name="header-odd" extent="{$marginTop}mm"/>
158
- <fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
159
- <fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
160
- <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
161
- </fo:simple-page-master>
162
- <!-- even pages -->
163
- <fo:simple-page-master master-name="even" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
164
- <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
165
- <fo:region-before region-name="header-even" extent="{$marginTop}mm"/>
166
- <fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
167
- <fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
168
- <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
169
- </fo:simple-page-master>
170
- <fo:page-sequence-master master-name="document">
171
- <fo:repeatable-page-master-alternatives>
172
- <fo:conditional-page-master-reference odd-or-even="even" master-reference="even"/>
173
- <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd"/>
174
- </fo:repeatable-page-master-alternatives>
175
- </fo:page-sequence-master>
176
-
177
- <fo:simple-page-master master-name="blank-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
178
- <fo:region-body margin-top="107mm" margin-bottom="0mm" margin-left="18mm" margin-right="0mm"/>
179
- </fo:simple-page-master>
180
-
181
- <fo:simple-page-master master-name="last-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
182
- <fo:region-body margin-top="107mm" margin-bottom="0mm" margin-left="18mm" margin-right="0mm" background-color="rgb(236, 236, 236)"/>
183
- <fo:region-before region-name="header" extent="107mm"/>
184
- <fo:region-start region-name="left-region" extent="18mm"/>
185
- </fo:simple-page-master>
186
- </fo:layout-master-set>
187
-
188
- <fo:declarations>
189
- <xsl:call-template name="addPDFUAmeta"/>
190
- </fo:declarations>
191
-
192
- <xsl:call-template name="addBookmarks">
193
- <xsl:with-param name="contents" select="$contents"/>
194
- </xsl:call-template>
195
120
 
196
- <!-- For 'Published' documents insert two cover pages -->
197
- <xsl:if test="$stage &gt;= 60">
121
+ <xsl:variable name="xslfo">
122
+ <!-- https://stackoverflow.com/questions/25261949/xsl-fo-letter-spacing-with-text-align -->
123
+ <!-- https://xmlgraphics.apache.org/fop/knownissues.html -->
124
+ <fo:root xml:lang="{$lang}">
125
+ <xsl:variable name="root-style">
126
+ <root-style xsl:use-attribute-sets="root-style"/>
127
+ </xsl:variable>
128
+ <xsl:call-template name="insertRootStyle">
129
+ <xsl:with-param name="root-style" select="$root-style"/>
130
+ </xsl:call-template>
131
+ <fo:layout-master-set>
132
+ <!-- cover pages -->
133
+ <fo:simple-page-master master-name="cover" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
134
+ <fo:region-body margin-top="17.5mm" margin-bottom="12.5mm" margin-left="18mm" margin-right="20.5mm"/>
135
+ <fo:region-before region-name="header" extent="17.5mm"/>
136
+ <fo:region-after region-name="footer" extent="12.5mm" precedence="true"/>
137
+ <fo:region-start region-name="left-region" extent="18mm"/>
138
+ <fo:region-end region-name="right-region" extent="20.5mm"/>
139
+ </fo:simple-page-master>
140
+ <fo:simple-page-master master-name="cover_2nd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
141
+ <fo:region-body margin-top="17.5mm" margin-bottom="12.5mm" margin-left="25mm" margin-right="25mm" column-count="2" column-gap="5mm"/>
142
+ <fo:region-before region-name="header" extent="17.5mm"/>
143
+ <fo:region-after region-name="footer" extent="12.5mm" precedence="true"/>
144
+ <fo:region-start region-name="left-region" extent="25mm"/>
145
+ <fo:region-end region-name="right-region" extent="25mm"/>
146
+ </fo:simple-page-master>
147
+
148
+ <fo:simple-page-master master-name="cover-FDIS" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
149
+ <fo:region-body margin-top="17.5mm" margin-bottom="29mm" margin-left="18mm" margin-right="19mm"/>
150
+ <fo:region-before region-name="header" extent="17.5mm"/>
151
+ <fo:region-after region-name="footer-FDIS" extent="29mm"/>
152
+ <fo:region-start region-name="left-region" extent="18mm"/>
153
+ <fo:region-end region-name="right-region" extent="19mm"/>
154
+ </fo:simple-page-master>
155
+
156
+ <!-- odd pages -->
157
+ <fo:simple-page-master master-name="odd" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
158
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
159
+ <fo:region-before region-name="header-odd" extent="{$marginTop}mm"/>
160
+ <fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
161
+ <fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
162
+ <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
163
+ </fo:simple-page-master>
164
+ <fo:simple-page-master master-name="odd-landscape" page-width="{$pageHeight}mm" page-height="{$pageWidth}mm">
165
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
166
+ <fo:region-before region-name="header-odd" extent="{$marginTop}mm"/>
167
+ <fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
168
+ <fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
169
+ <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
170
+ </fo:simple-page-master>
171
+ <!-- even pages -->
172
+ <fo:simple-page-master master-name="even" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
173
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
174
+ <fo:region-before region-name="header-even" extent="{$marginTop}mm"/>
175
+ <fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
176
+ <fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
177
+ <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
178
+ </fo:simple-page-master>
179
+ <fo:simple-page-master master-name="even-landscape" page-width="{$pageHeight}mm" page-height="{$pageWidth}mm">
180
+ <fo:region-body margin-top="{$marginTop}mm" margin-bottom="{$marginBottom}mm" margin-left="{$marginLeftRight1}mm" margin-right="{$marginLeftRight2}mm"/>
181
+ <fo:region-before region-name="header-even" extent="{$marginTop}mm"/>
182
+ <fo:region-after region-name="footer" extent="{$marginBottom}mm"/>
183
+ <fo:region-start region-name="left-region" extent="{$marginLeftRight1}mm"/>
184
+ <fo:region-end region-name="right-region" extent="{$marginLeftRight2}mm"/>
185
+ </fo:simple-page-master>
186
+ <fo:page-sequence-master master-name="document">
187
+ <fo:repeatable-page-master-alternatives>
188
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even"/>
189
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd"/>
190
+ </fo:repeatable-page-master-alternatives>
191
+ </fo:page-sequence-master>
192
+ <fo:page-sequence-master master-name="document-portrait">
193
+ <fo:repeatable-page-master-alternatives>
194
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even"/>
195
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd"/>
196
+ </fo:repeatable-page-master-alternatives>
197
+ </fo:page-sequence-master>
198
+ <fo:page-sequence-master master-name="document-landscape">
199
+ <fo:repeatable-page-master-alternatives>
200
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-landscape"/>
201
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-landscape"/>
202
+ </fo:repeatable-page-master-alternatives>
203
+ </fo:page-sequence-master>
204
+
205
+ <fo:simple-page-master master-name="blank-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
206
+ <fo:region-body margin-top="107mm" margin-bottom="0mm" margin-left="18mm" margin-right="0mm"/>
207
+ </fo:simple-page-master>
208
+
209
+ <fo:simple-page-master master-name="last-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
210
+ <fo:region-body margin-top="107mm" margin-bottom="0mm" margin-left="18mm" margin-right="0mm" background-color="rgb(236, 236, 236)"/>
211
+ <fo:region-before region-name="header" extent="107mm"/>
212
+ <fo:region-start region-name="left-region" extent="18mm"/>
213
+ </fo:simple-page-master>
214
+ </fo:layout-master-set>
215
+
216
+ <fo:declarations>
217
+ <xsl:call-template name="addPDFUAmeta"/>
218
+ </fo:declarations>
219
+
220
+ <xsl:call-template name="addBookmarks">
221
+ <xsl:with-param name="contents" select="$contents"/>
222
+ </xsl:call-template>
198
223
 
199
- <!-- 1st Cover Page -->
200
- <fo:page-sequence master-reference="cover" force-page-count="no-force">
201
- <fo:static-content flow-name="left-region">
202
- <fo:block-container reference-orientation="90">
203
- <fo:block font-size="7pt" margin-left="3.5mm" margin-top="5.5mm">
204
- <xsl:value-of select="(//iec:iec-standard)[1]/iec:bibdata/iec:docidentifier[@type = 'iso-with-lang']"/>
205
- </fo:block>
206
- </fo:block-container>
207
- </fo:static-content>
208
- <fo:flow flow-name="xsl-region-body">
209
- <fo:block-container absolute-position="fixed" left="18mm" top="107mm">
210
- <fo:block>
211
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Cover-Background))}" width="192mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
212
- </fo:block>
213
- </fo:block-container>
214
- <xsl:call-template name="insertCoverPart1"/>
215
- </fo:flow>
216
- </fo:page-sequence>
217
-
218
- <!-- 2nd Cover Page -->
219
- <fo:page-sequence master-reference="cover_2nd" force-page-count="no-force" font-size="8pt">
220
- <fo:flow flow-name="xsl-region-body">
221
- <fo:block span="all">
222
- <fo:block-container border="0.5pt solid black" margin-top="7mm">
223
- <fo:block-container margin-left="2.5mm" margin-right="2.5mm" margin-top="1mm" margin-bottom="1mm">
224
- <fo:block-container margin-left="0mm" margin-right="0mm">
225
- <fo:table table-layout="fixed" width="100%">
226
- <fo:table-column column-width="20mm"/>
227
- <fo:table-column column-width="130mm"/>
228
- <fo:table-body>
229
- <fo:table-row>
230
- <fo:table-cell>
231
- <fo:block>
232
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="17.8mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
233
- </fo:block>
234
- </fo:table-cell>
235
- <fo:table-cell font-size="10pt" font-weight="bold" display-align="after">
236
- <fo:block margin-bottom="3pt">THIS PUBLICATION IS COPYRIGHT PROTECTED</fo:block>
237
- <fo:block margin-bottom="10pt">
238
- <!-- Example: Copyright © 2014 IEC, Geneva, Switzerland -->
239
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-year')]"/>
240
- </fo:block>
241
- </fo:table-cell>
242
- </fo:table-row>
243
- </fo:table-body>
244
- </fo:table>
245
- <fo:block>
246
- <fo:block margin-bottom="8pt" text-align="justify">
247
- <!-- Example: All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form
248
- or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from
249
- either IEC or IEC's member National Committee in the country of the requester. If you have any questions about IEC
250
- copyright or have an enquiry about obtaining additional rights to this publication, please contact the address below or
251
- your local IEC member National Committee for further information. -->
252
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-message')]"/>
253
- </fo:block>
254
- <!-- Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite
255
- ni utilisée sous quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie
256
- 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
257
- questions sur le copyright de l'IEC ou si vous désirez obtenir des droits supplémentaires sur cette publication, utilisez
258
- les coordonnées ci-après ou contactez le Comité national de l'IEC de votre pays de résidence. -->
259
- <fo:block margin-bottom="8pt" text-align="justify">
260
- <xsl:apply-templates select="(//iec:iec-standard)[2]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-message')]"/>
261
- </fo:block>
224
+ <!-- For 'Published' documents insert two cover pages -->
225
+ <xsl:if test="$stage &gt;= 60">
262
226
 
263
- <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())"/>
227
+ <!-- 1st Cover Page -->
228
+ <fo:page-sequence master-reference="cover" force-page-count="no-force">
229
+ <fo:static-content flow-name="left-region">
230
+ <fo:block-container reference-orientation="90">
231
+ <fo:block font-size="7pt" margin-left="3.5mm" margin-top="5.5mm">
232
+ <xsl:value-of select="(//iec:iec-standard)[1]/iec:bibdata/iec:docidentifier[@type = 'iso-with-lang']"/>
233
+ </fo:block>
234
+ </fo:block-container>
235
+ </fo:static-content>
236
+ <fo:flow flow-name="xsl-region-body">
237
+ <fo:block-container absolute-position="fixed" left="18mm" top="107mm">
238
+ <fo:block>
239
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Cover-Background))}" width="192mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
240
+ </fo:block>
241
+ </fo:block-container>
242
+ <xsl:call-template name="insertCoverPart1"/>
243
+ </fo:flow>
244
+ </fo:page-sequence>
245
+
246
+ <!-- 2nd Cover Page -->
247
+ <fo:page-sequence master-reference="cover_2nd" force-page-count="no-force" font-size="8pt">
248
+ <fo:flow flow-name="xsl-region-body">
249
+ <fo:block span="all">
250
+ <fo:block-container border="0.5pt solid black" margin-top="7mm">
251
+ <fo:block-container margin-left="2.5mm" margin-right="2.5mm" margin-top="1mm" margin-bottom="1mm">
252
+ <fo:block-container margin-left="0mm" margin-right="0mm">
264
253
  <fo:table table-layout="fixed" width="100%">
265
- <fo:table-column column-width="59mm"/>
266
- <fo:table-column column-width="90mm"/>
254
+ <fo:table-column column-width="20mm"/>
255
+ <fo:table-column column-width="130mm"/>
267
256
  <fo:table-body>
268
257
  <fo:table-row>
269
258
  <fo:table-cell>
270
259
  <fo:block>
271
- <!-- Example: IEC Central Office
272
- 3, rue de Varembé
273
- CH-1211 Geneva 20
274
- Switzerland -->
275
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-name')]" mode="coverpage"/>
276
- <xsl:choose>
277
- <xsl:when test="$telpos != 0">
278
- <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"/>
279
- </xsl:when>
280
- <xsl:otherwise>
281
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]" mode="coverpage"/>
282
- </xsl:otherwise>
283
- </xsl:choose>
260
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="17.8mm" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image Front"/>
284
261
  </fo:block>
285
262
  </fo:table-cell>
286
- <fo:table-cell>
287
- <fo:block>
288
- <!-- Example: Tel.: +41 22 919 02 11
289
- Fax: +41 22 919 0
290
- info@iec.ch
291
- www.iec.ch -->
292
- <xsl:choose>
293
- <xsl:when test="$telpos != 0">
294
- <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"/>
295
- </xsl:when>
296
- <xsl:otherwise> </xsl:otherwise>
297
- </xsl:choose>
263
+ <fo:table-cell font-size="10pt" font-weight="bold" display-align="after">
264
+ <fo:block margin-bottom="3pt">THIS PUBLICATION IS COPYRIGHT PROTECTED</fo:block>
265
+ <fo:block margin-bottom="10pt">
266
+ <!-- Example: Copyright © 2014 IEC, Geneva, Switzerland -->
267
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-year')]"/>
298
268
  </fo:block>
299
269
  </fo:table-cell>
300
270
  </fo:table-row>
301
271
  </fo:table-body>
302
272
  </fo:table>
273
+ <fo:block>
274
+ <fo:block margin-bottom="8pt" text-align="justify">
275
+ <!-- Example: All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized in any form
276
+ or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from
277
+ either IEC or IEC's member National Committee in the country of the requester. If you have any questions about IEC
278
+ copyright or have an enquiry about obtaining additional rights to this publication, please contact the address below or
279
+ your local IEC member National Committee for further information. -->
280
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-message')]"/>
281
+ </fo:block>
282
+ <!-- Droits de reproduction réservés. Sauf indication contraire, aucune partie de cette publication ne peut être reproduite
283
+ ni utilisée sous quelque forme que ce soit et par aucun procédé, électronique ou mécanique, y compris la photocopie
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
285
+ questions sur le copyright de l'IEC ou si vous désirez obtenir des droits supplémentaires sur cette publication, utilisez
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>
303
290
 
304
- </fo:block>
305
- </fo:block-container>
306
- </fo:block-container>
307
- </fo:block-container>
308
- </fo:block>
309
-
310
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:feedback-statement"/> <!-- //iec:clause[not(@id) or @id != 'boilerplate-cenelec-attention'] -->
311
- <fo:block span="all" border-bottom="0.5pt solid black"/>
312
- <!-- About the IEC
313
- The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
314
- International Standards for all electrical, electronic and related technologies.
315
- About IEC publications
316
- The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
317
- latest edition, a corrigenda or an amendment might have been published.
318
- ...
319
- -->
320
- <xsl:if test="(//iec:iec-standard)[2]/iec:boilerplate/iec:feedback-statement">
321
- <xsl:apply-templates select="(//iec:iec-standard)[2]/iec:boilerplate/iec:feedback-statement"/>
322
- <fo:block span="all"/>
323
- </xsl:if>
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())"/>
292
+ <fo:table table-layout="fixed" width="100%">
293
+ <fo:table-column column-width="59mm"/>
294
+ <fo:table-column column-width="90mm"/>
295
+ <fo:table-body>
296
+ <fo:table-row>
297
+ <fo:table-cell>
298
+ <fo:block>
299
+ <!-- Example: IEC Central Office
300
+ 3, rue de Varembé
301
+ CH-1211 Geneva 20
302
+ Switzerland -->
303
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-name')]" mode="coverpage"/>
304
+ <xsl:choose>
305
+ <xsl:when test="$telpos != 0">
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"/>
307
+ </xsl:when>
308
+ <xsl:otherwise>
309
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]" mode="coverpage"/>
310
+ </xsl:otherwise>
311
+ </xsl:choose>
312
+ </fo:block>
313
+ </fo:table-cell>
314
+ <fo:table-cell>
315
+ <fo:block>
316
+ <!-- Example: Tel.: +41 22 919 02 11
317
+ Fax: +41 22 919 0
318
+ info@iec.ch
319
+ www.iec.ch -->
320
+ <xsl:choose>
321
+ <xsl:when test="$telpos != 0">
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"/>
323
+ </xsl:when>
324
+ <xsl:otherwise> </xsl:otherwise>
325
+ </xsl:choose>
326
+ </fo:block>
327
+ </fo:table-cell>
328
+ </fo:table-row>
329
+ </fo:table-body>
330
+ </fo:table>
324
331
 
325
- </fo:flow>
326
- </fo:page-sequence>
327
- </xsl:if>
328
- <xsl:variable name="lang_second" select="(//iec:iec-standard)[2]/iec:bibdata/iec:language[@current = 'true']"/>
329
- <!-- For 'Published' documents insert 3rd Cover Page
330
- OR insert first Covert Page for FDIS -->
331
- <xsl:if test="$stage &gt;= 60 or $stage-abbreviation = 'FDIS'">
332
- <fo:page-sequence master-reference="cover" force-page-count="no-force">
333
- <fo:flow flow-name="xsl-region-body">
334
- <xsl:call-template name="insertCoverPart1"/>
335
- <fo:block-container absolute-position="fixed" left="26.5mm" top="214mm" width="163mm">
336
- <fo:block-container height="32mm" display-align="after">
337
- <fo:block font-size="9pt" color="{$color_blue}" line-height="150%">
338
- <fo:block-container width="40mm">
339
- <fo:block>
340
- <xsl:call-template name="getLocalizedString">
341
- <xsl:with-param name="key">IEC</xsl:with-param>
342
- <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
343
- </xsl:call-template>
344
- </fo:block>
332
+ </fo:block>
333
+ </fo:block-container>
345
334
  </fo:block-container>
346
- </fo:block>
335
+ </fo:block-container>
336
+ </fo:block>
347
337
 
348
- <xsl:variable name="IEC_lang_second">
349
- <xsl:call-template name="getLocalizedString">
350
- <xsl:with-param name="key">IEC</xsl:with-param>
351
- <xsl:with-param name="lang"><xsl:value-of select="$lang_second"/></xsl:with-param>
352
- <xsl:with-param name="returnEmptyIfNotFound">true</xsl:with-param>
353
- </xsl:call-template>
354
- </xsl:variable>
338
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:feedback-statement"/> <!-- //iec:clause[not(@id) or @id != 'boilerplate-cenelec-attention'] -->
339
+ <fo:block span="all" border-bottom="0.5pt solid black"/>
340
+ <!-- About the IEC
341
+ The International Electrotechnical Commission (IEC) is the leading global organization that prepares and publishes
342
+ International Standards for all electrical, electronic and related technologies.
343
+ About IEC publications
344
+ The technical content of IEC publications is kept under constant review by the IEC. Please make sure that you have the
345
+ latest edition, a corrigenda or an amendment might have been published.
346
+ ...
347
+ -->
348
+ <xsl:if test="(//iec:iec-standard)[2]/iec:boilerplate/iec:feedback-statement">
349
+ <xsl:apply-templates select="(//iec:iec-standard)[2]/iec:boilerplate/iec:feedback-statement"/>
350
+ <fo:block span="all"/>
351
+ </xsl:if>
355
352
 
356
- <xsl:if test="normalize-space($IEC_lang_second) != ''">
357
- <fo:block font-size="9pt" line-height="150%" margin-top="8pt">
353
+ </fo:flow>
354
+ </fo:page-sequence>
355
+ </xsl:if>
356
+ <xsl:variable name="lang_second" select="(//iec:iec-standard)[2]/iec:bibdata/iec:language[@current = 'true']"/>
357
+ <!-- For 'Published' documents insert 3rd Cover Page
358
+ OR insert first Covert Page for FDIS -->
359
+ <xsl:if test="$stage &gt;= 60 or $stage-abbreviation = 'FDIS'">
360
+ <fo:page-sequence master-reference="cover" force-page-count="no-force">
361
+ <fo:flow flow-name="xsl-region-body">
362
+ <xsl:call-template name="insertCoverPart1"/>
363
+ <fo:block-container absolute-position="fixed" left="26.5mm" top="214mm" width="163mm">
364
+ <fo:block-container height="32mm" display-align="after">
365
+ <fo:block font-size="9pt" color="{$color_blue}" line-height="150%">
358
366
  <fo:block-container width="40mm">
359
367
  <fo:block>
360
- <!-- 'COMMISSION ELECTROTECHNIQUE INTERNATIONALE' -->
361
- <xsl:value-of select="$IEC_lang_second"/>
368
+ <xsl:call-template name="getLocalizedString">
369
+ <xsl:with-param name="key">IEC</xsl:with-param>
370
+ <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
371
+ </xsl:call-template>
362
372
  </fo:block>
363
373
  </fo:block-container>
364
374
  </fo:block>
365
- </xsl:if>
366
- </fo:block-container>
367
375
 
368
- <xsl:variable name="price_code_value" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:price-code"/>
369
- <fo:table table-layout="fixed" width="102%" margin-top="-9mm" margin-bottom="2mm" id="__internal_layout__price_code">
370
- <fo:table-column column-width="148mm"/>
371
- <fo:table-column column-width="16mm"/>
372
- <fo:table-body>
373
- <fo:table-row border-bottom="0.5pt solid {$color_gray}" height="16mm">
374
- <fo:table-cell font-size="8pt" text-align="right" display-align="center">
375
- <fo:block>
376
- <xsl:if test="normalize-space($price_code_value) != ''">
377
- <fo:block color="{$color_blue}" margin-bottom="3pt">
378
- <!-- PRICE CODE -->
379
- <xsl:variable name="price_code">
380
- <xsl:call-template name="getLocalizedString">
381
- <xsl:with-param name="key">price-code</xsl:with-param>
382
- <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
383
- </xsl:call-template>
384
- </xsl:variable>
385
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
386
- </fo:block>
376
+ <xsl:variable name="IEC_lang_second">
377
+ <xsl:call-template name="getLocalizedString">
378
+ <xsl:with-param name="key">IEC</xsl:with-param>
379
+ <xsl:with-param name="lang"><xsl:value-of select="$lang_second"/></xsl:with-param>
380
+ <xsl:with-param name="returnEmptyIfNotFound">true</xsl:with-param>
381
+ </xsl:call-template>
382
+ </xsl:variable>
387
383
 
388
- <fo:block>
389
- <xsl:variable name="price_code">
384
+ <xsl:if test="normalize-space($IEC_lang_second) != ''">
385
+ <fo:block font-size="9pt" line-height="150%" margin-top="8pt">
386
+ <fo:block-container width="40mm">
387
+ <fo:block>
388
+ <!-- 'COMMISSION ELECTROTECHNIQUE INTERNATIONALE' -->
389
+ <xsl:value-of select="$IEC_lang_second"/>
390
+ </fo:block>
391
+ </fo:block-container>
392
+ </fo:block>
393
+ </xsl:if>
394
+ </fo:block-container>
395
+
396
+ <xsl:variable name="price_code_value" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:price-code"/>
397
+ <fo:table table-layout="fixed" width="102%" margin-top="-9mm" margin-bottom="2mm" id="__internal_layout__price_code">
398
+ <fo:table-column column-width="148mm"/>
399
+ <fo:table-column column-width="16mm"/>
400
+ <fo:table-body>
401
+ <fo:table-row border-bottom="0.5pt solid {$color_gray}" height="16mm">
402
+ <fo:table-cell font-size="8pt" text-align="right" display-align="center">
403
+ <fo:block padding-top="1mm">
404
+ <xsl:if test="normalize-space($price_code_value) != ''">
405
+ <fo:block color="{$color_blue}" margin-bottom="3pt">
406
+ <!-- PRICE CODE -->
407
+ <xsl:variable name="price_code">
408
+ <xsl:call-template name="getLocalizedString">
409
+ <xsl:with-param name="key">price-code</xsl:with-param>
410
+ <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
411
+ </xsl:call-template>
412
+ </xsl:variable>
413
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
414
+ </fo:block>
415
+
416
+ <xsl:variable name="price_code_lang_second">
390
417
  <xsl:call-template name="getLocalizedString">
391
418
  <xsl:with-param name="key">price-code</xsl:with-param>
392
419
  <xsl:with-param name="lang"><xsl:value-of select="$lang_second"/></xsl:with-param>
420
+ <xsl:with-param name="returnEmptyIfNotFound">true</xsl:with-param>
393
421
  </xsl:call-template>
394
422
  </xsl:variable>
395
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
396
- </fo:block>
397
- </xsl:if>
398
- </fo:block>
399
- </fo:table-cell>
400
- <fo:table-cell font-size="25pt" font-weight="bold" color="{$color_gray}" text-align="right" display-align="center">
401
- <fo:block padding-top="1mm"><xsl:value-of select="$price_code_value"/></fo:block>
402
- </fo:table-cell>
403
- </fo:table-row>
404
- </fo:table-body>
405
- </fo:table>
406
- <fo:block font-size="8pt" text-align-last="justify">
407
- <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:ext/iec:ics">
408
- <xsl:if test="position() = 1">ICS </xsl:if>
409
- <xsl:value-of select="iec:code"/>
410
- <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
411
- </xsl:for-each>
412
- <xsl:text> </xsl:text>
413
- <fo:inline keep-together.within-line="always"><fo:leader leader-pattern="space"/>
423
+ <xsl:if test="normalize-space($price_code_lang_second) != ''">
424
+ <fo:block>
425
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code_lang_second))"/>
426
+ </fo:block>
427
+ </xsl:if>
428
+ </xsl:if>
429
+ </fo:block>
430
+ </fo:table-cell>
431
+ <fo:table-cell font-size="25pt" font-weight="bold" color="{$color_gray}" text-align="right" display-align="center">
432
+ <fo:block padding-top="1mm"><xsl:value-of select="$price_code_value"/></fo:block>
433
+ </fo:table-cell>
434
+ </fo:table-row>
435
+ </fo:table-body>
436
+ </fo:table>
437
+ <fo:block font-size="8pt" text-align-last="justify">
438
+ <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:ext/iec:ics">
439
+ <xsl:if test="position() = 1">ICS </xsl:if>
440
+ <xsl:value-of select="iec:code"/>
441
+ <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
442
+ </xsl:for-each>
414
443
  <xsl:text> </xsl:text>
415
- <xsl:if test="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']">
416
- <!-- Example: ISBN 978-2-8322-1532-6 -->
417
- <xsl:text>ISBN </xsl:text>
418
- <xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']"/>
419
- </xsl:if>
420
- </fo:inline>
421
- </fo:block>
422
- <fo:block-container margin-left="1.5mm">
423
- <fo:block-container margin-left="0mm">
424
- <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">
425
- <fo:block margin-left="2mm">Warning! Make sure that you obtained this publication from an authorized distributor.</fo:block>
426
- <xsl:if test="//iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
427
- <fo:block margin-left="2mm" margin-top="3pt">Attention! Veuillez vous assurer que vous avez obtenu cette publication via un distributeur agréé.</fo:block>
444
+ <fo:inline keep-together.within-line="always"><fo:leader leader-pattern="space"/>
445
+ <xsl:text> </xsl:text>
446
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']">
447
+ <!-- Example: ISBN 978-2-8322-1532-6 -->
448
+ <xsl:text>ISBN </xsl:text>
449
+ <xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='ISBN']"/>
428
450
  </xsl:if>
451
+ </fo:inline>
452
+ </fo:block>
453
+ <fo:block-container margin-left="1.5mm">
454
+ <fo:block-container margin-left="0mm">
455
+ <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">
456
+ <fo:block margin-left="2mm">Warning! Make sure that you obtained this publication from an authorized distributor.</fo:block>
457
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
458
+ <fo:block margin-left="2mm" margin-top="3pt">Attention! Veuillez vous assurer que vous avez obtenu cette publication via un distributeur agréé.</fo:block>
459
+ </xsl:if>
460
+ </fo:block-container>
429
461
  </fo:block-container>
430
462
  </fo:block-container>
431
- </fo:block-container>
432
- <fo:block font-size="6pt" margin-top="6mm" margin-left="1mm">
433
- <xsl:if test="count((//iec:iec-standard)[1]/iec:bibdata/iec:copyright) = 1">
434
- <fo:block>® Registered trademark of the International Electrotechnical Commission</fo:block>
435
- <xsl:if test="//iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
436
- <fo:block margin-left="2mm">Marque déposée de la Commission Electrotechnique Internationale</fo:block>
463
+ <fo:block font-size="6pt" margin-top="6mm" margin-left="1mm">
464
+ <xsl:if test="count((//iec:iec-standard)[1]/iec:bibdata/iec:copyright) = 1">
465
+ <fo:block>® Registered trademark of the International Electrotechnical Commission</fo:block>
466
+ <xsl:if test="//iec:iec-standard/iec:bibdata/iec:title[@language = 'fr']">
467
+ <fo:block margin-left="2mm">Marque déposée de la Commission Electrotechnique Internationale</fo:block>
468
+ </xsl:if>
437
469
  </xsl:if>
438
- </xsl:if>
439
- </fo:block>
440
- </fo:block-container>
441
- </fo:flow>
442
- </fo:page-sequence>
443
- </xsl:if>
470
+ </fo:block>
471
+ </fo:block-container>
472
+ </fo:flow>
473
+ </fo:page-sequence>
474
+ </xsl:if>
444
475
 
445
- <!-- for non-published documents insert cover page (2nd for FDIS) ) -->
446
- <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' or $stage-abbreviation = 'FDIS'">
447
- <!-- circulation cover page -->
448
- <fo:page-sequence master-reference="cover-FDIS" force-page-count="no-force">
449
- <fo:static-content flow-name="footer-FDIS">
450
- <fo:block-container background-color="rgb(236, 232, 232)" padding="2mm" border="1.5pt solid white">
451
- <fo:block font-size="8pt" margin-bottom="6pt">
476
+ <!-- for non-published documents insert cover page (2nd for FDIS) ) -->
477
+ <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' or $stage-abbreviation = 'FDIS'">
478
+ <!-- circulation cover page -->
479
+ <fo:page-sequence master-reference="cover-FDIS" force-page-count="no-force">
480
+ <fo:static-content flow-name="footer-FDIS">
481
+ <fo:block-container background-color="rgb(236, 232, 232)" padding="2mm" border="1.5pt solid white">
482
+ <fo:block font-size="8pt" margin-bottom="6pt">
452
483
 
453
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[not(@id)]"/>
484
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[not(@id)]"/>
454
485
 
455
- </fo:block>
456
- </fo:block-container>
457
- </fo:static-content>
458
- <fo:flow flow-name="xsl-region-body">
486
+ </fo:block>
487
+ </fo:block-container>
488
+ </fo:static-content>
489
+ <fo:flow flow-name="xsl-region-body">
459
490
 
460
- <fo:block text-align-last="justify" margin-left="-0.5mm">
461
- <xsl:call-template name="outputLogo"/>
491
+ <fo:block text-align-last="justify" margin-left="-0.5mm">
492
+ <xsl:call-template name="outputLogo"/>
462
493
 
463
- <xsl:if test="$stage-abbreviation = 'FDIS'">
464
- <fo:inline font-size="8pt" padding-left="0.5mm" color="{$color_blue}">®</fo:inline>
465
- </xsl:if>
466
- <fo:inline keep-together.within-line="always" font-size="18pt" font-weight="bold" baseline-shift="10mm"><fo:leader leader-pattern="space"/>
467
- <!-- Ex: 34D/1511/FDIS -->
468
- <xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='iso-tc']"/>
494
+ <xsl:if test="$stage-abbreviation = 'FDIS'">
495
+ <fo:inline font-size="8pt" padding-left="0.5mm" color="{$color_blue}">®</fo:inline>
496
+ </xsl:if>
497
+ <fo:inline keep-together.within-line="always" font-size="18pt" font-weight="bold" baseline-shift="10mm"><fo:leader leader-pattern="space"/>
498
+ <!-- Ex: 34D/1511/FDIS -->
499
+ <xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:docidentifier[@type='iso-tc']"/>
500
+ <xsl:text> </xsl:text>
501
+ </fo:inline>
502
+ </fo:block>
503
+ <fo:block font-size="10pt" text-align="right" margin-top="-2mm" margin-bottom="8pt">
504
+ <!-- Examples: 'FINAL DRAFT INTERNATIONAL STANDARD (FDIS)', 'COMMITTEE DRAFT FOR VOTE (CDV)' -->
505
+ <xsl:call-template name="addLetterSpacing">
506
+ <xsl:with-param name="text" select="concat($stage-fullname-uppercased, ' (', $stage-abbreviation ,')')"/>
507
+ </xsl:call-template>
469
508
  <xsl:text> </xsl:text>
470
- </fo:inline>
471
- </fo:block>
472
- <fo:block font-size="10pt" text-align="right" margin-top="-2mm" margin-bottom="8pt">
473
- <!-- Examples: 'FINAL DRAFT INTERNATIONAL STANDARD (FDIS)', 'COMMITTEE DRAFT FOR VOTE (CDV)' -->
474
- <xsl:call-template name="addLetterSpacing">
475
- <xsl:with-param name="text" select="concat($stage-fullname-uppercased, ' (', $stage-abbreviation ,')')"/>
476
- </xsl:call-template>
477
- <xsl:text> </xsl:text>
478
- </fo:block>
479
- <fo:block-container margin-left="57mm">
480
- <fo:block-container margin-left="0mm">
481
- <fo:table table-layout="fixed" width="118mm" background-color="rgb(219, 229, 241)" id="__internal_layout__project_{generate-id()}">
482
- <fo:table-column column-width="50%"/>
483
- <fo:table-column column-width="50%"/>
484
- <fo:table-body>
485
- <fo:table-row height="12mm">
486
- <fo:table-cell number-columns-spanned="2" border="1.5pt solid white" padding="1.5mm" padding-bottom="0mm">
487
- <fo:block font-size="6.5pt" margin-bottom="6pt">
488
- <xsl:call-template name="addLetterSpacingSmallCaps">
489
- <xsl:with-param name="text" select="'Project number:'"/>
490
- </xsl:call-template>
491
- </fo:block>
492
- <fo:block font-size="9pt" font-weight="bold">
493
- <xsl:call-template name="addLetterSpacing">
494
- <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:project-number"/></xsl:with-param>
495
- </xsl:call-template>
496
- </fo:block>
497
- </fo:table-cell>
498
- </fo:table-row>
499
- <fo:table-row height="12mm">
500
- <fo:table-cell border="1.5pt solid white" padding="1.5mm" padding-bottom="0mm">
501
- <fo:block font-size="6.5pt" margin-bottom="6pt">
502
- <xsl:call-template name="addLetterSpacingSmallCaps">
503
- <xsl:with-param name="text" select="'Date of circulation:'"/>
504
- </xsl:call-template>
505
- </fo:block>
506
- <fo:block font-size="9pt" font-weight="bold">
507
- <xsl:call-template name="addLetterSpacing">
508
- <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type ='circulated']/iec:on"/></xsl:with-param>
509
- </xsl:call-template>
510
- </fo:block>
511
- </fo:table-cell>
512
- <fo:table-cell border="1.5pt solid white" padding="1.5mm" padding-bottom="0mm">
513
- <fo:block font-size="6.5pt" margin-bottom="6pt">
514
- <xsl:call-template name="addLetterSpacingSmallCaps">
515
- <xsl:with-param name="text" select="'Closing date for voting:'"/>
516
- </xsl:call-template>
517
- </fo:block>
518
- <fo:block font-size="9pt" font-weight="bold">
519
- <xsl:call-template name="addLetterSpacing">
520
- <!-- 2019-12-06 -->
521
- <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type='vote-ended']/iec:on"/></xsl:with-param>
522
- </xsl:call-template>
523
- </fo:block>
524
- </fo:table-cell>
525
- </fo:table-row>
526
- <fo:table-row height="12mm">
527
- <fo:table-cell number-columns-spanned="2" border="1.5pt solid white" padding="1.5mm" padding-bottom="0mm">
528
- <fo:block font-size="6.5pt" margin-bottom="6pt">
529
- <xsl:call-template name="addLetterSpacingSmallCaps">
530
- <xsl:with-param name="text" select="'Supersedes documents:'"/>
531
- </xsl:call-template>
532
- </fo:block>
533
- <fo:block font-size="9pt" font-weight="bold">
534
- <xsl:variable name="supersedes_documents">
535
- <!-- <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:relation[@type='supersedes']/iec:bibitem/iec:docnumber"> -->
536
- <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:relation[@type='obsoletes']/iec:bibitem/iec:docidentifier">
537
- <xsl:value-of select="."/>
538
- <xsl:if test="position() != last()">,</xsl:if>
539
- </xsl:for-each>
540
- </xsl:variable>
541
- <xsl:call-template name="addLetterSpacing">
542
- <xsl:with-param name="text"><xsl:value-of select="$supersedes_documents"/></xsl:with-param>
543
- </xsl:call-template>
544
- </fo:block>
545
- </fo:table-cell>
546
- </fo:table-row>
547
- </fo:table-body>
548
- </fo:table>
549
- </fo:block-container>
550
- </fo:block-container>
551
-
552
- <fo:block-container margin-left="-2mm" margin-right="-2mm" margin-top="5mm">
553
- <fo:block-container margin-left="0mm" margin-right="0mm">
554
- <xsl:variable name="border-color">rgb(221, 213, 213)</xsl:variable>
555
- <fo:table table-layout="fixed" width="100%" border="1.5pt solid {$border-color}">
556
- <fo:table-column column-width="50%"/>
557
- <fo:table-column column-width="50%"/>
558
- <fo:table-body>
559
- <fo:table-row height="4mm">
560
- <fo:table-cell number-columns-spanned="2" border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
561
- <fo:block>
562
- <!-- If //bibdata/ext/editorialgroup/subcommittee exists, use "IEC SC" + //bibdata/ext/editorialgroup/subcommittee/@number + //bibdata/ext/editorialgroup/subcommittee,
563
- else use "IEC TC" + //bibdata/ext/editorialgroup/technical-committee/@number + //bibdata/ext/editorialgroup/technical-committee -->
564
- <xsl:choose>
565
- <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee">
566
- <fo:block font-size="6.5pt">
567
- <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>
568
- <xsl:call-template name="addLetterSpacingSmallCaps">
569
- <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee"/>
570
- </xsl:call-template>
571
- </fo:block>
572
- </xsl:when>
573
- <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee">
574
- <fo:block font-size="6.5pt">
575
- <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>
576
- <xsl:call-template name="addLetterSpacingSmallCaps">
577
- <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee"/>
578
- </xsl:call-template>
579
- </fo:block>
580
- </xsl:when>
581
- </xsl:choose>
582
- </fo:block>
583
- </fo:table-cell>
584
- </fo:table-row>
585
- <fo:table-row height="12mm">
586
- <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
587
- <fo:block font-size="6.5pt" margin-bottom="6pt">
588
- <xsl:call-template name="addLetterSpacingSmallCaps">
589
- <xsl:with-param name="text" select="'Secretariat:'"/>
590
- </xsl:call-template>
591
- </fo:block>
592
- <fo:block font-size="9pt">
593
- <xsl:call-template name="addLetterSpacing">
594
- <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:secretariat"/>
595
- </xsl:call-template>
596
- </fo:block>
597
- </fo:table-cell>
598
- <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
599
- <fo:block font-size="6.5pt" margin-bottom="6pt">
600
- <xsl:call-template name="addLetterSpacingSmallCaps">
601
- <xsl:with-param name="text" select="'Secretary:'"/>
602
- </xsl:call-template>
603
- </fo:block>
604
- <fo:block font-size="9pt">
605
- <!-- Example: Ms Shanti Conn -->
606
- <xsl:call-template name="addLetterSpacing">
607
- <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:secretary"/>
608
- </xsl:call-template>
609
- </fo:block>
610
- </fo:table-cell>
611
- </fo:table-row>
612
- <fo:table-row height="12mm">
613
- <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
614
- <xsl:if test="not($stage-abbreviation = 'FDIS' or $stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD')">
615
- <xsl:attribute name="number-columns-spanned">2</xsl:attribute>
616
- </xsl:if>
617
- <fo:block font-size="6.5pt" margin-bottom="6pt">
618
- <xsl:call-template name="addLetterSpacingSmallCaps">
619
- <xsl:with-param name="text" select="'Of interest to the following committees:'"/>
620
- </xsl:call-template>
621
- </fo:block>
622
- <fo:block font-size="9pt">
623
- <xsl:call-template name="addLetterSpacing">
624
- <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:interest-to-committees"/>
625
- </xsl:call-template>
626
- </fo:block>
627
- </fo:table-cell>
628
- <xsl:if test="$stage-abbreviation = 'FDIS' or $stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD'">
629
- <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
509
+ </fo:block>
510
+ <fo:block-container margin-left="57mm">
511
+ <fo:block-container margin-left="0mm">
512
+ <fo:table table-layout="fixed" width="118mm" background-color="rgb(219, 229, 241)" id="__internal_layout__project_{generate-id()}">
513
+ <fo:table-column column-width="50%"/>
514
+ <fo:table-column column-width="50%"/>
515
+ <fo:table-body>
516
+ <fo:table-row height="12mm">
517
+ <fo:table-cell number-columns-spanned="2" border="1.5pt solid white" padding="1.5mm" padding-bottom="0mm">
630
518
  <fo:block font-size="6.5pt" margin-bottom="6pt">
631
- <xsl:if test="$stage-abbreviation = 'FDIS'">
632
- <xsl:call-template name="addLetterSpacingSmallCaps">
633
- <xsl:with-param name="text" select="'horizontal standard:'"/>
634
- </xsl:call-template>
635
- </xsl:if>
636
- <xsl:if test="$stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD'">
637
- <xsl:call-template name="addLetterSpacingSmallCaps">
638
- <xsl:with-param name="text" select="'Proposed horizontal standard:'"/>
639
- </xsl:call-template>
640
- </xsl:if>
519
+ <xsl:call-template name="addLetterSpacingSmallCaps">
520
+ <xsl:with-param name="text" select="'Project number:'"/>
521
+ </xsl:call-template>
641
522
  </fo:block>
642
- <fo:block>
643
- <xsl:choose>
644
- <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
645
- <xsl:call-template name="insertCheckBoxOn"/>
646
- </xsl:when>
647
- <xsl:otherwise>
648
- <xsl:call-template name="insertCheckBoxOff"/>
649
- </xsl:otherwise>
650
- </xsl:choose>
523
+ <fo:block font-size="9pt" font-weight="bold">
524
+ <xsl:call-template name="addLetterSpacing">
525
+ <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:ext/iec:structuredidentifier/iec:project-number"/></xsl:with-param>
526
+ </xsl:call-template>
651
527
  </fo:block>
652
-
653
- <xsl:if test="$stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD'">
654
- <fo:block-container background-color="rgb(236, 232, 232)" margin-left="-2mm" margin-right="-2mm">
655
- <fo:block-container margin-left="1mm" margin-right="1mm">
656
- <fo:block font-size="8pt" padding="2mm">
657
- <xsl:call-template name="addLetterSpacing">
658
- <xsl:with-param name="text" select="'Other TC/SCs are requested to indicate their interest, if any, in this CDV to the secretary.'"/>
659
- </xsl:call-template>
660
- </fo:block>
661
- </fo:block-container>
662
- </fo:block-container>
663
- </xsl:if>
664
528
  </fo:table-cell>
665
- </xsl:if>
666
- </fo:table-row>
667
-
668
- <xsl:if test="not($stage-abbreviation = 'DPAS')">
669
- <fo:table-row height="10mm">
670
- <fo:table-cell padding="1.5mm" padding-bottom="0mm">
671
- <fo:block font-size="6.5pt" margin-bottom="4pt">
529
+ </fo:table-row>
530
+ <fo:table-row height="12mm">
531
+ <fo:table-cell border="1.5pt solid white" padding="1.5mm" padding-bottom="0mm">
532
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
672
533
  <xsl:call-template name="addLetterSpacingSmallCaps">
673
- <xsl:with-param name="text" select="'Functions concerned:'"/>
534
+ <xsl:with-param name="text" select="'Date of circulation:'"/>
674
535
  </xsl:call-template>
675
536
  </fo:block>
676
- <!-- function: { emc | safety | environment | quality-assurance } -->
677
- <fo:block font-size="6.5pt">
678
- <xsl:choose>
679
- <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'emc'">
680
- <xsl:call-template name="insertCheckBoxOn"/>
681
- </xsl:when>
682
- <xsl:otherwise>
683
- <xsl:call-template name="insertCheckBoxOff"/>
684
- </xsl:otherwise>
685
- </xsl:choose>
686
- <xsl:call-template name="addLetterSpacingSmallCaps">
687
- <xsl:with-param name="text" select="'EMC'"/>
537
+ <fo:block font-size="9pt" font-weight="bold">
538
+ <xsl:call-template name="addLetterSpacing">
539
+ <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type ='circulated']/iec:on"/></xsl:with-param>
688
540
  </xsl:call-template>
689
- <fo:inline padding-right="33mm"> </fo:inline>
690
- <xsl:choose>
691
- <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'environment'">
692
- <xsl:call-template name="insertCheckBoxOn"/>
693
- </xsl:when>
694
- <xsl:otherwise>
695
- <xsl:call-template name="insertCheckBoxOff"/>
696
- </xsl:otherwise>
697
- </xsl:choose>
541
+ </fo:block>
542
+ </fo:table-cell>
543
+ <fo:table-cell border="1.5pt solid white" padding="1.5mm" padding-bottom="0mm">
544
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
698
545
  <xsl:call-template name="addLetterSpacingSmallCaps">
699
- <xsl:with-param name="text" select="'Environment'"/>
546
+ <xsl:with-param name="text" select="'Closing date for voting:'"/>
547
+ </xsl:call-template>
548
+ </fo:block>
549
+ <fo:block font-size="9pt" font-weight="bold">
550
+ <xsl:call-template name="addLetterSpacing">
551
+ <!-- 2019-12-06 -->
552
+ <xsl:with-param name="text"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type='vote-ended']/iec:on"/></xsl:with-param>
700
553
  </xsl:call-template>
701
554
  </fo:block>
702
555
  </fo:table-cell>
703
- <fo:table-cell padding="1.5mm" padding-bottom="0mm">
704
- <fo:block font-size="6.5pt" margin-bottom="6pt"> </fo:block>
705
- <fo:block font-size="6.5pt">
706
- <xsl:choose>
707
- <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'quality-assurance'">
708
- <xsl:call-template name="insertCheckBoxOn"/>
709
- </xsl:when>
710
- <xsl:otherwise>
711
- <xsl:call-template name="insertCheckBoxOff"/>
712
- </xsl:otherwise>
713
- </xsl:choose>
556
+ </fo:table-row>
557
+ <fo:table-row height="12mm">
558
+ <fo:table-cell number-columns-spanned="2" border="1.5pt solid white" padding="1.5mm" padding-bottom="0mm">
559
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
714
560
  <xsl:call-template name="addLetterSpacingSmallCaps">
715
- <xsl:with-param name="text" select="'Quality assurance'"/>
561
+ <xsl:with-param name="text" select="'Supersedes documents:'"/>
716
562
  </xsl:call-template>
717
- <fo:inline padding-right="13mm"> </fo:inline>
718
- <xsl:choose>
719
- <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'safety'">
720
- <xsl:call-template name="insertCheckBoxOn"/>
721
- </xsl:when>
722
- <xsl:otherwise>
723
- <xsl:call-template name="insertCheckBoxOff"/>
724
- </xsl:otherwise>
725
- </xsl:choose>
726
- <xsl:call-template name="addLetterSpacingSmallCaps">
727
- <xsl:with-param name="text" select="'Safety'"/>
563
+ </fo:block>
564
+ <fo:block font-size="9pt" font-weight="bold">
565
+ <xsl:variable name="supersedes_documents">
566
+ <!-- <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:relation[@type='supersedes']/iec:bibitem/iec:docnumber"> -->
567
+ <xsl:for-each select="//iec:iec-standard/iec:bibdata/iec:relation[@type='obsoletes']/iec:bibitem/iec:docidentifier">
568
+ <xsl:value-of select="."/>
569
+ <xsl:if test="position() != last()">,</xsl:if>
570
+ </xsl:for-each>
571
+ </xsl:variable>
572
+ <xsl:call-template name="addLetterSpacing">
573
+ <xsl:with-param name="text"><xsl:value-of select="$supersedes_documents"/></xsl:with-param>
728
574
  </xsl:call-template>
729
575
  </fo:block>
730
576
  </fo:table-cell>
731
577
  </fo:table-row>
732
- </xsl:if>
733
-
734
- <xsl:if test="not($stage-abbreviation = 'CD' or $stage-abbreviation = 'CD-TSTR' or $stage-abbreviation = 'DTS' or $stage-abbreviation = 'DTR' or $stage-abbreviation = 'DPAS')">
578
+ </fo:table-body>
579
+ </fo:table>
580
+ </fo:block-container>
581
+ </fo:block-container>
735
582
 
736
- <fo:table-row>
737
- <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
738
- <fo:block font-size="6.5pt" margin-bottom="12pt">
583
+ <fo:block-container margin-left="-2mm" margin-right="-2mm" margin-top="5mm">
584
+ <fo:block-container margin-left="0mm" margin-right="0mm">
585
+ <xsl:variable name="border-color">rgb(221, 213, 213)</xsl:variable>
586
+ <fo:table table-layout="fixed" width="100%" border="1.5pt solid {$border-color}">
587
+ <fo:table-column column-width="50%"/>
588
+ <fo:table-column column-width="50%"/>
589
+ <fo:table-body>
590
+ <fo:table-row height="4mm">
591
+ <fo:table-cell number-columns-spanned="2" border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
592
+ <fo:block>
593
+ <!-- If //bibdata/ext/editorialgroup/subcommittee exists, use "IEC SC" + //bibdata/ext/editorialgroup/subcommittee/@number + //bibdata/ext/editorialgroup/subcommittee,
594
+ else use "IEC TC" + //bibdata/ext/editorialgroup/technical-committee/@number + //bibdata/ext/editorialgroup/technical-committee -->
739
595
  <xsl:choose>
740
- <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:cen-processing = 'true'">
741
- <xsl:call-template name="insertCheckBoxOn"/>
596
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee">
597
+ <fo:block font-size="6.5pt">
598
+ <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>
599
+ <xsl:call-template name="addLetterSpacingSmallCaps">
600
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:subcommittee"/>
601
+ </xsl:call-template>
602
+ </fo:block>
603
+ </xsl:when>
604
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee">
605
+ <fo:block font-size="6.5pt">
606
+ <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>
607
+ <xsl:call-template name="addLetterSpacingSmallCaps">
608
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:technical-committee"/>
609
+ </xsl:call-template>
610
+ </fo:block>
742
611
  </xsl:when>
743
- <xsl:otherwise>
744
- <xsl:call-template name="insertCheckBoxOff"/>
745
- </xsl:otherwise>
746
612
  </xsl:choose>
613
+ </fo:block>
614
+ </fo:table-cell>
615
+ </fo:table-row>
616
+ <fo:table-row height="12mm">
617
+ <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
618
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
747
619
  <xsl:call-template name="addLetterSpacingSmallCaps">
748
- <xsl:with-param name="text" select="'Submitted for CENELEC parallel voting'"/>
620
+ <xsl:with-param name="text" select="'Secretariat:'"/>
621
+ </xsl:call-template>
622
+ </fo:block>
623
+ <fo:block font-size="9pt">
624
+ <xsl:call-template name="addLetterSpacing">
625
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:editorialgroup/iec:secretariat"/>
749
626
  </xsl:call-template>
750
627
  </fo:block>
751
-
752
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:feedback-statement/iec:clause[@id = 'boilerplate-cenelec-attention']"/>
753
-
754
628
  </fo:table-cell>
755
629
  <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
756
630
  <fo:block font-size="6.5pt" margin-bottom="6pt">
757
- <xsl:choose>
758
- <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:cen-processing = 'true'">
759
- <xsl:call-template name="insertCheckBoxOff"/>
760
- </xsl:when>
761
- <xsl:otherwise>
762
- <xsl:call-template name="insertCheckBoxOn"/>
763
- </xsl:otherwise>
764
- </xsl:choose>
765
631
  <xsl:call-template name="addLetterSpacingSmallCaps">
766
- <xsl:with-param name="text" select="'Not submitted for CENELEC parallel voting'"/>
632
+ <xsl:with-param name="text" select="'Secretary:'"/>
633
+ </xsl:call-template>
634
+ </fo:block>
635
+ <fo:block font-size="9pt">
636
+ <!-- Example: Ms Shanti Conn -->
637
+ <xsl:call-template name="addLetterSpacing">
638
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:secretary"/>
767
639
  </xsl:call-template>
768
640
  </fo:block>
769
641
  </fo:table-cell>
770
642
  </fo:table-row>
771
- </xsl:if>
772
- </fo:table-body>
773
- </fo:table>
774
- </fo:block-container>
775
- </fo:block-container>
643
+ <fo:table-row height="12mm">
644
+ <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
645
+ <xsl:if test="not($stage-abbreviation = 'FDIS' or $stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD')">
646
+ <xsl:attribute name="number-columns-spanned">2</xsl:attribute>
647
+ </xsl:if>
648
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
649
+ <xsl:call-template name="addLetterSpacingSmallCaps">
650
+ <xsl:with-param name="text" select="'Of interest to the following committees:'"/>
651
+ </xsl:call-template>
652
+ </fo:block>
653
+ <fo:block font-size="9pt">
654
+ <xsl:call-template name="addLetterSpacing">
655
+ <xsl:with-param name="text" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:interest-to-committees"/>
656
+ </xsl:call-template>
657
+ </fo:block>
658
+ </fo:table-cell>
659
+ <xsl:if test="$stage-abbreviation = 'FDIS' or $stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD'">
660
+ <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
661
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
662
+ <xsl:if test="$stage-abbreviation = 'FDIS'">
663
+ <xsl:call-template name="addLetterSpacingSmallCaps">
664
+ <xsl:with-param name="text" select="'horizontal standard:'"/>
665
+ </xsl:call-template>
666
+ </xsl:if>
667
+ <xsl:if test="$stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD'">
668
+ <xsl:call-template name="addLetterSpacingSmallCaps">
669
+ <xsl:with-param name="text" select="'Proposed horizontal standard:'"/>
670
+ </xsl:call-template>
671
+ </xsl:if>
672
+ </fo:block>
673
+ <fo:block>
674
+ <xsl:choose>
675
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:horizontal = 'true'">
676
+ <xsl:call-template name="insertCheckBoxOn"/>
677
+ </xsl:when>
678
+ <xsl:otherwise>
679
+ <xsl:call-template name="insertCheckBoxOff"/>
680
+ </xsl:otherwise>
681
+ </xsl:choose>
682
+ </fo:block>
776
683
 
777
- <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">
778
- <fo:block>
779
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:license-statement" mode="cover-page-internal"/>
780
- </fo:block>
781
- </fo:block-container>
684
+ <xsl:if test="$stage-abbreviation = 'CDV' or $stage-abbreviation = 'CD'">
685
+ <fo:block-container background-color="rgb(236, 232, 232)" margin-left="-2mm" margin-right="-2mm">
686
+ <fo:block-container margin-left="1mm" margin-right="1mm">
687
+ <fo:block font-size="8pt" padding="2mm">
688
+ <xsl:call-template name="addLetterSpacing">
689
+ <xsl:with-param name="text" select="'Other TC/SCs are requested to indicate their interest, if any, in this CDV to the secretary.'"/>
690
+ </xsl:call-template>
691
+ </fo:block>
692
+ </fo:block-container>
693
+ </fo:block-container>
694
+ </xsl:if>
695
+ </fo:table-cell>
696
+ </xsl:if>
697
+ </fo:table-row>
782
698
 
783
- <fo:block-container background-color="rgb(219, 229, 241)" margin-top="4mm" padding="2mm" padding-top="1mm" border="1.5pt solid white">
784
- <fo:block font-size="6.5pt" margin-bottom="6pt">
785
- <xsl:call-template name="addLetterSpacingSmallCaps">
786
- <xsl:with-param name="text">Title:</xsl:with-param>
787
- </xsl:call-template>
788
- </fo:block>
789
- <fo:block font-size="9pt" font-weight="bold">
790
- <xsl:call-template name="addLetterSpacing">
791
- <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>
792
- </xsl:call-template>
793
- </fo:block>
794
- </fo:block-container>
699
+ <xsl:if test="not($stage-abbreviation = 'DPAS')">
700
+ <fo:table-row height="10mm">
701
+ <fo:table-cell padding="1.5mm" padding-bottom="0mm">
702
+ <fo:block font-size="6.5pt" margin-bottom="4pt">
703
+ <xsl:call-template name="addLetterSpacingSmallCaps">
704
+ <xsl:with-param name="text" select="'Functions concerned:'"/>
705
+ </xsl:call-template>
706
+ </fo:block>
707
+ <!-- function: { emc | safety | environment | quality-assurance } -->
708
+ <fo:block font-size="6.5pt">
709
+ <xsl:choose>
710
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'emc'">
711
+ <xsl:call-template name="insertCheckBoxOn"/>
712
+ </xsl:when>
713
+ <xsl:otherwise>
714
+ <xsl:call-template name="insertCheckBoxOff"/>
715
+ </xsl:otherwise>
716
+ </xsl:choose>
717
+ <xsl:call-template name="addLetterSpacingSmallCaps">
718
+ <xsl:with-param name="text" select="'EMC'"/>
719
+ </xsl:call-template>
720
+ <fo:inline padding-right="33mm"> </fo:inline>
721
+ <xsl:choose>
722
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'environment'">
723
+ <xsl:call-template name="insertCheckBoxOn"/>
724
+ </xsl:when>
725
+ <xsl:otherwise>
726
+ <xsl:call-template name="insertCheckBoxOff"/>
727
+ </xsl:otherwise>
728
+ </xsl:choose>
729
+ <xsl:call-template name="addLetterSpacingSmallCaps">
730
+ <xsl:with-param name="text" select="'Environment'"/>
731
+ </xsl:call-template>
732
+ </fo:block>
733
+ </fo:table-cell>
734
+ <fo:table-cell padding="1.5mm" padding-bottom="0mm">
735
+ <fo:block font-size="6.5pt" margin-bottom="6pt"> </fo:block>
736
+ <fo:block font-size="6.5pt">
737
+ <xsl:choose>
738
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'quality-assurance'">
739
+ <xsl:call-template name="insertCheckBoxOn"/>
740
+ </xsl:when>
741
+ <xsl:otherwise>
742
+ <xsl:call-template name="insertCheckBoxOff"/>
743
+ </xsl:otherwise>
744
+ </xsl:choose>
745
+ <xsl:call-template name="addLetterSpacingSmallCaps">
746
+ <xsl:with-param name="text" select="'Quality assurance'"/>
747
+ </xsl:call-template>
748
+ <fo:inline padding-right="13mm"> </fo:inline>
749
+ <xsl:choose>
750
+ <xsl:when test="//iec:iec-standard/iec:bibdata/iec:ext/iec:function = 'safety'">
751
+ <xsl:call-template name="insertCheckBoxOn"/>
752
+ </xsl:when>
753
+ <xsl:otherwise>
754
+ <xsl:call-template name="insertCheckBoxOff"/>
755
+ </xsl:otherwise>
756
+ </xsl:choose>
757
+ <xsl:call-template name="addLetterSpacingSmallCaps">
758
+ <xsl:with-param name="text" select="'Safety'"/>
759
+ </xsl:call-template>
760
+ </fo:block>
761
+ </fo:table-cell>
762
+ </fo:table-row>
763
+ </xsl:if>
764
+
765
+ <xsl:if test="not($stage-abbreviation = 'CD' or $stage-abbreviation = 'CD-TSTR' or $stage-abbreviation = 'DTS' or $stage-abbreviation = 'DTR' or $stage-abbreviation = 'DPAS')">
766
+
767
+ <fo:table-row>
768
+ <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
769
+ <fo:block font-size="6.5pt" margin-bottom="12pt">
770
+ <xsl:choose>
771
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:cen-processing = 'true'">
772
+ <xsl:call-template name="insertCheckBoxOn"/>
773
+ </xsl:when>
774
+ <xsl:otherwise>
775
+ <xsl:call-template name="insertCheckBoxOff"/>
776
+ </xsl:otherwise>
777
+ </xsl:choose>
778
+ <xsl:call-template name="addLetterSpacingSmallCaps">
779
+ <xsl:with-param name="text" select="'Submitted for CENELEC parallel voting'"/>
780
+ </xsl:call-template>
781
+ </fo:block>
782
+
783
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:feedback-statement/iec:clause[@id = 'boilerplate-cenelec-attention']"/>
784
+
785
+ </fo:table-cell>
786
+ <fo:table-cell border="1.5pt solid {$border-color}" padding="1.5mm" padding-bottom="0mm">
787
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
788
+ <xsl:choose>
789
+ <xsl:when test="/iec:iec-standard/iec:bibdata/iec:ext/iec:cen-processing = 'true'">
790
+ <xsl:call-template name="insertCheckBoxOff"/>
791
+ </xsl:when>
792
+ <xsl:otherwise>
793
+ <xsl:call-template name="insertCheckBoxOn"/>
794
+ </xsl:otherwise>
795
+ </xsl:choose>
796
+ <xsl:call-template name="addLetterSpacingSmallCaps">
797
+ <xsl:with-param name="text" select="'Not submitted for CENELEC parallel voting'"/>
798
+ </xsl:call-template>
799
+ </fo:block>
800
+ </fo:table-cell>
801
+ </fo:table-row>
802
+ </xsl:if>
803
+ </fo:table-body>
804
+ </fo:table>
805
+ </fo:block-container>
806
+ </fo:block-container>
807
+
808
+ <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">
809
+ <fo:block>
810
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:license-statement" mode="cover-page-internal"/>
811
+ </fo:block>
812
+ </fo:block-container>
795
813
 
796
- <xsl:if test="$stage-abbreviation = 'FDIS' or $stage-abbreviation = 'CDV' or $stage-abbreviation = 'DTS' or $stage-abbreviation = 'DTR' or $stage-abbreviation = 'DPAS'">
797
- <fo:block-container border="1.5 solid" border-color="rgb(221, 213, 213)" height="6.5mm" padding="1mm" margin-top="3mm" display-align="center">
798
- <fo:block font-size="6.5pt">
814
+ <fo:block-container background-color="rgb(219, 229, 241)" margin-top="4mm" padding="2mm" padding-top="1mm" border="1.5pt solid white">
815
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
816
+ <xsl:call-template name="addLetterSpacingSmallCaps">
817
+ <xsl:with-param name="text">Title:</xsl:with-param>
818
+ </xsl:call-template>
819
+ </fo:block>
820
+ <fo:block font-size="9pt" font-weight="bold">
799
821
  <xsl:call-template name="addLetterSpacing">
800
- <xsl:with-param name="text">
801
- <xsl:text>PROPOSED STABILITY DATE: </xsl:text>
802
- </xsl:with-param>
822
+ <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>
803
823
  </xsl:call-template>
804
- <!-- 2023 -->
805
- <fo:inline font-size="9pt"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type='unchanged']/iec:on"/></fo:inline>
806
824
  </fo:block>
807
825
  </fo:block-container>
808
- </xsl:if>
809
826
 
810
- <fo:block-container border="1.5 solid" border-color="rgb(221, 213, 213)" padding="1mm" margin-top="3mm">
811
- <fo:block font-size="6.5pt" margin-bottom="6pt">
812
- <xsl:call-template name="addLetterSpacingSmallCaps">
813
- <xsl:with-param name="text">Note from TC/SC officers:</xsl:with-param>
814
- </xsl:call-template>
815
- </fo:block>
816
- <!-- Example: This FDIS is the result of the discussion between the IEC SC21A experts WG 3 during the meeting held in -->
817
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:bibdata/iec:ext/iec:tc-sc-officers-note"/>
818
- </fo:block-container>
827
+ <xsl:if test="$stage-abbreviation = 'FDIS' or $stage-abbreviation = 'CDV' or $stage-abbreviation = 'DTS' or $stage-abbreviation = 'DTR' or $stage-abbreviation = 'DPAS'">
828
+ <fo:block-container border="1.5 solid" border-color="rgb(221, 213, 213)" height="6.5mm" padding="1mm" margin-top="3mm" display-align="center">
829
+ <fo:block font-size="6.5pt">
830
+ <xsl:call-template name="addLetterSpacing">
831
+ <xsl:with-param name="text">
832
+ <xsl:text>PROPOSED STABILITY DATE: </xsl:text>
833
+ </xsl:with-param>
834
+ </xsl:call-template>
835
+ <!-- 2023 -->
836
+ <fo:inline font-size="9pt"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:date[@type='unchanged']/iec:on"/></fo:inline>
837
+ </fo:block>
838
+ </fo:block-container>
839
+ </xsl:if>
819
840
 
820
- </fo:flow>
821
- </fo:page-sequence>
822
- </xsl:if>
841
+ <fo:block-container border="1.5 solid" border-color="rgb(221, 213, 213)" padding="1mm" margin-top="3mm">
842
+ <fo:block font-size="6.5pt" margin-bottom="6pt">
843
+ <xsl:call-template name="addLetterSpacingSmallCaps">
844
+ <xsl:with-param name="text">Note from TC/SC officers:</xsl:with-param>
845
+ </xsl:call-template>
846
+ </fo:block>
847
+ <!-- Example: This FDIS is the result of the discussion between the IEC SC21A experts WG 3 during the meeting held in -->
848
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:bibdata/iec:ext/iec:tc-sc-officers-note"/>
849
+ </fo:block-container>
823
850
 
824
- <xsl:if test="$debug = 'true'">
825
- <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
826
- DEBUG
827
- contents=<xsl:copy-of select="$contents"/>
828
- <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
851
+ </fo:flow>
852
+ </fo:page-sequence>
829
853
  </xsl:if>
830
854
 
831
- <xsl:for-each select="//iec:iec-standard">
832
- <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
833
- <xsl:variable name="current_document">
834
- <xsl:copy-of select="."/>
835
- </xsl:variable>
855
+ <xsl:if test="$debug = 'true'">
856
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
857
+ DEBUG
858
+ contents=<xsl:copy-of select="$contents"/>
859
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
860
+ </xsl:if>
836
861
 
837
- <xsl:variable name="num"><xsl:number count="iec:iec-standard" level="any"/></xsl:variable>
862
+ <xsl:for-each select="//iec:iec-standard">
863
+ <xsl:variable name="lang" select="*[local-name()='bibdata']/*[local-name()='language'][@current = 'true']"/>
864
+ <xsl:variable name="current_document">
865
+ <xsl:copy-of select="."/>
866
+ </xsl:variable>
838
867
 
839
- <xsl:for-each select="xalan:nodeset($current_document)">
868
+ <xsl:variable name="num"><xsl:number count="iec:iec-standard" level="any"/></xsl:variable>
840
869
 
841
- <xsl:variable name="docid">
842
- <xsl:call-template name="getDocumentId"/>
843
- </xsl:variable>
870
+ <xsl:for-each select="xalan:nodeset($current_document)">
844
871
 
845
- <fo:page-sequence master-reference="document" format="1" force-page-count="no-force"> <!-- initial-page-number="2" -->
872
+ <xsl:variable name="docid">
873
+ <xsl:call-template name="getDocumentId"/>
874
+ </xsl:variable>
846
875
 
847
- <xsl:if test="$num = '1'">
848
- <xsl:attribute name="initial-page-number">2</xsl:attribute>
849
- </xsl:if>
850
- <xsl:if test="$isIEV = 'true'">
851
- <xsl:attribute name="format">I</xsl:attribute>
852
- </xsl:if>
876
+ <fo:page-sequence master-reference="document" format="1" force-page-count="no-force"> <!-- initial-page-number="2" -->
877
+
878
+ <xsl:if test="$num = '1'">
879
+ <xsl:attribute name="initial-page-number">2</xsl:attribute>
880
+ </xsl:if>
881
+ <xsl:if test="$isIEV = 'true'">
882
+ <xsl:attribute name="format">I</xsl:attribute>
883
+ </xsl:if>
853
884
 
854
- <xsl:call-template name="insertHeaderFooter"/>
855
- <fo:flow flow-name="xsl-region-body">
885
+ <xsl:call-template name="insertHeaderFooter"/>
886
+ <fo:flow flow-name="xsl-region-body">
856
887
 
857
- <xsl:call-template name="insertTOCpages">
858
- <xsl:with-param name="contents" select="$contents/doc[@id = $docid]"/>
859
- </xsl:call-template>
888
+ <xsl:call-template name="insertTOCpages">
889
+ <xsl:with-param name="contents" select="$contents/doc[@id = $docid]"/>
890
+ </xsl:call-template>
860
891
 
861
- <xsl:call-template name="insertPrefacepages">
862
- <xsl:with-param name="lang" select="$lang"/>
863
- </xsl:call-template>
892
+ <xsl:call-template name="insertPrefacepages">
893
+ <xsl:with-param name="lang" select="$lang"/>
894
+ </xsl:call-template>
864
895
 
865
- </fo:flow>
866
- </fo:page-sequence>
896
+ </fo:flow>
897
+ </fo:page-sequence>
867
898
 
868
- <xsl:call-template name="insertBodypages">
869
- <xsl:with-param name="lang" select="$lang"/>
870
- </xsl:call-template>
899
+ <xsl:call-template name="insertBodypages">
900
+ <xsl:with-param name="lang" select="$lang"/>
901
+ </xsl:call-template>
871
902
 
903
+ </xsl:for-each>
872
904
  </xsl:for-each>
873
- </xsl:for-each>
874
905
 
875
- <xsl:if test="$stage &gt;= 60">
876
- <fo:page-sequence master-reference="blank-page">
877
- <fo:flow flow-name="xsl-region-body">
878
- <fo:block> </fo:block>
879
- </fo:flow>
880
- </fo:page-sequence>
881
-
882
- <fo:page-sequence master-reference="last-page">
883
- <fo:flow flow-name="xsl-region-body">
884
- <fo:block-container margin-left="20mm" margin-top="19mm">
885
- <fo:block-container margin-left="0mm" margin-top="0mm">
886
- <fo:block font-size="11pt" color="{$color_blue}" margin-bottom="12pt" line-height="150%">
887
- <fo:block-container width="42mm">
888
- <fo:block>
889
- <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))"/>
890
- <xsl:value-of select="$publisher"/>
891
- </fo:block>
892
- </fo:block-container>
893
- </fo:block>
894
- <fo:block font-size="9pt" line-height="150%">
895
- <!-- Example:
896
- 3, rue de Varembé
897
- PO Box 131
898
- CH-1211 Geneva 20
899
- Switzerland
900
-
901
- Tel: + 41 22 919 02 11
902
- Fax: + 41 22 919 03 00
903
- info@iec.ch
904
- www.iec.ch -->
905
- <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())"/>
906
- <xsl:choose>
907
- <xsl:when test="$telpos != 0">
908
- <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"/>
909
- <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">
910
- <xsl:with-param name="lastpage">true</xsl:with-param>
911
- </xsl:apply-templates>
912
- </xsl:when>
913
- <xsl:otherwise>
914
- <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]" mode="coverpage"/>
915
- </xsl:otherwise>
916
- </xsl:choose>
917
- </fo:block>
906
+ <xsl:if test="$stage &gt;= 60">
907
+ <fo:page-sequence master-reference="blank-page">
908
+ <fo:flow flow-name="xsl-region-body">
909
+ <fo:block> </fo:block>
910
+ </fo:flow>
911
+ </fo:page-sequence>
912
+
913
+ <fo:page-sequence master-reference="last-page">
914
+ <fo:flow flow-name="xsl-region-body">
915
+ <fo:block-container margin-left="20mm" margin-top="19mm">
916
+ <fo:block-container margin-left="0mm" margin-top="0mm">
917
+ <fo:block font-size="11pt" color="{$color_blue}" margin-bottom="12pt" line-height="150%">
918
+ <fo:block-container width="42mm">
919
+ <fo:block>
920
+ <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))"/>
921
+ <xsl:value-of select="$publisher"/>
922
+ </fo:block>
923
+ </fo:block-container>
924
+ </fo:block>
925
+ <fo:block font-size="9pt" line-height="150%">
926
+ <!-- Example:
927
+ 3, rue de Varembé
928
+ PO Box 131
929
+ CH-1211 Geneva 20
930
+ Switzerland
931
+
932
+ Tel: + 41 22 919 02 11
933
+ Fax: + 41 22 919 03 00
934
+ info@iec.ch
935
+ www.iec.ch -->
936
+ <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())"/>
937
+ <xsl:choose>
938
+ <xsl:when test="$telpos != 0">
939
+ <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"/>
940
+ <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">
941
+ <xsl:with-param name="lastpage">true</xsl:with-param>
942
+ </xsl:apply-templates>
943
+ </xsl:when>
944
+ <xsl:otherwise>
945
+ <xsl:apply-templates select="(//iec:iec-standard)[1]/iec:boilerplate/iec:copyright-statement/iec:clause/iec:p[contains(@id, 'boilerplate-address')]" mode="coverpage"/>
946
+ </xsl:otherwise>
947
+ </xsl:choose>
948
+ </fo:block>
949
+ </fo:block-container>
918
950
  </fo:block-container>
919
- </fo:block-container>
920
- </fo:flow>
921
- </fo:page-sequence>
922
- </xsl:if>
923
- </fo:root>
951
+ </fo:flow>
952
+ </fo:page-sequence>
953
+ </xsl:if>
954
+ </fo:root>
955
+ </xsl:variable>
956
+
957
+ <xsl:apply-templates select="xalan:nodeset($xslfo)" mode="landscape_portrait"/>
958
+
959
+ </xsl:template>
960
+
961
+ <xsl:template match="iec:pagebreak" priority="2">
962
+ <xsl:copy-of select="."/>
924
963
  </xsl:template>
925
964
 
926
965
  <xsl:template match="iec:tc-sc-officers-note/iec:p">
@@ -1056,75 +1095,77 @@
1056
1095
  Electromagnetic compatibility (EMC) –
1057
1096
  Part 4-5: Testing and measurement techniques – Surge immunity test
1058
1097
  -->
1059
- <xsl:variable name="title-intro" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-intro']"/>
1060
- <xsl:value-of select="$title-intro"/>
1061
- <xsl:variable name="title-main" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-main']"/>
1062
- <xsl:if test="$title-main != ''">
1063
- <!-- <xsl:text> — </xsl:text> -->
1064
- <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1065
- <xsl:value-of select="$title-main"/>
1066
- </xsl:if>
1067
- <xsl:variable name="title-part" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-part']"/>
1068
- <xsl:if test="$title-part != ''">
1069
- <!-- <xsl:text> — </xsl:text> -->
1070
- <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1071
- <xsl:value-of select="$linebreak"/>
1072
- <xsl:if test="$part != ''">
1073
- <xsl:variable name="localized_part">
1074
- <xsl:call-template name="getLocalizedString">
1075
- <xsl:with-param name="key">locality.part</xsl:with-param>
1076
- <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
1077
- </xsl:call-template>
1078
- </xsl:variable>
1079
-
1080
- <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1098
+ <xsl:variable name="titles_first_">
1099
+ <title-intro><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-intro']"/></title-intro>
1100
+ <title-main><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-main']"/></title-main>
1101
+ <title-part><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-part']"/></title-part>
1102
+ </xsl:variable>
1103
+ <xsl:variable name="titles_first" select="xalan:nodeset($titles_first_)"/>
1081
1104
 
1105
+ <xsl:for-each select="$titles_first/*[normalize-space() != '']">
1106
+ <xsl:if test="position() != 1">
1107
+ <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1082
1108
  </xsl:if>
1083
- <xsl:value-of select="$title-part"/>
1084
- </xsl:if>
1109
+ <xsl:if test="self::title-part">
1110
+ <xsl:value-of select="$linebreak"/>
1111
+ <xsl:if test="$part != ''">
1112
+ <xsl:variable name="localized_part">
1113
+ <xsl:call-template name="getLocalizedString">
1114
+ <xsl:with-param name="key">locality.part</xsl:with-param>
1115
+ <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
1116
+ </xsl:call-template>
1117
+ </xsl:variable>
1118
+ <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1119
+ </xsl:if>
1120
+ </xsl:if>
1121
+ <xsl:value-of select="."/>
1122
+ </xsl:for-each>
1123
+
1085
1124
  </fo:block>
1086
1125
  <fo:block font-size="12pt" font-weight="bold" role="H1">
1087
1126
  <!-- Example: Compatibilité électromagnétique (CEM) –
1088
1127
  Partie 4-5: Techniques d'essai et de mesure – Essai d'immunité aux ondes de
1089
1128
  choc -->
1090
- <xsl:variable name="title-intro-second" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-intro']"/>
1091
- <xsl:value-of select="$title-intro-second"/>
1092
- <xsl:variable name="title-main-second" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-main']"/>
1093
- <xsl:if test="$title-main-second != ''">
1094
- <!-- <xsl:text> — </xsl:text> -->
1095
- <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1096
- <xsl:value-of select="$title-main-second"/>
1097
- </xsl:if>
1098
- <xsl:variable name="part-second" select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-part']"/>
1099
- <xsl:if test="$part-second != ''">
1100
- <!-- <xsl:text> — </xsl:text> -->
1101
- <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1102
- <xsl:value-of select="$linebreak"/>
1103
- <xsl:if test="$part != ''">
1104
1129
 
1105
- <xsl:variable name="locality_part_lang_second">
1106
- <xsl:call-template name="getLocalizedString">
1107
- <xsl:with-param name="key">locality.part</xsl:with-param>
1108
- <xsl:with-param name="lang"><xsl:value-of select="$lang_second"/></xsl:with-param>
1109
- <xsl:with-param name="returnEmptyIfNotFound">true</xsl:with-param>
1110
- </xsl:call-template>
1111
- </xsl:variable>
1130
+ <xsl:variable name="titles_second_">
1131
+ <title-intro><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-intro']"/></title-intro>
1132
+ <title-main><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-main']"/></title-main>
1133
+ <title-part><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:title[@language = $lang_second and @type = 'title-part']"/></title-part>
1134
+ </xsl:variable>
1135
+ <xsl:variable name="titles_second" select="xalan:nodeset($titles_second_)"/>
1112
1136
 
1113
- <xsl:choose>
1114
- <xsl:when test="normalize-space($locality_part_lang_second) != ''">
1115
- <xsl:variable name="localized_part">
1116
- <xsl:value-of select="$locality_part_lang_second"/>
1117
- </xsl:variable>
1118
- <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1119
- </xsl:when>
1120
- <xsl:otherwise>
1121
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang_second]),'#',$part)"/>
1122
- </xsl:otherwise>
1123
- </xsl:choose>
1137
+ <xsl:for-each select="$titles_second/*[normalize-space() != '']">
1138
+ <xsl:if test="position() != 1">
1139
+ <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1140
+ </xsl:if>
1141
+ <xsl:if test="self::title-part">
1142
+ <xsl:value-of select="$linebreak"/>
1143
+ <xsl:if test="$part != ''">
1144
+ <xsl:variable name="locality_part_lang_second">
1145
+ <xsl:call-template name="getLocalizedString">
1146
+ <xsl:with-param name="key">locality.part</xsl:with-param>
1147
+ <xsl:with-param name="lang"><xsl:value-of select="$lang_second"/></xsl:with-param>
1148
+ <xsl:with-param name="returnEmptyIfNotFound">true</xsl:with-param>
1149
+ </xsl:call-template>
1150
+ </xsl:variable>
1151
+ <xsl:value-of select="concat($locality_part_lang_second ,' ',$part, ': ')"/>
1124
1152
 
1153
+ <xsl:choose>
1154
+ <xsl:when test="normalize-space($locality_part_lang_second) != ''">
1155
+ <xsl:variable name="localized_part">
1156
+ <xsl:value-of select="$locality_part_lang_second"/>
1157
+ </xsl:variable>
1158
+ <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1159
+ </xsl:when>
1160
+ <xsl:otherwise>
1161
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang_second]),'#',$part)"/>
1162
+ </xsl:otherwise>
1163
+ </xsl:choose>
1164
+ </xsl:if>
1125
1165
  </xsl:if>
1126
- <xsl:value-of select="$part-second"/>
1127
- </xsl:if>
1166
+ <xsl:value-of select="."/>
1167
+ </xsl:for-each>
1168
+
1128
1169
  </fo:block>
1129
1170
  </fo:block-container>
1130
1171
  </fo:block-container>
@@ -1331,34 +1372,38 @@
1331
1372
  <xsl:template name="printTitles">
1332
1373
  <xsl:param name="lang"/>
1333
1374
 
1334
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-intro']))"/>
1335
-
1336
- <xsl:variable name="title-main" select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-main']))"/>
1337
- <xsl:if test="normalize-space($title-main) != ''">
1338
- <!-- <xsl:text> — </xsl:text> -->
1339
- <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1340
- <xsl:value-of select="$title-main"/>
1341
- </xsl:if>
1375
+ <xsl:variable name="titles_doc_">
1376
+ <title-intro><xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-intro']))"/></title-intro>
1377
+ <title-main><xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-main']))"/></title-main>
1378
+ <title-part><xsl:value-of select="/iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-part']"/></title-part>
1379
+ </xsl:variable>
1380
+ <xsl:variable name="titles_doc" select="xalan:nodeset($titles_doc_)"/>
1342
1381
 
1343
- <xsl:variable name="title-part" select="/iec:iec-standard/iec:bibdata/iec:title[@language = $lang and @type = 'title-part']"/>
1344
- <xsl:if test="$title-part != ''">
1345
- <!-- <xsl:text> </xsl:text> -->
1346
- <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1347
- <fo:block> </fo:block>
1348
- <fo:block>
1349
- <xsl:if test="$part != ''">
1350
- <!-- Example: Part 1: Riz -->
1351
- <xsl:variable name="localized_part">
1352
- <xsl:call-template name="getLocalizedString">
1353
- <xsl:with-param name="key">Part.sg</xsl:with-param>
1354
- <xsl:with-param name="lang" select="$lang"/>
1355
- </xsl:call-template>
1356
- </xsl:variable>
1357
- <xsl:value-of select="concat($localized_part ,' ', $part, ': ')"/>
1358
- </xsl:if>
1359
- <xsl:value-of select="$title-part"/>
1360
- </fo:block>
1361
- </xsl:if>
1382
+ <xsl:for-each select="$titles_doc/*[normalize-space() != '']">
1383
+ <xsl:if test="position() != 1">
1384
+ <xsl:value-of select="concat(' ',$en_dash ,' ')"/>
1385
+ </xsl:if>
1386
+ <xsl:choose>
1387
+ <xsl:when test="self::title-part">
1388
+ <fo:block> </fo:block>
1389
+ <fo:block>
1390
+ <xsl:if test="$part != ''">
1391
+ <xsl:variable name="localized_part">
1392
+ <xsl:call-template name="getLocalizedString">
1393
+ <xsl:with-param name="key">Part.sg</xsl:with-param>
1394
+ <xsl:with-param name="lang" select="$lang"/>
1395
+ </xsl:call-template>
1396
+ </xsl:variable>
1397
+ <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1398
+ </xsl:if>
1399
+ <xsl:value-of select="."/>
1400
+ </fo:block>
1401
+ </xsl:when>
1402
+ <xsl:otherwise>
1403
+ <xsl:value-of select="."/>
1404
+ </xsl:otherwise>
1405
+ </xsl:choose>
1406
+ </xsl:for-each>
1362
1407
  </xsl:template>
1363
1408
 
1364
1409
  <xsl:template match="node()">
@@ -2575,7 +2620,6 @@
2575
2620
 
2576
2621
  <xsl:attribute-set name="table-header-cell-style">
2577
2622
  <xsl:attribute name="font-weight">bold</xsl:attribute>
2578
- <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2579
2623
  <xsl:attribute name="padding-left">1mm</xsl:attribute>
2580
2624
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2581
2625
  <xsl:attribute name="display-align">center</xsl:attribute>
@@ -2588,7 +2632,6 @@
2588
2632
 
2589
2633
  <xsl:attribute-set name="table-cell-style">
2590
2634
  <xsl:attribute name="display-align">center</xsl:attribute>
2591
- <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2592
2635
  <xsl:attribute name="padding-left">1mm</xsl:attribute>
2593
2636
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2594
2637
 
@@ -3357,7 +3400,7 @@
3357
3400
  <xsl:apply-templates select="." mode="contents"/>
3358
3401
  </xsl:for-each>
3359
3402
 
3360
- <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
3403
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0]">
3361
3404
  <xsl:sort select="@displayorder" data-type="number"/>
3362
3405
  <xsl:apply-templates select="." mode="contents"/>
3363
3406
  </xsl:for-each>
@@ -3811,7 +3854,7 @@
3811
3854
  <xsl:variable name="isDeleted" select="@deleted"/>
3812
3855
 
3813
3856
  <xsl:choose>
3814
- <xsl:when test="@width">
3857
+ <xsl:when test="@width and @width != 'full-page-width' and @width != 'text-width'">
3815
3858
 
3816
3859
  <!-- centered table when table name is centered (see table-name-style) -->
3817
3860
 
@@ -4141,6 +4184,7 @@
4141
4184
  This makes columns with large differences between minimum and maximum widths wider than columns with smaller differences. -->
4142
4185
  <xsl:when test="(@width_max &gt; $page_width and @width_min &lt; $page_width) or (@width_min &gt;= $page_width)">
4143
4186
  <!-- difference between the available space and the minimum table width -->
4187
+ <_width_min><xsl:value-of select="@width_min"/></_width_min>
4144
4188
  <xsl:variable name="W" select="$page_width - @width_min"/>
4145
4189
  <W><xsl:value-of select="$W"/></W>
4146
4190
  <!-- difference between maximum and minimum width of the table -->
@@ -4304,6 +4348,10 @@
4304
4348
  </xsl:choose>
4305
4349
  </xsl:variable>
4306
4350
 
4351
+ <xsl:variable name="table_fn_block">
4352
+ <xsl:call-template name="table_fn_display"/>
4353
+ </xsl:variable>
4354
+
4307
4355
  <xsl:variable name="tableWithNotesAndFootnotes">
4308
4356
 
4309
4357
  <fo:table keep-with-previous="always">
@@ -4355,18 +4403,26 @@
4355
4403
 
4356
4404
  <xsl:apply-templates select="../*[local-name()='note']"/>
4357
4405
 
4358
- <!-- horizontal row separator -->
4406
+ <xsl:variable name="isDisplayRowSeparator">
4407
+ true
4359
4408
 
4360
- <xsl:if test="../*[local-name()='note']">
4409
+ </xsl:variable>
4410
+
4411
+ <!-- horizontal row separator -->
4412
+ <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
4413
+ <xsl:if test="../*[local-name()='note'] and normalize-space($table_fn_block) != ''">
4361
4414
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
4415
+
4362
4416
  <xsl:call-template name="setBordersTableArray"/>
4363
4417
  <fo:block font-size="1pt"> </fo:block>
4364
4418
  </fo:block-container>
4365
4419
  </xsl:if>
4420
+ </xsl:if>
4366
4421
 
4367
4422
  <!-- fn processing -->
4368
4423
 
4369
- <xsl:call-template name="table_fn_display"/>
4424
+ <!-- <xsl:call-template name="table_fn_display" /> -->
4425
+ <xsl:copy-of select="$table_fn_block"/>
4370
4426
 
4371
4427
  <!-- for PAS display Notes after footnotes -->
4372
4428
 
@@ -4483,6 +4539,28 @@
4483
4539
  </fo:table-row>
4484
4540
  </xsl:template>
4485
4541
 
4542
+ <xsl:template name="setBorderUnderRow">
4543
+ <xsl:variable name="border_under_row_" select="normalize-space(ancestor::*[local-name() = 'table'][1]/@border-under-row)"/>
4544
+ <xsl:choose>
4545
+ <xsl:when test="$border_under_row_ != ''">
4546
+ <xsl:variable name="table_id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
4547
+ <xsl:variable name="row_num_"><xsl:number level="any" count="*[local-name() = 'table'][@id = $table_id]//*[local-name() = 'tr']"/></xsl:variable>
4548
+ <xsl:variable name="row_num" select="number($row_num_) - 1"/> <!-- because values in border-under-row start with 0 -->
4549
+ <xsl:variable name="border_under_row">
4550
+ <xsl:call-template name="split">
4551
+ <xsl:with-param name="pText" select="$border_under_row_"/>
4552
+ </xsl:call-template>
4553
+ </xsl:variable>
4554
+ <xsl:if test="xalan:nodeset($border_under_row)/item[. = normalize-space($row_num)]">
4555
+ <xsl:attribute name="border-bottom"><xsl:value-of select="$table-border"/></xsl:attribute>
4556
+ </xsl:if>
4557
+ </xsl:when>
4558
+ <xsl:otherwise>
4559
+ <xsl:attribute name="border-bottom"><xsl:value-of select="$table-border"/></xsl:attribute>
4560
+ </xsl:otherwise>
4561
+ </xsl:choose>
4562
+ </xsl:template>
4563
+
4486
4564
  <!-- row in table footer (tfoot) -->
4487
4565
  <xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
4488
4566
  <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
@@ -4778,17 +4856,20 @@
4778
4856
  <xsl:for-each select="xalan:nodeset($references)//fn">
4779
4857
  <xsl:variable name="reference" select="@reference"/>
4780
4858
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
4781
- <fo:block xsl:use-attribute-sets="table-fn-style">
4782
4859
 
4783
- <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
4860
+ <fo:block xsl:use-attribute-sets="table-fn-style">
4784
4861
 
4785
- <xsl:value-of select="@reference"/>
4862
+ <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
4863
+
4864
+ <xsl:value-of select="@reference"/>
4865
+
4866
+ </fo:inline>
4867
+ <fo:inline xsl:use-attribute-sets="table-fn-body-style">
4868
+ <xsl:copy-of select="./node()"/>
4869
+ </fo:inline>
4870
+
4871
+ </fo:block>
4786
4872
 
4787
- </fo:inline>
4788
- <fo:inline xsl:use-attribute-sets="table-fn-body-style">
4789
- <xsl:copy-of select="./node()"/>
4790
- </fo:inline>
4791
- </fo:block>
4792
4873
  </xsl:if>
4793
4874
  </xsl:for-each>
4794
4875
  </xsl:template>
@@ -4817,8 +4898,16 @@
4817
4898
  <!-- figure's footnotes rendering -->
4818
4899
  <xsl:template name="fn_display_figure">
4819
4900
 
4901
+ <!-- current figure id -->
4902
+ <xsl:variable name="figure_id_">
4903
+ <xsl:value-of select="@id"/>
4904
+ <xsl:if test="not(@id)"><xsl:value-of select="generate-id()"/></xsl:if>
4905
+ </xsl:variable>
4906
+ <xsl:variable name="figure_id" select="normalize-space($figure_id_)"/>
4907
+
4908
+ <!-- all footnotes relates to the current figure -->
4820
4909
  <xsl:variable name="references">
4821
- <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
4910
+ <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])][ancestor::*[local-name() = 'figure'][1][@id = $figure_id]]">
4822
4911
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
4823
4912
  <xsl:apply-templates/>
4824
4913
  </fn>
@@ -4831,91 +4920,93 @@
4831
4920
  true
4832
4921
  </xsl:variable>
4833
4922
 
4834
- <!-- current hierarchy is 'figure' element -->
4835
- <xsl:variable name="following_dl_colwidths">
4836
- <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
4837
- <xsl:variable name="simple-table">
4838
- <!-- <xsl:variable name="doc_ns">
4839
- <xsl:if test="$namespace = 'bipm'">bipm</xsl:if>
4840
- </xsl:variable>
4841
- <xsl:variable name="ns">
4842
- <xsl:choose>
4843
- <xsl:when test="normalize-space($doc_ns) != ''">
4844
- <xsl:value-of select="normalize-space($doc_ns)"/>
4845
- </xsl:when>
4846
- <xsl:otherwise>
4847
- <xsl:value-of select="substring-before(name(/*), '-')"/>
4848
- </xsl:otherwise>
4849
- </xsl:choose>
4850
- </xsl:variable> -->
4923
+ <fo:block>
4851
4924
 
4852
- <xsl:for-each select="*[local-name() = 'dl'][1]">
4853
- <tbody>
4854
- <xsl:apply-templates mode="dl"/>
4855
- </tbody>
4856
- </xsl:for-each>
4857
- </xsl:variable>
4925
+ <!-- current hierarchy is 'figure' element -->
4926
+ <xsl:variable name="following_dl_colwidths">
4927
+ <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
4928
+ <xsl:variable name="simple-table">
4929
+ <!-- <xsl:variable name="doc_ns">
4930
+ <xsl:if test="$namespace = 'bipm'">bipm</xsl:if>
4931
+ </xsl:variable>
4932
+ <xsl:variable name="ns">
4933
+ <xsl:choose>
4934
+ <xsl:when test="normalize-space($doc_ns) != ''">
4935
+ <xsl:value-of select="normalize-space($doc_ns)"/>
4936
+ </xsl:when>
4937
+ <xsl:otherwise>
4938
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
4939
+ </xsl:otherwise>
4940
+ </xsl:choose>
4941
+ </xsl:variable> -->
4858
4942
 
4859
- <xsl:call-template name="calculate-column-widths">
4860
- <xsl:with-param name="cols-count" select="2"/>
4861
- <xsl:with-param name="table" select="$simple-table"/>
4862
- </xsl:call-template>
4943
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
4944
+ <tbody>
4945
+ <xsl:apply-templates mode="dl"/>
4946
+ </tbody>
4947
+ </xsl:for-each>
4948
+ </xsl:variable>
4863
4949
 
4864
- </xsl:if>
4865
- </xsl:variable>
4950
+ <xsl:call-template name="calculate-column-widths">
4951
+ <xsl:with-param name="cols-count" select="2"/>
4952
+ <xsl:with-param name="table" select="$simple-table"/>
4953
+ </xsl:call-template>
4866
4954
 
4867
- <xsl:variable name="maxlength_dt">
4868
- <xsl:for-each select="*[local-name() = 'dl'][1]">
4869
- <xsl:call-template name="getMaxLength_dt"/>
4870
- </xsl:for-each>
4871
- </xsl:variable>
4955
+ </xsl:if>
4956
+ </xsl:variable>
4872
4957
 
4873
- <fo:block>
4874
- <fo:table width="95%" table-layout="fixed">
4875
- <xsl:if test="normalize-space($key_iso) = 'true'">
4876
- <xsl:attribute name="font-size">10pt</xsl:attribute>
4958
+ <xsl:variable name="maxlength_dt">
4959
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
4960
+ <xsl:call-template name="getMaxLength_dt"/>
4961
+ </xsl:for-each>
4962
+ </xsl:variable>
4877
4963
 
4878
- <xsl:attribute name="font-size">8pt</xsl:attribute>
4964
+ <fo:table width="95%" table-layout="fixed">
4965
+ <xsl:if test="normalize-space($key_iso) = 'true'">
4966
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
4879
4967
 
4880
- </xsl:if>
4881
- <xsl:choose>
4882
- <!-- if there 'dl', then set same columns width -->
4883
- <xsl:when test="xalan:nodeset($following_dl_colwidths)//column">
4884
- <xsl:call-template name="setColumnWidth_dl">
4885
- <xsl:with-param name="colwidths" select="$following_dl_colwidths"/>
4886
- <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
4887
- </xsl:call-template>
4888
- </xsl:when>
4889
- <xsl:otherwise>
4890
- <fo:table-column column-width="15%"/>
4891
- <fo:table-column column-width="85%"/>
4892
- </xsl:otherwise>
4893
- </xsl:choose>
4894
- <fo:table-body>
4895
- <xsl:for-each select="xalan:nodeset($references)//fn">
4896
- <xsl:variable name="reference" select="@reference"/>
4897
- <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
4898
- <fo:table-row>
4899
- <fo:table-cell>
4900
- <fo:block>
4901
- <fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
4902
- <xsl:value-of select="@reference"/>
4903
- </fo:inline>
4904
- </fo:block>
4905
- </fo:table-cell>
4906
- <fo:table-cell>
4907
- <fo:block xsl:use-attribute-sets="figure-fn-body-style">
4908
- <xsl:if test="normalize-space($key_iso) = 'true'">
4968
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
4909
4969
 
4910
- </xsl:if>
4911
- <xsl:copy-of select="./node()"/>
4912
- </fo:block>
4913
- </fo:table-cell>
4914
- </fo:table-row>
4915
4970
  </xsl:if>
4916
- </xsl:for-each>
4917
- </fo:table-body>
4918
- </fo:table>
4971
+ <xsl:choose>
4972
+ <!-- if there 'dl', then set same columns width -->
4973
+ <xsl:when test="xalan:nodeset($following_dl_colwidths)//column">
4974
+ <xsl:call-template name="setColumnWidth_dl">
4975
+ <xsl:with-param name="colwidths" select="$following_dl_colwidths"/>
4976
+ <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
4977
+ </xsl:call-template>
4978
+ </xsl:when>
4979
+ <xsl:otherwise>
4980
+ <fo:table-column column-width="5%"/>
4981
+ <fo:table-column column-width="95%"/>
4982
+ </xsl:otherwise>
4983
+ </xsl:choose>
4984
+ <fo:table-body>
4985
+ <xsl:for-each select="xalan:nodeset($references)//fn">
4986
+ <xsl:variable name="reference" select="@reference"/>
4987
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
4988
+ <fo:table-row>
4989
+ <fo:table-cell>
4990
+ <fo:block>
4991
+ <fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
4992
+ <xsl:value-of select="@reference"/>
4993
+ </fo:inline>
4994
+ </fo:block>
4995
+ </fo:table-cell>
4996
+ <fo:table-cell>
4997
+ <fo:block xsl:use-attribute-sets="figure-fn-body-style">
4998
+ <xsl:if test="normalize-space($key_iso) = 'true'">
4999
+
5000
+ </xsl:if>
5001
+ <xsl:copy-of select="./node()"/>
5002
+ </fo:block>
5003
+ </fo:table-cell>
5004
+ </fo:table-row>
5005
+ </xsl:if>
5006
+ </xsl:for-each>
5007
+ </fo:table-body>
5008
+ </fo:table>
5009
+
4919
5010
  </fo:block>
4920
5011
  </xsl:if>
4921
5012
 
@@ -4987,7 +5078,7 @@
4987
5078
 
4988
5079
  <xsl:variable name="key_iso">
4989
5080
 
4990
- <xsl:if test="$parent = 'figure' or $parent = 'formula'">true</xsl:if>
5081
+ <xsl:if test="$parent = 'figure' or $parent = 'formula' or ../@key = 'true'">true</xsl:if>
4991
5082
  <!-- and (not(../@class) or ../@class !='pseudocode') -->
4992
5083
  </xsl:variable>
4993
5084
 
@@ -5000,12 +5091,13 @@
5000
5091
 
5001
5092
  <xsl:attribute name="margin-bottom">15pt</xsl:attribute>
5002
5093
 
5003
- <xsl:variable name="title-where">
5094
+ <!-- <xsl:variable name="title-where">
5004
5095
  <xsl:call-template name="getLocalizedString">
5005
5096
  <xsl:with-param name="key">where</xsl:with-param>
5006
5097
  </xsl:call-template>
5007
5098
  </xsl:variable>
5008
- <xsl:value-of select="$title-where"/>
5099
+ <xsl:value-of select="$title-where"/> -->
5100
+ <xsl:apply-templates select="preceding-sibling::*[1][local-name() = 'p' and @keep-with-next = 'true']/node()"/>
5009
5101
  </fo:block>
5010
5102
  <fo:block>
5011
5103
 
@@ -5021,12 +5113,14 @@
5021
5113
 
5022
5114
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
5023
5115
 
5024
- <xsl:variable name="title-where">
5116
+ <!-- <xsl:variable name="title-where">
5025
5117
  <xsl:call-template name="getLocalizedString">
5026
5118
  <xsl:with-param name="key">where</xsl:with-param>
5027
5119
  </xsl:call-template>
5028
5120
  </xsl:variable>
5029
- <xsl:value-of select="$title-where"/>
5121
+ <xsl:value-of select="$title-where"/><xsl:if test="$namespace = 'bsi' or $namespace = 'itu'">:</xsl:if> -->
5122
+ <!-- preceding 'p' with word 'where' -->
5123
+ <xsl:apply-templates select="preceding-sibling::*[1][local-name() = 'p' and @keep-with-next = 'true']/node()"/>
5030
5124
  </fo:block>
5031
5125
  </xsl:when> <!-- END: a few components -->
5032
5126
  <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
@@ -5214,6 +5308,9 @@
5214
5308
 
5215
5309
  </xsl:template> <!-- END: dl -->
5216
5310
 
5311
+ <!-- ignore 'p' with 'where' in formula, before 'dl' -->
5312
+ <xsl:template match="*[local-name() = 'formula']/*[local-name() = 'p' and @keep-with-next = 'true' and following-sibling::*[1][local-name() = 'dl']]"/>
5313
+
5217
5314
  <xsl:template match="*[local-name() = 'dl']/*[local-name() = 'name']">
5218
5315
  <xsl:param name="process">false</xsl:param>
5219
5316
  <xsl:if test="$process = 'true'">
@@ -5746,12 +5843,12 @@
5746
5843
  <xsl:param name="value"/>
5747
5844
  <xsl:variable name="add_width" select="string-length($value) * 20"/>
5748
5845
  <xsl:variable name="maxwidth" select="60 + $add_width"/>
5749
- <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
5750
- <xsl:attribute name="height">5mm</xsl:attribute>
5846
+ <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-10%"><!-- alignment-baseline="middle" -->
5847
+ <xsl:attribute name="height">3.5mm</xsl:attribute> <!-- 5mm -->
5751
5848
  <xsl:attribute name="content-width">100%</xsl:attribute>
5752
5849
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
5753
5850
  <xsl:attribute name="scaling">uniform</xsl:attribute>
5754
- <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
5851
+ <!-- <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
5755
5852
  <g>
5756
5853
  <xsl:if test="$type = 'closing' or $type = 'end'">
5757
5854
  <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
@@ -5765,6 +5862,27 @@
5765
5862
  </xsl:if>
5766
5863
  <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
5767
5864
  </text>
5865
+ </svg> -->
5866
+ <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
5867
+ <g>
5868
+ <xsl:if test="$type = 'closing' or $type = 'end'">
5869
+ <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
5870
+ </xsl:if>
5871
+ <polyline points="0,2.5 {$maxwidth},2.5 {$maxwidth + 20},40 {$maxwidth},77.5 0,77.5" stroke="black" stroke-width="5" fill="white"/>
5872
+ <line x1="9.5" y1="0" x2="9.5" y2="80" stroke="black" stroke-width="19"/>
5873
+ </g>
5874
+ <xsl:variable name="text_x">
5875
+ <xsl:choose>
5876
+ <xsl:when test="$type = 'closing' or $type = 'end'">28</xsl:when>
5877
+ <xsl:otherwise>22</xsl:otherwise>
5878
+ </xsl:choose>
5879
+ </xsl:variable>
5880
+ <text font-family="Arial" x="{$text_x}" y="50" font-size="40pt">
5881
+ <xsl:value-of select="$kind"/>
5882
+ </text>
5883
+ <text font-family="Arial" x="{$text_x + 33}" y="65" font-size="38pt">
5884
+ <xsl:value-of select="$value"/>
5885
+ </text>
5768
5886
  </svg>
5769
5887
  </fo:instream-foreign-object>
5770
5888
  </xsl:template>
@@ -5824,6 +5942,77 @@
5824
5942
  <fo:block break-after="page"/>
5825
5943
  </xsl:template>
5826
5944
 
5945
+ <!-- ================================================================ -->
5946
+ <!-- landscape/portrait orientation processing (post-processing step) -->
5947
+ <!-- ================================================================ -->
5948
+ <xsl:template match="@*|node()" mode="landscape_portrait">
5949
+ <xsl:copy>
5950
+ <xsl:apply-templates select="@*|node()" mode="landscape_portrait"/>
5951
+ </xsl:copy>
5952
+ </xsl:template>
5953
+
5954
+ <xsl:template match="*[local-name() = 'pagebreak'][not(following-sibling::*[1][local-name() = 'pagebreak'])]" mode="landscape_portrait">
5955
+
5956
+ <!-- determine pagebreak is last element before </fo:flow> or not -->
5957
+ <xsl:variable name="isLast">
5958
+ <xsl:for-each select="ancestor-or-self::*[ancestor::fo:flow]">
5959
+ <xsl:if test="following-sibling::*">false</xsl:if>
5960
+ </xsl:for-each>
5961
+ </xsl:variable>
5962
+
5963
+ <xsl:if test="contains($isLast, 'false')">
5964
+
5965
+ <xsl:variable name="orientation" select="normalize-space(@orientation)"/>
5966
+
5967
+ <xsl:variable name="tree_">
5968
+ <xsl:for-each select="ancestor::*[ancestor::fo:flow]">
5969
+ <element pos="{position()}">
5970
+ <xsl:value-of select="name()"/>
5971
+ </element>
5972
+ </xsl:for-each>
5973
+ </xsl:variable>
5974
+ <xsl:variable name="tree" select="xalan:nodeset($tree_)"/>
5975
+
5976
+ <!-- close fo:page-sequence (closing preceding fo elements) -->
5977
+ <xsl:for-each select="$tree//element">
5978
+ <xsl:sort data-type="number" order="descending" select="@pos"/>
5979
+ <xsl:text disable-output-escaping="yes">&lt;/</xsl:text>
5980
+ <xsl:value-of select="."/>
5981
+ <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
5982
+ </xsl:for-each>
5983
+ <xsl:text disable-output-escaping="yes">&lt;/fo:flow&gt;</xsl:text>
5984
+ <xsl:text disable-output-escaping="yes">&lt;/fo:page-sequence&gt;</xsl:text>
5985
+
5986
+ <!-- <pagebreak/> -->
5987
+ <!-- create a new fo:page-sequence (opening fo elements) -->
5988
+ <xsl:text disable-output-escaping="yes">&lt;fo:page-sequence master-reference="document</xsl:text><xsl:if test="$orientation != ''">-<xsl:value-of select="$orientation"/></xsl:if><xsl:text disable-output-escaping="yes">"&gt;</xsl:text>
5989
+ <fo:static-content flow-name="xsl-footnote-separator">
5990
+ <fo:block>
5991
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
5992
+ </fo:block>
5993
+ </fo:static-content>
5994
+ <xsl:call-template name="insertHeaderFooter"/>
5995
+ <xsl:text disable-output-escaping="yes">&lt;fo:flow flow-name="xsl-region-body"&gt;</xsl:text>
5996
+
5997
+ <xsl:for-each select="$tree//element">
5998
+ <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
5999
+ <xsl:value-of select="."/>
6000
+ <xsl:for-each select="@*[local-name() != 'pos']">
6001
+ <xsl:text> </xsl:text>
6002
+ <xsl:value-of select="local-name()"/>
6003
+ <xsl:text>="</xsl:text>
6004
+ <xsl:value-of select="."/>
6005
+ <xsl:text>"</xsl:text>
6006
+ </xsl:for-each>
6007
+ <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
6008
+ </xsl:for-each>
6009
+
6010
+ </xsl:if>
6011
+ </xsl:template>
6012
+ <!-- ================================================================ -->
6013
+ <!-- END: landscape/portrait orientation processing (post-processing step) -->
6014
+ <!-- ================================================================ -->
6015
+
5827
6016
  <!-- Example: <span style="font-family:&quot;Noto Sans JP&quot;">styled text</span> -->
5828
6017
  <xsl:template match="*[local-name() = 'span'][@style]" priority="2">
5829
6018
  <xsl:variable name="styles__">
@@ -6019,18 +6208,34 @@
6019
6208
 
6020
6209
  <xsl:template name="add-zero-spaces-java">
6021
6210
  <xsl:param name="text" select="."/>
6022
- <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, arrow right -->
6023
- <xsl:variable name="text1" select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| |→)','$1​')"/>
6211
+
6212
+ <!-- add zero-width space (#x200B) after dot with next non-digit -->
6213
+ <xsl:variable name="text1" select="java:replaceAll(java:java.lang.String.new($text),'(\.)([^\d\s])','$1​$2')"/>
6214
+ <!-- add zero-width space (#x200B) after characters: dash, equal, underscore, em dash, thin space, arrow right, ; -->
6215
+ <xsl:variable name="text2" select="java:replaceAll(java:java.lang.String.new($text1),'(-|=|_|—| |→|;)','$1​')"/>
6216
+ <!-- add zero-width space (#x200B) after characters: colon, if there aren't digits after -->
6217
+ <xsl:variable name="text3" select="java:replaceAll(java:java.lang.String.new($text2),'(:)(\D)','$1​$2')"/>
6024
6218
  <!-- add zero-width space (#x200B) after characters: 'great than' -->
6025
- <xsl:variable name="text2" select="java:replaceAll(java:java.lang.String.new($text1), '(\u003e)(?!\u003e)', '$1​')"/><!-- negative lookahead: 'great than' not followed by 'great than' -->
6219
+ <xsl:variable name="text4" select="java:replaceAll(java:java.lang.String.new($text3), '(\u003e)(?!\u003e)', '$1​')"/><!-- negative lookahead: 'great than' not followed by 'great than' -->
6026
6220
  <!-- add zero-width space (#x200B) before characters: 'less than' -->
6027
- <xsl:variable name="text3" select="java:replaceAll(java:java.lang.String.new($text2), '(?&lt;!\u003c)(\u003c)', '​$1')"/> <!-- (?<!\u003c)(\u003c) --> <!-- negative lookbehind: 'less than' not preceeded by 'less than' -->
6221
+ <xsl:variable name="text5" select="java:replaceAll(java:java.lang.String.new($text4), '(?&lt;!\u003c)(\u003c)', '​$1')"/> <!-- (?<!\u003c)(\u003c) --> <!-- negative lookbehind: 'less than' not preceeded by 'less than' -->
6028
6222
  <!-- add zero-width space (#x200B) before character: { -->
6029
- <xsl:variable name="text4" select="java:replaceAll(java:java.lang.String.new($text3), '(?&lt;!\W)(\{)', '​$1')"/> <!-- negative lookbehind: '{' not preceeded by 'punctuation char' -->
6223
+ <xsl:variable name="text6" select="java:replaceAll(java:java.lang.String.new($text5), '(?&lt;!\W)(\{)', '​$1')"/> <!-- negative lookbehind: '{' not preceeded by 'punctuation char' -->
6030
6224
  <!-- add zero-width space (#x200B) after character: , -->
6031
- <xsl:variable name="text5" select="java:replaceAll(java:java.lang.String.new($text4), '(\,)(?!\d)', '$1​')"/> <!-- negative lookahead: ',' not followed by digit -->
6225
+ <xsl:variable name="text7" select="java:replaceAll(java:java.lang.String.new($text6), '(\,)(?!\d)', '$1​')"/> <!-- negative lookahead: ',' not followed by digit -->
6226
+ <!-- add zero-width space (#x200B) after character: '/' -->
6227
+ <xsl:variable name="text8" select="java:replaceAll(java:java.lang.String.new($text7), '(\u002f)(?!\u002f)', '$1​')"/><!-- negative lookahead: '/' not followed by '/' -->
6032
6228
 
6033
- <xsl:value-of select="$text5"/>
6229
+ <xsl:variable name="text9">
6230
+ <xsl:choose>
6231
+ <xsl:when test="$isGenerateTableIF = 'true'">
6232
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text8), '([\u3000-\u9FFF])', '$1​')"/> <!-- 3000 - CJK Symbols and Punctuation ... 9FFF CJK Unified Ideographs-->
6233
+ </xsl:when>
6234
+ <xsl:otherwise><xsl:value-of select="$text8"/></xsl:otherwise>
6235
+ </xsl:choose>
6236
+ </xsl:variable>
6237
+
6238
+ <xsl:value-of select="$text9"/>
6034
6239
  </xsl:template>
6035
6240
 
6036
6241
  <xsl:template name="add-zero-spaces-link-java">
@@ -6038,8 +6243,10 @@
6038
6243
 
6039
6244
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$1')"/> <!-- http://. https:// or www. -->
6040
6245
  <xsl:variable name="url_continue" select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$2')"/>
6041
- <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
6042
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—| |,|/)','$1​')"/>
6246
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, comma, slash, @ -->
6247
+ <xsl:variable name="url" select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—| |,|/|@)','$1​')"/>
6248
+ <!-- remove zero-width space at the end -->
6249
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($url), '​$', '')"/>
6043
6250
  </xsl:template>
6044
6251
 
6045
6252
  <!-- add zero space after dash character (for table's entries) -->
@@ -6176,7 +6383,7 @@
6176
6383
  </xsl:copy>
6177
6384
  </xsl:template>
6178
6385
 
6179
- <xsl:template match="*[local-name()='th' or local-name() = 'td'][not(*[local-name()='br']) and not(*[local-name()='p']) and not(*[local-name()='sourcecode'])]" mode="table-without-br">
6386
+ <xsl:template match="*[local-name()='th' or local-name() = 'td'][not(*[local-name()='br']) and not(*[local-name()='p']) and not(*[local-name()='sourcecode']) and not(*[local-name()='ul']) and not(*[local-name()='ol'])]" mode="table-without-br">
6180
6387
  <xsl:copy>
6181
6388
  <xsl:copy-of select="@*"/>
6182
6389
  <p>
@@ -6252,6 +6459,14 @@
6252
6459
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),' {2,}',' ')"/>
6253
6460
  </xsl:template>
6254
6461
 
6462
+ <xsl:template match="*[local-name()='th' or local-name()='td']//*[local-name() = 'ol' or local-name() = 'ul']" mode="table-without-br">
6463
+ <xsl:apply-templates mode="table-without-br"/>
6464
+ </xsl:template>
6465
+
6466
+ <xsl:template match="*[local-name()='th' or local-name()='td']//*[local-name() = 'li']" mode="table-without-br">
6467
+ <xsl:apply-templates mode="table-without-br"/>
6468
+ </xsl:template>
6469
+
6255
6470
  <!-- mode="table-without-br" -->
6256
6471
  <!-- ================================== -->
6257
6472
  <!-- END: Step 0. replace <br/> to <p>...</p> -->
@@ -6384,9 +6599,28 @@
6384
6599
  </xsl:variable>
6385
6600
  <xsl:copy-of select="$newRow"/>
6386
6601
 
6387
- <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
6388
- <xsl:with-param name="previousRow" select="$newRow"/>
6389
- </xsl:apply-templates>
6602
+ <!-- optimize to prevent StackOverflowError, just copy next 'tr' -->
6603
+ <xsl:variable name="currrow_num" select="count(preceding-sibling::tr) + 1"/>
6604
+ <xsl:variable name="nextrow_without_rowspan_" select="count(following-sibling::tr[*[@rowspan and @rowspan != 1]][1]/preceding-sibling::tr) + 1"/>
6605
+ <xsl:variable name="nextrow_without_rowspan" select="$nextrow_without_rowspan_ - $currrow_num"/>
6606
+ <xsl:choose>
6607
+ <xsl:when test="not(xalan:nodeset($newRow)/*/*[@rowspan and @rowspan != 1]) and $nextrow_without_rowspan &lt;= 0">
6608
+ <xsl:copy-of select="following-sibling::tr"/>
6609
+ </xsl:when>
6610
+ <!-- <xsl:when test="xalan:nodeset($newRow)/*[not(@rowspan) or (@rowspan = 1)] and $nextrow_without_rowspan &gt; 0">
6611
+ <xsl:copy-of select="following-sibling::tr[position() &lt;= $nextrow_without_rowspan]"/>
6612
+
6613
+ <xsl:copy-of select="following-sibling::tr[$nextrow_without_rowspan + 1]"/>
6614
+ <xsl:apply-templates select="following-sibling::tr[$nextrow_without_rowspan + 2]" mode="simple-table-rowspan">
6615
+ <xsl:with-param name="previousRow" select="following-sibling::tr[$nextrow_without_rowspan + 1]"/>
6616
+ </xsl:apply-templates>
6617
+ </xsl:when> -->
6618
+ <xsl:otherwise>
6619
+ <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
6620
+ <xsl:with-param name="previousRow" select="$newRow"/>
6621
+ </xsl:apply-templates>
6622
+ </xsl:otherwise>
6623
+ </xsl:choose>
6390
6624
  </xsl:template>
6391
6625
  <!-- End mode simple-table-rowspan -->
6392
6626
 
@@ -6549,6 +6783,27 @@
6549
6783
  </xsl:call-template>
6550
6784
  </xsl:template>
6551
6785
 
6786
+ <xsl:template match="*[local-name() = 'link'][normalize-space() = '']" mode="td_text_with_formatting">
6787
+ <xsl:variable name="link">
6788
+ <link_updated>
6789
+ <xsl:variable name="target_text">
6790
+ <xsl:choose>
6791
+ <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
6792
+ <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
6793
+ </xsl:when>
6794
+ <xsl:otherwise>
6795
+ <xsl:value-of select="normalize-space(@target)"/>
6796
+ </xsl:otherwise>
6797
+ </xsl:choose>
6798
+ </xsl:variable>
6799
+ <xsl:value-of select="$target_text"/>
6800
+ </link_updated>
6801
+ </xsl:variable>
6802
+ <xsl:for-each select="xalan:nodeset($link)/*">
6803
+ <xsl:apply-templates mode="td_text_with_formatting"/>
6804
+ </xsl:for-each>
6805
+ </xsl:template>
6806
+
6552
6807
  <xsl:template name="getFormattingTags">
6553
6808
  <tags>
6554
6809
  <xsl:if test="ancestor::*[local-name() = 'strong']"><tag>strong</tag></xsl:if>
@@ -6890,7 +7145,7 @@
6890
7145
  </xsl:variable>
6891
7146
  <fo:inline xsl:use-attribute-sets="link-style">
6892
7147
 
6893
- <xsl:if test="starts-with(normalize-space(@target), 'mailto:')">
7148
+ <xsl:if test="starts-with(normalize-space(@target), 'mailto:') and not(ancestor::*[local-name() = 'td'])">
6894
7149
  <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6895
7150
  </xsl:if>
6896
7151
 
@@ -7069,7 +7324,7 @@
7069
7324
 
7070
7325
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
7071
7326
 
7072
- <fo:block-container margin-left="0mm">
7327
+ <fo:block-container margin-left="0mm" margin-right="0mm">
7073
7328
 
7074
7329
  <fo:block>
7075
7330
 
@@ -7245,13 +7500,16 @@
7245
7500
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
7246
7501
  </xsl:call-template>
7247
7502
 
7503
+ <!-- Example: Dimensions in millimeters -->
7504
+ <xsl:apply-templates select="*[local-name() = 'note'][@type = 'units']"/>
7505
+
7248
7506
  <fo:block xsl:use-attribute-sets="figure-style">
7249
- <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
7507
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
7250
7508
  </fo:block>
7251
- <xsl:call-template name="fn_display_figure"/>
7252
- <xsl:for-each select="*[local-name() = 'note']">
7509
+ <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
7253
7510
  <xsl:call-template name="note"/>
7254
7511
  </xsl:for-each>
7512
+ <xsl:call-template name="fn_display_figure"/>
7255
7513
 
7256
7514
  <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
7257
7515
 
@@ -7314,7 +7572,13 @@
7314
7572
  </xsl:choose>
7315
7573
  </xsl:variable>
7316
7574
 
7317
- <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $width_effective, $height_effective)"/>
7575
+ <xsl:variable name="image_width_effective">
7576
+
7577
+ <xsl:value-of select="$width_effective"/>
7578
+
7579
+ </xsl:variable>
7580
+
7581
+ <xsl:variable name="scale" select="java:org.metanorma.fop.Util.getImageScale($img_src, $image_width_effective, $height_effective)"/>
7318
7582
  <xsl:if test="number($scale) &lt; 100">
7319
7583
 
7320
7584
  <xsl:attribute name="content-width"><xsl:value-of select="$scale"/>%</xsl:attribute>
@@ -7506,24 +7770,47 @@
7506
7770
 
7507
7771
  </xsl:when>
7508
7772
  <xsl:otherwise>
7509
- <fo:block xsl:use-attribute-sets="image-style">
7510
- <fo:instream-foreign-object fox:alt-text="{$alt-text}">
7511
- <xsl:attribute name="width">100%</xsl:attribute>
7512
- <xsl:attribute name="content-height">100%</xsl:attribute>
7513
- <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
7514
- <xsl:variable name="svg_width" select="xalan:nodeset($svg_content)/*/@width"/>
7515
- <xsl:variable name="svg_height" select="xalan:nodeset($svg_content)/*/@height"/>
7516
- <!-- effective height 297 - 27.4 - 13 = 256.6 -->
7517
- <!-- effective width 210 - 12.5 - 25 = 172.5 -->
7518
- <!-- effective height / width = 1.48, 1.4 - with title -->
7519
- <xsl:if test="$svg_height &gt; ($svg_width * 1.4)"> <!-- for images with big height -->
7520
- <xsl:variable name="width" select="(($svg_width * 1.4) div $svg_height) * 100"/>
7521
- <xsl:attribute name="width"><xsl:value-of select="$width"/>%</xsl:attribute>
7522
- </xsl:if>
7523
- <xsl:attribute name="scaling">uniform</xsl:attribute>
7524
- <xsl:copy-of select="$svg_content"/>
7525
- </fo:instream-foreign-object>
7526
- </fo:block>
7773
+
7774
+ <xsl:variable name="element">
7775
+ <xsl:choose>
7776
+ <xsl:when test="ancestor::*[local-name() = 'tr'] and $isGenerateTableIF = 'true'">
7777
+ <fo:inline xsl:use-attribute-sets="image-style" text-align="left"/>
7778
+ </xsl:when>
7779
+ <xsl:otherwise>
7780
+ <fo:block xsl:use-attribute-sets="image-style">
7781
+ <xsl:if test="ancestor::*[local-name() = 'dt']">
7782
+ <xsl:attribute name="text-align">left</xsl:attribute>
7783
+ </xsl:if>
7784
+ </fo:block>
7785
+ </xsl:otherwise>
7786
+ </xsl:choose>
7787
+ </xsl:variable>
7788
+
7789
+ <xsl:for-each select="xalan:nodeset($element)/*">
7790
+ <xsl:copy>
7791
+ <xsl:copy-of select="@*"/>
7792
+ <!-- <fo:block xsl:use-attribute-sets="image-style"> -->
7793
+ <fo:instream-foreign-object fox:alt-text="{$alt-text}">
7794
+ <xsl:if test="$isGenerateTableIF = 'false'">
7795
+ <xsl:attribute name="width">100%</xsl:attribute>
7796
+ </xsl:if>
7797
+ <xsl:attribute name="content-height">100%</xsl:attribute>
7798
+ <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
7799
+ <xsl:variable name="svg_width" select="xalan:nodeset($svg_content)/*/@width"/>
7800
+ <xsl:variable name="svg_height" select="xalan:nodeset($svg_content)/*/@height"/>
7801
+ <!-- effective height 297 - 27.4 - 13 = 256.6 -->
7802
+ <!-- effective width 210 - 12.5 - 25 = 172.5 -->
7803
+ <!-- effective height / width = 1.48, 1.4 - with title -->
7804
+ <xsl:if test="$svg_height &gt; ($svg_width * 1.4)"> <!-- for images with big height -->
7805
+ <xsl:variable name="width" select="(($svg_width * 1.4) div $svg_height) * 100"/>
7806
+ <xsl:attribute name="width"><xsl:value-of select="$width"/>%</xsl:attribute>
7807
+ </xsl:if>
7808
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
7809
+ <xsl:copy-of select="$svg_content"/>
7810
+ </fo:instream-foreign-object>
7811
+ <!-- </fo:block> -->
7812
+ </xsl:copy>
7813
+ </xsl:for-each>
7527
7814
  </xsl:otherwise>
7528
7815
  </xsl:choose>
7529
7816
  </xsl:template>
@@ -7615,6 +7902,13 @@
7615
7902
  </xsl:for-each>
7616
7903
  </xsl:template>
7617
7904
 
7905
+ <!-- For the structures like: <dt><image src="" mimetype="image/svg+xml" height="" width=""><svg xmlns="http://www.w3.org/2000/svg" ... -->
7906
+ <xsl:template match="*[local-name() != 'figure']/*[local-name() = 'image'][*[local-name() = 'svg']]" priority="3">
7907
+ <xsl:for-each select="*[local-name() = 'svg']">
7908
+ <xsl:call-template name="image_svg"/>
7909
+ </xsl:for-each>
7910
+ </xsl:template>
7911
+
7618
7912
  <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
7619
7913
  <xsl:variable name="svg_content" select="document(@src)"/>
7620
7914
  <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
@@ -7753,6 +8047,8 @@
7753
8047
  <xsl:value-of select="."/>
7754
8048
  </xsl:template>
7755
8049
 
8050
+ <xsl:template match="*[local-name() = 'add'][starts-with(., $ace_tag)]/text()" mode="bookmarks" priority="3"/>
8051
+
7756
8052
  <xsl:template match="node()" mode="contents">
7757
8053
  <xsl:apply-templates mode="contents"/>
7758
8054
  </xsl:template>
@@ -7869,6 +8165,13 @@
7869
8165
  <xsl:when test="$contents_nodes/doc">
7870
8166
  <xsl:choose>
7871
8167
  <xsl:when test="count($contents_nodes/doc) &gt; 1">
8168
+
8169
+ <xsl:if test="$contents_nodes/collection">
8170
+ <fo:bookmark internal-destination="{$contents/collection/@firstpage_id}">
8171
+ <fo:bookmark-title>collection.pdf</fo:bookmark-title>
8172
+ </fo:bookmark>
8173
+ </xsl:if>
8174
+
7872
8175
  <xsl:for-each select="$contents_nodes/doc">
7873
8176
  <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
7874
8177
  <xsl:if test="@bundle = 'true'">
@@ -8071,7 +8374,15 @@
8071
8374
  <xsl:value-of select="@section"/>
8072
8375
  <xsl:text> </xsl:text>
8073
8376
  </xsl:if>
8074
- <xsl:value-of select="normalize-space(title)"/>
8377
+ <xsl:variable name="title">
8378
+ <xsl:for-each select="title/node()">
8379
+ <xsl:choose>
8380
+ <xsl:when test="local-name() = 'add' and starts-with(., $ace_tag)"><!-- skip --></xsl:when>
8381
+ <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
8382
+ </xsl:choose>
8383
+ </xsl:for-each>
8384
+ </xsl:variable>
8385
+ <xsl:value-of select="normalize-space($title)"/>
8075
8386
  </fo:bookmark-title>
8076
8387
  <xsl:apply-templates mode="bookmark"/>
8077
8388
  </fo:bookmark>
@@ -8097,6 +8408,12 @@
8097
8408
  <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fn']" priority="2"/>
8098
8409
  <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'note']"/>
8099
8410
 
8411
+ <xsl:template match="*[local-name() = 'figure']/*[local-name() = 'note'][@type = 'units'] | *[local-name() = 'image']/*[local-name() = 'note'][@type = 'units']" priority="2">
8412
+ <fo:block text-align="right" keep-with-next="always">
8413
+ <xsl:apply-templates/>
8414
+ </fo:block>
8415
+ </xsl:template>
8416
+
8100
8417
  <!-- ====== -->
8101
8418
  <!-- ====== -->
8102
8419
  <xsl:template match="*[local-name() = 'title']" mode="contents_item">
@@ -8246,6 +8563,10 @@
8246
8563
  </xsl:for-each>
8247
8564
  </xsl:template>
8248
8565
 
8566
+ <xsl:template match="*[local-name() = 'add'][starts-with(., $ace_tag)]/text()" mode="contents_item" priority="2">
8567
+ <xsl:value-of select="."/>
8568
+ </xsl:template>
8569
+
8249
8570
  <!-- Note: to enable the addition of character span markup with semantic styling for DIS Word output -->
8250
8571
  <xsl:template match="*[local-name() = 'span']" mode="contents_item">
8251
8572
  <xsl:apply-templates mode="contents_item"/>
@@ -9743,12 +10064,51 @@
9743
10064
 
9744
10065
  <fo:list-block xsl:use-attribute-sets="list-style">
9745
10066
 
10067
+ <xsl:variable name="provisional_distance_between_starts_">
10068
+ <attributes xsl:use-attribute-sets="list-style">
10069
+
10070
+ <xsl:if test="ancestor::iec:legal-statement">
10071
+ <xsl:attribute name="provisional-distance-between-starts">5mm</xsl:attribute>
10072
+ </xsl:if>
10073
+
10074
+ </attributes>
10075
+ </xsl:variable>
10076
+ <xsl:variable name="provisional_distance_between_starts" select="normalize-space(xalan:nodeset($provisional_distance_between_starts_)/attributes/@provisional-distance-between-starts)"/>
10077
+ <xsl:if test="$provisional_distance_between_starts != ''">
10078
+ <xsl:attribute name="provisional-distance-between-starts"><xsl:value-of select="$provisional_distance_between_starts"/></xsl:attribute>
10079
+ </xsl:if>
10080
+ <xsl:variable name="provisional_distance_between_starts_value" select="substring-before($provisional_distance_between_starts, 'mm')"/>
10081
+
10082
+ <!-- increase provisional-distance-between-starts for long lists -->
10083
+ <xsl:if test="local-name() = 'ol'">
10084
+ <!-- Examples: xiii), xviii), xxviii) -->
10085
+ <xsl:variable name="item_numbers">
10086
+ <xsl:for-each select="*[local-name() = 'li']">
10087
+ <item><xsl:call-template name="getListItemFormat"/></item>
10088
+ </xsl:for-each>
10089
+ </xsl:variable>
10090
+
10091
+ <xsl:variable name="max_length">
10092
+ <xsl:for-each select="xalan:nodeset($item_numbers)/item">
10093
+ <xsl:sort select="string-length(.)" data-type="number" order="descending"/>
10094
+ <xsl:if test="position() = 1"><xsl:value-of select="string-length(.)"/></xsl:if>
10095
+ </xsl:for-each>
10096
+ </xsl:variable>
10097
+
10098
+ <!-- base width (provisional-distance-between-starts) for 4 chars -->
10099
+ <xsl:variable name="addon" select="$max_length - 4"/>
10100
+ <xsl:if test="$addon &gt; 0">
10101
+ <xsl:attribute name="provisional-distance-between-starts"><xsl:value-of select="$provisional_distance_between_starts_value + $addon * 2"/>mm</xsl:attribute>
10102
+ </xsl:if>
10103
+ <!-- DEBUG -->
10104
+ <!-- <xsl:copy-of select="$item_numbers"/>
10105
+ <max_length><xsl:value-of select="$max_length"/></max_length>
10106
+ <addon><xsl:value-of select="$addon"/></addon> -->
10107
+ </xsl:if>
10108
+
9746
10109
  <xsl:if test="ancestor::iec:ul or ancestor::iec:ol">
9747
10110
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
9748
10111
  </xsl:if>
9749
- <xsl:if test="ancestor::iec:legal-statement">
9750
- <xsl:attribute name="provisional-distance-between-starts">5mm</xsl:attribute>
9751
- </xsl:if>
9752
10112
 
9753
10113
  <xsl:if test="*[local-name() = 'name']">
9754
10114
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
@@ -10707,7 +11067,7 @@
10707
11067
  <!-- \S matches any non-whitespace character (equivalent to [^\r\n\t\f\v ]) -->
10708
11068
  <!-- <xsl:variable name="regex_solidus_units">((\b((\S{1,3}\/\S+)|(\S+\/\S{1,3}))\b)|(\/\S{1,3})\b)</xsl:variable> -->
10709
11069
  <!-- add &lt; and &gt; to \S -->
10710
- <xsl:variable name="regex_S">[^\r\n\t\f\v \&lt;&gt;]</xsl:variable>
11070
+ <xsl:variable name="regex_S">[^\r\n\t\f\v \&lt;&gt;\u3000-\u9FFF]</xsl:variable>
10711
11071
  <xsl:variable name="regex_solidus_units">((\b((<xsl:value-of select="$regex_S"/>{1,3}\/<xsl:value-of select="$regex_S"/>+)|(<xsl:value-of select="$regex_S"/>+\/<xsl:value-of select="$regex_S"/>{1,3}))\b)|(\/<xsl:value-of select="$regex_S"/>{1,3})\b)</xsl:variable>
10712
11072
  <xsl:variable name="text3">
10713
11073
  <text><xsl:for-each select="xalan:nodeset($text2)/text/node()">
@@ -10729,7 +11089,8 @@
10729
11089
  <xsl:choose>
10730
11090
  <xsl:when test="ancestor::*[local-name() = 'td' or local-name() = 'th']">
10731
11091
  <!-- keep-together_within-line for: a.b, aaa.b, a.bbb, .b in table's cell ONLY -->
10732
- <xsl:variable name="regex_dots_units">((\b((\S{1,3}\.\S+)|(\S+\.\S{1,3}))\b)|(\.\S{1,3})\b)</xsl:variable>
11092
+ <xsl:variable name="non_white_space">[^\s\u3000-\u9FFF]</xsl:variable>
11093
+ <xsl:variable name="regex_dots_units">((\b((<xsl:value-of select="$non_white_space"/>{1,3}\.<xsl:value-of select="$non_white_space"/>+)|(<xsl:value-of select="$non_white_space"/>+\.<xsl:value-of select="$non_white_space"/>{1,3}))\b)|(\.<xsl:value-of select="$non_white_space"/>{1,3})\b)</xsl:variable>
10733
11094
  <xsl:for-each select="xalan:nodeset($text3)/text/node()">
10734
11095
  <xsl:choose>
10735
11096
  <xsl:when test="self::text()">
@@ -11332,6 +11693,23 @@
11332
11693
  </xsl:if>
11333
11694
  </xsl:template>
11334
11695
 
11696
+ <xsl:template name="setBlockAttributes">
11697
+ <xsl:param name="text_align_default">left</xsl:param>
11698
+ <xsl:call-template name="setTextAlignment">
11699
+ <xsl:with-param name="default" select="$text_align_default"/>
11700
+ </xsl:call-template>
11701
+
11702
+ <!-- https://www.metanorma.org/author/topics/document-format/text/#avoiding-page-breaks -->
11703
+ <!-- Example: keep-lines-together="true" -->
11704
+ <xsl:if test="@keep-lines-together = 'true'">
11705
+ <xsl:attribute name="keep-together.within-column">always</xsl:attribute>
11706
+ </xsl:if>
11707
+ <!-- Example: keep-with-next="true" -->
11708
+ <xsl:if test="@keep-with-next = 'true'">
11709
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
11710
+ </xsl:if>
11711
+ </xsl:template>
11712
+
11335
11713
  <xsl:template name="number-to-words">
11336
11714
  <xsl:param name="number"/>
11337
11715
  <xsl:param name="first"/>