metanorma-iho 0.0.2 → 0.0.3

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.
@@ -0,0 +1,3035 @@
1
+ <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:iho="https://www.metanorma.org/ns/iho" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java" version="1.0">
2
+
3
+ <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
+
5
+ <xsl:param name="svg_images"/>
6
+ <xsl:variable name="images" select="document($svg_images)"/>
7
+
8
+
9
+
10
+ <xsl:key name="kfn" match="iho:fn[local-name(..) = 'p' or local-name(..) = 'title']" use="@reference"/>
11
+
12
+
13
+
14
+ <xsl:variable name="debug">false</xsl:variable>
15
+ <xsl:variable name="pageWidth" select="'210mm'"/>
16
+ <xsl:variable name="pageHeight" select="'297mm'"/>
17
+
18
+ <xsl:variable name="title-en" select="/iho:iho-standard/iho:bibdata/iho:title[@language = 'en']"/>
19
+ <xsl:variable name="docidentifier" select="/iho:iho-standard/iho:bibdata/iho:docidentifier[@type = 'IHO']"/>
20
+ <xsl:variable name="copyrightText" select="concat('© International Hydrographic Association ', /iho:iho-standard/iho:bibdata/iho:copyright/iho:from ,' – All rights reserved')"/>
21
+
22
+ <xsl:variable name="lang">
23
+ <xsl:call-template name="getLang"/>
24
+ </xsl:variable>
25
+
26
+ <!-- Example:
27
+ <item level="1" id="Foreword" display="true">Foreword</item>
28
+ <item id="term-script" display="false">3.2</item>
29
+ -->
30
+ <xsl:variable name="contents">
31
+ <contents>
32
+ <xsl:apply-templates select="/iho:iho-standard/iho:preface/*" mode="contents"/>
33
+ <!-- <xsl:with-param name="sectionNum" select="'0'"/>
34
+ </xsl:apply-templates> -->
35
+ <xsl:apply-templates select="/iho:iho-standard/iho:sections/*" mode="contents"> <!-- iho:clause[1] [@id = '_scope'] -->
36
+ <!-- <xsl:with-param name="sectionNum" select="'1'"/> -->
37
+ </xsl:apply-templates>
38
+ <!-- [@id = '_normative_references'] -->
39
+ <!-- <xsl:apply-templates select="/iho:iho-standard/iho:bibliography/iho:references[1]" mode="contents">
40
+ <xsl:with-param name="sectionNum" select="'2'"/>
41
+ </xsl:apply-templates> -->
42
+ <!-- @id != '_scope' -->
43
+ <!-- <xsl:apply-templates select="/iho:iho-standard/iho:sections/*[position() &gt; 1]" mode="contents">
44
+ <xsl:with-param name="sectionNumSkew" select="'1'"/>
45
+ </xsl:apply-templates> -->
46
+ <xsl:apply-templates select="/iho:iho-standard/iho:annex" mode="contents"/>
47
+ <xsl:apply-templates select="/iho:iho-standard/iho:bibliography/iho:references[position() &gt; 1]" mode="contents"/> <!-- @id = '_bibliography' -->
48
+
49
+ <xsl:apply-templates select="//iho:figure" mode="contents"/>
50
+
51
+ <xsl:apply-templates select="//iho:table" mode="contents"/>
52
+
53
+ </contents>
54
+ </xsl:variable>
55
+
56
+ <xsl:template match="/">
57
+
58
+ <xsl:variable name="xslfo">
59
+ <fo:root font-family="Helvetica Neue, Cambria Math" font-size="12pt" xml:lang="{$lang}">
60
+ <fo:layout-master-set>
61
+ <!-- cover page -->
62
+ <fo:simple-page-master master-name="cover" page-width="{$pageWidth}" page-height="{$pageHeight}">
63
+ <fo:region-body margin-top="0mm" margin-bottom="5mm" margin-left="0mm" margin-right="5mm"/>
64
+ </fo:simple-page-master>
65
+
66
+ <fo:simple-page-master master-name="first" page-width="{$pageWidth}" page-height="{$pageHeight}">
67
+ <fo:region-body margin-top="25.4mm" margin-bottom="25.4mm" margin-left="25.4mm" margin-right="25.4mm"/>
68
+ <fo:region-before region-name="header" extent="25.4mm"/>
69
+ <fo:region-after region-name="footer-even" extent="25.4mm"/>
70
+ <fo:region-start region-name="left-region" extent="25.4mm"/>
71
+ <fo:region-end region-name="right-region" extent="25.4mm"/>
72
+ </fo:simple-page-master>
73
+ <fo:simple-page-master master-name="odd" page-width="{$pageWidth}" page-height="{$pageHeight}">
74
+ <fo:region-body margin-top="25.4mm" margin-bottom="25.4mm" margin-left="25.4mm" margin-right="25.4mm"/>
75
+ <fo:region-before region-name="header-odd" extent="25.4mm"/>
76
+ <fo:region-after region-name="footer-odd" extent="25.4mm"/>
77
+ <fo:region-start region-name="left-region" extent="25.4mm"/>
78
+ <fo:region-end region-name="right-region" extent="25.4mm"/>
79
+ </fo:simple-page-master>
80
+ <fo:simple-page-master master-name="odd-landscape" page-width="{$pageHeight}" page-height="{$pageWidth}">
81
+ <fo:region-body margin-top="25.4mm" margin-bottom="25.4mm" margin-left="25.4mm" margin-right="25.4mm"/>
82
+ <fo:region-before region-name="header-odd" extent="25.4mm"/>
83
+ <fo:region-after region-name="footer-odd" extent="25.4mm"/>
84
+ <fo:region-start region-name="left-region" extent="25.4mm"/>
85
+ <fo:region-end region-name="right-region" extent="25.4mm"/>
86
+ </fo:simple-page-master>
87
+ <fo:simple-page-master master-name="even" page-width="{$pageWidth}" page-height="{$pageHeight}">
88
+ <fo:region-body margin-top="25.4mm" margin-bottom="25.4mm" margin-left="25.4mm" margin-right="25.4mm"/>
89
+ <fo:region-before region-name="header-even" extent="25.4mm"/>
90
+ <fo:region-after region-name="footer-even" extent="25.4mm"/>
91
+ <fo:region-start region-name="left-region" extent="25.4mm"/>
92
+ <fo:region-end region-name="right-region" extent="25.4mm"/>
93
+ </fo:simple-page-master>
94
+ <fo:simple-page-master master-name="even-landscape" page-width="{$pageHeight}" page-height="{$pageWidth}">
95
+ <fo:region-body margin-top="25.4mm" margin-bottom="25.4mm" margin-left="25.4mm" margin-right="25.4mm"/>
96
+ <fo:region-before region-name="header-even" extent="25.4mm"/>
97
+ <fo:region-after region-name="footer-even" extent="25.4mm"/>
98
+ <fo:region-start region-name="left-region" extent="25.4mm"/>
99
+ <fo:region-end region-name="right-region" extent="25.4mm"/>
100
+ </fo:simple-page-master>
101
+ <!-- Preface pages -->
102
+ <fo:page-sequence-master master-name="preface">
103
+ <fo:repeatable-page-master-alternatives>
104
+ <fo:conditional-page-master-reference master-reference="first" page-position="first"/>
105
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even"/>
106
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd"/>
107
+ </fo:repeatable-page-master-alternatives>
108
+ </fo:page-sequence-master>
109
+ <!-- Document pages -->
110
+ <fo:page-sequence-master master-name="document">
111
+ <fo:repeatable-page-master-alternatives>
112
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even"/>
113
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd"/>
114
+ </fo:repeatable-page-master-alternatives>
115
+ </fo:page-sequence-master>
116
+ <fo:page-sequence-master master-name="document-portrait">
117
+ <fo:repeatable-page-master-alternatives>
118
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even"/>
119
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd"/>
120
+ </fo:repeatable-page-master-alternatives>
121
+ </fo:page-sequence-master>
122
+ <fo:page-sequence-master master-name="document-landscape">
123
+ <fo:repeatable-page-master-alternatives>
124
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-landscape"/>
125
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-landscape"/>
126
+ </fo:repeatable-page-master-alternatives>
127
+ </fo:page-sequence-master>
128
+
129
+
130
+ </fo:layout-master-set>
131
+
132
+ <fo:declarations>
133
+ <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
134
+ <pdf:dictionary type="normal" key="ViewerPreferences">
135
+ <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
136
+ </pdf:dictionary>
137
+ </pdf:catalog>
138
+ <x:xmpmeta xmlns:x="adobe:ns:meta/">
139
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
140
+ <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
141
+ <!-- Dublin Core properties go here -->
142
+ <dc:title>
143
+ <xsl:choose>
144
+ <xsl:when test="normalize-space($title-en) != ''">
145
+ <xsl:value-of select="$title-en"/>
146
+ </xsl:when>
147
+ <xsl:otherwise> </xsl:otherwise>
148
+ </xsl:choose>
149
+ </dc:title>
150
+ <dc:creator><xsl:value-of select="/iho:iho-standard/iho:bibdata/iho:contributor[iho:role/@type='author']/iho:organization/iho:name"/></dc:creator>
151
+ <dc:description>
152
+ <xsl:variable name="abstract">
153
+ <xsl:copy-of select="/iho:iho-standard/iho:bibliography/iho:references/iho:bibitem/iho:abstract//text()"/>
154
+ </xsl:variable>
155
+ <xsl:value-of select="normalize-space($abstract)"/>
156
+ </dc:description>
157
+ <pdf:Keywords>
158
+ <xsl:call-template name="insertKeywords"/>
159
+ </pdf:Keywords>
160
+ </rdf:Description>
161
+ <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
162
+ <!-- XMP properties go here -->
163
+ <xmp:CreatorTool/>
164
+ </rdf:Description>
165
+ </rdf:RDF>
166
+ </x:xmpmeta>
167
+ </fo:declarations>
168
+
169
+ <!-- =========================== -->
170
+ <!-- Cover Page -->
171
+ <fo:page-sequence master-reference="cover">
172
+ <fo:flow flow-name="xsl-region-body">
173
+ <fo:block-container position="absolute" left="14.25mm" top="28.20mm">
174
+ <fo:table table-layout="fixed" width="181.1mm">
175
+ <fo:table-column column-width="26mm"/>
176
+ <fo:table-column column-width="45.3mm"/>
177
+ <fo:table-column column-width="109.8mm"/>
178
+ <fo:table-body>
179
+ <fo:table-row>
180
+ <fo:table-cell><fo:block> </fo:block></fo:table-cell>
181
+ <fo:table-cell>
182
+ <fo:block-container width="45.3mm" height="19.3mm" background-color="rgb(241, 234, 202)" text-align="center" display-align="center" font-weight="bold">
183
+ <fo:block>
184
+ <xsl:value-of select="$docidentifier"/>
185
+ <xsl:text> </xsl:text>
186
+ <xsl:apply-templates select="/iho:iho-standard/iho:bibdata/iho:edition"/>
187
+ </fo:block>
188
+ </fo:block-container>
189
+ </fo:table-cell>
190
+ <fo:table-cell><fo:block> </fo:block></fo:table-cell>
191
+ </fo:table-row>
192
+ <fo:table-row>
193
+ <fo:table-cell display-align="after" text-align="right">
194
+ <fo:block font-size="1">
195
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-IHO))}" width="25.9mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image IHO"/>
196
+ </fo:block>
197
+ </fo:table-cell>
198
+ <fo:table-cell number-columns-spanned="2" border="0.5pt solid rgb(0, 21, 50)">
199
+ <fo:block-container height="154.4mm" text-align="center" display-align="center">
200
+ <fo:block font-size="28pt" font-weight="bold" color="rgb(0, 0, 76)">
201
+ <xsl:value-of select="$title-en"/>
202
+ </fo:block>
203
+ </fo:block-container>
204
+ </fo:table-cell>
205
+ </fo:table-row>
206
+ <fo:table-row>
207
+ <fo:table-cell>
208
+ <fo:block font-size="1">
209
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Logo-IHO))}" width="25.9mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image Logo IHO"/>
210
+ </fo:block>
211
+ </fo:table-cell>
212
+ <fo:table-cell>
213
+ <fo:block font-size="1">
214
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Text-IHO))}" width="25.8mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image Text IHO"/>
215
+ </fo:block>
216
+ </fo:table-cell>
217
+ <fo:table-cell>
218
+ <fo:block-container width="79.2mm" height="66.3mm" margin-left="30.6mm" background-color="rgb(0, 172, 158)" text-align="right" display-align="after">
219
+ <fo:block font-size="8pt" color="white" margin-left="-30mm" margin-right="5mm" margin-bottom="9mm">
220
+ <xsl:apply-templates select="/iho:iho-standard/iho:boilerplate/iho:feedback-statement"/>
221
+ </fo:block>
222
+ </fo:block-container>
223
+ </fo:table-cell>
224
+ </fo:table-row>
225
+ </fo:table-body>
226
+ </fo:table>
227
+ </fo:block-container>
228
+ </fo:flow>
229
+ </fo:page-sequence>
230
+ <!-- End Cover Page -->
231
+ <!-- =========================== -->
232
+ <!-- =========================== -->
233
+
234
+ <!-- Preface Pages -->
235
+ <fo:page-sequence master-reference="preface" format="i">
236
+ <fo:static-content flow-name="xsl-footnote-separator">
237
+ <fo:block>
238
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
239
+ </fo:block>
240
+ </fo:static-content>
241
+ <xsl:call-template name="insertHeaderFooter">
242
+ <xsl:with-param name="font-weight">normal</xsl:with-param>
243
+ </xsl:call-template>
244
+ <fo:flow flow-name="xsl-region-body">
245
+ <fo:block> </fo:block>
246
+ <fo:block break-after="page"/>
247
+ <fo:block-container margin-left="7.5mm" margin-right="-2mm">
248
+ <fo:block-container margin-left="0mm" margin-right="0mm" border="0.5pt solid black" padding-top="1mm" padding-left="1.8mm" padding-right="1mm">
249
+ <fo:block>
250
+ <xsl:apply-templates select="/iho:iho-standard/iho:boilerplate/*[local-name() != 'feedback-statement']"/>
251
+ </fo:block>
252
+ </fo:block-container>
253
+ </fo:block-container>
254
+
255
+ <fo:block break-after="page"/>
256
+
257
+ <!-- Table of Contents -->
258
+ <fo:block-container margin-right="-12.7mm">
259
+ <fo:block-container margin-right="0mm">
260
+ <fo:block color="rgb(14, 36, 133)" margin-bottom="15.5pt">
261
+ <xsl:value-of select="$title-toc"/>
262
+ </fo:block>
263
+ <xsl:if test="$debug = 'true'">
264
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
265
+ DEBUG
266
+ contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
267
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
268
+ </xsl:if>
269
+
270
+ <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
271
+ <fo:block>
272
+ <xsl:if test="@level = 1">
273
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
274
+ </xsl:if>
275
+
276
+ <fo:list-block>
277
+
278
+
279
+
280
+ <xsl:attribute name="provisional-distance-between-starts">
281
+ <xsl:choose>
282
+ <xsl:when test="@level &gt;= 1 and @display-section = 'true' and @root = 'annex' and not(@type = 'annex')">13mm</xsl:when>
283
+ <xsl:when test="@level &gt;= 1 and @display-section = 'true' and not(@type = 'annex')">10mm</xsl:when>
284
+ <!-- <xsl:when test="@level &gt;= 3"><xsl:value-of select="$margin-left * 1.2"/>mm</xsl:when>
285
+ <xsl:when test="@section != '' and not(@display-section = 'false')"><xsl:value-of select="$margin-left"/>mm</xsl:when> -->
286
+ <xsl:otherwise>0mm</xsl:otherwise>
287
+ </xsl:choose>
288
+ </xsl:attribute>
289
+ <fo:list-item>
290
+ <fo:list-item-label end-indent="label-end()">
291
+ <fo:block>
292
+ <xsl:if test="@section and not(@display-section = 'false') and not(@type = 'annex')"> <!-- output below -->
293
+ <xsl:value-of select="@section"/>
294
+ </xsl:if>
295
+ </fo:block>
296
+ </fo:list-item-label>
297
+ <fo:list-item-body start-indent="body-start()">
298
+ <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
299
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
300
+ <fo:inline>
301
+ <xsl:if test="@type = 'annex'">
302
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
303
+ <xsl:value-of select="@section"/><xsl:text>  </xsl:text>
304
+ </xsl:if>
305
+ <xsl:value-of select="text()"/>
306
+ </fo:inline>
307
+ <fo:inline keep-together.within-line="always">
308
+ <fo:leader font-size="9pt" font-weight="normal" leader-pattern="dots"/>
309
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
310
+ </fo:inline>
311
+ </fo:basic-link>
312
+ </fo:block>
313
+ </fo:list-item-body>
314
+ </fo:list-item>
315
+ </fo:list-block>
316
+ </fo:block>
317
+
318
+ </xsl:for-each>
319
+ </fo:block-container>
320
+ </fo:block-container>
321
+
322
+ <!-- Foreword, Introduction -->
323
+ <xsl:apply-templates select="/iho:iho-standard/iho:preface/*"/>
324
+
325
+ </fo:flow>
326
+ </fo:page-sequence>
327
+ <!-- End Preface Pages -->
328
+ <!-- =========================== -->
329
+ <!-- =========================== -->
330
+
331
+
332
+ <!-- Document Pages -->
333
+
334
+
335
+
336
+ <fo:page-sequence master-reference="document" initial-page-number="1" format="1" force-page-count="no-force">
337
+ <fo:static-content flow-name="xsl-footnote-separator">
338
+ <fo:block>
339
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
340
+ </fo:block>
341
+ </fo:static-content>
342
+ <xsl:call-template name="insertHeaderFooter"/>
343
+ <fo:flow flow-name="xsl-region-body">
344
+ <fo:block-container>
345
+
346
+ <fo:block font-size="16pt" font-weight="bold" margin-bottom="18pt"><xsl:value-of select="$title-en"/></fo:block>
347
+
348
+ <xsl:apply-templates select="/iho:iho-standard/iho:sections/*"/>
349
+
350
+
351
+
352
+ </fo:block-container>
353
+ </fo:flow>
354
+ </fo:page-sequence>
355
+
356
+ <xsl:if test="/iho:iho-standard/iho:annex">
357
+ <fo:page-sequence master-reference="document">
358
+ <fo:static-content flow-name="xsl-footnote-separator">
359
+ <fo:block>
360
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
361
+ </fo:block>
362
+ </fo:static-content>
363
+ <xsl:call-template name="insertHeaderFooter"/>
364
+ <fo:flow flow-name="xsl-region-body">
365
+ <fo:block-container>
366
+ <xsl:apply-templates select="/iho:iho-standard/iho:annex"/>
367
+ </fo:block-container>
368
+ </fo:flow>
369
+ </fo:page-sequence>
370
+ </xsl:if>
371
+ <!-- =========================== -->
372
+ <!-- End Document Pages -->
373
+ <!-- =========================== -->
374
+ <!-- =========================== -->
375
+
376
+ </fo:root>
377
+ </xsl:variable>
378
+
379
+ <xsl:apply-templates select="xalan:nodeset($xslfo)" mode="step2"/>
380
+
381
+ </xsl:template>
382
+
383
+ <!-- ============================= -->
384
+ <!-- CONTENTS -->
385
+ <!-- ============================= -->
386
+ <xsl:template match="node()" mode="contents">
387
+ <xsl:param name="sectionNum"/>
388
+ <xsl:param name="sectionNumSkew"/>
389
+ <xsl:apply-templates mode="contents">
390
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
391
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
392
+ </xsl:apply-templates>
393
+ </xsl:template>
394
+
395
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
396
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
397
+ <xsl:template match="iho:iho-standard/iho:sections/*" mode="contents">
398
+ <xsl:param name="sectionNum"/>
399
+ <xsl:param name="sectionNumSkew" select="0"/>
400
+ <xsl:variable name="sectionNum_">
401
+ <xsl:choose>
402
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
403
+ <xsl:when test="$sectionNumSkew != 0">
404
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable>
405
+ <xsl:value-of select="$number + $sectionNumSkew"/>
406
+ </xsl:when>
407
+ <xsl:otherwise>
408
+ <xsl:number count="*"/>
409
+ </xsl:otherwise>
410
+ </xsl:choose>
411
+ </xsl:variable>
412
+ <xsl:apply-templates mode="contents">
413
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
414
+ </xsl:apply-templates>
415
+ </xsl:template>
416
+
417
+ <xsl:template match="iho:annex" mode="contents">
418
+ <xsl:param name="sectionNum"/>
419
+ <xsl:variable name="id" select="@id"/>
420
+ <xsl:variable name="level">1</xsl:variable>
421
+ <xsl:variable name="section">
422
+ <xsl:choose>
423
+ <xsl:when test="@obligation = 'informative'">
424
+ <xsl:value-of select="$title-appendix"/>
425
+ <xsl:number format="1" level="any" count="iho:annex[@obligation = 'informative']"/>
426
+ </xsl:when>
427
+ <xsl:otherwise>
428
+ <xsl:value-of select="$title-annex"/>
429
+ <xsl:number format="A" level="any" count="iho:annex[not(@obligation = 'informative')]"/>
430
+ </xsl:otherwise>
431
+ </xsl:choose>
432
+ </xsl:variable>
433
+ <xsl:variable name="display">true</xsl:variable>
434
+ <xsl:variable name="display-section">true</xsl:variable>
435
+ <xsl:variable name="type"><xsl:value-of select="local-name()"/></xsl:variable>
436
+ <xsl:variable name="root">annex</xsl:variable>
437
+ <item id="{$id}" level="{$level}" section="{$section}" display-section="{$display-section}" display="{$display}" type="{$type}" root="{$root}">
438
+ <xsl:attribute name="addon">
439
+ <xsl:value-of select="../@obligation"/>
440
+ </xsl:attribute>
441
+ <xsl:value-of select="iho:title"/>
442
+ </item>
443
+ <xsl:apply-templates mode="contents">
444
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
445
+ </xsl:apply-templates>
446
+ </xsl:template>
447
+
448
+
449
+ <!-- Any node with title element - clause, definition,... except annex ! (see processing above) -->
450
+ <xsl:template match="iho:title[not(parent::iho:annex)] | iho:preferred" mode="contents">
451
+ <xsl:param name="sectionNum"/>
452
+
453
+ <xsl:variable name="id">
454
+ <xsl:call-template name="getId"/>
455
+ </xsl:variable>
456
+
457
+ <xsl:variable name="level">
458
+ <xsl:call-template name="getLevel"/>
459
+ </xsl:variable>
460
+
461
+ <xsl:variable name="section">
462
+ <xsl:call-template name="getSection">
463
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
464
+ </xsl:call-template>
465
+ </xsl:variable>
466
+
467
+ <xsl:variable name="display">
468
+ <xsl:choose>
469
+ <xsl:when test="ancestor::iho:bibitem">false</xsl:when>
470
+ <xsl:when test="ancestor::iho:term">false</xsl:when>
471
+ <xsl:when test="ancestor::iho:annex and $level &gt;= 3">false</xsl:when>
472
+ <xsl:when test="$level &lt;= 2">true</xsl:when>
473
+ <xsl:otherwise>false</xsl:otherwise>
474
+ </xsl:choose>
475
+ </xsl:variable>
476
+
477
+ <xsl:variable name="display-section">
478
+ <xsl:choose>
479
+ <xsl:when test="ancestor::iho:preface">false</xsl:when>
480
+ <!-- <xsl:when test="ancestor::iho:annex">false</xsl:when> -->
481
+ <xsl:otherwise>true</xsl:otherwise>
482
+ </xsl:choose>
483
+ </xsl:variable>
484
+
485
+ <xsl:variable name="type">
486
+ <xsl:value-of select="local-name(..)"/>
487
+ </xsl:variable>
488
+
489
+ <xsl:variable name="root">
490
+ <xsl:choose>
491
+ <xsl:when test="ancestor::iho:annex">annex</xsl:when>
492
+ </xsl:choose>
493
+ </xsl:variable>
494
+
495
+ <item id="{$id}" level="{$level}" section="{$section}" display-section="{$display-section}" display="{$display}" type="{$type}" root="{$root}">
496
+ <xsl:attribute name="addon">
497
+ <xsl:if test="local-name(..) = 'annex'"><xsl:value-of select="../@obligation"/></xsl:if>
498
+ </xsl:attribute>
499
+ <xsl:value-of select="."/>
500
+ </item>
501
+
502
+ <xsl:apply-templates mode="contents">
503
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
504
+ </xsl:apply-templates>
505
+ </xsl:template>
506
+
507
+
508
+ <xsl:template match="iho:figure" mode="contents">
509
+ <item level="" id="{@id}" display="false">
510
+ <xsl:attribute name="section">
511
+ <xsl:call-template name="getFigureNumber"/>
512
+ </xsl:attribute>
513
+ </item>
514
+ </xsl:template>
515
+
516
+ <xsl:template match="iho:table" mode="contents">
517
+ <xsl:param name="sectionNum"/>
518
+ <xsl:variable name="annex-id" select="ancestor::iho:annex/@id"/>
519
+ <item level="" id="{@id}" display="false" type="table">
520
+ <xsl:attribute name="section">
521
+ <xsl:value-of select="$title-table"/>
522
+ <xsl:call-template name="getTableNumber"/>
523
+ </xsl:attribute>
524
+ <xsl:value-of select="iho:name/text()"/>
525
+ </item>
526
+ </xsl:template>
527
+
528
+ <xsl:template match="iho:formula" mode="contents">
529
+ <item level="" id="{@id}" display="false">
530
+ <xsl:attribute name="section">
531
+ <xsl:text>Formula (</xsl:text><xsl:number format="A.1" level="multiple" count="iho:annex | iho:formula"/><xsl:text>)</xsl:text>
532
+ </xsl:attribute>
533
+ </item>
534
+ </xsl:template>
535
+
536
+ <xsl:template match="iho:li" mode="contents">
537
+ <xsl:param name="sectionNum"/>
538
+ <item level="" id="{@id}" display="false" type="li">
539
+ <xsl:attribute name="section">
540
+ <xsl:call-template name="getListItemFormat"/>
541
+ </xsl:attribute>
542
+ <xsl:attribute name="parent_section">
543
+ <xsl:for-each select="ancestor::*[not(local-name() = 'p' or local-name() = 'ol')][1]">
544
+ <xsl:call-template name="getSection">
545
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
546
+ </xsl:call-template>
547
+ </xsl:for-each>
548
+ </xsl:attribute>
549
+ </item>
550
+ <xsl:apply-templates mode="contents">
551
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
552
+ </xsl:apply-templates>
553
+ </xsl:template>
554
+
555
+ <xsl:template match="iho:references/iho:bibitem" mode="contents"/>
556
+ <!-- ============================= -->
557
+ <!-- END CONTENTS -->
558
+ <!-- ============================= -->
559
+ <!-- ============================= -->
560
+
561
+
562
+
563
+
564
+ <xsl:template match="/iho:iho-standard/iho:bibdata/iho:edition">
565
+ <xsl:value-of select="$title-edition"/>
566
+ <xsl:apply-templates/>
567
+ </xsl:template>
568
+
569
+ <xsl:template match="iho:feedback-statement//iho:br" priority="2">
570
+ <fo:block/>
571
+ </xsl:template>
572
+
573
+
574
+ <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
575
+ <xsl:template match="node()">
576
+ <xsl:param name="sectionNum"/>
577
+ <xsl:param name="sectionNumSkew"/>
578
+ <xsl:apply-templates>
579
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
580
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
581
+ </xsl:apply-templates>
582
+ </xsl:template>
583
+
584
+ <!-- clause, terms, clause, ...-->
585
+ <xsl:template match="iho:iho-standard/iho:sections/*">
586
+ <xsl:param name="sectionNum"/>
587
+ <xsl:param name="sectionNumSkew" select="0"/>
588
+ <fo:block>
589
+ <!-- iho:sections/iho:clause | iho:sections/iho:terms | iho:sections/iho:definitions -->
590
+ <!-- <xsl:variable name="pos"><xsl:number count="*"/></xsl:variable>
591
+ <xsl:if test="$pos &gt;= 2">
592
+ <xsl:attribute name="space-before">18pt</xsl:attribute>
593
+ </xsl:if> -->
594
+ <!-- pos=<xsl:value-of select="$pos" /> -->
595
+ <xsl:variable name="sectionNum_">
596
+ <xsl:choose>
597
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
598
+ <xsl:when test="$sectionNumSkew != 0">
599
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable> <!--iho:sections/iho:clause | iho:sections/iho:terms | iho:sections/iho:definitions -->
600
+ <xsl:value-of select="$number + $sectionNumSkew"/>
601
+ </xsl:when>
602
+ <xsl:otherwise>
603
+ <xsl:number count="*"/>
604
+ </xsl:otherwise>
605
+ </xsl:choose>
606
+ </xsl:variable>
607
+ <!-- <xsl:if test="not(iho:title)">
608
+ <fo:block margin-top="3pt" margin-bottom="12pt">
609
+ <xsl:value-of select="$sectionNum_"/><xsl:number format=".1 " level="multiple" count="iho:clause" />
610
+ </fo:block>
611
+ </xsl:if> -->
612
+ <xsl:apply-templates>
613
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
614
+ </xsl:apply-templates>
615
+ </fo:block>
616
+ </xsl:template>
617
+
618
+
619
+ <!-- Foreword, Introduction -->
620
+ <xsl:template match="iho:iho-standard/iho:preface/*">
621
+ <fo:block break-after="page"/>
622
+ <xsl:apply-templates/>
623
+ </xsl:template>
624
+
625
+ <xsl:template match="iho:clause//iho:clause[not(iho:title)]">
626
+ <xsl:param name="sectionNum"/>
627
+ <xsl:variable name="section">
628
+ <xsl:call-template name="getSection">
629
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
630
+ </xsl:call-template>
631
+ </xsl:variable>
632
+
633
+ <fo:block margin-top="3pt"><!-- margin-bottom="6pt" -->
634
+ <fo:inline font-weight="bold" padding-right="3mm">
635
+ <xsl:value-of select="$section"/><!-- <xsl:number format=".1 " level="multiple" count="iho:clause/iho:clause" /> -->
636
+ </fo:inline>
637
+ <xsl:apply-templates>
638
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
639
+ <xsl:with-param name="inline" select="'true'"/>
640
+ </xsl:apply-templates>
641
+ </fo:block>
642
+ </xsl:template>
643
+
644
+
645
+
646
+ <xsl:template match="iho:title">
647
+ <xsl:param name="sectionNum"/>
648
+
649
+ <xsl:variable name="parent-name" select="local-name(..)"/>
650
+ <xsl:variable name="references_num_current">
651
+ <xsl:number level="any" count="iho:references"/>
652
+ </xsl:variable>
653
+
654
+ <xsl:variable name="id">
655
+ <xsl:call-template name="getId"/>
656
+ </xsl:variable>
657
+
658
+ <xsl:variable name="level">
659
+ <xsl:call-template name="getLevel"/>
660
+ </xsl:variable>
661
+
662
+ <xsl:variable name="section">
663
+ <xsl:call-template name="getSection">
664
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
665
+ </xsl:call-template>
666
+ </xsl:variable>
667
+
668
+ <xsl:variable name="font-size">
669
+ <xsl:choose>
670
+ <xsl:when test="$level = 1">13pt</xsl:when>
671
+ <xsl:when test="$level = 2">12pt</xsl:when>
672
+ <xsl:when test="$level &gt;= 3">11pt</xsl:when>
673
+ <!-- <xsl:when test="ancestor::iho:annex and $level = 2">13pt</xsl:when>
674
+ <xsl:when test="ancestor::iho:annex and $level = 3">12pt</xsl:when>
675
+ <xsl:when test="ancestor::iho:preface">16pt</xsl:when>
676
+ <xsl:when test="$level = 2">12pt</xsl:when>
677
+ <xsl:when test="$level &gt;= 3">11pt</xsl:when> -->
678
+ <xsl:otherwise>12pt</xsl:otherwise>
679
+ </xsl:choose>
680
+ </xsl:variable>
681
+
682
+ <xsl:variable name="element-name">
683
+ <xsl:choose>
684
+ <xsl:when test="../@inline-header = 'true'">fo:inline</xsl:when>
685
+ <xsl:otherwise>fo:block</xsl:otherwise>
686
+ </xsl:choose>
687
+ </xsl:variable>
688
+
689
+ <xsl:choose>
690
+ <xsl:when test="$parent-name = 'annex'">
691
+ <fo:block id="{$id}" font-size="13pt" font-weight="bold" text-align="center" margin-bottom="12pt" keep-with-next="always">
692
+ <xsl:value-of select="$section"/>
693
+ <xsl:value-of select="$linebreak"/>
694
+ <!-- <xsl:if test=" ../@obligation">
695
+ <xsl:value-of select="$linebreak"/>
696
+ <fo:inline font-weight="normal">(<xsl:value-of select="../@obligation"/>)</fo:inline>
697
+ </xsl:if> -->
698
+ <xsl:apply-templates/>
699
+ </fo:block>
700
+ </xsl:when>
701
+ <xsl:when test="$parent-name = 'references' and $references_num_current != 1"> <!-- Bibliography -->
702
+ <fo:block id="{$id}" font-size="16pt" font-weight="bold" text-align="center" margin-top="6pt" margin-bottom="36pt" keep-with-next="always">
703
+ <xsl:apply-templates/>
704
+ </fo:block>
705
+ </xsl:when>
706
+
707
+ <xsl:otherwise>
708
+ <xsl:element name="{$element-name}">
709
+ <xsl:attribute name="id"><xsl:value-of select="$id"/></xsl:attribute>
710
+ <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
711
+ <!-- <xsl:attribute name="font-weight">bold</xsl:attribute> -->
712
+ <xsl:attribute name="space-before"> <!-- margin-top -->
713
+ <xsl:choose>
714
+ <xsl:when test="$level = 1">13.5pt</xsl:when>
715
+ <xsl:when test="$level &gt;= 2">3pt</xsl:when>
716
+ <xsl:when test="ancestor::iho:preface">8pt</xsl:when>
717
+ <xsl:when test="$level = 2 and ancestor::iho:annex">18pt</xsl:when>
718
+ <xsl:when test="$level = 1">18pt</xsl:when>
719
+ <xsl:when test="$level = ''">6pt</xsl:when><!-- 13.5pt -->
720
+ <xsl:otherwise>12pt</xsl:otherwise>
721
+ </xsl:choose>
722
+ </xsl:attribute>
723
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
724
+
725
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
726
+
727
+
728
+ <!-- DEBUG level=<xsl:value-of select="$level"/>x -->
729
+ <!-- section=<xsl:value-of select="$sectionNum"/> -->
730
+ <!-- <xsl:if test="$sectionNum"> -->
731
+ <xsl:value-of select="$section"/>
732
+ <xsl:if test="$section != ''">
733
+ <xsl:choose>
734
+ <xsl:when test="$level = 2">
735
+ <fo:inline padding-right="2mm"> </fo:inline>
736
+ </xsl:when>
737
+ <xsl:when test="$level = 3">
738
+ <fo:inline padding-right="2mm"> </fo:inline>
739
+ </xsl:when>
740
+ <xsl:otherwise>
741
+ <fo:inline padding-right="3mm"> </fo:inline>
742
+ </xsl:otherwise>
743
+ </xsl:choose>
744
+ </xsl:if>
745
+
746
+ <xsl:apply-templates/>
747
+ </xsl:element>
748
+
749
+ <xsl:if test="$element-name = 'fo:inline' and not(following-sibling::iho:p)">
750
+ <fo:block> <!-- margin-bottom="12pt" -->
751
+ <xsl:value-of select="$linebreak"/>
752
+ </fo:block>
753
+ </xsl:if>
754
+ </xsl:otherwise>
755
+ </xsl:choose>
756
+
757
+ </xsl:template>
758
+
759
+ <xsl:template match="iho:p">
760
+ <xsl:param name="inline" select="'false'"/>
761
+ <xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
762
+ <xsl:variable name="element-name">
763
+ <xsl:choose>
764
+ <xsl:when test="$inline = 'true'">fo:inline</xsl:when>
765
+ <xsl:when test="../@inline-header = 'true' and $previous-element = 'title'">fo:inline</xsl:when> <!-- first paragraph after inline title -->
766
+ <xsl:when test="local-name(..) = 'admonition'">fo:inline</xsl:when>
767
+ <xsl:otherwise>fo:block</xsl:otherwise>
768
+ </xsl:choose>
769
+ </xsl:variable>
770
+ <xsl:element name="{$element-name}">
771
+ <xsl:attribute name="text-align">
772
+ <xsl:choose>
773
+ <xsl:when test="ancestor::iho:quote">justify</xsl:when>
774
+ <xsl:when test="ancestor::iho:feedback-statement">right</xsl:when>
775
+ <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
776
+ <xsl:when test="ancestor::iho:td/@align"><xsl:value-of select="ancestor::iho:td/@align"/></xsl:when>
777
+ <xsl:when test="ancestor::iho:th/@align"><xsl:value-of select="ancestor::iho:th/@align"/></xsl:when>
778
+ <xsl:otherwise>left</xsl:otherwise>
779
+ </xsl:choose>
780
+ </xsl:attribute>
781
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
782
+ <xsl:if test="parent::iho:dd">
783
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
784
+ </xsl:if>
785
+ <xsl:if test="ancestor::*[2][local-name() = 'license-statement'] and not(following-sibling::iho:p)">
786
+ <xsl:attribute name="space-after">0pt</xsl:attribute>
787
+ </xsl:if>
788
+ <xsl:attribute name="line-height">115%</xsl:attribute>
789
+ <!-- <xsl:attribute name="border">1pt solid red</xsl:attribute> -->
790
+
791
+ <xsl:if test=".//iho:fn">
792
+ <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
793
+ </xsl:if>
794
+
795
+ <xsl:apply-templates/>
796
+ </xsl:element>
797
+ <xsl:if test="$element-name = 'fo:inline' and not($inline = 'true') and not(local-name(..) = 'admonition')">
798
+ <fo:block margin-bottom="12pt">
799
+ <!-- <xsl:if test="ancestor::iho:annex">
800
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
801
+ </xsl:if> -->
802
+ <xsl:value-of select="$linebreak"/>
803
+ </fo:block>
804
+ </xsl:if>
805
+ <xsl:if test="$inline = 'true'">
806
+ <fo:block> </fo:block>
807
+ </xsl:if>
808
+ </xsl:template>
809
+
810
+ <!--
811
+ <fn reference="1">
812
+ <p id="_8e5cf917-f75a-4a49-b0aa-1714cb6cf954">Formerly denoted as 15 % (m/m).</p>
813
+ </fn>
814
+ -->
815
+
816
+ <xsl:variable name="p_fn">
817
+ <!-- <xsl:for-each select="//iho:p/iho:fn[generate-id(.)=generate-id(key('kfn',@reference)[1])]"> -->
818
+ <xsl:for-each select="//iho:fn[local-name(..) = 'p' or local-name(..) = 'title'][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
819
+ <!-- copy unique fn -->
820
+ <fn gen_id="{generate-id(.)}">
821
+ <xsl:copy-of select="@*"/>
822
+ <xsl:copy-of select="node()"/>
823
+ </fn>
824
+ </xsl:for-each>
825
+ </xsl:variable>
826
+
827
+ <!-- iho:p/iho:fn -->
828
+ <xsl:template match="iho:fn[local-name(..) = 'p' or local-name(..) = 'title']" priority="2">
829
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
830
+ <xsl:variable name="reference" select="@reference"/>
831
+ <xsl:variable name="number">
832
+ <!-- <xsl:number level="any" count="iho:p/iho:fn"/> -->
833
+ <xsl:value-of select="count(xalan:nodeset($p_fn)//fn[@reference = $reference]/preceding-sibling::fn) + 1"/>
834
+ </xsl:variable>
835
+ <xsl:choose>
836
+ <xsl:when test="xalan:nodeset($p_fn)//fn[@gen_id = $gen_id]">
837
+ <fo:footnote>
838
+ <fo:inline font-size="70%" keep-with-previous.within-line="always" vertical-align="super"> <!-- -->
839
+ <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
840
+ <!-- <xsl:value-of select="@reference"/> -->
841
+ <xsl:value-of select="$number + count(//iho:bibitem[ancestor::iho:references[@id='_normative_references']]/iho:note)"/>
842
+ </fo:basic-link>
843
+ </fo:inline>
844
+ <fo:footnote-body>
845
+ <fo:block font-size="10pt" margin-bottom="12pt">
846
+ <fo:inline id="footnote_{@reference}_{$number}" font-size="60%" vertical-align="super" keep-with-next.within-line="always" padding-right="1mm"> <!-- font-size="60%" alignment-baseline="hanging" -->
847
+ <xsl:value-of select="$number + count(//iho:bibitem[ancestor::iho:references[@id='_normative_references']]/iho:note)"/>
848
+ </fo:inline>
849
+ <xsl:for-each select="iho:p">
850
+ <xsl:apply-templates/>
851
+ </xsl:for-each>
852
+ </fo:block>
853
+ </fo:footnote-body>
854
+ </fo:footnote>
855
+ </xsl:when>
856
+ <xsl:otherwise>
857
+ <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
858
+ <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
859
+ <xsl:value-of select="$number + count(//iho:bibitem/iho:note)"/>
860
+ </fo:basic-link>
861
+ </fo:inline>
862
+ </xsl:otherwise>
863
+ </xsl:choose>
864
+ </xsl:template>
865
+
866
+ <xsl:template match="iho:p/iho:fn/iho:p">
867
+ <xsl:apply-templates/>
868
+ </xsl:template>
869
+
870
+
871
+ <xsl:template match="iho:figure">
872
+ <fo:block-container id="{@id}">
873
+ <fo:block>
874
+ <xsl:apply-templates/>
875
+ </fo:block>
876
+ <xsl:call-template name="fn_display_figure"/>
877
+ <xsl:for-each select="iho:note//iho:p">
878
+ <xsl:call-template name="note"/>
879
+ </xsl:for-each>
880
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-top="6pt" margin-bottom="6pt" keep-with-previous="always">
881
+ <xsl:call-template name="getFigureNumber"/>
882
+ <xsl:if test="iho:name">
883
+ <xsl:if test="not(local-name(..) = 'figure') and not(ancestor::iho:example)">
884
+ <xsl:text> — </xsl:text>
885
+ </xsl:if>
886
+ <xsl:apply-templates select="iho:name" mode="figure_name"/>
887
+ </xsl:if>
888
+ </fo:block>
889
+ </fo:block-container>
890
+ </xsl:template>
891
+
892
+ <xsl:template match="iho:figure/iho:name" mode="figure_name">
893
+ <xsl:apply-templates/>
894
+ </xsl:template>
895
+
896
+ <xsl:template match="iho:figure/iho:name"/>
897
+ <xsl:template match="iho:figure/iho:fn" priority="2"/>
898
+ <xsl:template match="iho:figure/iho:note"/>
899
+
900
+ <xsl:template match="iho:image">
901
+ <fo:block text-align="center">
902
+ <xsl:variable name="src">
903
+ <xsl:choose>
904
+ <xsl:when test="@mimetype = 'image/svg+xml' and $images/images/image[@id = current()/@id]">
905
+ <xsl:value-of select="$images/images/image[@id = current()/@id]/@src"/>
906
+ </xsl:when>
907
+ <xsl:otherwise>
908
+ <xsl:value-of select="@src"/>
909
+ </xsl:otherwise>
910
+ </xsl:choose>
911
+ </xsl:variable>
912
+ <fo:external-graphic src="{$src}" width="100%" content-height="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/> <!-- src="{@src}" -->
913
+ </fo:block>
914
+ </xsl:template>
915
+
916
+ <xsl:template name="getFigureNumber">
917
+ <xsl:choose>
918
+ <xsl:when test="ancestor::iho:annex">
919
+ <xsl:choose>
920
+ <xsl:when test="local-name(..) = 'figure'">
921
+ <xsl:number format="a) "/>
922
+ </xsl:when>
923
+ <xsl:otherwise>
924
+ <xsl:value-of select="$title-figure"/>
925
+
926
+ <xsl:variable name="annex_id" select="ancestor::iho:annex[1]/@id"/>
927
+ <xsl:choose>
928
+ <xsl:when test="ancestor::iho:annex/@obligation = 'informative'">
929
+ <xsl:number format="1." count="iho:annex[@obligation = 'informative']"/>
930
+ <xsl:number format="1" level="any" count="iho:figure[ancestor::iho:annex[@id = $annex_id]]"/>
931
+ <!-- <xsl:number format="1.1" level="multiple" count="iho:annex[@obligation = 'informative'] | iho:figure"/> -->
932
+ </xsl:when>
933
+ <xsl:otherwise>
934
+ <xsl:number format="A." level="any" count="iho:annex[not(@obligation = 'informative')]"/>
935
+ <xsl:number format="1" level="any" count="iho:figure[ancestor::iho:annex[@id = $annex_id]]"/>
936
+ <!-- <xsl:number format="A.1" level="multiple" count="iho:annex[not(@obligation = 'informative')] | iho:figure"/> -->
937
+ </xsl:otherwise>
938
+ </xsl:choose>
939
+ </xsl:otherwise>
940
+ </xsl:choose>
941
+ </xsl:when>
942
+ <xsl:when test="ancestor::iho:example"/>
943
+ <xsl:otherwise>
944
+ <xsl:value-of select="$title-figure"/><xsl:number format="1" level="any" count="iho:figure"/>
945
+ </xsl:otherwise>
946
+ </xsl:choose>
947
+ </xsl:template>
948
+
949
+ <xsl:template match="iho:note/iho:p" name="note">
950
+ <fo:block font-size="11pt" margin-top="8pt" margin-bottom="12pt" text-align="justify">
951
+ <xsl:if test="ancestor::iho:td">
952
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
953
+ </xsl:if>
954
+ <xsl:variable name="claims_id" select="ancestor::iho:clause[1]/@id"/>
955
+ <fo:inline font-size="11pt" padding-right="2mm">
956
+ <xsl:value-of select="$title-note"/>
957
+ <xsl:if test="count(ancestor::iho:clause[1]//iho:note) &gt; 1">
958
+ <xsl:number count="iho:note[ancestor::iho:clause[@id = $claims_id]]" level="any"/>
959
+ </xsl:if>
960
+ </fo:inline>
961
+ <xsl:apply-templates/>
962
+ </fo:block>
963
+ </xsl:template>
964
+
965
+
966
+ <xsl:template match="iho:ul | iho:ol">
967
+ <fo:list-block provisional-distance-between-starts="6mm">
968
+ <xsl:apply-templates/>
969
+ </fo:list-block>
970
+ <xsl:for-each select="./iho:note//iho:p">
971
+ <xsl:call-template name="note"/>
972
+ </xsl:for-each>
973
+ </xsl:template>
974
+
975
+ <xsl:template match="iho:ul//iho:note | iho:ol//iho:note"/>
976
+
977
+ <xsl:template match="iho:li">
978
+ <fo:list-item id="{@id}" margin-bottom="12pt">
979
+ <fo:list-item-label end-indent="label-end()">
980
+ <fo:block line-height="115%">
981
+ <xsl:call-template name="getListItemFormat"/>
982
+ </fo:block>
983
+ </fo:list-item-label>
984
+ <fo:list-item-body start-indent="body-start()">
985
+ <xsl:apply-templates/>
986
+ <xsl:apply-templates select=".//iho:note" mode="process"/>
987
+ </fo:list-item-body>
988
+ </fo:list-item>
989
+ </xsl:template>
990
+
991
+ <xsl:template match="iho:li//iho:p//text()">
992
+ <xsl:choose>
993
+ <xsl:when test="contains(., '&#9;')">
994
+ <fo:inline white-space="pre"><xsl:value-of select="."/></fo:inline>
995
+ </xsl:when>
996
+ <xsl:otherwise>
997
+ <xsl:value-of select="."/>
998
+ </xsl:otherwise>
999
+ </xsl:choose>
1000
+ </xsl:template>
1001
+
1002
+ <xsl:template match="iho:termsource">
1003
+ <fo:block margin-bottom="12pt">
1004
+ <!-- Example:[SOURCE: [3]] -->
1005
+ <fo:basic-link internal-destination="{iho:origin/@bibitemid}" fox:alt-text="{iho:origin/@citeas}">
1006
+ <xsl:text>[SOURCE: </xsl:text>
1007
+ <fo:inline color="blue" text-decoration="underline"><xsl:value-of select="iho:origin/@citeas"/></fo:inline>
1008
+
1009
+ <xsl:apply-templates select="iho:origin/iho:localityStack"/>
1010
+
1011
+ </fo:basic-link>
1012
+ <xsl:apply-templates select="iho:modification"/>
1013
+ <xsl:text>]</xsl:text>
1014
+ </fo:block>
1015
+ </xsl:template>
1016
+
1017
+ <xsl:template match="iho:admonition">
1018
+ <fo:block-container border="0.5pt solid rgb(79, 129, 189)" color="rgb(79, 129, 189)" margin-left="16mm" margin-right="16mm" margin-bottom="12pt">
1019
+ <fo:block-container margin-left="0mm" margin-right="0mm" padding="2mm" padding-top="3mm">
1020
+ <fo:block font-size="11pt" margin-bottom="6pt" font-weight="bold" font-style="italic" text-align="center">
1021
+ <xsl:value-of select="translate(@type, $lower, $upper)"/>
1022
+ </fo:block>
1023
+ <fo:block font-style="italic">
1024
+ <xsl:apply-templates/>
1025
+ </fo:block>
1026
+ </fo:block-container>
1027
+ </fo:block-container>
1028
+ </xsl:template>
1029
+
1030
+ <xsl:template match="iho:formula/iho:dt/iho:stem">
1031
+ <fo:inline>
1032
+ <xsl:apply-templates/>
1033
+ </fo:inline>
1034
+ </xsl:template>
1035
+
1036
+ <xsl:template match="iho:formula/iho:stem">
1037
+ <fo:block id="{../@id}" margin-top="6pt" margin-bottom="12pt" text-align="center">
1038
+ <xsl:apply-templates/>
1039
+ </fo:block>
1040
+ </xsl:template>
1041
+
1042
+ <xsl:template match="iho:quote">
1043
+ <fo:block margin-left="12.5mm" margin-right="14mm">
1044
+ <xsl:apply-templates select=".//iho:p"/>
1045
+ </fo:block>
1046
+ <xsl:if test="iho:author or iho:source">
1047
+ <fo:block text-align="right">
1048
+ <xsl:if test="iho:author">
1049
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
1050
+ <xsl:text>— </xsl:text><xsl:value-of select="iho:author"/>
1051
+ </xsl:if>
1052
+ <xsl:if test="iho:source">
1053
+ <xsl:text>, </xsl:text>
1054
+ <xsl:apply-templates select="iho:source"/>
1055
+ </xsl:if>
1056
+ </fo:block>
1057
+ </xsl:if>
1058
+ </xsl:template>
1059
+
1060
+ <xsl:template match="iho:source">
1061
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
1062
+ <xsl:value-of select="@citeas" disable-output-escaping="yes"/>
1063
+ <xsl:apply-templates select="iho:localityStack"/>
1064
+ </fo:basic-link>
1065
+ </xsl:template>
1066
+
1067
+
1068
+ <xsl:template match="iho:xref">
1069
+ <xsl:param name="sectionNum"/>
1070
+
1071
+ <xsl:variable name="target" select="normalize-space(@target)"/>
1072
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{$target}">
1073
+ <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = $target]/@section"/>
1074
+ <!-- <xsl:if test="not(starts-with($section, 'Figure') or starts-with($section, 'Table'))"> -->
1075
+ <xsl:attribute name="color">blue</xsl:attribute>
1076
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1077
+ <!-- </xsl:if> -->
1078
+ <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = $target]/@type"/>
1079
+ <xsl:variable name="root" select="xalan:nodeset($contents)//item[@id =$target]/@root"/>
1080
+ <xsl:variable name="level" select="xalan:nodeset($contents)//item[@id =$target]/@level"/>
1081
+ <xsl:choose>
1082
+ <xsl:when test="$type = 'clause' and $root != 'annex' and $level = 1 and normalize-space(.) = ''"><!-- and not (ancestor::annex) -->
1083
+ <xsl:value-of select="$title-clause"/>
1084
+ </xsl:when>
1085
+ <xsl:when test="$type = 'li'">
1086
+ <xsl:attribute name="color">black</xsl:attribute>
1087
+ <xsl:attribute name="text-decoration">none</xsl:attribute>
1088
+ <xsl:variable name="parent_section" select="xalan:nodeset($contents)//item[@id =$target]/@parent_section"/>
1089
+ <xsl:variable name="currentSection">
1090
+ <xsl:call-template name="getSection"/>
1091
+ </xsl:variable>
1092
+ <xsl:if test="not(contains($parent_section, $currentSection))">
1093
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{$target}">
1094
+ <xsl:attribute name="color">blue</xsl:attribute>
1095
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1096
+ <xsl:value-of select="$parent_section"/><xsl:text> </xsl:text>
1097
+ </fo:basic-link>
1098
+ </xsl:if>
1099
+ </xsl:when>
1100
+ <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
1101
+ </xsl:choose>
1102
+ <xsl:choose>
1103
+ <xsl:when test="normalize-space(.) != ''">
1104
+ <xsl:apply-templates/>
1105
+ </xsl:when>
1106
+ <xsl:otherwise>
1107
+ <xsl:value-of select="$section"/>
1108
+ </xsl:otherwise>
1109
+ </xsl:choose>
1110
+ </fo:basic-link>
1111
+ </xsl:template>
1112
+
1113
+ <xsl:template match="iho:annex">
1114
+ <fo:block break-after="page"/>
1115
+ <xsl:if test="not(iho:title)">
1116
+ <fo:block id="{@id}" font-size="13pt" font-weight="bold" text-align="center" margin-bottom="12pt" keep-with-next="always">
1117
+ <xsl:choose>
1118
+ <xsl:when test="@obligation = 'informative'">
1119
+ <xsl:value-of select="$title-appendix"/>
1120
+ <xsl:number format="1" level="any" count="iho:annex[@obligation = 'informative']"/>
1121
+ </xsl:when>
1122
+ <xsl:otherwise>
1123
+ <xsl:value-of select="$title-annex"/>
1124
+ <xsl:number format="A" level="any" count="iho:annex[not(@obligation = 'informative')]"/>
1125
+ </xsl:otherwise>
1126
+ </xsl:choose>
1127
+ </fo:block>
1128
+ </xsl:if>
1129
+ <xsl:apply-templates/>
1130
+ </xsl:template>
1131
+
1132
+ <!-- Example: [1] IHO S-100, Universal Hydrographic Data Model v4.0.0, December 2018 (Encoding, Feature Catalogue) -->
1133
+ <xsl:template match="iho:bibitem">
1134
+ <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm" line-height="115%">
1135
+ <fo:list-item>
1136
+ <fo:list-item-label end-indent="label-end()">
1137
+ <fo:block>
1138
+ <fo:inline id="{@id}">
1139
+ <xsl:number format="[1]"/>
1140
+ </fo:inline>
1141
+ </fo:block>
1142
+ </fo:list-item-label>
1143
+ <fo:list-item-body start-indent="body-start()">
1144
+ <fo:block>
1145
+ <xsl:variable name="docidentifier">
1146
+ <xsl:if test="iho:docidentifier">
1147
+ <xsl:choose>
1148
+ <xsl:when test="iho:docidentifier/@type = 'metanorma'"/>
1149
+ <xsl:otherwise><xsl:value-of select="iho:docidentifier"/></xsl:otherwise>
1150
+ </xsl:choose>
1151
+ </xsl:if>
1152
+ </xsl:variable>
1153
+ <xsl:value-of select="$docidentifier"/>
1154
+ <xsl:apply-templates select="iho:note"/>
1155
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
1156
+ <xsl:choose>
1157
+ <xsl:when test="iho:title[@type = 'main' and @language = 'en']">
1158
+ <xsl:apply-templates select="iho:title[@type = 'main' and @language = 'en']"/>
1159
+ </xsl:when>
1160
+ <xsl:otherwise>
1161
+ <xsl:apply-templates select="iho:title"/>
1162
+ </xsl:otherwise>
1163
+ </xsl:choose>
1164
+ <xsl:apply-templates select="iho:formattedref"/>
1165
+ </fo:block>
1166
+ </fo:list-item-body>
1167
+ </fo:list-item>
1168
+ </fo:list-block>
1169
+ </xsl:template>
1170
+
1171
+ <xsl:template match="iho:bibitem/iho:title">
1172
+ <fo:inline font-style="italic">
1173
+ <xsl:apply-templates/>
1174
+ </fo:inline>
1175
+ </xsl:template>
1176
+
1177
+ <xsl:template match="iho:bibitem/iho:note">
1178
+ <fo:footnote>
1179
+ <xsl:variable name="number">
1180
+ <xsl:number level="any" count="iho:bibitem/iho:note"/>
1181
+ </xsl:variable>
1182
+ <fo:inline font-size="8pt" keep-with-previous.within-line="always" baseline-shift="30%"> <!--85% vertical-align="super"-->
1183
+ <fo:basic-link internal-destination="footnote_{../@id}" fox:alt-text="footnote {$number}">
1184
+ <xsl:value-of select="$number"/><xsl:text>)</xsl:text>
1185
+ </fo:basic-link>
1186
+ </fo:inline>
1187
+ <fo:footnote-body>
1188
+ <fo:block font-size="10pt" margin-bottom="4pt" start-indent="0pt">
1189
+ <fo:inline id="footnote_{../@id}" keep-with-next.within-line="always" alignment-baseline="hanging" padding-right="3mm"><!-- font-size="60%" -->
1190
+ <xsl:value-of select="$number"/><xsl:text>)</xsl:text>
1191
+ </fo:inline>
1192
+ <xsl:apply-templates/>
1193
+ </fo:block>
1194
+ </fo:footnote-body>
1195
+ </fo:footnote>
1196
+ </xsl:template>
1197
+
1198
+ <xsl:template match="iho:example">
1199
+ <fo:block font-size="11pt" margin-top="8pt" margin-bottom="12pt">
1200
+ <xsl:variable name="claims_id" select="ancestor::iho:clause[1]/@id"/>
1201
+ <fo:block margin-bottom="12pt" font-weight="bold">
1202
+ <fo:inline padding-right="5mm">
1203
+ <xsl:value-of select="$title-example"/>
1204
+ <xsl:choose>
1205
+ <xsl:when test="iho:name">
1206
+ <xsl:text>— </xsl:text><xsl:apply-templates select="iho:name" mode="example"/>
1207
+ </xsl:when>
1208
+ <!-- <xsl:when test="count(ancestor::iho:clause[1]//iho:example) &gt; 1">
1209
+ <xsl:number count="iho:example[ancestor::iho:clause[@id = $claims_id]]" level="any"/>
1210
+ </xsl:when> -->
1211
+ </xsl:choose>
1212
+ </fo:inline>
1213
+ </fo:block>
1214
+ <xsl:apply-templates/>
1215
+ </fo:block>
1216
+ </xsl:template>
1217
+
1218
+ <xsl:template match="iho:example/iho:name"/>
1219
+ <xsl:template match="iho:example/iho:name" mode="example">
1220
+ <fo:inline><xsl:apply-templates/></fo:inline>
1221
+ </xsl:template>
1222
+
1223
+ <xsl:template match="iho:example/iho:p">
1224
+ <fo:block-container font-size="11pt" margin-left="12.7mm">
1225
+ <fo:block-container margin-left="0mm">
1226
+ <fo:block>
1227
+ <xsl:apply-templates/>
1228
+ </fo:block>
1229
+ </fo:block-container>
1230
+ </fo:block-container>
1231
+ </xsl:template>
1232
+
1233
+ <!-- <eref type="inline" bibitemid="iso-19115-1" citeas="ISO 19115-1:2014/Amd 1">...<localityStack><locality type="clause"><referenceFrom>113-01-12</referenceFrom></locality></localityStack></eref> -->
1234
+ <xsl:template match="iho:eref">
1235
+ <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}"> <!-- font-size="9pt" color="blue" vertical-align="super" -->
1236
+ <xsl:if test="@type = 'footnote'">
1237
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1238
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1239
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1240
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1241
+ </xsl:if>
1242
+ <xsl:if test="@type = 'inline'">
1243
+ <xsl:attribute name="color">blue</xsl:attribute>
1244
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1245
+ </xsl:if>
1246
+ <xsl:choose>
1247
+ <xsl:when test="@citeas and normalize-space(text()) = ''">
1248
+ <xsl:value-of select="@citeas" disable-output-escaping="yes"/>
1249
+ </xsl:when>
1250
+ <xsl:when test="@bibitemid and normalize-space(text()) = ''">
1251
+ <xsl:value-of select="//iho:bibitem[@id = current()/@bibitemid]/iho:docidentifier"/>
1252
+ </xsl:when>
1253
+ <xsl:otherwise/>
1254
+ </xsl:choose>
1255
+ <xsl:apply-templates select="iho:localityStack"/>
1256
+ <xsl:apply-templates select="text()"/>
1257
+ </fo:basic-link>
1258
+ </xsl:template>
1259
+
1260
+ <xsl:template match="iho:pagebreak">
1261
+ <xsl:copy-of select="."/>
1262
+ </xsl:template>
1263
+
1264
+ <!-- https://github.com/metanorma/mn-native-pdf/issues/214 -->
1265
+ <xsl:template match="iho:index"/>
1266
+
1267
+ <xsl:template match="iho:review"/>
1268
+
1269
+ <xsl:template match="iho:term">
1270
+ <xsl:param name="sectionNum"/>
1271
+ <fo:block margin-bottom="10pt">
1272
+ <xsl:apply-templates>
1273
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1274
+ </xsl:apply-templates>
1275
+ </fo:block>
1276
+ </xsl:template>
1277
+
1278
+ <xsl:template match="iho:preferred">
1279
+ <xsl:param name="sectionNum"/>
1280
+ <fo:block line-height="1.1">
1281
+ <fo:block font-weight="bold" keep-with-next="always">
1282
+ <fo:inline id="{../@id}">
1283
+ <xsl:variable name="section">
1284
+ <xsl:call-template name="getSection">
1285
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1286
+ </xsl:call-template>
1287
+ </xsl:variable>
1288
+ <xsl:value-of select="$section"/>
1289
+ <!-- <xsl:value-of select="$sectionNum"/>.<xsl:number count="iho:term"/> -->
1290
+ </fo:inline>
1291
+ </fo:block>
1292
+ <fo:block font-weight="bold" keep-with-next="always">
1293
+ <xsl:apply-templates/>
1294
+ </fo:block>
1295
+ </fo:block>
1296
+ </xsl:template>
1297
+
1298
+ <xsl:template match="iho:admitted">
1299
+ <fo:block>
1300
+ <xsl:apply-templates/>
1301
+ </fo:block>
1302
+ </xsl:template>
1303
+
1304
+ <xsl:template match="iho:deprecates">
1305
+ <fo:block>DEPRECATED: <xsl:apply-templates/></fo:block>
1306
+ </xsl:template>
1307
+
1308
+ <xsl:template match="iho:definition[preceding-sibling::iho:domain]">
1309
+ <xsl:apply-templates/>
1310
+ </xsl:template>
1311
+ <xsl:template match="iho:definition[preceding-sibling::iho:domain]/iho:p">
1312
+ <fo:inline> <xsl:apply-templates/></fo:inline>
1313
+ <fo:block> </fo:block>
1314
+ </xsl:template>
1315
+
1316
+ <xsl:template match="iho:definition">
1317
+ <fo:block margin-bottom="6pt">
1318
+ <xsl:apply-templates/>
1319
+ </fo:block>
1320
+ </xsl:template>
1321
+
1322
+ <xsl:template match="iho:termexample">
1323
+ <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt" text-align="justify">
1324
+ <fo:inline padding-right="5mm">
1325
+ <xsl:text>EXAMPLE </xsl:text>
1326
+ <xsl:if test="count(ancestor::iho:term[1]//iho:termexample) &gt; 1">
1327
+ <xsl:number/>
1328
+ </xsl:if>
1329
+ </fo:inline>
1330
+ <xsl:apply-templates/>
1331
+ </fo:block>
1332
+ </xsl:template>
1333
+
1334
+ <xsl:template match="iho:termexample/iho:p">
1335
+ <fo:inline><xsl:apply-templates/></fo:inline>
1336
+ </xsl:template>
1337
+
1338
+
1339
+
1340
+ <xsl:template match="iho:domain">
1341
+ <fo:inline>&lt;<xsl:apply-templates/>&gt;</fo:inline><xsl:text> </xsl:text>
1342
+ </xsl:template>
1343
+
1344
+ <xsl:template match="iho:termnote">
1345
+ <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt" text-align="justify">
1346
+ <xsl:text>Note </xsl:text>
1347
+ <xsl:number/>
1348
+ <xsl:text> to entry: </xsl:text>
1349
+ <xsl:apply-templates/>
1350
+ </fo:block>
1351
+ </xsl:template>
1352
+
1353
+ <xsl:template match="iho:termnote/iho:p">
1354
+ <fo:inline><xsl:apply-templates/></fo:inline>
1355
+ <!-- <xsl:if test="following-sibling::* and not(following-sibling::iho:p)">
1356
+ <xsl:value-of select="$linebreak"/>
1357
+ <xsl:value-of select="$linebreak"/>
1358
+ </xsl:if> -->
1359
+ </xsl:template>
1360
+
1361
+ <xsl:template match="iho:modification">
1362
+ <xsl:text>, modified — </xsl:text>
1363
+ <xsl:apply-templates/>
1364
+ </xsl:template>
1365
+ <xsl:template match="iho:modification/iho:p">
1366
+ <fo:inline><xsl:apply-templates/></fo:inline>
1367
+ </xsl:template>
1368
+
1369
+ <xsl:template match="iho:locality">
1370
+ <xsl:choose>
1371
+ <xsl:when test="ancestor::iho:termsource"/>
1372
+ <xsl:when test="@type ='clause' and ancestor::iho:eref"/>
1373
+ <xsl:when test="@type ='clause'"><xsl:value-of select="$title-clause"/></xsl:when>
1374
+ <xsl:when test="@type ='annex'"><xsl:value-of select="$title-annex"/></xsl:when>
1375
+ <xsl:when test="@type ='appendix'"><xsl:value-of select="$title-appendix"/></xsl:when>
1376
+ <xsl:when test="@type ='table'"><xsl:value-of select="$title-table"/></xsl:when>
1377
+ <xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise>
1378
+ </xsl:choose>
1379
+ <xsl:text> </xsl:text><xsl:value-of select="iho:referenceFrom"/>
1380
+ </xsl:template>
1381
+
1382
+
1383
+ <xsl:template name="insertHeaderFooter">
1384
+ <xsl:param name="font-weight" select="'bold'"/>
1385
+ <fo:static-content flow-name="header-odd">
1386
+ <fo:block-container height="100%">
1387
+ <fo:block padding-top="12.5mm" text-align="right">
1388
+ <xsl:value-of select="$docidentifier"/>
1389
+ </fo:block>
1390
+ </fo:block-container>
1391
+ </fo:static-content>
1392
+ <fo:static-content flow-name="footer-odd">
1393
+ <fo:block-container height="100%" margin-right="-10mm" display-align="after">
1394
+ <fo:block-container margin-right="0mm">
1395
+ <fo:block padding-bottom="17mm" font-size="10pt" text-align-last="justify">
1396
+ <fo:inline><xsl:value-of select="$copyrightText"/></fo:inline>
1397
+ <fo:inline keep-together.within-line="always">
1398
+ <fo:leader leader-pattern="space"/>
1399
+ <fo:inline font-weight="{$font-weight}"><fo:page-number/></fo:inline>
1400
+ </fo:inline>
1401
+ </fo:block>
1402
+ </fo:block-container>
1403
+ </fo:block-container>
1404
+ </fo:static-content>
1405
+ <fo:static-content flow-name="header-even">
1406
+ <fo:block-container height="100%">
1407
+ <fo:block padding-top="12.5mm">
1408
+ <xsl:value-of select="$docidentifier"/>
1409
+ </fo:block>
1410
+ </fo:block-container>
1411
+ </fo:static-content>
1412
+ <fo:static-content flow-name="footer-even">
1413
+ <fo:block-container height="100%" margin-right="-10mm" display-align="after">
1414
+ <fo:block-container margin-right="0mm">
1415
+ <fo:block padding-bottom="17mm" font-size="10pt" text-align-last="justify">
1416
+ <fo:inline font-weight="{$font-weight}"><fo:page-number/></fo:inline>
1417
+ <fo:inline keep-together.within-line="always">
1418
+ <fo:leader leader-pattern="space"/>
1419
+ <xsl:value-of select="$copyrightText"/>
1420
+ </fo:inline>
1421
+ </fo:block>
1422
+ </fo:block-container>
1423
+ </fo:block-container>
1424
+ </fo:static-content>
1425
+ </xsl:template>
1426
+
1427
+ <xsl:template name="getId">
1428
+ <xsl:choose>
1429
+ <xsl:when test="../@id">
1430
+ <xsl:value-of select="../@id"/>
1431
+ </xsl:when>
1432
+ <xsl:otherwise>
1433
+ <xsl:value-of select="text()"/>
1434
+ </xsl:otherwise>
1435
+ </xsl:choose>
1436
+ </xsl:template>
1437
+
1438
+ <xsl:template name="getLevel">
1439
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
1440
+ <xsl:variable name="level">
1441
+ <xsl:choose>
1442
+ <xsl:when test="ancestor::iho:preface">
1443
+ <xsl:value-of select="$level_total - 2"/>
1444
+ </xsl:when>
1445
+ <xsl:when test="ancestor::iho:sections">
1446
+ <xsl:value-of select="$level_total - 2"/>
1447
+ </xsl:when>
1448
+ <xsl:when test="ancestor::iho:bibliography">
1449
+ <xsl:value-of select="$level_total - 2"/>
1450
+ </xsl:when>
1451
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
1452
+ <xsl:otherwise>
1453
+ <xsl:value-of select="$level_total - 1"/>
1454
+ </xsl:otherwise>
1455
+ </xsl:choose>
1456
+ </xsl:variable>
1457
+ <xsl:value-of select="$level"/>
1458
+ </xsl:template>
1459
+
1460
+ <xsl:template name="getSection">
1461
+ <xsl:param name="sectionNum"/>
1462
+ <xsl:variable name="level">
1463
+ <xsl:call-template name="getLevel"/>
1464
+ </xsl:variable>
1465
+ <xsl:variable name="section">
1466
+ <xsl:choose>
1467
+ <xsl:when test="ancestor::iho:bibliography">
1468
+ <xsl:value-of select="$sectionNum"/>
1469
+ </xsl:when>
1470
+ <xsl:when test="ancestor::iho:sections">
1471
+ <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
1472
+ <xsl:choose>
1473
+ <xsl:when test="$level = 1">
1474
+ <xsl:value-of select="$sectionNum"/><xsl:text>.</xsl:text>
1475
+ </xsl:when>
1476
+ <xsl:when test="$level &gt;= 2">
1477
+ <xsl:variable name="num">
1478
+ <xsl:number format=".1" level="multiple" count="iho:clause/iho:clause | iho:clause/iho:terms | iho:terms/iho:term | iho:clause/iho:term | iho:terms/iho:clause | iho:terms/iho:definitions | iho:definitions/iho:clause | iho:clause/iho:definitions | iho:clause/iho:references"/>
1479
+ </xsl:variable>
1480
+ <xsl:value-of select="concat($sectionNum, $num)"/><xsl:text>.</xsl:text>
1481
+ </xsl:when>
1482
+ <xsl:otherwise>
1483
+ <!-- z<xsl:value-of select="$sectionNum"/>z -->
1484
+ </xsl:otherwise>
1485
+ </xsl:choose>
1486
+ </xsl:when>
1487
+ <!-- <xsl:when test="ancestor::iho:annex[@obligation = 'informative']">
1488
+ <xsl:choose>
1489
+ <xsl:when test="$level = 1">
1490
+ <xsl:text>Annex </xsl:text>
1491
+ <xsl:number format="I" level="any" count="iho:annex[@obligation = 'informative']"/>
1492
+ </xsl:when>
1493
+ <xsl:otherwise>
1494
+ <xsl:number format="I.1" level="multiple" count="iho:annex[@obligation = 'informative'] | iho:clause"/>
1495
+ </xsl:otherwise>
1496
+ </xsl:choose>
1497
+ </xsl:when> -->
1498
+ <xsl:when test="ancestor::iho:annex">
1499
+ <xsl:variable name="annexid" select="normalize-space(/iho:iho-standard/iho:bibdata/iho:ext/iho:structuredidentifier/iho:annexid)"/>
1500
+ <xsl:choose>
1501
+ <xsl:when test="$level = 1">
1502
+ <xsl:choose>
1503
+ <xsl:when test="ancestor::iho:annex/@obligation = 'informative'">
1504
+ <xsl:value-of select="$title-appendix"/>
1505
+ </xsl:when>
1506
+ <xsl:otherwise>
1507
+ <xsl:value-of select="$title-annex"/>
1508
+ </xsl:otherwise>
1509
+ </xsl:choose>
1510
+
1511
+ <xsl:choose>
1512
+ <xsl:when test="count(//iho:annex) = 1 and $annexid != ''">
1513
+ <xsl:value-of select="$annexid"/>
1514
+ </xsl:when>
1515
+ <xsl:otherwise>
1516
+ <xsl:choose>
1517
+ <xsl:when test="ancestor::iho:annex/@obligation = 'informative'">
1518
+ <xsl:number format="1" level="any" count="iho:annex[@obligation = 'informative']"/>
1519
+ </xsl:when>
1520
+ <xsl:otherwise>
1521
+ <xsl:number format="A" level="any" count="iho:annex[not(@obligation = 'informative')]"/>
1522
+ <!-- <xsl:number format="A" level="any" count="iho:annex"/> -->
1523
+ </xsl:otherwise>
1524
+ </xsl:choose>
1525
+ </xsl:otherwise>
1526
+ </xsl:choose>
1527
+ </xsl:when>
1528
+ <xsl:otherwise>
1529
+ <xsl:choose>
1530
+ <xsl:when test="count(//iho:annex) = 1 and $annexid != ''">
1531
+ <xsl:value-of select="$annexid"/><xsl:number format=".1" level="multiple" count="iho:clause"/>
1532
+ </xsl:when>
1533
+ <xsl:otherwise>
1534
+
1535
+ <xsl:choose>
1536
+ <xsl:when test="ancestor::iho:annex/@obligation = 'informative'">
1537
+ <xsl:number format="1.1." level="multiple" count="iho:annex[@obligation = 'informative'] | iho:clause"/>
1538
+ </xsl:when>
1539
+ <xsl:otherwise>
1540
+ <xsl:number format="A.1." level="multiple" count="iho:annex[not(@obligation = 'informative')] | iho:clause"/>
1541
+ <!-- <xsl:number format="A.1." level="multiple" count="iho:annex | iho:clause"/> -->
1542
+ </xsl:otherwise>
1543
+ </xsl:choose>
1544
+
1545
+
1546
+ </xsl:otherwise>
1547
+ </xsl:choose>
1548
+ </xsl:otherwise>
1549
+ </xsl:choose>
1550
+ </xsl:when>
1551
+ <!-- if preface and there is clause(s) -->
1552
+ <!-- <xsl:when test="ancestor::iho:preface">
1553
+ <xsl:choose>
1554
+ <xsl:when test="$level = 1 and ..//iho:clause">0</xsl:when>
1555
+ <xsl:when test="$level &gt;= 2">
1556
+ <xsl:variable name="num">
1557
+ <xsl:number format=".1" level="multiple" count="iho:clause"/>
1558
+ </xsl:variable>
1559
+ <xsl:value-of select="concat('0', $num)"/>
1560
+ </xsl:when>
1561
+ <xsl:otherwise></xsl:otherwise>
1562
+ </xsl:choose>
1563
+ </xsl:when> -->
1564
+ <xsl:otherwise>
1565
+ </xsl:otherwise>
1566
+ </xsl:choose>
1567
+ </xsl:variable>
1568
+ <xsl:value-of select="$section"/>
1569
+ </xsl:template>
1570
+
1571
+ <xsl:template name="getListItemFormat">
1572
+ <xsl:choose>
1573
+ <xsl:when test="local-name(..) = 'ul'">—</xsl:when> <!-- dash -->
1574
+ <xsl:otherwise> <!-- for ordered lists -->
1575
+ <xsl:choose>
1576
+ <xsl:when test="../@type = 'arabic'">
1577
+ <xsl:number format="a)"/>
1578
+ </xsl:when>
1579
+ <xsl:when test="../@type = 'alphabet'">
1580
+ <xsl:number format="a)"/>
1581
+ </xsl:when>
1582
+ <xsl:otherwise>
1583
+ <xsl:number format="1."/>
1584
+ </xsl:otherwise>
1585
+ </xsl:choose>
1586
+ </xsl:otherwise>
1587
+ </xsl:choose>
1588
+ </xsl:template>
1589
+
1590
+ <xsl:template match="@*|node()" mode="step2">
1591
+ <xsl:copy>
1592
+ <xsl:apply-templates select="@*|node()" mode="step2"/>
1593
+ </xsl:copy>
1594
+ </xsl:template>
1595
+
1596
+ <xsl:template match="iho:pagebreak" mode="step2">
1597
+
1598
+ <!-- determine pagebreak is last element before </fo:flow> or not -->
1599
+ <xsl:variable name="isLast">
1600
+ <xsl:for-each select="ancestor-or-self::*[ancestor::fo:flow]">
1601
+ <xsl:if test="following-sibling::*">false</xsl:if>
1602
+ </xsl:for-each>
1603
+ </xsl:variable>
1604
+
1605
+ <xsl:if test="contains($isLast, 'false')">
1606
+
1607
+ <xsl:variable name="orientation" select="normalize-space(@orientation)"/>
1608
+ <xsl:variable name="tree">
1609
+ <xsl:for-each select="ancestor::*[ancestor::fo:flow]">
1610
+ <element pos="{position()}">
1611
+ <xsl:value-of select="name()"/>
1612
+ </element>
1613
+ </xsl:for-each>
1614
+ </xsl:variable>
1615
+
1616
+ <!-- close fo:page-sequence (closing preceding fo elements) -->
1617
+ <xsl:for-each select="xalan:nodeset($tree)//element">
1618
+ <xsl:sort data-type="number" order="descending" select="@pos"/>
1619
+ <xsl:text disable-output-escaping="yes">&lt;/</xsl:text>
1620
+ <xsl:value-of select="."/>
1621
+ <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
1622
+ </xsl:for-each>
1623
+ <xsl:text disable-output-escaping="yes">&lt;/fo:flow&gt;</xsl:text>
1624
+ <xsl:text disable-output-escaping="yes">&lt;/fo:page-sequence&gt;</xsl:text>
1625
+
1626
+ <!-- <pagebreak/> -->
1627
+ <!-- create a new fo:page-sequence (opening fo elements) -->
1628
+
1629
+ <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>
1630
+ <fo:static-content flow-name="xsl-footnote-separator">
1631
+ <fo:block>
1632
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
1633
+ </fo:block>
1634
+ </fo:static-content>
1635
+ <xsl:call-template name="insertHeaderFooter"/>
1636
+ <xsl:text disable-output-escaping="yes">&lt;fo:flow flow-name="xsl-region-body"&gt;</xsl:text>
1637
+
1638
+ <xsl:for-each select="xalan:nodeset($tree)//element">
1639
+ <xsl:text disable-output-escaping="yes">&lt;</xsl:text>
1640
+ <xsl:value-of select="."/>
1641
+ <xsl:for-each select="@*[local-name() != 'pos']">
1642
+ <xsl:text> </xsl:text>
1643
+ <xsl:value-of select="local-name()"/>
1644
+ <xsl:text>="</xsl:text>
1645
+ <xsl:value-of select="."/>
1646
+ <xsl:text>"</xsl:text>
1647
+ </xsl:for-each>
1648
+ <xsl:text disable-output-escaping="yes">&gt;</xsl:text>
1649
+ </xsl:for-each>
1650
+ </xsl:if>
1651
+ </xsl:template>
1652
+
1653
+
1654
+ <xsl:variable name="Image-IHO">
1655
+ <xsl:text>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</xsl:text>
1656
+ </xsl:variable>
1657
+
1658
+ <xsl:variable name="Image-Logo-IHO">
1659
+ <xsl:text>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</xsl:text>
1660
+ </xsl:variable>
1661
+
1662
+ <xsl:variable name="Image-Text-IHO">
1663
+ <xsl:text>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</xsl:text>
1664
+ </xsl:variable>
1665
+
1666
+ <xsl:variable name="title-table">
1667
+
1668
+ <xsl:text>Table </xsl:text>
1669
+
1670
+
1671
+ </xsl:variable><xsl:variable name="title-note">
1672
+
1673
+ <xsl:text>NOTE </xsl:text>
1674
+
1675
+
1676
+ </xsl:variable><xsl:variable name="title-figure">
1677
+
1678
+ <xsl:text>Figure </xsl:text>
1679
+
1680
+
1681
+ </xsl:variable><xsl:variable name="title-example">
1682
+
1683
+ <xsl:text>EXAMPLE </xsl:text>
1684
+
1685
+
1686
+ </xsl:variable><xsl:variable name="title-inequality">Inequality </xsl:variable><xsl:variable name="title-equation">Equation </xsl:variable><xsl:variable name="title-annex">
1687
+
1688
+ <xsl:text>Annex </xsl:text>
1689
+
1690
+
1691
+ </xsl:variable><xsl:variable name="title-appendix">
1692
+ <xsl:text>Appendix </xsl:text>
1693
+ </xsl:variable><xsl:variable name="title-clause">
1694
+
1695
+ <xsl:text>Clause </xsl:text>
1696
+
1697
+
1698
+ </xsl:variable><xsl:variable name="title-edition">
1699
+ <xsl:text>Edition </xsl:text>
1700
+ </xsl:variable><xsl:variable name="title-toc">
1701
+ Contents
1702
+
1703
+ </xsl:variable><xsl:variable name="title-page">Page</xsl:variable><xsl:variable name="title-key">Key</xsl:variable><xsl:variable name="title-where">where</xsl:variable><xsl:variable name="title-descriptors">Descriptors</xsl:variable><xsl:variable name="title-part-en">Part </xsl:variable><xsl:variable name="title-part-fr">Partie </xsl:variable><xsl:variable name="title-note-to-entry">Note # to entry: </xsl:variable><xsl:variable name="title-modified">modified</xsl:variable><xsl:variable name="title-source">SOURCE</xsl:variable><xsl:variable name="title-keywords">Keywords</xsl:variable><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="link-style">
1704
+
1705
+ <xsl:attribute name="color">blue</xsl:attribute>
1706
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1707
+
1708
+
1709
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+ <xsl:attribute name="font-family">SFMono-Regular</xsl:attribute>
1719
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1720
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1721
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1722
+ <xsl:attribute name="line-height">113%</xsl:attribute>
1723
+
1724
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1725
+
1726
+
1727
+
1728
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1729
+
1730
+
1731
+
1732
+ </xsl:attribute-set><xsl:template match="text()">
1733
+ <xsl:value-of select="."/>
1734
+ </xsl:template><xsl:template match="*[local-name()='br']">
1735
+ <xsl:value-of select="$linebreak"/>
1736
+ </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1737
+ <!-- <xsl:call-template name="add-zero-spaces"/> -->
1738
+ <xsl:call-template name="add-zero-spaces-java"/>
1739
+ </xsl:template><xsl:template match="*[local-name()='table']">
1740
+
1741
+ <xsl:variable name="simple-table">
1742
+ <!-- <xsl:copy> -->
1743
+ <xsl:call-template name="getSimpleTable"/>
1744
+ <!-- </xsl:copy> -->
1745
+ </xsl:variable>
1746
+
1747
+ <!-- DEBUG -->
1748
+ <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
1749
+ <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
1750
+
1751
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
1752
+
1753
+ <!-- <xsl:if test="$namespace = 'iso'">
1754
+ <fo:block space-before="6pt">&#xA0;</fo:block>
1755
+ </xsl:if> -->
1756
+
1757
+ <xsl:choose>
1758
+ <xsl:when test="@unnumbered = 'true'"/>
1759
+ <xsl:otherwise>
1760
+
1761
+
1762
+
1763
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
1773
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1774
+
1775
+
1776
+ <xsl:value-of select="$title-table"/>
1777
+
1778
+ <xsl:call-template name="getTableNumber"/>
1779
+
1780
+
1781
+ <xsl:if test="*[local-name()='name']">
1782
+
1783
+
1784
+
1785
+ <xsl:text> — </xsl:text>
1786
+
1787
+ <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
1788
+ </xsl:if>
1789
+ </fo:block>
1790
+
1791
+
1792
+ <xsl:call-template name="fn_name_display"/>
1793
+
1794
+ </xsl:otherwise>
1795
+ </xsl:choose>
1796
+
1797
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
1798
+
1799
+ <!-- <xsl:variable name="cols-count">
1800
+ <xsl:choose>
1801
+ <xsl:when test="*[local-name()='thead']">
1802
+ <xsl:call-template name="calculate-columns-numbers">
1803
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
1804
+ </xsl:call-template>
1805
+ </xsl:when>
1806
+ <xsl:otherwise>
1807
+ <xsl:call-template name="calculate-columns-numbers">
1808
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
1809
+ </xsl:call-template>
1810
+ </xsl:otherwise>
1811
+ </xsl:choose>
1812
+ </xsl:variable> -->
1813
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
1814
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
1815
+
1816
+
1817
+
1818
+ <xsl:variable name="colwidths">
1819
+ <xsl:call-template name="calculate-column-widths">
1820
+ <xsl:with-param name="cols-count" select="$cols-count"/>
1821
+ <xsl:with-param name="table" select="$simple-table"/>
1822
+ </xsl:call-template>
1823
+ </xsl:variable>
1824
+
1825
+ <!-- <xsl:variable name="colwidths2">
1826
+ <xsl:call-template name="calculate-column-widths">
1827
+ <xsl:with-param name="cols-count" select="$cols-count"/>
1828
+ </xsl:call-template>
1829
+ </xsl:variable> -->
1830
+
1831
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
1832
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
1833
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
1834
+
1835
+ <xsl:variable name="margin-left">
1836
+ <xsl:choose>
1837
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
1838
+ <xsl:otherwise>0</xsl:otherwise>
1839
+ </xsl:choose>
1840
+ </xsl:variable>
1841
+
1842
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+ <xsl:attribute name="space-after">18pt</xsl:attribute>
1852
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
1853
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1854
+
1855
+ <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
1868
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1869
+
1870
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1871
+ <xsl:choose>
1872
+ <xsl:when test=". = 1 or . = 0">
1873
+ <fo:table-column column-width="proportional-column-width(2)"/>
1874
+ </xsl:when>
1875
+ <xsl:otherwise>
1876
+ <fo:table-column column-width="proportional-column-width({.})"/>
1877
+ </xsl:otherwise>
1878
+ </xsl:choose>
1879
+ </xsl:for-each>
1880
+ <xsl:apply-templates/>
1881
+ </fo:table>
1882
+
1883
+
1884
+
1885
+ </fo:block-container>
1886
+ </xsl:template><xsl:template name="getTableNumber">
1887
+ <xsl:choose>
1888
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
1889
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
1890
+ </xsl:when>
1891
+ <xsl:when test="ancestor::*[local-name()='annex']">
1892
+
1893
+
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+ </xsl:when>
1901
+ <xsl:otherwise>
1902
+
1903
+
1904
+ <xsl:number format="A." count="*[local-name()='annex']"/>
1905
+ <xsl:number format="1" level="any" count="//*[local-name()='table'] [not(ancestor::*[local-name()='annex']) and not(ancestor::*[local-name()='executivesummary']) and not(ancestor::*[local-name()='bibdata'])] [not(@unnumbered) or @unnumbered != 'true']"/>
1906
+
1907
+ </xsl:otherwise>
1908
+ </xsl:choose>
1909
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']"/><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="process">
1910
+ <xsl:apply-templates/>
1911
+ </xsl:template><xsl:template name="calculate-columns-numbers">
1912
+ <xsl:param name="table-row"/>
1913
+ <xsl:variable name="columns-count" select="count($table-row/*)"/>
1914
+ <xsl:variable name="sum-colspans" select="sum($table-row/*/@colspan)"/>
1915
+ <xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
1916
+ <xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
1917
+ </xsl:template><xsl:template name="calculate-column-widths">
1918
+ <xsl:param name="table"/>
1919
+ <xsl:param name="cols-count"/>
1920
+ <xsl:param name="curr-col" select="1"/>
1921
+ <xsl:param name="width" select="0"/>
1922
+
1923
+ <xsl:if test="$curr-col &lt;= $cols-count">
1924
+ <xsl:variable name="widths">
1925
+ <xsl:choose>
1926
+ <xsl:when test="not($table)"><!-- this branch is not using in production, for debug only -->
1927
+ <xsl:for-each select="*[local-name()='thead']//*[local-name()='tr']">
1928
+ <xsl:variable name="words">
1929
+ <xsl:call-template name="tokenize">
1930
+ <xsl:with-param name="text" select="translate(*[local-name()='th'][$curr-col],'- —:', ' ')"/>
1931
+ </xsl:call-template>
1932
+ </xsl:variable>
1933
+ <xsl:variable name="max_length">
1934
+ <xsl:call-template name="max_length">
1935
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
1936
+ </xsl:call-template>
1937
+ </xsl:variable>
1938
+ <width>
1939
+ <xsl:value-of select="$max_length"/>
1940
+ </width>
1941
+ </xsl:for-each>
1942
+ <xsl:for-each select="*[local-name()='tbody']//*[local-name()='tr']">
1943
+ <xsl:variable name="words">
1944
+ <xsl:call-template name="tokenize">
1945
+ <xsl:with-param name="text" select="translate(*[local-name()='td'][$curr-col],'- —:', ' ')"/>
1946
+ </xsl:call-template>
1947
+ </xsl:variable>
1948
+ <xsl:variable name="max_length">
1949
+ <xsl:call-template name="max_length">
1950
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
1951
+ </xsl:call-template>
1952
+ </xsl:variable>
1953
+ <width>
1954
+ <xsl:value-of select="$max_length"/>
1955
+ </width>
1956
+
1957
+ </xsl:for-each>
1958
+ </xsl:when>
1959
+ <xsl:otherwise>
1960
+ <xsl:for-each select="xalan:nodeset($table)//tr">
1961
+ <xsl:variable name="td_text">
1962
+ <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
1963
+ </xsl:variable>
1964
+ <xsl:variable name="words">
1965
+ <xsl:variable name="string_with_added_zerospaces">
1966
+ <xsl:call-template name="add-zero-spaces-java">
1967
+ <xsl:with-param name="text" select="$td_text"/>
1968
+ </xsl:call-template>
1969
+ </xsl:variable>
1970
+ <xsl:call-template name="tokenize">
1971
+ <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
1972
+ <!-- 2009 thinspace -->
1973
+ <!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
1974
+ <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '​', ' '))"/>
1975
+ </xsl:call-template>
1976
+ </xsl:variable>
1977
+ <xsl:variable name="max_length">
1978
+ <xsl:call-template name="max_length">
1979
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
1980
+ </xsl:call-template>
1981
+ </xsl:variable>
1982
+ <width>
1983
+ <xsl:variable name="divider">
1984
+ <xsl:choose>
1985
+ <xsl:when test="td[$curr-col]/@divide">
1986
+ <xsl:value-of select="td[$curr-col]/@divide"/>
1987
+ </xsl:when>
1988
+ <xsl:otherwise>1</xsl:otherwise>
1989
+ </xsl:choose>
1990
+ </xsl:variable>
1991
+ <xsl:value-of select="$max_length div $divider"/>
1992
+ </width>
1993
+
1994
+ </xsl:for-each>
1995
+
1996
+ </xsl:otherwise>
1997
+ </xsl:choose>
1998
+ </xsl:variable>
1999
+
2000
+
2001
+ <column>
2002
+ <xsl:for-each select="xalan:nodeset($widths)//width">
2003
+ <xsl:sort select="." data-type="number" order="descending"/>
2004
+ <xsl:if test="position()=1">
2005
+ <xsl:value-of select="."/>
2006
+ </xsl:if>
2007
+ </xsl:for-each>
2008
+ </column>
2009
+ <xsl:call-template name="calculate-column-widths">
2010
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2011
+ <xsl:with-param name="curr-col" select="$curr-col +1"/>
2012
+ <xsl:with-param name="table" select="$table"/>
2013
+ </xsl:call-template>
2014
+ </xsl:if>
2015
+ </xsl:template><xsl:template match="text()" mode="td_text">
2016
+ <xsl:variable name="zero-space">​</xsl:variable>
2017
+ <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
2018
+ </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
2019
+ <xsl:value-of select="*[local-name()='origin']/@citeas"/>
2020
+ </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
2021
+ <xsl:value-of select="@target"/>
2022
+ </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2023
+ <xsl:param name="cols-count"/>
2024
+ <!-- font-weight="bold" -->
2025
+ <fo:table-header>
2026
+
2027
+ <xsl:apply-templates/>
2028
+ </fo:table-header>
2029
+ </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2030
+ <xsl:apply-templates/>
2031
+ </xsl:template><xsl:template name="insertTableFooter">
2032
+ <xsl:param name="cols-count"/>
2033
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2034
+ <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
2035
+
2036
+ <fo:table-footer>
2037
+
2038
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2039
+
2040
+ <!-- if there are note(s) or fn(s) then create footer row -->
2041
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2042
+
2043
+
2044
+
2045
+ <fo:table-row>
2046
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2047
+
2048
+
2049
+
2050
+ <!-- fn will be processed inside 'note' processing -->
2051
+
2052
+
2053
+ <!-- except gb -->
2054
+
2055
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2056
+
2057
+
2058
+ <!-- horizontal row separator -->
2059
+
2060
+
2061
+ <!-- fn processing -->
2062
+ <xsl:call-template name="fn_display"/>
2063
+
2064
+ </fo:table-cell>
2065
+ </fo:table-row>
2066
+
2067
+ </xsl:if>
2068
+ </fo:table-footer>
2069
+
2070
+ </xsl:if>
2071
+ </xsl:template><xsl:template match="*[local-name()='tbody']">
2072
+
2073
+ <xsl:variable name="cols-count">
2074
+ <xsl:choose>
2075
+ <xsl:when test="../*[local-name()='thead']">
2076
+ <xsl:call-template name="calculate-columns-numbers">
2077
+ <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
2078
+ </xsl:call-template>
2079
+ </xsl:when>
2080
+ <xsl:otherwise>
2081
+ <xsl:call-template name="calculate-columns-numbers">
2082
+ <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
2083
+ </xsl:call-template>
2084
+ </xsl:otherwise>
2085
+ </xsl:choose>
2086
+ </xsl:variable>
2087
+
2088
+ <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
2089
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2090
+ </xsl:apply-templates>
2091
+
2092
+ <xsl:call-template name="insertTableFooter">
2093
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2094
+ </xsl:call-template>
2095
+
2096
+ <fo:table-body>
2097
+ <xsl:apply-templates/>
2098
+ <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
2099
+
2100
+ </fo:table-body>
2101
+
2102
+ </xsl:template><xsl:template match="*[local-name()='tr']">
2103
+ <xsl:variable name="parent-name" select="local-name(..)"/>
2104
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2105
+ <fo:table-row min-height="4mm">
2106
+ <xsl:if test="$parent-name = 'thead'">
2107
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+ </xsl:if>
2114
+ <xsl:if test="$parent-name = 'tfoot'">
2115
+
2116
+
2117
+ </xsl:if>
2118
+
2119
+
2120
+ <xsl:apply-templates/>
2121
+ </fo:table-row>
2122
+ </xsl:template><xsl:template match="*[local-name()='th']">
2123
+ <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2124
+
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+ <xsl:if test="@colspan">
2132
+ <xsl:attribute name="number-columns-spanned">
2133
+ <xsl:value-of select="@colspan"/>
2134
+ </xsl:attribute>
2135
+ </xsl:if>
2136
+ <xsl:if test="@rowspan">
2137
+ <xsl:attribute name="number-rows-spanned">
2138
+ <xsl:value-of select="@rowspan"/>
2139
+ </xsl:attribute>
2140
+ </xsl:if>
2141
+ <fo:block>
2142
+ <xsl:apply-templates/>
2143
+ </fo:block>
2144
+ </fo:table-cell>
2145
+ </xsl:template><xsl:template match="*[local-name()='td']">
2146
+ <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2147
+ <!-- and ancestor::*[local-name() = 'thead'] -->
2148
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
2149
+
2150
+
2151
+
2152
+
2153
+
2154
+
2155
+
2156
+
2157
+
2158
+ <xsl:if test="@colspan">
2159
+ <xsl:attribute name="number-columns-spanned">
2160
+ <xsl:value-of select="@colspan"/>
2161
+ </xsl:attribute>
2162
+ </xsl:if>
2163
+ <xsl:if test="@rowspan">
2164
+ <xsl:attribute name="number-rows-spanned">
2165
+ <xsl:value-of select="@rowspan"/>
2166
+ </xsl:attribute>
2167
+ </xsl:if>
2168
+ <fo:block>
2169
+
2170
+ <xsl:apply-templates/>
2171
+ </fo:block>
2172
+ <!-- <xsl:choose>
2173
+ <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
2174
+ <xsl:apply-templates />
2175
+ </xsl:when>
2176
+ <xsl:otherwise>
2177
+ <fo:block>
2178
+ <xsl:apply-templates />
2179
+ </fo:block>
2180
+ </xsl:otherwise>
2181
+ </xsl:choose> -->
2182
+
2183
+
2184
+ </fo:table-cell>
2185
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
2186
+
2187
+
2188
+ <fo:block font-size="10pt" margin-bottom="12pt">
2189
+
2190
+
2191
+
2192
+
2193
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
2194
+
2195
+ <fo:inline padding-right="2mm">
2196
+
2197
+
2198
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
2199
+
2200
+ <xsl:value-of select="$title-note"/>
2201
+
2202
+ <xsl:variable name="id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
2203
+ <xsl:if test="count(//*[local-name()='note'][ancestor::*[@id = $id]]) &gt; 1">
2204
+ <xsl:number count="*[local-name()='note'][ancestor::*[@id = $id]]" level="any"/>
2205
+ </xsl:if>
2206
+
2207
+
2208
+
2209
+
2210
+ </fo:inline>
2211
+ <xsl:apply-templates mode="process"/>
2212
+ </fo:block>
2213
+
2214
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
2215
+ <xsl:apply-templates/>
2216
+ </xsl:template><xsl:template name="fn_display">
2217
+ <xsl:variable name="references">
2218
+ <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
2219
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2220
+
2221
+
2222
+ <xsl:apply-templates/>
2223
+ </fn>
2224
+ </xsl:for-each>
2225
+ </xsl:variable>
2226
+ <xsl:for-each select="xalan:nodeset($references)//fn">
2227
+ <xsl:variable name="reference" select="@reference"/>
2228
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2229
+ <fo:block margin-bottom="12pt">
2230
+
2231
+
2232
+
2233
+
2234
+ <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2235
+
2236
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
2237
+
2238
+
2239
+
2240
+
2241
+
2242
+
2243
+ <xsl:value-of select="@reference"/>
2244
+
2245
+ </fo:inline>
2246
+ <fo:inline>
2247
+
2248
+ <xsl:apply-templates/>
2249
+ </fo:inline>
2250
+ </fo:block>
2251
+ </xsl:if>
2252
+ </xsl:for-each>
2253
+ </xsl:template><xsl:template name="fn_name_display">
2254
+ <!-- <xsl:variable name="references">
2255
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2256
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2257
+ <xsl:apply-templates />
2258
+ </fn>
2259
+ </xsl:for-each>
2260
+ </xsl:variable>
2261
+ $references=<xsl:copy-of select="$references"/> -->
2262
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2263
+ <xsl:variable name="reference" select="@reference"/>
2264
+ <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
2265
+ <fo:block margin-bottom="12pt">
2266
+ <xsl:apply-templates/>
2267
+ </fo:block>
2268
+ </xsl:for-each>
2269
+ </xsl:template><xsl:template name="fn_display_figure">
2270
+ <xsl:variable name="key_iso">
2271
+ <!-- and (not(@class) or @class !='pseudocode') -->
2272
+ </xsl:variable>
2273
+ <xsl:variable name="references">
2274
+ <xsl:for-each select=".//*[local-name()='fn']">
2275
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2276
+ <xsl:apply-templates/>
2277
+ </fn>
2278
+ </xsl:for-each>
2279
+ </xsl:variable>
2280
+ <xsl:if test="xalan:nodeset($references)//fn">
2281
+ <fo:block>
2282
+ <fo:table width="95%" table-layout="fixed">
2283
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2284
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2285
+
2286
+ </xsl:if>
2287
+ <fo:table-column column-width="15%"/>
2288
+ <fo:table-column column-width="85%"/>
2289
+ <fo:table-body>
2290
+ <xsl:for-each select="xalan:nodeset($references)//fn">
2291
+ <xsl:variable name="reference" select="@reference"/>
2292
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2293
+ <fo:table-row>
2294
+ <fo:table-cell>
2295
+ <fo:block>
2296
+ <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
2297
+
2298
+ <xsl:value-of select="@reference"/>
2299
+ </fo:inline>
2300
+ </fo:block>
2301
+ </fo:table-cell>
2302
+ <fo:table-cell>
2303
+ <fo:block text-align="justify" margin-bottom="12pt">
2304
+
2305
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2306
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
2307
+ </xsl:if>
2308
+
2309
+ <xsl:apply-templates/>
2310
+ </fo:block>
2311
+ </fo:table-cell>
2312
+ </fo:table-row>
2313
+ </xsl:if>
2314
+ </xsl:for-each>
2315
+ </fo:table-body>
2316
+ </fo:table>
2317
+ </fo:block>
2318
+ </xsl:if>
2319
+
2320
+ </xsl:template><xsl:template match="*[local-name()='fn']">
2321
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2322
+ <fo:inline font-size="80%" keep-with-previous.within-line="always">
2323
+
2324
+
2325
+
2326
+
2327
+ <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
2328
+
2329
+ <xsl:value-of select="@reference"/>
2330
+ </fo:basic-link>
2331
+ </fo:inline>
2332
+ </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
2333
+ <fo:inline>
2334
+ <xsl:apply-templates/>
2335
+ </fo:inline>
2336
+ </xsl:template><xsl:template match="*[local-name()='dl']">
2337
+ <xsl:variable name="parent" select="local-name(..)"/>
2338
+
2339
+ <xsl:variable name="key_iso">
2340
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
2341
+ </xsl:variable>
2342
+
2343
+ <xsl:choose>
2344
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2345
+
2346
+
2347
+ <fo:block margin-bottom="12pt" text-align="left">
2348
+
2349
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2350
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
2351
+ <xsl:text/>
2352
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2353
+ </fo:block>
2354
+
2355
+ </xsl:when>
2356
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2357
+ <fo:block margin-bottom="12pt" text-align="left">
2358
+
2359
+
2360
+
2361
+
2362
+ <xsl:value-of select="$title-where"/>
2363
+ </fo:block>
2364
+ </xsl:when>
2365
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2366
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt">
2367
+
2368
+
2369
+
2370
+ <xsl:value-of select="$title-key"/>
2371
+ </fo:block>
2372
+ </xsl:when>
2373
+ </xsl:choose>
2374
+
2375
+ <!-- a few components -->
2376
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2377
+ <fo:block>
2378
+
2379
+
2380
+
2381
+
2382
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
2383
+
2384
+ <fo:block>
2385
+
2386
+
2387
+
2388
+ <xsl:attribute name="margin-left">-3.5mm</xsl:attribute>
2389
+
2390
+ <!-- create virtual html table for dl/[dt and dd] -->
2391
+ <xsl:variable name="html-table">
2392
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2393
+ <xsl:element name="{$ns}:table">
2394
+ <tbody>
2395
+ <xsl:apply-templates mode="dl"/>
2396
+ </tbody>
2397
+ </xsl:element>
2398
+ </xsl:variable>
2399
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
2400
+ <xsl:variable name="colwidths">
2401
+ <xsl:call-template name="calculate-column-widths">
2402
+ <xsl:with-param name="cols-count" select="2"/>
2403
+ <xsl:with-param name="table" select="$html-table"/>
2404
+ </xsl:call-template>
2405
+ </xsl:variable>
2406
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2407
+
2408
+ <fo:table width="95%" table-layout="fixed">
2409
+
2410
+ <xsl:choose>
2411
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2412
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2413
+ </xsl:when>
2414
+ <xsl:when test="normalize-space($key_iso) = 'true'">
2415
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2416
+
2417
+ </xsl:when>
2418
+ </xsl:choose>
2419
+ <xsl:choose>
2420
+ <xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
2421
+ <fo:table-column column-width="50%"/>
2422
+ <fo:table-column column-width="50%"/>
2423
+ </xsl:when>
2424
+ <xsl:otherwise>
2425
+ <xsl:choose>
2426
+ <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
2427
+ <fo:table-column column-width="60%"/>
2428
+ <fo:table-column column-width="40%"/>
2429
+ </xsl:when> -->
2430
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.3">
2431
+ <fo:table-column column-width="50%"/>
2432
+ <fo:table-column column-width="50%"/>
2433
+ </xsl:when>
2434
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 0.5">
2435
+ <fo:table-column column-width="40%"/>
2436
+ <fo:table-column column-width="60%"/>
2437
+ </xsl:when>
2438
+ <xsl:otherwise>
2439
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2440
+ <xsl:choose>
2441
+ <xsl:when test=". = 1 or . = 0">
2442
+ <fo:table-column column-width="proportional-column-width(2)"/>
2443
+ </xsl:when>
2444
+ <xsl:otherwise>
2445
+ <fo:table-column column-width="proportional-column-width({.})"/>
2446
+ </xsl:otherwise>
2447
+ </xsl:choose>
2448
+ </xsl:for-each>
2449
+ </xsl:otherwise>
2450
+ </xsl:choose>
2451
+ <!-- <fo:table-column column-width="15%"/>
2452
+ <fo:table-column column-width="85%"/> -->
2453
+ </xsl:otherwise>
2454
+ </xsl:choose>
2455
+ <fo:table-body>
2456
+ <xsl:apply-templates>
2457
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2458
+ </xsl:apply-templates>
2459
+ </fo:table-body>
2460
+ </fo:table>
2461
+ </fo:block>
2462
+ </fo:block>
2463
+ </xsl:if>
2464
+ </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']">
2465
+ <xsl:param name="key_iso"/>
2466
+
2467
+ <!-- <tr>
2468
+ <td>NOTE</td>
2469
+ <td>
2470
+ <xsl:apply-templates />
2471
+ </td>
2472
+ </tr>
2473
+ -->
2474
+ <fo:table-row>
2475
+ <fo:table-cell>
2476
+ <fo:block margin-top="6pt">
2477
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2478
+ <xsl:attribute name="margin-top">0</xsl:attribute>
2479
+ </xsl:if>
2480
+ <xsl:value-of select="$title-note"/>
2481
+ </fo:block>
2482
+ </fo:table-cell>
2483
+ <fo:table-cell>
2484
+ <fo:block>
2485
+ <xsl:apply-templates/>
2486
+ </fo:block>
2487
+ </fo:table-cell>
2488
+ </fo:table-row>
2489
+ </xsl:template><xsl:template match="*[local-name()='dt']" mode="dl">
2490
+ <tr>
2491
+ <td>
2492
+ <xsl:apply-templates/>
2493
+ </td>
2494
+ <td>
2495
+
2496
+
2497
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2498
+
2499
+ </td>
2500
+ </tr>
2501
+
2502
+ </xsl:template><xsl:template match="*[local-name()='dt']">
2503
+ <xsl:param name="key_iso"/>
2504
+
2505
+ <fo:table-row>
2506
+ <fo:table-cell>
2507
+
2508
+ <fo:block margin-top="6pt">
2509
+
2510
+
2511
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2512
+ <xsl:attribute name="margin-top">0</xsl:attribute>
2513
+
2514
+ </xsl:if>
2515
+
2516
+
2517
+
2518
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
2519
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2520
+
2521
+
2522
+
2523
+ <xsl:apply-templates/>
2524
+
2525
+ </fo:block>
2526
+ </fo:table-cell>
2527
+ <fo:table-cell>
2528
+ <fo:block>
2529
+
2530
+
2531
+
2532
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2533
+
2534
+ </fo:block>
2535
+ </fo:table-cell>
2536
+ </fo:table-row>
2537
+
2538
+ </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
2539
+ <xsl:apply-templates/>
2540
+ </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
2541
+ <xsl:apply-templates/>
2542
+ </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
2543
+ <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
2544
+ </xsl:template><xsl:template match="*[local-name()='em']">
2545
+ <fo:inline font-style="italic">
2546
+ <xsl:apply-templates/>
2547
+ </fo:inline>
2548
+ </xsl:template><xsl:template match="*[local-name()='strong']">
2549
+ <fo:inline font-weight="bold">
2550
+ <xsl:apply-templates/>
2551
+ </fo:inline>
2552
+ </xsl:template><xsl:template match="*[local-name()='sup']">
2553
+ <fo:inline font-size="80%" vertical-align="super">
2554
+ <xsl:apply-templates/>
2555
+ </fo:inline>
2556
+ </xsl:template><xsl:template match="*[local-name()='sub']">
2557
+ <fo:inline font-size="80%" vertical-align="sub">
2558
+ <xsl:apply-templates/>
2559
+ </fo:inline>
2560
+ </xsl:template><xsl:template match="*[local-name()='tt']">
2561
+ <fo:inline font-family="Courier" font-size="10pt">
2562
+ <xsl:apply-templates/>
2563
+ </fo:inline>
2564
+ </xsl:template><xsl:template match="*[local-name()='del']">
2565
+ <fo:inline font-size="10pt" color="red" text-decoration="line-through">
2566
+ <xsl:apply-templates/>
2567
+ </fo:inline>
2568
+ </xsl:template><xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
2569
+ <xsl:variable name="text" select="normalize-space(.)"/>
2570
+ <fo:inline font-size="75%">
2571
+ <xsl:if test="string-length($text) &gt; 0">
2572
+ <xsl:call-template name="recursiveSmallCaps">
2573
+ <xsl:with-param name="text" select="$text"/>
2574
+ </xsl:call-template>
2575
+ </xsl:if>
2576
+ </fo:inline>
2577
+ </xsl:template><xsl:template name="recursiveSmallCaps">
2578
+ <xsl:param name="text"/>
2579
+ <xsl:variable name="char" select="substring($text,1,1)"/>
2580
+ <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/>
2581
+ <xsl:choose>
2582
+ <xsl:when test="$char=$upperCase">
2583
+ <fo:inline font-size="{100 div 0.75}%">
2584
+ <xsl:value-of select="$upperCase"/>
2585
+ </fo:inline>
2586
+ </xsl:when>
2587
+ <xsl:otherwise>
2588
+ <xsl:value-of select="$upperCase"/>
2589
+ </xsl:otherwise>
2590
+ </xsl:choose>
2591
+ <xsl:if test="string-length($text) &gt; 1">
2592
+ <xsl:call-template name="recursiveSmallCaps">
2593
+ <xsl:with-param name="text" select="substring($text,2)"/>
2594
+ </xsl:call-template>
2595
+ </xsl:if>
2596
+ </xsl:template><xsl:template name="tokenize">
2597
+ <xsl:param name="text"/>
2598
+ <xsl:param name="separator" select="' '"/>
2599
+ <xsl:choose>
2600
+ <xsl:when test="not(contains($text, $separator))">
2601
+ <word>
2602
+ <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
2603
+ <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
2604
+ <xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
2605
+ <xsl:variable name="len_str">
2606
+ <xsl:choose>
2607
+ <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
2608
+ <xsl:value-of select="$len_str_tmp * 1.5"/>
2609
+ </xsl:when>
2610
+ <xsl:otherwise>
2611
+ <xsl:value-of select="$len_str_tmp"/>
2612
+ </xsl:otherwise>
2613
+ </xsl:choose>
2614
+ </xsl:variable>
2615
+
2616
+ <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
2617
+ <xsl:message>
2618
+ div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
2619
+ len_str=<xsl:value-of select="$len_str"/>
2620
+ len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
2621
+ </xsl:message>
2622
+ </xsl:if> -->
2623
+ <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
2624
+ <len_str><xsl:value-of select="$len_str"/></len_str> -->
2625
+ <xsl:choose>
2626
+ <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
2627
+ <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
2628
+ </xsl:when>
2629
+ <xsl:otherwise>
2630
+ <xsl:value-of select="$len_str"/>
2631
+ </xsl:otherwise>
2632
+ </xsl:choose>
2633
+ </word>
2634
+ </xsl:when>
2635
+ <xsl:otherwise>
2636
+ <word>
2637
+ <xsl:value-of select="string-length(normalize-space(substring-before($text, $separator)))"/>
2638
+ </word>
2639
+ <xsl:call-template name="tokenize">
2640
+ <xsl:with-param name="text" select="substring-after($text, $separator)"/>
2641
+ </xsl:call-template>
2642
+ </xsl:otherwise>
2643
+ </xsl:choose>
2644
+ </xsl:template><xsl:template name="max_length">
2645
+ <xsl:param name="words"/>
2646
+ <xsl:for-each select="$words//word">
2647
+ <xsl:sort select="." data-type="number" order="descending"/>
2648
+ <xsl:if test="position()=1">
2649
+ <xsl:value-of select="."/>
2650
+ </xsl:if>
2651
+ </xsl:for-each>
2652
+ </xsl:template><xsl:template name="add-zero-spaces-java">
2653
+ <xsl:param name="text" select="."/>
2654
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
2655
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
2656
+ </xsl:template><xsl:template name="add-zero-spaces">
2657
+ <xsl:param name="text" select="."/>
2658
+ <xsl:variable name="zero-space-after-chars">-</xsl:variable>
2659
+ <xsl:variable name="zero-space-after-dot">.</xsl:variable>
2660
+ <xsl:variable name="zero-space-after-colon">:</xsl:variable>
2661
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
2662
+ <xsl:variable name="zero-space-after-underscore">_</xsl:variable>
2663
+ <xsl:variable name="zero-space">​</xsl:variable>
2664
+ <xsl:choose>
2665
+ <xsl:when test="contains($text, $zero-space-after-chars)">
2666
+ <xsl:value-of select="substring-before($text, $zero-space-after-chars)"/>
2667
+ <xsl:value-of select="$zero-space-after-chars"/>
2668
+ <xsl:value-of select="$zero-space"/>
2669
+ <xsl:call-template name="add-zero-spaces">
2670
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-chars)"/>
2671
+ </xsl:call-template>
2672
+ </xsl:when>
2673
+ <xsl:when test="contains($text, $zero-space-after-dot)">
2674
+ <xsl:value-of select="substring-before($text, $zero-space-after-dot)"/>
2675
+ <xsl:value-of select="$zero-space-after-dot"/>
2676
+ <xsl:value-of select="$zero-space"/>
2677
+ <xsl:call-template name="add-zero-spaces">
2678
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-dot)"/>
2679
+ </xsl:call-template>
2680
+ </xsl:when>
2681
+ <xsl:when test="contains($text, $zero-space-after-colon)">
2682
+ <xsl:value-of select="substring-before($text, $zero-space-after-colon)"/>
2683
+ <xsl:value-of select="$zero-space-after-colon"/>
2684
+ <xsl:value-of select="$zero-space"/>
2685
+ <xsl:call-template name="add-zero-spaces">
2686
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-colon)"/>
2687
+ </xsl:call-template>
2688
+ </xsl:when>
2689
+ <xsl:when test="contains($text, $zero-space-after-equal)">
2690
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
2691
+ <xsl:value-of select="$zero-space-after-equal"/>
2692
+ <xsl:value-of select="$zero-space"/>
2693
+ <xsl:call-template name="add-zero-spaces">
2694
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
2695
+ </xsl:call-template>
2696
+ </xsl:when>
2697
+ <xsl:when test="contains($text, $zero-space-after-underscore)">
2698
+ <xsl:value-of select="substring-before($text, $zero-space-after-underscore)"/>
2699
+ <xsl:value-of select="$zero-space-after-underscore"/>
2700
+ <xsl:value-of select="$zero-space"/>
2701
+ <xsl:call-template name="add-zero-spaces">
2702
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-underscore)"/>
2703
+ </xsl:call-template>
2704
+ </xsl:when>
2705
+ <xsl:otherwise>
2706
+ <xsl:value-of select="$text"/>
2707
+ </xsl:otherwise>
2708
+ </xsl:choose>
2709
+ </xsl:template><xsl:template name="add-zero-spaces-equal">
2710
+ <xsl:param name="text" select="."/>
2711
+ <xsl:variable name="zero-space-after-equals">==========</xsl:variable>
2712
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
2713
+ <xsl:variable name="zero-space">​</xsl:variable>
2714
+ <xsl:choose>
2715
+ <xsl:when test="contains($text, $zero-space-after-equals)">
2716
+ <xsl:value-of select="substring-before($text, $zero-space-after-equals)"/>
2717
+ <xsl:value-of select="$zero-space-after-equals"/>
2718
+ <xsl:value-of select="$zero-space"/>
2719
+ <xsl:call-template name="add-zero-spaces-equal">
2720
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equals)"/>
2721
+ </xsl:call-template>
2722
+ </xsl:when>
2723
+ <xsl:when test="contains($text, $zero-space-after-equal)">
2724
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
2725
+ <xsl:value-of select="$zero-space-after-equal"/>
2726
+ <xsl:value-of select="$zero-space"/>
2727
+ <xsl:call-template name="add-zero-spaces-equal">
2728
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
2729
+ </xsl:call-template>
2730
+ </xsl:when>
2731
+ <xsl:otherwise>
2732
+ <xsl:value-of select="$text"/>
2733
+ </xsl:otherwise>
2734
+ </xsl:choose>
2735
+ </xsl:template><xsl:template name="getSimpleTable">
2736
+ <xsl:variable name="simple-table">
2737
+
2738
+ <!-- Step 1. colspan processing -->
2739
+ <xsl:variable name="simple-table-colspan">
2740
+ <tbody>
2741
+ <xsl:apply-templates mode="simple-table-colspan"/>
2742
+ </tbody>
2743
+ </xsl:variable>
2744
+
2745
+ <!-- Step 2. rowspan processing -->
2746
+ <xsl:variable name="simple-table-rowspan">
2747
+ <xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
2748
+ </xsl:variable>
2749
+
2750
+ <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
2751
+
2752
+ <!-- <xsl:choose>
2753
+ <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
2754
+
2755
+ </xsl:when>
2756
+ <xsl:otherwise>
2757
+ <xsl:copy-of select="current()"/>
2758
+ </xsl:otherwise>
2759
+ </xsl:choose> -->
2760
+ </xsl:variable>
2761
+ <xsl:copy-of select="$simple-table"/>
2762
+ </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
2763
+ <xsl:apply-templates mode="simple-table-colspan"/>
2764
+ </xsl:template><xsl:template match="*[local-name()='fn']" mode="simple-table-colspan"/><xsl:template match="*[local-name()='th'] | *[local-name()='td']" mode="simple-table-colspan">
2765
+ <xsl:choose>
2766
+ <xsl:when test="@colspan">
2767
+ <xsl:variable name="td">
2768
+ <xsl:element name="td">
2769
+ <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
2770
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
2771
+ <xsl:apply-templates mode="simple-table-colspan"/>
2772
+ </xsl:element>
2773
+ </xsl:variable>
2774
+ <xsl:call-template name="repeatNode">
2775
+ <xsl:with-param name="count" select="@colspan"/>
2776
+ <xsl:with-param name="node" select="$td"/>
2777
+ </xsl:call-template>
2778
+ </xsl:when>
2779
+ <xsl:otherwise>
2780
+ <xsl:element name="td">
2781
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
2782
+ <xsl:apply-templates mode="simple-table-colspan"/>
2783
+ </xsl:element>
2784
+ </xsl:otherwise>
2785
+ </xsl:choose>
2786
+ </xsl:template><xsl:template match="@colspan" mode="simple-table-colspan"/><xsl:template match="*[local-name()='tr']" mode="simple-table-colspan">
2787
+ <xsl:element name="tr">
2788
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
2789
+ <xsl:apply-templates mode="simple-table-colspan"/>
2790
+ </xsl:element>
2791
+ </xsl:template><xsl:template match="@*|node()" mode="simple-table-colspan">
2792
+ <xsl:copy>
2793
+ <xsl:apply-templates select="@*|node()" mode="simple-table-colspan"/>
2794
+ </xsl:copy>
2795
+ </xsl:template><xsl:template name="repeatNode">
2796
+ <xsl:param name="count"/>
2797
+ <xsl:param name="node"/>
2798
+
2799
+ <xsl:if test="$count &gt; 0">
2800
+ <xsl:call-template name="repeatNode">
2801
+ <xsl:with-param name="count" select="$count - 1"/>
2802
+ <xsl:with-param name="node" select="$node"/>
2803
+ </xsl:call-template>
2804
+ <xsl:copy-of select="$node"/>
2805
+ </xsl:if>
2806
+ </xsl:template><xsl:template match="@*|node()" mode="simple-table-rowspan">
2807
+ <xsl:copy>
2808
+ <xsl:apply-templates select="@*|node()" mode="simple-table-rowspan"/>
2809
+ </xsl:copy>
2810
+ </xsl:template><xsl:template match="tbody" mode="simple-table-rowspan">
2811
+ <xsl:copy>
2812
+ <xsl:copy-of select="tr[1]"/>
2813
+ <xsl:apply-templates select="tr[2]" mode="simple-table-rowspan">
2814
+ <xsl:with-param name="previousRow" select="tr[1]"/>
2815
+ </xsl:apply-templates>
2816
+ </xsl:copy>
2817
+ </xsl:template><xsl:template match="tr" mode="simple-table-rowspan">
2818
+ <xsl:param name="previousRow"/>
2819
+ <xsl:variable name="currentRow" select="."/>
2820
+
2821
+ <xsl:variable name="normalizedTDs">
2822
+ <xsl:for-each select="xalan:nodeset($previousRow)//td">
2823
+ <xsl:choose>
2824
+ <xsl:when test="@rowspan &gt; 1">
2825
+ <xsl:copy>
2826
+ <xsl:attribute name="rowspan">
2827
+ <xsl:value-of select="@rowspan - 1"/>
2828
+ </xsl:attribute>
2829
+ <xsl:copy-of select="@*[not(name() = 'rowspan')]"/>
2830
+ <xsl:copy-of select="node()"/>
2831
+ </xsl:copy>
2832
+ </xsl:when>
2833
+ <xsl:otherwise>
2834
+ <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
2835
+ </xsl:otherwise>
2836
+ </xsl:choose>
2837
+ </xsl:for-each>
2838
+ </xsl:variable>
2839
+
2840
+ <xsl:variable name="newRow">
2841
+ <xsl:copy>
2842
+ <xsl:copy-of select="$currentRow/@*"/>
2843
+ <xsl:copy-of select="xalan:nodeset($normalizedTDs)"/>
2844
+ </xsl:copy>
2845
+ </xsl:variable>
2846
+ <xsl:copy-of select="$newRow"/>
2847
+
2848
+ <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
2849
+ <xsl:with-param name="previousRow" select="$newRow"/>
2850
+ </xsl:apply-templates>
2851
+ </xsl:template><xsl:template name="getLang">
2852
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
2853
+ <xsl:choose>
2854
+ <xsl:when test="$language = 'English'">en</xsl:when>
2855
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
2856
+ </xsl:choose>
2857
+ </xsl:template><xsl:template name="capitalizeWords">
2858
+ <xsl:param name="str"/>
2859
+ <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
2860
+ <xsl:choose>
2861
+ <xsl:when test="contains($str2, ' ')">
2862
+ <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
2863
+ <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
2864
+ <xsl:value-of select="substring($substr, 2)"/>
2865
+ <xsl:text> </xsl:text>
2866
+ <xsl:call-template name="capitalizeWords">
2867
+ <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
2868
+ </xsl:call-template>
2869
+ </xsl:when>
2870
+ <xsl:otherwise>
2871
+ <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
2872
+ <xsl:value-of select="substring($str2, 2)"/>
2873
+ </xsl:otherwise>
2874
+ </xsl:choose>
2875
+ </xsl:template><xsl:template match="mathml:math">
2876
+ <fo:inline font-family="STIX2Math">
2877
+ <fo:instream-foreign-object fox:alt-text="Math">
2878
+ <xsl:copy-of select="."/>
2879
+ </fo:instream-foreign-object>
2880
+ </fo:inline>
2881
+ </xsl:template><xsl:template match="*[local-name()='localityStack']">
2882
+ <xsl:for-each select="*[local-name()='locality']">
2883
+ <xsl:if test="position() =1"><xsl:text>, </xsl:text></xsl:if>
2884
+ <xsl:apply-templates select="."/>
2885
+ <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
2886
+ </xsl:for-each>
2887
+ </xsl:template><xsl:template match="*[local-name()='link']" name="link">
2888
+ <xsl:variable name="target">
2889
+ <xsl:choose>
2890
+ <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
2891
+ <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
2892
+ </xsl:when>
2893
+ <xsl:otherwise>
2894
+ <xsl:value-of select="normalize-space(@target)"/>
2895
+ </xsl:otherwise>
2896
+ </xsl:choose>
2897
+ </xsl:variable>
2898
+ <fo:inline xsl:use-attribute-sets="link-style">
2899
+ <xsl:choose>
2900
+ <xsl:when test="$target = ''">
2901
+ <xsl:apply-templates/>
2902
+ </xsl:when>
2903
+ <xsl:otherwise>
2904
+ <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
2905
+ <xsl:choose>
2906
+ <xsl:when test="normalize-space(.) = ''">
2907
+ <xsl:value-of select="$target"/>
2908
+ </xsl:when>
2909
+ <xsl:otherwise>
2910
+ <xsl:apply-templates/>
2911
+ </xsl:otherwise>
2912
+ </xsl:choose>
2913
+ </fo:basic-link>
2914
+ </xsl:otherwise>
2915
+ </xsl:choose>
2916
+ </fo:inline>
2917
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
2918
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
2919
+ <!-- <xsl:choose>
2920
+ <xsl:when test="@lang = 'en'"></xsl:when>
2921
+ <xsl:otherwise> -->
2922
+ <xsl:attribute name="white-space">pre</xsl:attribute>
2923
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
2924
+ <!-- </xsl:otherwise>
2925
+ </xsl:choose> -->
2926
+ <xsl:apply-templates/>
2927
+ </fo:block>
2928
+ </xsl:template><xsl:template match="*[local-name()='bookmark']">
2929
+ <fo:inline id="{@id}"/>
2930
+ </xsl:template><xsl:template match="*[local-name()='appendix']">
2931
+ <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
2932
+ <fo:inline padding-right="5mm"><xsl:value-of select="$title-appendix"/> <xsl:number/></fo:inline>
2933
+ <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
2934
+ </fo:block>
2935
+ <xsl:apply-templates/>
2936
+ </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
2937
+ <fo:inline><xsl:apply-templates/></fo:inline>
2938
+ </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']">
2939
+ <fo:block xsl:use-attribute-sets="appendix-example-style">
2940
+ <xsl:variable name="claims_id" select="ancestor::*[local-name()='clause'][1]/@id"/>
2941
+ <xsl:value-of select="$title-example"/>
2942
+ <xsl:if test="count(ancestor::*[local-name()='clause'][1]//*[local-name()='example']) &gt; 1">
2943
+ <xsl:number count="*[local-name()='example'][ancestor::*[local-name()='clause'][@id = $claims_id]]" level="any"/><xsl:text> </xsl:text>
2944
+ </xsl:if>
2945
+ <xsl:if test="*[local-name()='name']">
2946
+ <xsl:text>— </xsl:text><xsl:apply-templates select="*[local-name()='name']" mode="process"/>
2947
+ </xsl:if>
2948
+ </fo:block>
2949
+ <xsl:apply-templates/>
2950
+ </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']/*[local-name()='name']"/><xsl:template match="*[local-name()='appendix']//*[local-name()='example']/*[local-name()='name']" mode="process">
2951
+ <fo:inline><xsl:apply-templates/></fo:inline>
2952
+ </xsl:template><xsl:template match="*[local-name() = 'callout']">
2953
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
2954
+ </xsl:template><xsl:template match="*[local-name() = 'annotation']">
2955
+ <xsl:variable name="annotation-id" select="@id"/>
2956
+ <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
2957
+ <fo:block id="{$annotation-id}" white-space="nowrap">
2958
+ <fo:inline>
2959
+ <xsl:apply-templates>
2960
+ <xsl:with-param name="callout" select="concat('&lt;', $callout, '&gt; ')"/>
2961
+ </xsl:apply-templates>
2962
+ </fo:inline>
2963
+ </fo:block>
2964
+ </xsl:template><xsl:template match="*[local-name() = 'annotation']/*[local-name() = 'p']">
2965
+ <xsl:param name="callout"/>
2966
+ <fo:inline id="{@id}">
2967
+ <!-- for first p in annotation, put <x> -->
2968
+ <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
2969
+ <xsl:apply-templates/>
2970
+ </fo:inline>
2971
+ </xsl:template><xsl:template name="convertDate">
2972
+ <xsl:param name="date"/>
2973
+ <xsl:param name="format" select="'short'"/>
2974
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
2975
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
2976
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
2977
+ <xsl:variable name="monthStr">
2978
+ <xsl:choose>
2979
+ <xsl:when test="$month = '01'">January</xsl:when>
2980
+ <xsl:when test="$month = '02'">February</xsl:when>
2981
+ <xsl:when test="$month = '03'">March</xsl:when>
2982
+ <xsl:when test="$month = '04'">April</xsl:when>
2983
+ <xsl:when test="$month = '05'">May</xsl:when>
2984
+ <xsl:when test="$month = '06'">June</xsl:when>
2985
+ <xsl:when test="$month = '07'">July</xsl:when>
2986
+ <xsl:when test="$month = '08'">August</xsl:when>
2987
+ <xsl:when test="$month = '09'">September</xsl:when>
2988
+ <xsl:when test="$month = '10'">October</xsl:when>
2989
+ <xsl:when test="$month = '11'">November</xsl:when>
2990
+ <xsl:when test="$month = '12'">December</xsl:when>
2991
+ </xsl:choose>
2992
+ </xsl:variable>
2993
+ <xsl:variable name="result">
2994
+ <xsl:choose>
2995
+ <xsl:when test="$format = 'short' or $day = ''">
2996
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
2997
+ </xsl:when>
2998
+ <xsl:otherwise>
2999
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
3000
+ </xsl:otherwise>
3001
+ </xsl:choose>
3002
+ </xsl:variable>
3003
+ <xsl:value-of select="$result"/>
3004
+ </xsl:template><xsl:template name="insertKeywords">
3005
+ <xsl:param name="sorting" select="'true'"/>
3006
+ <xsl:param name="charAtEnd" select="'.'"/>
3007
+ <xsl:param name="charDelim" select="', '"/>
3008
+ <xsl:choose>
3009
+ <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
3010
+ <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
3011
+ <xsl:sort data-type="text" order="ascending"/>
3012
+ <xsl:call-template name="insertKeyword">
3013
+ <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
3014
+ <xsl:with-param name="charDelim" select="$charDelim"/>
3015
+ </xsl:call-template>
3016
+ </xsl:for-each>
3017
+ </xsl:when>
3018
+ <xsl:otherwise>
3019
+ <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
3020
+ <xsl:call-template name="insertKeyword">
3021
+ <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
3022
+ <xsl:with-param name="charDelim" select="$charDelim"/>
3023
+ </xsl:call-template>
3024
+ </xsl:for-each>
3025
+ </xsl:otherwise>
3026
+ </xsl:choose>
3027
+ </xsl:template><xsl:template name="insertKeyword">
3028
+ <xsl:param name="charAtEnd"/>
3029
+ <xsl:param name="charDelim"/>
3030
+ <xsl:apply-templates/>
3031
+ <xsl:choose>
3032
+ <xsl:when test="position() != last()"><xsl:value-of select="$charDelim"/></xsl:when>
3033
+ <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
3034
+ </xsl:choose>
3035
+ </xsl:template></xsl:stylesheet>