metanorma-itu 1.0.14 → 1.0.15

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,3589 @@
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:itu="https://www.metanorma.org/ns/itu" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" version="1.0">
2
+
3
+ <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
+
5
+
6
+
7
+ <xsl:key name="kfn" match="itu:p/itu:fn" use="@reference"/>
8
+
9
+
10
+
11
+ <xsl:variable name="debug">false</xsl:variable>
12
+ <xsl:variable name="pageWidth" select="'210mm'"/>
13
+ <xsl:variable name="pageHeight" select="'297mm'"/>
14
+
15
+ <!-- Rec. ITU-T G.650.1 (03/2018) -->
16
+ <xsl:variable name="footerprefix" select="'Rec. '"/>
17
+ <xsl:variable name="docname">
18
+ <xsl:value-of select="substring-before(/itu:itu-standard/itu:bibdata/itu:docidentifier, ' ')"/>
19
+ <xsl:text> </xsl:text>
20
+ <xsl:value-of select="substring-after(/itu:itu-standard/itu:bibdata/itu:docidentifier, ' ')"/>
21
+ <xsl:text> </xsl:text>
22
+ </xsl:variable>
23
+ <xsl:variable name="docdate">
24
+ <xsl:call-template name="formatDate">
25
+ <xsl:with-param name="date" select="/itu:itu-standard/itu:bibdata/itu:date[@type = 'published']/itu:on"/>
26
+ </xsl:call-template>
27
+ </xsl:variable>
28
+ <xsl:variable name="doctype">
29
+ <xsl:value-of select="translate(substring(/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype,1,1),$lower,$upper)"/>
30
+ <xsl:value-of select="substring(/itu:itu-standard/itu:bibdata/itu:ext/itu:doctype,2)"/>
31
+ </xsl:variable>
32
+
33
+
34
+ <!-- Example:
35
+ <item level="1" id="Foreword" display="true">Foreword</item>
36
+ <item id="term-script" display="false">3.2</item>
37
+ -->
38
+ <xsl:variable name="contents">
39
+ <contents>
40
+ <!-- <xsl:apply-templates select="/itu:itu-standard/itu:preface/node()" mode="contents"/> -->
41
+ <xsl:apply-templates select="/itu:itu-standard/itu:sections/itu:clause[1]" mode="contents"> <!-- @id = 'scope' -->
42
+ <xsl:with-param name="sectionNum" select="'1'"/>
43
+ </xsl:apply-templates>
44
+ <xsl:variable name="numskew" select="count(/itu:itu-standard/itu:bibliography/itu:references[1])"/>
45
+ <xsl:apply-templates select="/itu:itu-standard/itu:bibliography/itu:references[1]" mode="contents"> <!-- @id = 'references' -->
46
+ <xsl:with-param name="sectionNum" select="1 + number($numskew)"/>
47
+ </xsl:apply-templates>
48
+ <xsl:apply-templates select="/itu:itu-standard/itu:sections/*[position() != 1]" mode="contents"> <!-- @id != 'scope' -->
49
+ <xsl:with-param name="sectionNumSkew" select="number($numskew)"/>
50
+ </xsl:apply-templates>
51
+ <xsl:apply-templates select="/itu:itu-standard/itu:annex" mode="contents"/>
52
+ <xsl:apply-templates select="/itu:itu-standard/itu:bibliography/itu:references[position() != 1]" mode="contents"/> <!-- @id = 'bibliography' -->
53
+
54
+ <xsl:apply-templates select="//itu3" mode="contents"/>
55
+
56
+ <xsl:apply-templates select="//itu:table" mode="contents"/>
57
+
58
+ </contents>
59
+ </xsl:variable>
60
+
61
+ <xsl:variable name="lang">
62
+ <xsl:call-template name="getLang"/>
63
+ </xsl:variable>
64
+
65
+ <xsl:template match="/">
66
+ <xsl:message>INFO: Document namespace: '<xsl:value-of select="namespace-uri(/*)"/>'</xsl:message>
67
+ <fo:root font-family="Times New Roman, STIX2Math" font-size="12pt" xml:lang="{$lang}">
68
+ <fo:layout-master-set>
69
+ <!-- cover page -->
70
+ <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
71
+ <fo:region-body margin-top="19.2mm" margin-bottom="5mm" margin-left="19.2mm" margin-right="19.2mm"/>
72
+ <fo:region-before region-name="cover-page-header" extent="19.2mm" display-align="center"/>
73
+ <fo:region-after/>
74
+ <fo:region-start region-name="cover-left-region" extent="19.2mm"/>
75
+ <fo:region-end region-name="cover-right-region" extent="19.2mm"/>
76
+ </fo:simple-page-master>
77
+ <!-- contents pages -->
78
+ <!-- odd pages Preface -->
79
+ <fo:simple-page-master master-name="odd-preface" page-width="{$pageWidth}" page-height="{$pageHeight}">
80
+ <fo:region-body margin-top="19.2mm" margin-bottom="19.2mm" margin-left="19.2mm" margin-right="19.2mm"/>
81
+ <fo:region-before region-name="header-odd" extent="19.2mm" display-align="center"/>
82
+ <fo:region-after region-name="footer-odd" extent="19.2mm"/>
83
+ <fo:region-start region-name="left-region" extent="19.2mm"/>
84
+ <fo:region-end region-name="right-region" extent="19.2mm"/>
85
+ </fo:simple-page-master>
86
+ <!-- even pages Preface -->
87
+ <fo:simple-page-master master-name="even-preface" page-width="{$pageWidth}" page-height="{$pageHeight}">
88
+ <fo:region-body margin-top="19.2mm" margin-bottom="19.2mm" margin-left="19.2mm" margin-right="19.2mm"/>
89
+ <fo:region-before region-name="header-even" extent="19.2mm" display-align="center"/>
90
+ <fo:region-after region-name="footer-even" extent="19.2mm"/>
91
+ <fo:region-start region-name="left-region" extent="19.2mm"/>
92
+ <fo:region-end region-name="right-region" extent="19.2mm"/>
93
+ </fo:simple-page-master>
94
+ <fo:page-sequence-master master-name="document-preface">
95
+ <fo:repeatable-page-master-alternatives>
96
+ <fo:conditional-page-master-reference odd-or-even="even" master-reference="even-preface"/>
97
+ <fo:conditional-page-master-reference odd-or-even="odd" master-reference="odd-preface"/>
98
+ </fo:repeatable-page-master-alternatives>
99
+ </fo:page-sequence-master>
100
+ <!-- odd pages Body -->
101
+ <fo:simple-page-master master-name="odd" page-width="{$pageWidth}" page-height="{$pageHeight}">
102
+ <fo:region-body margin-top="20mm" margin-bottom="20mm" margin-left="20mm" margin-right="20mm"/>
103
+ <fo:region-before region-name="header-odd" extent="20mm" display-align="center"/>
104
+ <fo:region-after region-name="footer-odd" extent="20mm"/>
105
+ <fo:region-start region-name="left-region" extent="20mm"/>
106
+ <fo:region-end region-name="right-region" extent="20mm"/>
107
+ </fo:simple-page-master>
108
+ <!-- even pages Body -->
109
+ <fo:simple-page-master master-name="even" page-width="{$pageWidth}" page-height="{$pageHeight}">
110
+ <fo:region-body margin-top="20mm" margin-bottom="20mm" margin-left="20mm" margin-right="20mm"/>
111
+ <fo:region-before region-name="header-even" extent="20mm" display-align="center"/>
112
+ <fo:region-after region-name="footer-even" extent="20mm"/>
113
+ <fo:region-start region-name="left-region" extent="20mm"/>
114
+ <fo:region-end region-name="right-region" extent="20mm"/>
115
+ </fo:simple-page-master>
116
+ <fo:page-sequence-master master-name="document">
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:layout-master-set>
123
+
124
+ <fo:declarations>
125
+ <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
126
+ <pdf:dictionary type="normal" key="ViewerPreferences">
127
+ <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
128
+ </pdf:dictionary>
129
+ </pdf:catalog>
130
+ <x:xmpmeta xmlns:x="adobe:ns:meta/">
131
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
132
+ <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
133
+ <!-- Dublin Core properties go here -->
134
+ <dc:title><xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type='main']"/></dc:title>
135
+ <dc:creator><xsl:value-of select="/itu:iso-standard/itu:bibdata/itu:contributor[itu:role/@type='author']/itu:organization/itu:name"/></dc:creator>
136
+ <dc:description>
137
+ <xsl:variable name="abstract">
138
+ <xsl:copy-of select="/itu:itu-standard/itu:bibdata/itu:abstract//text()"/>
139
+ </xsl:variable>
140
+ <xsl:value-of select="normalize-space($abstract)"/>
141
+ </dc:description>
142
+ <pdf:Keywords>
143
+ <xsl:for-each select="/itu:itu-standard/itu:bibdata//itu:keyword">
144
+ <xsl:sort data-type="text" order="ascending"/>
145
+ <xsl:apply-templates/>
146
+ <xsl:choose>
147
+ <xsl:when test="position() != last()">, </xsl:when>
148
+ <xsl:otherwise>.</xsl:otherwise>
149
+ </xsl:choose>
150
+ </xsl:for-each>
151
+ </pdf:Keywords>
152
+ </rdf:Description>
153
+ <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
154
+ <!-- XMP properties go here -->
155
+ <xmp:CreatorTool/>
156
+ </rdf:Description>
157
+ </rdf:RDF>
158
+ </x:xmpmeta>
159
+ </fo:declarations>
160
+
161
+ <!-- cover page -->
162
+ <fo:page-sequence master-reference="cover-page">
163
+ <fo:flow flow-name="xsl-region-body">
164
+
165
+ <fo:block-container absolute-position="fixed" left="148mm" top="265mm">
166
+ <fo:block>
167
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Logo))}" width="42.6mm" content-height="17.7mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
168
+ </fo:block>
169
+ </fo:block-container>
170
+
171
+ <fo:block-container absolute-position="fixed" left="-7mm" top="0">
172
+ <fo:block>
173
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Fond-Rec))}" width="43.6mm" content-height="299.2mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
174
+ </fo:block>
175
+ </fo:block-container>
176
+ <fo:block-container font-family="Arial">
177
+ <fo:table width="100%" table-layout="fixed"> <!-- 175.4mm-->
178
+ <fo:table-column column-width="25.2mm"/>
179
+ <fo:table-column column-width="44.4mm"/>
180
+ <fo:table-column column-width="35.8mm"/>
181
+ <fo:table-column column-width="67mm"/>
182
+ <fo:table-body>
183
+ <fo:table-row height="42.5mm">
184
+ <fo:table-cell>
185
+ <fo:block> </fo:block>
186
+ </fo:table-cell>
187
+ <fo:table-cell number-columns-spanned="3">
188
+ <fo:block font-family="Arial" font-size="13pt" font-weight="bold" color="gray" margin-top="16pt"> <!-- letter-spacing="4pt", Helvetica for letter-spacing working -->
189
+ <fo:block><xsl:value-of select="$linebreak"/></fo:block>
190
+ <xsl:call-template name="addLetterSpacing">
191
+ <xsl:with-param name="text" select="/itu:itu-standard/itu:bibdata/itu:contributor[itu:role/@type='author']/itu:organization/itu:name"/>
192
+ </xsl:call-template>
193
+ </fo:block>
194
+ </fo:table-cell>
195
+ </fo:table-row>
196
+ <fo:table-row>
197
+ <fo:table-cell>
198
+ <fo:block> </fo:block>
199
+ </fo:table-cell>
200
+ <fo:table-cell padding-top="2mm" padding-bottom="-1mm">
201
+ <fo:block font-family="Arial" font-size="36pt" font-weight="bold" margin-top="6pt" letter-spacing="2pt"> <!-- Helvetica for letter-spacing working -->
202
+ <xsl:value-of select="substring-before(/itu:itu-standard/itu:bibdata/itu:docidentifier, ' ')"/>
203
+ </fo:block>
204
+ </fo:table-cell>
205
+ <fo:table-cell padding-top="1mm" number-columns-spanned="2" padding-bottom="-1mm">
206
+ <fo:block font-size="30pt" font-weight="bold" text-align="right" margin-top="12pt" padding="0mm">
207
+ <xsl:value-of select="substring-after(/itu:itu-standard/itu:bibdata/itu:docidentifier, ' ')"/>
208
+ </fo:block>
209
+ </fo:table-cell>
210
+ </fo:table-row>
211
+ <fo:table-row height="17.2mm">
212
+ <fo:table-cell>
213
+ <fo:block> </fo:block>
214
+ </fo:table-cell>
215
+ <fo:table-cell font-size="10pt" number-columns-spanned="2" padding-top="1mm">
216
+ <fo:block>
217
+ <xsl:text>TELECOMMUNICATION</xsl:text>
218
+ </fo:block>
219
+ <fo:block>
220
+ <xsl:text>STANDARDIZATION SECTOR</xsl:text>
221
+ </fo:block>
222
+ <fo:block>
223
+ <xsl:text>OF ITU</xsl:text>
224
+ </fo:block>
225
+ </fo:table-cell>
226
+ <fo:table-cell text-align="right">
227
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid">
228
+ <fo:block font-size="18pt" font-weight="bold">
229
+ <xsl:text>Annex </xsl:text><xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid"/>
230
+ </fo:block>
231
+ </xsl:if>
232
+ <fo:block font-size="14pt">
233
+ <xsl:call-template name="formatDate">
234
+ <xsl:with-param name="date" select="/itu:itu-standard/itu:bibdata/itu:date[@type = 'published']/itu:on"/>
235
+ </xsl:call-template>
236
+ </fo:block>
237
+ </fo:table-cell>
238
+ </fo:table-row>
239
+ <fo:table-row height="59mm">
240
+ <fo:table-cell>
241
+ <fo:block> </fo:block>
242
+ </fo:table-cell>
243
+ <fo:table-cell font-size="16pt" number-columns-spanned="3" border-bottom="0.5mm solid black" padding-right="2mm">
244
+ <fo:block>
245
+ <xsl:if test="normalize-space(/itu:itu-standard/itu:bibdata/itu:series[@type = 'main']) != ''">
246
+ <xsl:variable name="title">
247
+ <xsl:text>Series </xsl:text>
248
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'main']"/>
249
+ </xsl:variable>
250
+ <xsl:value-of select="translate($title, $lower, $upper)"/>
251
+ </xsl:if>
252
+ </fo:block>
253
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:series">
254
+ <fo:block margin-top="6pt">
255
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'secondary']"/>
256
+ <xsl:if test="normalize-space(/itu:itu-standard/itu:bibdata/itu:series[@type = 'tertiary']) != ''">
257
+ <xsl:text> — </xsl:text>
258
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:series[@type = 'tertiary']"/>
259
+ </xsl:if>
260
+ </fo:block>
261
+ </xsl:if>
262
+ </fo:table-cell>
263
+ </fo:table-row>
264
+ <fo:table-row height="40mm">
265
+ <fo:table-cell>
266
+ <fo:block> </fo:block>
267
+ </fo:table-cell>
268
+ <fo:table-cell font-size="18pt" number-columns-spanned="3">
269
+ <fo:block padding-right="2mm" margin-top="6pt">
270
+ <xsl:if test="not(/itu:itu-standard/itu:bibdata/itu:title[@type = 'annex' and @language = 'en'])">
271
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
272
+ </xsl:if>
273
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = 'en']"/>
274
+ </fo:block>
275
+ <xsl:for-each select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'annex' and @language = 'en']">
276
+ <fo:block font-weight="bold">
277
+ <xsl:value-of select="."/>
278
+ </fo:block>
279
+ </xsl:for-each>
280
+ </fo:table-cell>
281
+ </fo:table-row>
282
+ <fo:table-row height="40mm">
283
+ <fo:table-cell>
284
+ <fo:block> </fo:block>
285
+ </fo:table-cell>
286
+ <fo:table-cell number-columns-spanned="3">
287
+ <xsl:choose>
288
+ <xsl:when test="/itu:itu-standard/itu:boilerplate/itu:legal-statement/itu:clause[@id='draft-warning']">
289
+ <xsl:attribute name="border">0.7mm solid black</xsl:attribute>
290
+ <fo:block padding-top="3mm" margin-left="1mm" margin-right="1mm">
291
+ <xsl:apply-templates select="/itu:itu-standard/itu:boilerplate/itu:legal-statement/itu:clause[@id='draft-warning']" mode="caution"/>
292
+ </fo:block>
293
+ </xsl:when>
294
+ <xsl:otherwise>
295
+ <fo:block> </fo:block>
296
+ </xsl:otherwise>
297
+ </xsl:choose>
298
+ </fo:table-cell>
299
+ </fo:table-row>
300
+ <fo:table-row height="25mm">
301
+ <fo:table-cell>
302
+ <fo:block> </fo:block>
303
+ </fo:table-cell>
304
+ <fo:table-cell number-columns-spanned="3">
305
+ <fo:block font-size="16pt" margin-top="3pt">
306
+ <xsl:value-of select="$doctype"/>
307
+ <xsl:text>  </xsl:text>
308
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:contributor/itu:organization/itu:abbreviation"/>
309
+ <xsl:text>-</xsl:text>
310
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:bureau"/>
311
+ <xsl:text>  </xsl:text>
312
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:docnumber"/>
313
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid">
314
+ <xsl:text> — Annex </xsl:text><xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid"/>
315
+ </xsl:if>
316
+ </fo:block>
317
+ </fo:table-cell>
318
+ </fo:table-row>
319
+ </fo:table-body>
320
+ </fo:table>
321
+ </fo:block-container>
322
+ </fo:flow>
323
+ </fo:page-sequence>
324
+
325
+
326
+ <fo:page-sequence master-reference="document-preface" initial-page-number="1" format="i" force-page-count="no-force">
327
+ <xsl:call-template name="insertHeaderFooter"/>
328
+ <fo:flow flow-name="xsl-region-body">
329
+ <fo:block-container font-size="14pt" font-weight="bold">
330
+ <fo:block>
331
+ <xsl:value-of select="$doctype"/>
332
+ <xsl:text> </xsl:text>
333
+ <xsl:value-of select="$docname"/>
334
+ </fo:block>
335
+ <fo:block text-align="center" margin-top="15pt" margin-bottom="15pt">
336
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = 'en']"/>
337
+ </fo:block>
338
+ </fo:block-container>
339
+ <!-- Summary, History ... -->
340
+ <xsl:apply-templates select="/itu:itu-standard/itu:preface/node()"/>
341
+
342
+ <!-- Keywords -->
343
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:keyword">
344
+ <fo:block font-size="12pt">
345
+ <xsl:value-of select="$linebreak"/>
346
+ <xsl:value-of select="$linebreak"/>
347
+ </fo:block>
348
+ <fo:block font-weight="bold" margin-top="18pt" margin-bottom="18pt">
349
+ <xsl:text>Keywords</xsl:text>
350
+ </fo:block>
351
+ <fo:block>
352
+ <xsl:for-each select="/itu:itu-standard/itu:bibdata//itu:keyword">
353
+ <xsl:sort data-type="text" order="ascending"/>
354
+ <xsl:apply-templates/>
355
+ <xsl:choose>
356
+ <xsl:when test="position() != last()">, </xsl:when>
357
+ <xsl:otherwise>.</xsl:otherwise>
358
+ </xsl:choose>
359
+ </xsl:for-each>
360
+ </fo:block>
361
+ </xsl:if>
362
+
363
+ <fo:block break-after="page"/>
364
+
365
+ <!-- FOREWORD -->
366
+ <fo:block font-size="11pt" text-align="justify">
367
+ <xsl:apply-templates select="/itu:itu-standard/itu:boilerplate/itu:legal-statement"/>
368
+ <xsl:apply-templates select="/itu:itu-standard/itu:boilerplate/itu:license-statement"/>
369
+ <xsl:apply-templates select="/itu:itu-standard/itu:boilerplate/itu:copyright-statement"/>
370
+ </fo:block>
371
+
372
+ <xsl:if test="$debug = 'true'">
373
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
374
+ DEBUG
375
+ contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
376
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
377
+ </xsl:if>
378
+
379
+ <xsl:if test="xalan:nodeset($contents)//item">
380
+ <fo:block break-after="page"/>
381
+ <fo:block-container>
382
+ <fo:block margin-top="6pt" text-align="center" font-weight="bold">Table of Contents</fo:block>
383
+ <fo:block margin-top="6pt" text-align="right" font-weight="bold">Page</fo:block>
384
+
385
+ <xsl:for-each select="xalan:nodeset($contents)//item">
386
+ <xsl:if test="@display = 'true'">
387
+ <fo:block>
388
+ <xsl:if test="@level = 1">
389
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
390
+ </xsl:if>
391
+ <xsl:if test="@level = 2">
392
+ <xsl:attribute name="margin-top">4pt</xsl:attribute>
393
+ <!-- <xsl:attribute name="margin-left">12mm</xsl:attribute> -->
394
+ </xsl:if>
395
+ <fo:list-block provisional-label-separation="3mm">
396
+ <xsl:attribute name="provisional-distance-between-starts">
397
+ <xsl:choose>
398
+ <xsl:when test="@section != '' and not(@display-section = 'false')">
399
+ <xsl:if test="@level = 1">
400
+ <xsl:choose>
401
+ <xsl:when test="string-length(@section) &gt; 10">27mm</xsl:when>
402
+ <xsl:when test="string-length(@section) &gt; 5">22mm</xsl:when>
403
+ <!-- <xsl:when test="@type = 'annex'">20mm</xsl:when> -->
404
+ <xsl:otherwise>12mm</xsl:otherwise>
405
+ </xsl:choose>
406
+ </xsl:if>
407
+ <xsl:if test="@level = 2">26mm</xsl:if>
408
+ </xsl:when> <!-- -->
409
+ <xsl:otherwise>0mm</xsl:otherwise>
410
+ </xsl:choose>
411
+ </xsl:attribute>
412
+ <fo:list-item>
413
+ <fo:list-item-label end-indent="label-end()">
414
+ <xsl:if test="@level =2">
415
+ <xsl:attribute name="start-indent">12mm</xsl:attribute>
416
+ </xsl:if>
417
+ <fo:block>
418
+ <xsl:if test="@section and not(@display-section = 'false')"> <!-- -->
419
+ <!-- <xsl:if test="@type = 'annex'">
420
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
421
+ </xsl:if> -->
422
+ <xsl:value-of select="@section"/>
423
+ </xsl:if>
424
+ </fo:block>
425
+ </fo:list-item-label>
426
+ <fo:list-item-body start-indent="body-start()">
427
+ <fo:block text-align-last="justify"> <!-- margin-left="12mm" text-indent="-12mm" -->
428
+ <!-- <xsl:if test="@type = 'annex'">
429
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
430
+ </xsl:if> -->
431
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="text()">
432
+ <xsl:value-of select="text()"/>
433
+ <fo:inline keep-together.within-line="always">
434
+ <fo:leader leader-pattern="dots"/>
435
+ <fo:page-number-citation ref-id="{@id}"/>
436
+ </fo:inline>
437
+ </fo:basic-link>
438
+ </fo:block>
439
+ </fo:list-item-body>
440
+ </fo:list-item>
441
+ </fo:list-block>
442
+ </fo:block>
443
+ </xsl:if>
444
+ </xsl:for-each>
445
+ </fo:block-container>
446
+ </xsl:if>
447
+
448
+ </fo:flow>
449
+ </fo:page-sequence>
450
+
451
+ <!-- BODY -->
452
+ <fo:page-sequence master-reference="document" initial-page-number="1" force-page-count="no-force">
453
+
454
+ <fo:static-content flow-name="xsl-footnote-separator">
455
+ <fo:block>
456
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
457
+ </fo:block>
458
+ </fo:static-content>
459
+ <xsl:call-template name="insertHeaderFooter"/>
460
+
461
+ <fo:flow flow-name="xsl-region-body">
462
+
463
+ <fo:block-container font-size="14pt" font-weight="bold">
464
+ <fo:block>
465
+ <xsl:value-of select="$doctype"/>
466
+ <xsl:text> </xsl:text>
467
+ <xsl:value-of select="$docname"/>
468
+ </fo:block>
469
+ <fo:block text-align="center" margin-top="15pt" margin-bottom="15pt">
470
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = 'en']"/>
471
+ </fo:block>
472
+ </fo:block-container>
473
+
474
+
475
+ <!-- Clause(s) -->
476
+ <fo:block>
477
+ <!-- Scope -->
478
+ <xsl:apply-templates select="/itu:itu-standard/itu:sections/itu:clause[1]"> <!-- @id = 'scope' -->
479
+ <xsl:with-param name="sectionNum" select="'1'"/>
480
+ </xsl:apply-templates>
481
+ <!-- References -->
482
+ <xsl:variable name="numskew" select="count(/itu:itu-standard/itu:bibliography/itu:references[1])"/>
483
+ <xsl:apply-templates select="/itu:itu-standard/itu:bibliography/itu:references[1]"> <!-- @id = 'references' -->
484
+ <xsl:with-param name="sectionNum" select="1 + number($numskew)"/>
485
+ </xsl:apply-templates>
486
+
487
+ <xsl:apply-templates select="/itu:itu-standard/itu:sections/*[position() != 1]"> <!-- @id != 'scope' -->
488
+ <xsl:with-param name="sectionNumSkew" select="number($numskew)"/>
489
+ </xsl:apply-templates>
490
+
491
+ <xsl:apply-templates select="/itu:itu-standard/itu:annex"/>
492
+
493
+ <!-- Bibliography -->
494
+ <xsl:apply-templates select="/itu:itu-standard/itu:bibliography/itu:references[position() != 1]"/> <!-- @id = 'bibliography' -->
495
+ </fo:block>
496
+
497
+ </fo:flow>
498
+ </fo:page-sequence>
499
+
500
+
501
+ </fo:root>
502
+ </xsl:template>
503
+
504
+ <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
505
+ <xsl:template match="node()">
506
+ <xsl:param name="sectionNum"/>
507
+ <xsl:param name="sectionNumSkew"/>
508
+ <xsl:apply-templates>
509
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
510
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
511
+ </xsl:apply-templates>
512
+ </xsl:template>
513
+
514
+ <!-- ============================= -->
515
+ <!-- CONTENTS -->
516
+ <!-- ============================= -->
517
+ <xsl:template match="node()" mode="contents">
518
+ <xsl:param name="sectionNum"/>
519
+ <xsl:param name="sectionNumSkew"/>
520
+ <xsl:apply-templates mode="contents">
521
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
522
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
523
+ </xsl:apply-templates>
524
+ </xsl:template>
525
+
526
+ <!-- <xsl:template match="itu:itu-standard/itu:preface/*" mode="contents">
527
+ <xsl:apply-templates mode="contents"/>
528
+ </xsl:template> -->
529
+
530
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
531
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
532
+ <xsl:template match="itu:itu-standard/itu:sections/*" mode="contents">
533
+ <xsl:param name="sectionNum"/>
534
+ <xsl:param name="sectionNumSkew" select="-1"/>
535
+ <xsl:variable name="sectionNum_">
536
+ <xsl:choose>
537
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
538
+ <xsl:when test="$sectionNumSkew != -1">
539
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable> <!-- itu:sections/itu:clause | itu:sections/itu:terms | ??? -->
540
+ <xsl:value-of select="$number + $sectionNumSkew"/>
541
+ </xsl:when>
542
+ </xsl:choose>
543
+ </xsl:variable>
544
+ <!-- <xsl:message>
545
+ DEBUG sectionNum=<xsl:value-of select="$sectionNum_"/>
546
+ </xsl:message> -->
547
+ <xsl:apply-templates mode="contents">
548
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
549
+ </xsl:apply-templates>
550
+ </xsl:template>
551
+
552
+ <!-- Any node with title element - clause, definition, annex,... -->
553
+ <xsl:template match="itu:title | itu:preferred" mode="contents">
554
+ <xsl:param name="sectionNum"/>
555
+ <!-- sectionNum=<xsl:value-of select="$sectionNum"/> -->
556
+ <xsl:variable name="id">
557
+ <xsl:call-template name="getId"/>
558
+ </xsl:variable>
559
+
560
+ <xsl:variable name="level">
561
+ <xsl:call-template name="getLevel"/>
562
+ </xsl:variable>
563
+
564
+ <!-- <xsl:message>
565
+ level=<xsl:value-of select="$level"/>=<xsl:value-of select="."/>
566
+ </xsl:message> -->
567
+
568
+ <xsl:variable name="section">
569
+ <xsl:call-template name="getSection">
570
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
571
+ </xsl:call-template>
572
+ </xsl:variable>
573
+
574
+ <xsl:variable name="display">
575
+ <xsl:choose>
576
+ <!-- <xsl:when test="ancestor::itu:annex">true</xsl:when> -->
577
+ <xsl:when test="$level &lt;= 2">true</xsl:when>
578
+ <xsl:otherwise>false</xsl:otherwise>
579
+ </xsl:choose>
580
+ </xsl:variable>
581
+
582
+ <xsl:variable name="type">
583
+ <xsl:value-of select="local-name(..)"/>
584
+ </xsl:variable>
585
+
586
+ <item id="{$id}" level="{$level}" section="{$section}" display="{$display}" type="{$type}">
587
+ <xsl:value-of select="."/>
588
+ </item>
589
+
590
+ <xsl:apply-templates mode="contents">
591
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
592
+ </xsl:apply-templates>
593
+ </xsl:template>
594
+
595
+ <xsl:template match="itu:clause[not(itu:title)]" mode="contents">
596
+ <xsl:param name="sectionNum"/>
597
+ <xsl:variable name="level">
598
+ <xsl:call-template name="getLevel"/>
599
+ </xsl:variable>
600
+ <xsl:variable name="section">
601
+ <xsl:for-each select="*[1]">
602
+ <xsl:call-template name="getSection">
603
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
604
+ </xsl:call-template>
605
+ </xsl:for-each>
606
+ </xsl:variable>
607
+ <item id="{@id}" level="{$level}" section="{$section}" display="false" type="clause">
608
+ <xsl:value-of select="."/>
609
+ </item>
610
+ <xsl:apply-templates mode="contents">
611
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
612
+ </xsl:apply-templates>
613
+ </xsl:template>
614
+
615
+ <xsl:template match="itu:bibitem" mode="contents"/>
616
+
617
+ <xsl:template match="itu:references" mode="contents">
618
+ <xsl:param name="sectionNum"/>
619
+ <xsl:apply-templates mode="contents">
620
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
621
+ </xsl:apply-templates>
622
+ </xsl:template>
623
+
624
+
625
+ <xsl:template match="itu:figure" mode="contents">
626
+ <xsl:param name="sectionNum"/>
627
+ <item level="" id="{@id}" display="false" type="figure">
628
+ <xsl:variable name="title">Figure </xsl:variable>
629
+ <xsl:attribute name="section">
630
+ <xsl:call-template name="getSection">
631
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
632
+ </xsl:call-template>
633
+ <!-- <xsl:text>Figure </xsl:text>
634
+ <xsl:call-template name="getItemNumber">
635
+ <xsl:with-param name="brackets" select="'false'"/>
636
+ </xsl:call-template> -->
637
+ </xsl:attribute>
638
+ <xsl:value-of select="$title"/>
639
+ <xsl:call-template name="getItemNumber">
640
+ <xsl:with-param name="brackets" select="'false'"/>
641
+ </xsl:call-template>
642
+ </item>
643
+ <xsl:apply-templates mode="contents">
644
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
645
+ </xsl:apply-templates>
646
+ </xsl:template>
647
+
648
+ <xsl:template match="itu:table" mode="contents">
649
+ <xsl:param name="sectionNum"/>
650
+ <item level="" id="{@id}" display="false" type="table">
651
+ <xsl:variable name="title">Table </xsl:variable>
652
+ <xsl:attribute name="section">
653
+ <xsl:call-template name="getSection">
654
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
655
+ </xsl:call-template>
656
+ <!-- <xsl:text>Table </xsl:text>
657
+ <xsl:call-template name="getItemNumber"/> -->
658
+ </xsl:attribute>
659
+ <xsl:value-of select="$title"/>
660
+ <xsl:call-template name="getItemNumber">
661
+ <xsl:with-param name="brackets" select="'false'"/>
662
+ </xsl:call-template>
663
+ </item>
664
+ <xsl:apply-templates mode="contents">
665
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
666
+ </xsl:apply-templates>
667
+ </xsl:template>
668
+
669
+
670
+ <xsl:template match="itu:formula" mode="contents">
671
+ <xsl:param name="sectionNum"/>
672
+ <item level="" id="{@id}" display="false" type="formula">
673
+ <xsl:variable name="title">
674
+ <xsl:choose>
675
+ <xsl:when test="@inequality = 'true'">Inequality </xsl:when>
676
+ <xsl:otherwise>Equation </xsl:otherwise>
677
+ </xsl:choose>
678
+ </xsl:variable>
679
+ <xsl:attribute name="section">
680
+ <xsl:call-template name="getSection">
681
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
682
+ </xsl:call-template>
683
+ <!-- <xsl:value-of select="$title"/>
684
+ <xsl:call-template name="getItemNumber"/> -->
685
+ </xsl:attribute>
686
+ <xsl:variable name="parent-element" select="local-name(..)"/>
687
+ <xsl:attribute name="parent">
688
+ <xsl:choose>
689
+ <xsl:when test="$parent-element = 'clause'">Clause</xsl:when>
690
+ <xsl:otherwise/>
691
+ </xsl:choose>
692
+ </xsl:attribute>
693
+ <xsl:variable name="itemNumber">
694
+ <xsl:call-template name="getItemNumber">
695
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
696
+ </xsl:call-template>
697
+ </xsl:variable>
698
+ <xsl:attribute name="number">
699
+ <xsl:value-of select="$itemNumber"/>
700
+ </xsl:attribute>
701
+ <xsl:value-of select="$title"/>
702
+ <xsl:value-of select="$itemNumber"/>
703
+ </item>
704
+ <xsl:apply-templates mode="contents">
705
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
706
+ </xsl:apply-templates>
707
+ </xsl:template>
708
+
709
+ <xsl:template name="getItemNumber">
710
+ <xsl:param name="brackets" select="'true'"/>
711
+ <xsl:param name="sectionNum"/>
712
+ <xsl:variable name="name" select="local-name()"/>
713
+ <xsl:choose>
714
+ <xsl:when test="@unnumbered = 'true'"/>
715
+ <xsl:when test="count(//itu:annex) = 1 and ancestor::*[local-name()='annex'] and /itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid">
716
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid"/>
717
+ <xsl:number format="-1" level="any" count="itu:annex//*[local-name()=$name]"/>
718
+ </xsl:when>
719
+ <xsl:when test="ancestor::itu:annex[@obligation = 'informative']">
720
+ <xsl:variable name="annex-id" select="ancestor::itu:annex/@id"/>
721
+ <!-- Annex -->
722
+ <xsl:if test="$brackets = 'true'">
723
+ <xsl:text>(</xsl:text>
724
+ </xsl:if>
725
+ <xsl:number format="I-" count="itu:annex[@obligation = 'informative']"/>
726
+ <xsl:number format="1" level="any" count="*[local-name()=$name][(not(@unnumbered) or @unnumbered != 'true') and ancestor::itu:annex[@id = $annex-id]]"/>
727
+ <xsl:if test="$brackets = 'true'">
728
+ <xsl:text>)</xsl:text>
729
+ </xsl:if>
730
+ </xsl:when>
731
+ <!-- Appendix -->
732
+ <xsl:when test="ancestor::itu:annex[not(@obligation) or @obligation != 'informative']">
733
+ <xsl:variable name="annex-id" select="ancestor::itu:annex/@id"/>
734
+ <xsl:if test="$brackets = 'true'">
735
+ <xsl:text>(</xsl:text>
736
+ </xsl:if>
737
+ <xsl:number format="A-" count="itu:annex[not(@obligation) or @obligation != 'informative']"/>
738
+ <xsl:number format="1" level="any" count="*[local-name()=$name][(not(@unnumbered) or @unnumbered != 'true') and ancestor::itu:annex[@id = $annex-id]]"/>
739
+ <xsl:if test="$brackets = 'true'">
740
+ <xsl:text>)</xsl:text>
741
+ </xsl:if>
742
+ </xsl:when>
743
+ <xsl:when test="ancestor::*[local-name()=$name]"> <!-- figure in figure for example -->
744
+ <xsl:if test="$brackets = 'true'">
745
+ <xsl:text>(</xsl:text>
746
+ </xsl:if>
747
+ <xsl:for-each select="parent::*[1]">
748
+ <xsl:number format="1" level="any" count="*[local-name()=$name][not(parent::*[local-name()=$name])]"/> <!-- itu:figure[not(parent::itu:figure)] -->
749
+ </xsl:for-each>
750
+ <xsl:number format="-a" count="*[local-name()=$name]"/>
751
+ <xsl:if test="$brackets = 'true'">
752
+ <xsl:text>)</xsl:text>
753
+ </xsl:if>
754
+ </xsl:when>
755
+ <xsl:when test="ancestor::itu:sections and $name = 'formula'">
756
+ <xsl:if test="$brackets = 'true'">
757
+ <xsl:text>(</xsl:text>
758
+ </xsl:if>
759
+ <xsl:value-of select="$sectionNum"/>
760
+ <xsl:text>-</xsl:text>
761
+ <xsl:variable name="parent_id" select="ancestor::itu:clause[last()]/@id"/>
762
+ <!-- count equation in current section (1st level) -->
763
+ <xsl:number format="1" level="any" count="*[local-name()=$name][not(@unnumbered) or @unnumbered != 'true'][not(parent::*[local-name()=$name])][ancestor::itu:clause[last()]/@id = $parent_id]"/>
764
+ <xsl:if test="$brackets = 'true'">
765
+ <xsl:text>)</xsl:text>
766
+ </xsl:if>
767
+ </xsl:when>
768
+ <xsl:otherwise>
769
+ <xsl:if test="$brackets = 'true'">
770
+ <xsl:text>(</xsl:text>
771
+ </xsl:if>
772
+ <!-- <xsl:number format="1" level="any" count="itu:figure[not(parent::itu:figure)]"/> -->
773
+ <xsl:number format="1" level="any" count="*[local-name()=$name][not(@unnumbered) or @unnumbered != 'true'][not(parent::*[local-name()=$name])]"/>
774
+ <xsl:if test="$brackets = 'true'">
775
+ <xsl:text>)</xsl:text>
776
+ </xsl:if>
777
+ </xsl:otherwise>
778
+ </xsl:choose>
779
+ </xsl:template>
780
+
781
+
782
+ <xsl:template match="itu:example" mode="contents">
783
+ <xsl:param name="sectionNum"/>
784
+ <xsl:variable name="level">
785
+ <xsl:call-template name="getLevel"/>
786
+ </xsl:variable>
787
+ <xsl:variable name="section">
788
+ <xsl:call-template name="getSection">
789
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
790
+ </xsl:call-template>
791
+ </xsl:variable>
792
+
793
+ <xsl:variable name="parent-element" select="local-name(..)"/>
794
+ <item level="" id="{@id}" display="false" type="example" section="{$section}">
795
+ <xsl:attribute name="parent">
796
+ <xsl:choose>
797
+ <xsl:when test="$parent-element = 'clause'">Clause</xsl:when>
798
+ <xsl:otherwise/>
799
+ </xsl:choose>
800
+ </xsl:attribute>
801
+ </item>
802
+ <xsl:apply-templates mode="contents">
803
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
804
+ </xsl:apply-templates>
805
+ </xsl:template>
806
+
807
+ <!-- terms - term - termnote -->
808
+ <xsl:template match="itu:termnote" mode="contents">
809
+ <xsl:param name="sectionNum"/>
810
+ <xsl:variable name="level">
811
+ <xsl:call-template name="getLevel"/>
812
+ </xsl:variable>
813
+ <xsl:variable name="section">
814
+ <xsl:call-template name="getSection">
815
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
816
+ </xsl:call-template>
817
+ </xsl:variable>
818
+ <item level="" id="{@id}" display="false" type="note" section="{$section}">
819
+ <xsl:number/>
820
+ </item>
821
+ <xsl:apply-templates mode="contents">
822
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
823
+ </xsl:apply-templates>
824
+ </xsl:template>
825
+
826
+ <xsl:template match="itu:termnote" mode="contents">
827
+ <xsl:param name="sectionNum"/>
828
+ <xsl:variable name="level">
829
+ <xsl:call-template name="getLevel"/>
830
+ </xsl:variable>
831
+ <xsl:variable name="section">
832
+ <xsl:call-template name="getSection">
833
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
834
+ </xsl:call-template>
835
+ </xsl:variable>
836
+ <item level="" id="{@id}" display="false" type="note" section="{$section}">
837
+ <xsl:number/>
838
+ </item>
839
+ <xsl:apply-templates mode="contents">
840
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
841
+ </xsl:apply-templates>
842
+ </xsl:template>
843
+
844
+ <xsl:template match="itu:note" mode="contents">
845
+ <xsl:param name="sectionNum"/>
846
+ <xsl:variable name="level">
847
+ <xsl:call-template name="getLevel"/>
848
+ </xsl:variable>
849
+ <xsl:variable name="section">
850
+ <xsl:for-each select="ancestor::itu:clause[1]/*[1]">
851
+ <xsl:call-template name="getSection">
852
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
853
+ </xsl:call-template>
854
+ </xsl:for-each>
855
+ </xsl:variable>
856
+ <item level="" id="{@id}" display="false" type="note" section="{$section}">
857
+ <xsl:number/>
858
+ </item>
859
+ <xsl:apply-templates mode="contents">
860
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
861
+ </xsl:apply-templates>
862
+ </xsl:template>
863
+
864
+ <xsl:template match="itu:li" mode="contents">
865
+ <xsl:param name="sectionNum"/>
866
+ <item level="" id="{@id}" display="false" type="li">
867
+ <xsl:attribute name="section">
868
+ <xsl:call-template name="getListItemFormat"/>
869
+ </xsl:attribute>
870
+ </item>
871
+ <xsl:apply-templates mode="contents">
872
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
873
+ </xsl:apply-templates>
874
+ </xsl:template>
875
+
876
+ <xsl:template name="getListItemFormat">
877
+ <xsl:variable name="level">
878
+ <xsl:variable name="numtmp">
879
+ <xsl:number level="multiple" count="itu:ol"/>
880
+ </xsl:variable>
881
+ <!-- level example: 1.1
882
+ calculate counts of '.' in numtmp value - level of nested lists
883
+ -->
884
+ <xsl:value-of select="string-length($numtmp) - string-length(translate($numtmp, '.', '')) + 1"/>
885
+ </xsl:variable>
886
+ <xsl:choose>
887
+ <xsl:when test="local-name(..) = 'ul' and itu:ul and local-name(../../..) != 'ul'">•</xsl:when> <!-- dash &#x2014; -->
888
+ <xsl:when test="local-name(..) = 'ul'">–</xsl:when> <!-- dash &#x2014; -->
889
+ <xsl:otherwise>
890
+ <!-- for Ordered Lists -->
891
+ <xsl:choose>
892
+ <xsl:when test="../@type = 'arabic'">
893
+ <xsl:number format="a)"/>
894
+ </xsl:when>
895
+ <xsl:when test="../@class = 'steps'">
896
+ <xsl:number format="1)"/>
897
+ </xsl:when>
898
+ <xsl:when test="$level = 1">
899
+ <xsl:number format="a)"/>
900
+ </xsl:when>
901
+ <xsl:when test="$level = 2">
902
+ <xsl:number format="i)"/>
903
+ </xsl:when>
904
+ <xsl:otherwise>
905
+ <!-- <xsl:number format="1.)"/> -->
906
+ <!-- https://github.com/metanorma/mn-native-pdf/issues/156 -->
907
+ <xsl:number format="1)"/>
908
+ </xsl:otherwise>
909
+ </xsl:choose>
910
+ </xsl:otherwise>
911
+ </xsl:choose>
912
+ </xsl:template>
913
+
914
+ <!-- ============================= -->
915
+ <!-- ============================= -->
916
+
917
+
918
+ <!-- ============================= -->
919
+ <!-- PREFACE (Summary, History, ...) -->
920
+ <!-- ============================= -->
921
+
922
+ <!-- Summary -->
923
+ <xsl:template match="itu:itu-standard/itu:preface/itu:abstract[@id = '_summary']">
924
+ <fo:block font-size="12pt">
925
+ <xsl:value-of select="$linebreak"/>
926
+ <xsl:value-of select="$linebreak"/>
927
+ </fo:block>
928
+ <fo:block font-weight="bold" margin-top="18pt" margin-bottom="18pt">
929
+ <xsl:text>Summary</xsl:text>
930
+ </fo:block>
931
+ <xsl:apply-templates/>
932
+ </xsl:template>
933
+
934
+ <xsl:template match="itu:preface/itu:clause">
935
+ <fo:block font-size="12pt">
936
+ <xsl:value-of select="$linebreak"/>
937
+ <xsl:value-of select="$linebreak"/>
938
+ </fo:block>
939
+ <xsl:apply-templates/>
940
+ </xsl:template>
941
+
942
+ <xsl:template match="itu:preface//itu:title">
943
+ <fo:block font-weight="bold" margin-top="18pt" margin-bottom="18pt">
944
+ <xsl:apply-templates/>
945
+ </fo:block>
946
+ </xsl:template>
947
+ <!-- ============================= -->
948
+ <!-- ============================= -->
949
+
950
+
951
+ <!-- ============================= -->
952
+ <!-- PARAGRAPHS -->
953
+ <!-- ============================= -->
954
+ <xsl:template match="itu:p | itu:sections/itu:p">
955
+ <fo:block margin-top="6pt">
956
+ <xsl:attribute name="text-align">
957
+ <xsl:choose>
958
+ <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
959
+ <xsl:otherwise>justify</xsl:otherwise>
960
+ </xsl:choose>
961
+ </xsl:attribute>
962
+ <xsl:apply-templates/>
963
+ </fo:block>
964
+ </xsl:template>
965
+
966
+ <xsl:template match="itu:note">
967
+ <fo:block id="{@id}">
968
+ <xsl:apply-templates/>
969
+ </fo:block>
970
+ </xsl:template>
971
+
972
+ <xsl:template match="itu:note/itu:p" name="note">
973
+ <xsl:variable name="id" select="ancestor::*[local-name() = 'clause'][1]/@id"/>
974
+ <fo:block font-size="11pt" space-before="4pt" text-align="justify">
975
+ <xsl:if test="ancestor::itu:figure">
976
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
977
+ </xsl:if>
978
+ <xsl:text>NOTE </xsl:text>
979
+ <!-- <xsl:if test="../following-sibling::itu:note or ../preceding-sibling::itu:note"> -->
980
+ <xsl:if test="count(//itu:note[ancestor::*[local-name() = 'clause'][1][@id = $id] and not (ancestor::itu:table)]) &gt; 1">
981
+ <xsl:number count="itu:note[ancestor::*[local-name() = 'clause'][1][@id = $id] and not (ancestor::itu:table)]" level="any"/>
982
+ </xsl:if>
983
+ <!-- <xsl:number count="itu:note"/> --><xsl:text> </xsl:text>
984
+ <!-- </xsl:if> -->
985
+ <xsl:text>– </xsl:text>
986
+ <xsl:apply-templates/>
987
+ </fo:block>
988
+ </xsl:template>
989
+
990
+
991
+ <!-- ============================= -->
992
+ <!-- ============================= -->
993
+
994
+
995
+ <!-- ============================= -->
996
+ <!-- Bibliography -->
997
+ <!-- ============================= -->
998
+
999
+ <!-- Example: [ITU-T A.23] ITU-T A.23, Recommendation ITU-T A.23, Annex A (2014), Guide for ITU-T and ISO/IEC JTC 1 cooperation. -->
1000
+ <xsl:template match="itu:bibitem">
1001
+ <fo:block id="{@id}" margin-top="6pt" margin-left="14mm" text-indent="-14mm">
1002
+
1003
+ <xsl:choose>
1004
+ <xsl:when test="itu:docidentifier[@type = 'metanorma']">
1005
+ <xsl:value-of select="itu:docidentifier[@type = 'metanorma']"/>
1006
+ <xsl:text> </xsl:text>
1007
+ <xsl:if test="itu:docidentifier[not(@type) or not(@type = 'metanorma')]">
1008
+ <xsl:value-of select="itu:docidentifier[not(@type) or not(@type = 'metanorma')]"/>
1009
+ <xsl:text>, </xsl:text>
1010
+ </xsl:if>
1011
+ </xsl:when>
1012
+ <xsl:otherwise>
1013
+ <fo:inline padding-right="5mm">
1014
+ <xsl:text>[</xsl:text>
1015
+ <xsl:value-of select="itu:docidentifier"/>
1016
+ <xsl:text>] </xsl:text>
1017
+ </fo:inline>
1018
+ <xsl:value-of select="itu:docidentifier"/>
1019
+ <xsl:if test="itu:title">
1020
+ <xsl:text>, </xsl:text>
1021
+ </xsl:if>
1022
+ </xsl:otherwise>
1023
+ </xsl:choose>
1024
+
1025
+ <xsl:if test="itu:title">
1026
+ <fo:inline font-style="italic">
1027
+ <xsl:choose>
1028
+ <xsl:when test="itu:title[@type = 'main' and @language = 'en']">
1029
+ <xsl:value-of select="itu:title[@type = 'main' and @language = 'en']"/>
1030
+ </xsl:when>
1031
+ <xsl:otherwise>
1032
+ <xsl:value-of select="itu:title"/>
1033
+ </xsl:otherwise>
1034
+ </xsl:choose>
1035
+ </fo:inline>
1036
+ </xsl:if>
1037
+ <xsl:if test="itu:formattedref and not(itu:docidentifier[@type = 'metanorma'])">, </xsl:if>
1038
+ <xsl:apply-templates select="itu:formattedref"/>
1039
+ </fo:block>
1040
+ </xsl:template>
1041
+ <xsl:template match="itu:bibitem/itu:docidentifier"/>
1042
+
1043
+ <xsl:template match="itu:bibitem/itu:title"/>
1044
+
1045
+ <xsl:template match="itu:formattedref">
1046
+ <xsl:apply-templates/>
1047
+ </xsl:template>
1048
+
1049
+
1050
+ <!-- ============================= -->
1051
+ <!-- ============================= -->
1052
+
1053
+
1054
+ <xsl:template match="text()">
1055
+ <xsl:value-of select="."/>
1056
+ </xsl:template>
1057
+
1058
+
1059
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
1060
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
1061
+ <xsl:template match="itu:itu-standard/itu:sections/*">
1062
+ <xsl:param name="sectionNum"/>
1063
+ <xsl:param name="sectionNumSkew" select="-1"/>
1064
+ <fo:block>
1065
+ <xsl:variable name="sectionNum_">
1066
+ <xsl:choose>
1067
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
1068
+ <xsl:when test="$sectionNumSkew != -1">
1069
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable> <!-- itu:sections/itu:clause | itu:sections/itu:terms -->
1070
+ <xsl:value-of select="$number + $sectionNumSkew"/>
1071
+ </xsl:when>
1072
+ </xsl:choose>
1073
+ </xsl:variable>
1074
+ <xsl:apply-templates>
1075
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
1076
+ </xsl:apply-templates>
1077
+ </fo:block>
1078
+ </xsl:template>
1079
+
1080
+
1081
+ <xsl:template match="itu:clause[@id='draft-warning']/itu:title" mode="caution">
1082
+ <fo:block font-size="16pt" font-family="Times New Roman" font-style="italic" font-weight="bold" text-align="center">
1083
+ <xsl:apply-templates/>
1084
+ </fo:block>
1085
+ </xsl:template>
1086
+
1087
+ <xsl:template match="itu:clause[@id='draft-warning']/itu:p" mode="caution">
1088
+ <fo:block font-size="12pt" font-family="Times New Roman" text-align="justify">
1089
+ <xsl:apply-templates/>
1090
+ </fo:block>
1091
+ </xsl:template>
1092
+
1093
+ <xsl:template match="itu:title">
1094
+ <xsl:param name="sectionNum"/>
1095
+
1096
+ <xsl:variable name="id">
1097
+ <xsl:call-template name="getId"/>
1098
+ </xsl:variable>
1099
+
1100
+ <xsl:variable name="parent-name" select="local-name(..)"/>
1101
+ <xsl:variable name="references_num_current">
1102
+ <xsl:number level="any" count="itu:references"/>
1103
+ </xsl:variable>
1104
+
1105
+ <xsl:variable name="level">
1106
+ <xsl:call-template name="getLevel"/>
1107
+ </xsl:variable>
1108
+
1109
+ <xsl:variable name="font-size">
1110
+ <xsl:choose>
1111
+ <xsl:when test="$level = 2">12pt</xsl:when>
1112
+ <xsl:when test="$level &gt;= 3">12pt</xsl:when>
1113
+ <xsl:otherwise>12pt</xsl:otherwise>
1114
+ </xsl:choose>
1115
+ </xsl:variable>
1116
+
1117
+ <xsl:variable name="space-before">
1118
+ <xsl:choose>
1119
+ <xsl:when test="$level = '' or $level = 1">18pt</xsl:when>
1120
+ <xsl:when test="$level = 2">12pt</xsl:when>
1121
+ <xsl:otherwise>6pt</xsl:otherwise>
1122
+ </xsl:choose>
1123
+ </xsl:variable>
1124
+
1125
+ <xsl:variable name="space-after">
1126
+ <xsl:choose>
1127
+ <xsl:when test="$level = 2">6pt</xsl:when>
1128
+ <xsl:otherwise>6pt</xsl:otherwise>
1129
+ </xsl:choose>
1130
+ </xsl:variable>
1131
+
1132
+ <xsl:variable name="section">
1133
+ <xsl:call-template name="getSection">
1134
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1135
+ </xsl:call-template>
1136
+ </xsl:variable>
1137
+
1138
+ <xsl:choose>
1139
+ <xsl:when test="$parent-name = 'annex'">
1140
+ <fo:block id="{$id}" font-size="14pt" font-weight="bold" text-align="center" margin-bottom="18pt">
1141
+ <fo:block margin-bottom="18pt">
1142
+ <fo:inline id="{@id}"><xsl:value-of select="$section"/></fo:inline>
1143
+ </fo:block>
1144
+ <fo:block><xsl:apply-templates/></fo:block>
1145
+ <fo:block font-size="12pt" font-weight="normal" margin-top="6pt">
1146
+ <xsl:choose>
1147
+ <xsl:when test="parent::*[@obligation = 'informative']">
1148
+ <xsl:text>(This appendix does not form an integral part of this Recommendation.)</xsl:text>
1149
+ </xsl:when>
1150
+ <xsl:otherwise>
1151
+ <xsl:text>(This annex forms an integral part of this Recommendation.)</xsl:text>
1152
+ </xsl:otherwise>
1153
+ </xsl:choose>
1154
+ </fo:block>
1155
+ </fo:block>
1156
+ </xsl:when>
1157
+ <xsl:when test="$parent-name = 'references' and $references_num_current != 1">
1158
+ <fo:block id="{$id}" font-size="14pt" font-weight="bold" text-align="center" margin-bottom="18pt">
1159
+ <xsl:apply-templates/>
1160
+ </fo:block>
1161
+ </xsl:when>
1162
+ <xsl:otherwise>
1163
+ <fo:block id="{$id}" font-size="{$font-size}" font-weight="bold" space-before="{$space-before}" space-after="{$space-after}" keep-with-next="always">
1164
+ <xsl:value-of select="$section"/>
1165
+ <fo:inline>
1166
+ <xsl:attribute name="padding-right">
1167
+ <xsl:choose>
1168
+ <xsl:when test="$level = 5">6mm</xsl:when>
1169
+ <xsl:when test="$level = 4">9mm</xsl:when>
1170
+ <xsl:when test="$level = 3">5mm</xsl:when>
1171
+ <xsl:when test="$level = 2">8mm</xsl:when>
1172
+ <xsl:otherwise>11mm</xsl:otherwise>
1173
+ </xsl:choose>
1174
+ </xsl:attribute>
1175
+ <xsl:text> </xsl:text>
1176
+ </fo:inline>
1177
+ <xsl:apply-templates/>
1178
+ </fo:block>
1179
+ </xsl:otherwise>
1180
+ </xsl:choose>
1181
+ </xsl:template>
1182
+
1183
+
1184
+ <xsl:template match="itu:legal-statement//itu:title | itu:license-statement//itu:title">
1185
+ <fo:block text-align="center" margin-top="6pt">
1186
+ <xsl:apply-templates/>
1187
+ </fo:block>
1188
+ </xsl:template>
1189
+
1190
+ <xsl:template match="itu:legal-statement//itu:p | itu:license-statement//itu:p">
1191
+ <fo:block margin-top="6pt">
1192
+ <xsl:apply-templates/>
1193
+ </fo:block>
1194
+ <xsl:if test="not(following-sibling::itu:p)"> <!-- last para -->
1195
+ <fo:block margin-top="6pt"> </fo:block>
1196
+ <fo:block margin-top="6pt"> </fo:block>
1197
+ <fo:block margin-top="6pt"> </fo:block>
1198
+ </xsl:if>
1199
+ </xsl:template>
1200
+
1201
+ <xsl:template match="itu:copyright-statement//itu:p">
1202
+ <fo:block>
1203
+ <xsl:if test="not(preceding-sibling::itu:p)"> <!-- first para -->
1204
+ <xsl:attribute name="text-align">center</xsl:attribute>
1205
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1206
+ <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
1207
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1208
+ </xsl:if>
1209
+ <xsl:apply-templates/>
1210
+ </fo:block>
1211
+ </xsl:template>
1212
+
1213
+
1214
+ <xsl:template match="itu:preferred">
1215
+ <xsl:param name="sectionNum"/>
1216
+ <!-- DEBUG need -->
1217
+ <fo:block space-before="6pt" text-align="justify">
1218
+ <fo:inline id="{../@id}" padding-right="5mm" font-weight="bold">
1219
+ <!-- <xsl:value-of select="$sectionNum"/><xsl:number format=".1" level="multiple" count="itu:clause/itu:clause | itu:clause/itu:terms | itu:terms/itu:term"/> -->
1220
+ <xsl:variable name="level">
1221
+ <xsl:call-template name="getLevel"/>
1222
+ </xsl:variable>
1223
+ <!-- level=<xsl:value-of select="$level"/> -->
1224
+ <xsl:attribute name="padding-right">
1225
+ <xsl:choose>
1226
+ <xsl:when test="$level = 4">2mm</xsl:when>
1227
+ <xsl:when test="$level = 3">4mm</xsl:when>
1228
+ <xsl:otherwise>5mm</xsl:otherwise>
1229
+ </xsl:choose>
1230
+ </xsl:attribute>
1231
+ <xsl:variable name="section">
1232
+ <xsl:call-template name="getSection">
1233
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1234
+ </xsl:call-template>
1235
+ </xsl:variable>
1236
+ <xsl:value-of select="$section"/>
1237
+ </fo:inline>
1238
+ <fo:inline font-weight="bold">
1239
+ <xsl:apply-templates/>
1240
+ </fo:inline>
1241
+ <xsl:if test="../itu:termsource/itu:origin">
1242
+ <xsl:text> [</xsl:text><xsl:value-of select="../itu:termsource/itu:origin/@citeas"/><xsl:text>]</xsl:text>
1243
+ </xsl:if>
1244
+ <xsl:text>: </xsl:text>
1245
+ <xsl:apply-templates select="following-sibling::itu:definition/node()" mode="process"/> <!-- -->
1246
+ </fo:block>
1247
+ <!-- <xsl:if test="following-sibling::itu:table">
1248
+ <fo:block space-after="18pt">&#xA0;</fo:block>
1249
+ </xsl:if> -->
1250
+ </xsl:template>
1251
+
1252
+ <xsl:template match="itu:definition/itu:p"/>
1253
+ <xsl:template match="itu:definition/itu:formula"/>
1254
+
1255
+ <xsl:template match="itu:definition/itu:p" mode="process"> <!-- -->
1256
+ <xsl:param name="sectionNum"/>
1257
+ <xsl:choose>
1258
+ <xsl:when test="position() = 1">
1259
+ <fo:inline>
1260
+ <xsl:apply-templates/>
1261
+ </fo:inline>
1262
+ </xsl:when>
1263
+ <xsl:otherwise>
1264
+ <fo:block margin-top="6pt" text-align="justify">
1265
+ <xsl:apply-templates>
1266
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1267
+ </xsl:apply-templates>
1268
+ </fo:block>
1269
+ </xsl:otherwise>
1270
+ </xsl:choose>
1271
+ </xsl:template>
1272
+
1273
+ <xsl:variable name="p_fn">
1274
+ <xsl:for-each select="//itu:p/itu:fn[generate-id(.)=generate-id(key('kfn',@reference)[1])]">
1275
+ <!-- copy unique fn -->
1276
+ <fn gen_id="{generate-id(.)}">
1277
+ <xsl:copy-of select="@*"/>
1278
+ <xsl:copy-of select="node()"/>
1279
+ </fn>
1280
+ </xsl:for-each>
1281
+ </xsl:variable>
1282
+
1283
+ <xsl:template match="itu:p/itu:fn" priority="2">
1284
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
1285
+ <xsl:variable name="reference" select="@reference"/>
1286
+ <xsl:variable name="number">
1287
+ <!-- <xsl:number level="any" count="itu:p/itu:fn"/> -->
1288
+ <xsl:value-of select="count(xalan:nodeset($p_fn)//fn[@reference = $reference]/preceding-sibling::fn) + 1"/>
1289
+ </xsl:variable>
1290
+ <xsl:choose>
1291
+ <xsl:when test="xalan:nodeset($p_fn)//fn[@gen_id = $gen_id]">
1292
+ <fo:footnote>
1293
+ <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
1294
+ <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
1295
+ <!-- <xsl:value-of select="@reference"/> -->
1296
+ <xsl:value-of select="$number + count(//itu:bibitem/itu:note)"/>
1297
+ </fo:basic-link>
1298
+ </fo:inline>
1299
+ <fo:footnote-body>
1300
+ <fo:block font-size="11pt" margin-bottom="12pt">
1301
+ <fo:inline id="footnote_{@reference}_{$number}" font-size="85%" padding-right="2mm" keep-with-next.within-line="always" baseline-shift="30%">
1302
+ <xsl:value-of select="$number + count(//itu:bibitem/itu:note)"/>
1303
+ </fo:inline>
1304
+ <xsl:for-each select="itu:p">
1305
+ <xsl:apply-templates/>
1306
+ </xsl:for-each>
1307
+ </fo:block>
1308
+ </fo:footnote-body>
1309
+ </fo:footnote>
1310
+ </xsl:when>
1311
+ <xsl:otherwise>
1312
+ <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
1313
+ <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
1314
+ <xsl:value-of select="$number + count(//itu:bibitem/itu:note)"/>
1315
+ </fo:basic-link>
1316
+ </fo:inline>
1317
+ </xsl:otherwise>
1318
+ </xsl:choose>
1319
+ </xsl:template>
1320
+
1321
+
1322
+ <xsl:template match="*[local-name()='tt']" priority="2">
1323
+ <xsl:variable name="element-name">
1324
+ <xsl:choose>
1325
+ <xsl:when test="ancestor::itu:dd">fo:inline</xsl:when>
1326
+ <xsl:when test="normalize-space(ancestor::itu:p[1]//text()[not(parent::itu:tt)]) != ''">fo:inline</xsl:when>
1327
+ <xsl:otherwise>fo:block</xsl:otherwise>
1328
+ </xsl:choose>
1329
+ </xsl:variable>
1330
+ <xsl:element name="{$element-name}">
1331
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
1332
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1333
+ <xsl:if test="local-name(..) != 'dt' and not(ancestor::itu:dd)">
1334
+ <xsl:attribute name="text-align">center</xsl:attribute>
1335
+ </xsl:if>
1336
+ <xsl:apply-templates/>
1337
+ </xsl:element>
1338
+ </xsl:template>
1339
+
1340
+
1341
+
1342
+ <xsl:template match="itu:figure">
1343
+ <fo:block-container id="{@id}">
1344
+ <fo:block>
1345
+ <xsl:apply-templates/>
1346
+ </fo:block>
1347
+ <xsl:call-template name="fn_display_figure"/>
1348
+ <xsl:for-each select="itu:note//itu:p">
1349
+ <xsl:call-template name="note"/>
1350
+ </xsl:for-each>
1351
+ <fo:block font-weight="bold" text-align="center" margin-top="6pt" margin-bottom="6pt" keep-with-previous="always">
1352
+ <xsl:variable name="itemnumber">
1353
+ <xsl:call-template name="getItemNumber">
1354
+ <xsl:with-param name="brackets" select="'false'"/>
1355
+ </xsl:call-template>
1356
+ </xsl:variable>
1357
+ <xsl:if test="$itemnumber != ''">
1358
+ <xsl:text>Figure </xsl:text>
1359
+ <xsl:value-of select="$itemnumber"/>
1360
+ </xsl:if>
1361
+ <xsl:if test="itu:name">
1362
+ <xsl:text> — </xsl:text>
1363
+ <xsl:apply-templates select="itu:name" mode="process"/>
1364
+ </xsl:if>
1365
+ </fo:block>
1366
+ </fo:block-container>
1367
+ </xsl:template>
1368
+
1369
+ <xsl:template match="itu:figure/itu:name" mode="process">
1370
+ <xsl:apply-templates/>
1371
+ </xsl:template>
1372
+
1373
+ <xsl:template match="itu:figure/itu:name"/>
1374
+ <xsl:template match="itu:figure/itu:fn" priority="2"/>
1375
+ <xsl:template match="itu:figure/itu:note"/>
1376
+
1377
+ <!-- itu:figure/itu:image -->
1378
+ <xsl:template match="itu:image">
1379
+ <fo:block text-align="center">
1380
+ <!-- <fo:external-graphic src="{@src}" content-width="75%" content-height="scale-to-fit" scaling="uniform"/> -->
1381
+ <fo:external-graphic src="{@src}" fox:alt-text="Image {@alt}" width="75%" content-height="100%" content-width="scale-to-fit" scaling="uniform"/>
1382
+ </fo:block>
1383
+ </xsl:template>
1384
+
1385
+ <xsl:template match="itu:figure[@class = 'pseudocode']">
1386
+ <fo:block>
1387
+ <xsl:apply-templates/>
1388
+ </fo:block>
1389
+ </xsl:template>
1390
+
1391
+ <xsl:template match="itu:figure[@class = 'pseudocode']//itu:p">
1392
+ <fo:block font-size="10pt" margin-top="6pt" margin-bottom="6pt">
1393
+ <xsl:apply-templates/>
1394
+ </fo:block>
1395
+ </xsl:template>
1396
+
1397
+
1398
+
1399
+ <!-- Examples:
1400
+ [b-ASM] b-ASM, http://www.eecs.umich.edu/gasm/ (accessed 20 March 2018).
1401
+ [b-Börger & Stärk] b-Börger & Stärk, Börger, E., and Stärk, R. S. (2003), Abstract State Machines: A Method for High-Level System Design and Analysis, Springer-Verlag.
1402
+ -->
1403
+ <xsl:template match="itu:annex//itu:bibitem">
1404
+ <fo:block margin-top="6pt" margin-left="10mm" text-indent="-10mm">
1405
+ <fo:inline id="{@id}" padding-right="5mm">[<xsl:value-of select="itu:docidentifier"/>]</fo:inline>
1406
+ <xsl:text> </xsl:text>
1407
+ <xsl:apply-templates select="itu:docidentifier" mode="content"/>
1408
+ <xsl:if test="node()[local-name(.) != current()/itu:docidentifier]">, </xsl:if>
1409
+ <xsl:apply-templates/>
1410
+ </fo:block>
1411
+ </xsl:template>
1412
+
1413
+ <xsl:template match="itu:docidentifier" mode="content">
1414
+ <xsl:apply-templates/>
1415
+ </xsl:template>
1416
+ <xsl:template match="itu:docidentifier"/>
1417
+
1418
+
1419
+
1420
+ <xsl:template match="itu:annex2//itu:note/itu:p">
1421
+ <fo:block font-size="11pt" margin-top="4pt">
1422
+ <xsl:text>NOTE </xsl:text>
1423
+ <!-- <xsl:if test="../following-sibling::itu:note or ../preceding-sibling::itu:note"> -->
1424
+ <xsl:number count="itu:note"/><xsl:text> </xsl:text>
1425
+ <!-- </xsl:if> -->
1426
+ <xsl:text>– </xsl:text>
1427
+ <xsl:apply-templates/>
1428
+ </fo:block>
1429
+ </xsl:template>
1430
+
1431
+ <xsl:template match="itu:ul | itu:ol | itu:sections/itu:ul | itu:sections/itu:ol">
1432
+ <xsl:if test="preceding-sibling::*[1][local-name() = 'title']">
1433
+ <fo:block padding-top="-8pt" font-size="1pt"> </fo:block>
1434
+ </xsl:if>
1435
+ <fo:list-block>
1436
+ <xsl:apply-templates/>
1437
+ </fo:list-block>
1438
+ <xsl:apply-templates select="./itu:note" mode="process"/>
1439
+ </xsl:template>
1440
+
1441
+ <xsl:template match="itu:ul//itu:note | itu:ol//itu:note"/>
1442
+ <xsl:template match="itu:ul//itu:note/itu:p | itu:ol//itu:note/itu:p" mode="process">
1443
+ <xsl:variable name="id" select="ancestor::*[local-name() = 'clause'][1]/@id"/>
1444
+ <fo:block font-size="11pt" margin-top="4pt">
1445
+ <xsl:text>NOTE </xsl:text>
1446
+ <!-- <xsl:if test="../following-sibling::itu:note or ../preceding-sibling::itu:note"> -->
1447
+ <xsl:if test="count(//itu:note[ancestor::*[@id = $id] and not (ancestor::itu:table)]) &gt; 1">
1448
+ <xsl:number count="itu:note[ancestor::*[@id = $id] and not (ancestor::itu:table)]" level="any"/>
1449
+ </xsl:if>
1450
+ <!-- <xsl:number count="itu:note"/> --><xsl:text> </xsl:text>
1451
+ <!-- </xsl:if> -->
1452
+ <xsl:text>– </xsl:text>
1453
+ <xsl:apply-templates/>
1454
+ </fo:block>
1455
+ </xsl:template>
1456
+
1457
+ <xsl:template match="itu:li">
1458
+ <fo:list-item id="{@id}">
1459
+ <fo:list-item-label end-indent="label-end()">
1460
+ <fo:block>
1461
+ <xsl:call-template name="getListItemFormat"/>
1462
+ </fo:block>
1463
+ </fo:list-item-label>
1464
+ <fo:list-item-body start-indent="body-start()">
1465
+ <fo:block-container>
1466
+ <xsl:if test="../preceding-sibling::*[1][local-name() = 'title']">
1467
+ <xsl:attribute name="margin-left">18mm</xsl:attribute>
1468
+ </xsl:if>
1469
+ <xsl:if test="local-name(..) = 'ul'">
1470
+ <xsl:attribute name="margin-left">15mm</xsl:attribute>
1471
+ <xsl:if test="count(ancestor::itu:ol) + count(ancestor::itu:ul) &gt; 1">
1472
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
1473
+ </xsl:if>
1474
+ </xsl:if>
1475
+ <fo:block-container margin-left="0mm">
1476
+ <xsl:apply-templates/>
1477
+ <xsl:apply-templates select=".//itu:note" mode="process"/>
1478
+ </fo:block-container>
1479
+ </fo:block-container>
1480
+ </fo:list-item-body>
1481
+ </fo:list-item>
1482
+ </xsl:template>
1483
+
1484
+ <xsl:template match="itu:li//itu:p">
1485
+ <fo:block margin-bottom="0pt"> <!-- margin-bottom="6pt" -->
1486
+ <!-- <xsl:if test="local-name(ancestor::itu:li[1]/..) = 'ul'">
1487
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1488
+ </xsl:if> -->
1489
+ <xsl:apply-templates/>
1490
+ </fo:block>
1491
+ </xsl:template>
1492
+
1493
+ <xsl:template match="itu:link" priority="2">
1494
+ <fo:inline color="blue">
1495
+ <xsl:if test="local-name(..) = 'formattedref' or ancestor::itu:preface">
1496
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
1497
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
1498
+ <xsl:if test="local-name(..) = 'formattedref'">
1499
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1500
+ </xsl:if>
1501
+ </xsl:if>
1502
+ <xsl:call-template name="link"/>
1503
+ </fo:inline>
1504
+ </xsl:template>
1505
+
1506
+
1507
+ <xsl:template match="itu:termnote">
1508
+ <fo:block id="{@id}" margin-top="4pt">
1509
+ <xsl:text>NOTE </xsl:text>
1510
+ <xsl:if test="following-sibling::itu:termnote or preceding-sibling::itu:termnote">
1511
+ <xsl:number/><xsl:text> </xsl:text>
1512
+ </xsl:if>
1513
+ <xsl:text>– </xsl:text>
1514
+ <xsl:apply-templates/>
1515
+ </fo:block>
1516
+ </xsl:template>
1517
+ <xsl:template match="itu:termnote/itu:p">
1518
+ <xsl:apply-templates/>
1519
+ </xsl:template>
1520
+
1521
+
1522
+ <xsl:template match="itu:annex">
1523
+ <fo:block break-after="page"/>
1524
+ <xsl:apply-templates/>
1525
+ </xsl:template>
1526
+
1527
+
1528
+ <xsl:template match="itu:annex/itu:clause">
1529
+ <xsl:apply-templates/>
1530
+ </xsl:template>
1531
+
1532
+ <!-- Clause without title -->
1533
+ <xsl:template match="itu:clause[not(itu:title)]">
1534
+ <xsl:param name="sectionNum"/>
1535
+ <xsl:variable name="section">
1536
+ <xsl:for-each select="*[1]">
1537
+ <xsl:call-template name="getSection">
1538
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1539
+ </xsl:call-template>
1540
+ </xsl:for-each>
1541
+ </xsl:variable>
1542
+ <fo:block space-before="12pt" space-after="18pt" font-weight="bold">
1543
+ <fo:inline id="{@id}"><xsl:value-of select="$section"/></fo:inline>
1544
+ </fo:block>
1545
+ <xsl:apply-templates>
1546
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1547
+ </xsl:apply-templates>
1548
+ </xsl:template>
1549
+
1550
+ <xsl:template match="itu:formula" name="formula">
1551
+ <xsl:param name="sectionNum"/>
1552
+ <fo:block id="{@id}" margin-top="6pt"> <!-- text-align="center" -->
1553
+ <xsl:apply-templates/>
1554
+ <fo:inline keep-together.within-line="always">
1555
+ </fo:inline>
1556
+ </fo:block>
1557
+ </xsl:template>
1558
+
1559
+ <xsl:template match="itu:formula/itu:stem">
1560
+ <fo:table table-layout="fixed" width="100%">
1561
+ <fo:table-column column-width="95%"/>
1562
+ <fo:table-column column-width="5%"/>
1563
+ <fo:table-body>
1564
+ <fo:table-row>
1565
+ <fo:table-cell display-align="center">
1566
+ <fo:block text-align="center" margin-left="0mm">
1567
+ <xsl:apply-templates/>
1568
+ </fo:block>
1569
+ </fo:table-cell>
1570
+ <fo:table-cell display-align="center">
1571
+ <fo:block text-align="right" margin-left="0mm">
1572
+ <xsl:value-of select="xalan:nodeset($contents)//item[@id = current()/ancestor::itu:formula[1]/@id]/@number"/>
1573
+ <!-- <xsl:call-template name="getItemNumber">
1574
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1575
+ </xsl:call-template> -->
1576
+ </fo:block>
1577
+ </fo:table-cell>
1578
+ </fo:table-row>
1579
+ </fo:table-body>
1580
+ </fo:table>
1581
+ </xsl:template>
1582
+
1583
+ <xsl:template match="itu:formula" mode="process">
1584
+ <xsl:param name="sectionNum"/>
1585
+ <xsl:call-template name="formula">
1586
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
1587
+ </xsl:call-template>
1588
+ </xsl:template>
1589
+
1590
+ <xsl:template match="mathml:math" priority="2">
1591
+ <fo:inline font-family="STIX2Math" font-size="11pt">
1592
+ <fo:instream-foreign-object fox:alt-text="Math">
1593
+ <xsl:copy-of select="."/>
1594
+ </fo:instream-foreign-object>
1595
+ </fo:inline>
1596
+ </xsl:template>
1597
+
1598
+ <xsl:template match="itu:xref">
1599
+ <xsl:param name="sectionNum"/>
1600
+
1601
+ <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = current()/@target]/@section"/>
1602
+
1603
+ <xsl:variable name="text" select="xalan:nodeset($contents)//item[@id = current()/@target]/text()"/>
1604
+
1605
+ <fo:basic-link internal-destination="{@target}" color="blue" text-decoration="underline" fox:alt-text="{@target}">
1606
+ <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = current()/@target]/@type"/>
1607
+ <xsl:choose>
1608
+ <xsl:when test="$type = 'clause'">Clause </xsl:when><!-- and not (ancestor::annex) -->
1609
+ <xsl:when test="$type = 'example'">Example </xsl:when>
1610
+ <xsl:when test="$type = 'figure'"/>
1611
+ <xsl:when test="$type = 'formula'"/>
1612
+ <xsl:when test="$type = 'table'"/>
1613
+ <xsl:when test="$type = 'term'">Clause </xsl:when>
1614
+ <xsl:when test="$type = 'note'"><xsl:text>Note </xsl:text><xsl:value-of select="xalan:nodeset($contents)//item[@id = current()/@target]/text()"/></xsl:when>
1615
+
1616
+ <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
1617
+ </xsl:choose>
1618
+
1619
+ <xsl:choose>
1620
+ <xsl:when test="$type = 'example'">
1621
+ <xsl:variable name="currentSection">
1622
+ <xsl:call-template name="getSection"/>
1623
+ </xsl:variable>
1624
+ <xsl:if test="not(contains($section, $currentSection))">
1625
+ <xsl:text>in </xsl:text>
1626
+ <xsl:value-of select="xalan:nodeset($contents)//item[@id = current()/@target]/@parent"/>
1627
+ <xsl:text> </xsl:text>
1628
+ <xsl:value-of select="$section"/>
1629
+ </xsl:if>
1630
+ </xsl:when>
1631
+
1632
+ <xsl:when test="$type = 'figure'">
1633
+ <xsl:value-of select="$text"/>
1634
+ </xsl:when>
1635
+
1636
+ <xsl:when test="$type = 'formula'">
1637
+ <xsl:value-of select="$text"/>
1638
+ <xsl:variable name="currentSection">
1639
+ <xsl:call-template name="getSection"/>
1640
+ </xsl:variable>
1641
+ <xsl:if test="not(contains($section, $currentSection))">
1642
+ <xsl:text> in </xsl:text>
1643
+ <xsl:value-of select="xalan:nodeset($contents)//item[@id = current()/@target]/@parent"/>
1644
+ <xsl:text> </xsl:text>
1645
+ <xsl:value-of select="$section"/>
1646
+ </xsl:if>
1647
+ </xsl:when>
1648
+
1649
+ <xsl:when test="$type = 'table'">
1650
+ <xsl:value-of select="$text"/>
1651
+ </xsl:when>
1652
+
1653
+ <xsl:when test="$type = 'note'">
1654
+ <xsl:variable name="currentSection">
1655
+ <xsl:call-template name="getSection"/>
1656
+ </xsl:variable>
1657
+ <xsl:if test="not(contains($section, $currentSection))">
1658
+ <xsl:text> in Clause </xsl:text>
1659
+ <xsl:value-of select="$section"/>
1660
+ </xsl:if>
1661
+ </xsl:when>
1662
+ <!-- <xsl:when test="$type = 'formula'">
1663
+
1664
+ <xsl:value-of select="$section"/>
1665
+
1666
+ <xsl:variable name="currentSection">
1667
+ <xsl:call-template name="getSection"/>
1668
+ </xsl:variable>
1669
+ <xsl:variable name="refSection">
1670
+ <xsl:for-each select="//*[@id = @target]/ancestor::itu:clause">
1671
+ <xsl:call-template name="getSection"/>
1672
+ </xsl:for-each>
1673
+ </xsl:variable>
1674
+ currentSection=<xsl:value-of select="$currentSection"/>
1675
+ refSection=<xsl:value-of select="$refSection"/>
1676
+ <xsl:if test="$currentSection != $refSection">
1677
+ <xsl:text>in </xsl:text>
1678
+ <xsl:value-of select="xalan:nodeset($contents)//item[@id = current()/@target]/@parent"/>
1679
+ <xsl:text> </xsl:text>
1680
+ <xsl:value-of select="$refSection"/>
1681
+ </xsl:if>
1682
+ </xsl:when> -->
1683
+ <xsl:otherwise>
1684
+ <xsl:value-of select="$section"/>
1685
+ </xsl:otherwise>
1686
+ </xsl:choose>
1687
+
1688
+ </fo:basic-link>
1689
+ </xsl:template>
1690
+
1691
+
1692
+ <xsl:template match="itu:example">
1693
+ <fo:block id="{@id}" font-size="10pt" margin-top="12pt">
1694
+ <xsl:apply-templates/>
1695
+ </fo:block>
1696
+ </xsl:template>
1697
+
1698
+ <xsl:template match="itu:example/itu:name">
1699
+ <fo:block font-weight="bold">
1700
+ <xsl:text>EXAMPLE</xsl:text>
1701
+ <xsl:if test="count(ancestor::itu:clause[1]/itu:example) &gt; 1">
1702
+ <xsl:text> </xsl:text><xsl:number count="itu:example"/>
1703
+ </xsl:if>
1704
+ <xsl:text> — </xsl:text>
1705
+ <xsl:apply-templates/>
1706
+ </fo:block>
1707
+ </xsl:template>
1708
+
1709
+ <xsl:template match="itu:example/itu:p">
1710
+ <fo:block font-size="10pt" margin-top="12pt" margin-bottom="12pt">
1711
+ <xsl:apply-templates/>
1712
+ </fo:block>
1713
+ </xsl:template>
1714
+
1715
+
1716
+ <xsl:template match="itu:eref">
1717
+ <fo:inline>
1718
+ <xsl:if test="@type = 'footnote'">
1719
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1720
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1721
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1722
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1723
+ </xsl:if>
1724
+ <fo:basic-link internal-destination="{@bibitemid}" color="blue" text-decoration="underline" fox:alt-text="{@citeas}">
1725
+ <xsl:choose>
1726
+ <xsl:when test="contains(@citeas, '[')">
1727
+ <xsl:value-of select="@citeas" disable-output-escaping="yes"/>
1728
+ </xsl:when>
1729
+ <xsl:otherwise>
1730
+ <xsl:text>[</xsl:text><xsl:value-of select="@citeas" disable-output-escaping="yes"/><xsl:text>]</xsl:text>
1731
+ </xsl:otherwise>
1732
+ </xsl:choose>
1733
+
1734
+ <xsl:apply-templates select="itu:localityStack"/>
1735
+
1736
+ </fo:basic-link>
1737
+ </fo:inline>
1738
+ </xsl:template>
1739
+
1740
+ <xsl:template match="itu:locality">
1741
+ <xsl:choose>
1742
+ <xsl:when test="@type ='section'">Section</xsl:when>
1743
+ <xsl:otherwise/>
1744
+ </xsl:choose>
1745
+ <xsl:value-of select="itu:referenceFrom"/>
1746
+ </xsl:template>
1747
+
1748
+ <xsl:template match="itu:references[position() &gt; 1]">
1749
+ <fo:block break-after="page"/>
1750
+ <xsl:apply-templates/>
1751
+ </xsl:template>
1752
+
1753
+ <xsl:template match="itu:sourcecode">
1754
+ <fo:block font-family="Courier" font-size="10pt" margin-top="6pt" margin-bottom="6pt">
1755
+ <xsl:choose>
1756
+ <xsl:when test="@lang = 'en'"/>
1757
+ <xsl:otherwise>
1758
+ <xsl:attribute name="white-space">pre</xsl:attribute>
1759
+ </xsl:otherwise>
1760
+ </xsl:choose>
1761
+ <xsl:apply-templates/>
1762
+ </fo:block>
1763
+ </xsl:template>
1764
+
1765
+ <xsl:template name="insertHeaderFooter">
1766
+ <fo:static-content flow-name="footer-even" font-family="Times New Roman" font-size="11pt">
1767
+ <fo:block-container height="19mm" display-align="after">
1768
+ <fo:table table-layout="fixed" width="100%" display-align="after">
1769
+ <fo:table-column column-width="10%"/>
1770
+ <fo:table-column column-width="90%"/>
1771
+ <fo:table-body>
1772
+ <fo:table-row>
1773
+ <fo:table-cell text-align="left" padding-bottom="8mm">
1774
+ <fo:block><fo:page-number/></fo:block>
1775
+ </fo:table-cell>
1776
+ <fo:table-cell font-weight="bold" text-align="left" padding-bottom="8mm">
1777
+ <fo:block>
1778
+ <xsl:value-of select="concat($footerprefix, $docname, ' ', $docdate)"/>
1779
+ </fo:block>
1780
+ </fo:table-cell>
1781
+ </fo:table-row>
1782
+ </fo:table-body>
1783
+ </fo:table>
1784
+ </fo:block-container>
1785
+ </fo:static-content>
1786
+ <fo:static-content flow-name="footer-odd" font-family="Times New Roman" font-size="11pt">
1787
+ <fo:block-container height="19mm" display-align="after">
1788
+ <fo:table table-layout="fixed" width="100%" display-align="after">
1789
+ <fo:table-column column-width="90%"/>
1790
+ <fo:table-column column-width="10%"/>
1791
+ <fo:table-body>
1792
+ <fo:table-row>
1793
+ <fo:table-cell font-weight="bold" text-align="right" padding-bottom="8mm">
1794
+ <fo:block>
1795
+ <xsl:value-of select="concat($footerprefix, $docname, ' ', $docdate)"/>
1796
+ </fo:block>
1797
+ </fo:table-cell>
1798
+ <fo:table-cell text-align="right" padding-bottom="8mm" padding-right="2mm">
1799
+ <fo:block><fo:page-number/></fo:block>
1800
+ </fo:table-cell>
1801
+ </fo:table-row>
1802
+ </fo:table-body>
1803
+ </fo:table>
1804
+ </fo:block-container>
1805
+ </fo:static-content>
1806
+ </xsl:template>
1807
+
1808
+
1809
+ <xsl:variable name="Image-Fond-Rec">
1810
+ <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAHoAAANLCAMAAAC5SXlDAAADAFBMVEX2kYX1zcLNeITqUw/+7Nnh
1811
+ cnP3yr3/jD72iYD+xZnWY2vwhH7z0MbSW2bCSVzmgX3so5n3vrG5RFy5SGD5wr7+9evUbXH5h0Tz
1812
+ mYz+z6uuLErblZj/ZQD+n1vDUmP3xLiyMU3+qGv4wbTsaze1OlT+eRryraD+lkzDWmvpubPyoZL+
1813
+ vIu9PVT2jILcgoLNVGL1pHfoi4PcfHv2j4TynI7/sn/cChv0lYnyv7Xim5rps67ztqjyqJrmZmv+
1814
+ 4svqlIr/2L/hlJL2iH/2uazyrJ3UdXrynpDypJXVjZPzsKHLZHDrnZPmfHrUhIz//vztwrn+bAna
1815
+ cXPz1MrHS1znoZ7uqqLeior02c/YFyf53drKYW3CRVn//PzjkY72vK6pIkTjiYT+giz0l4r1uKrr
1816
+ fnrkravyppj0183LUF/4cx/LWWXhjouzNVHNaXSzLkupH0LxsabuekzrkIfKXWnzuZ/fo6PCQlfk
1817
+ mJX+2bWuJkb0taapIEP3x7vMc3/ylne4NlDObXj+n1jYhIj00MSkGD/HZXTcZmvkTFLxiIDVaG7+
1818
+ bwzcam7rmY7qpaD2kobmeHbUcHbWen/yopPrenf+7uPzsqLWiY7+snbgbnD++PPnqaXzlYnzmIzz
1819
+ 08fqhX/+1LTGanrzs6XuycD+3cP+17zyqpvjhYDCVWjonpn+dBXwimX+/Pr+9u/1h3/ATmH+aATz
1820
+ 1szyuK/0po3adnjBXm/1lIndf379/fytKUjsgmv0zsLeh4b1longLTe3PVb+0av0s6Tz1cr53NDp
1821
+ XR+pI0X++/f2k4fzm4ziO0T0mIv//f3mc3P0rJv3zcv408TWf4XfJS/feXjGV2b0ppL2rZuuLk32
1822
+ zMDGaHfuglrwi4O6QFjwk5fgp6jwhFrtiYzsr6jcnJ71lIjzl4v1xMPmWF6uJ0fzn4WmIEPgdnbw
1823
+ gXv///7vjoT+/v7+///+//7zz8T+/v/z0MTXX2f00MP9/v30z8P9/f3qcnfhoKDxemHfSRj//v6j
1824
+ GT//ZgD///+kGT9CyJ4iAAAAAWJLR0QAiAUdSAAAAAxjbVBQSkNtcDA3MTIAAAADSABzvAAAVV9J
1825
+ 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</xsl:text>
2209
+ </xsl:variable>
2210
+
2211
+ <xsl:variable name="Image-Logo">
2212
+ <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAKEAAABDCAMAAADDA5UNAAADAFBMVEX////0oLP50NnqUHPwgJnk
2213
+ IE3nMFnhADP4wM398PPucI3d4u7CyuGHlcS/yN/T2OnoP2b1r7/e5+2Vo8uLnMVpe7WsudXW3ere
2214
+ 5+7c5uvb5uvZ5OrL1+Oks9FKY6ZWa6zi5fHhDz/9/v6jr9I6U589V6C6xtzi6u/h6e7c5+zY4+nV
2215
+ 4ejS3+efsc9yjbhec7ClsNPx8/hRZ6ksRpjk6/Dm7fK/zt6mt9JxhLl7k71JYqbA0N/J2eKarMxi
2216
+ erH74ObDWINrgLYzTpt4iL16jb20vdpTbKqBlsC8zduftM1abq7sYICMW5FCW6LY4+rp7/Pq8PTs
2217
+ 8fXo7vO6zN2MoMXS3+aZss1IYaTC1d5keLMdOJDZCDpdY6Pu8vbs8va1xNladK1uhLjK2ePI2OFR
2218
+ aqmyydclQZTYgpvSIU/v8/bx9Pevv9Xa5ezW4+pMZqbL2uRnf7RWb6ze6O7UFETjWXry9vj09/gO
2219
+ K4nD1d+1ythEX6O90N26z9vW4ujSucfqk6nt8vX2+fr4+vvF0eHT4OfO3ea2zNnDy+Lmq7z7/PzQ
2220
+ 3uaFmcJedq+/0tywxdevyNXl3eXvx9P9/v39/f6Yp8xKYKfG1+GOp8arxtTyytT8/f1gdrHM2+XE
2221
+ 1uCpxdOauMy6R3Oux9Wjv9F6mL3bydTdPGThZYXidZLWaou4PGnB1N5bf6+nwdOeu85QbqlmirXa
2222
+ 5eqZe6m5ztqLrcbmt8bU4Oiduc2XtspNbKe4y9qUq8m70dynw9GAn8CWtcrb2N+lwdE/YKGOsMdM
2223
+ aabhLFZih7O+0uC3zdyxyNj///+SsshkfbJUd6yevNDU4ukqR5ehvc9wlrrQTHDJytZVeKx+psHZ
2224
+ J1K1vc3Eqrymjang5PCWtszv8fdpjrZNcKh+kMBGaKWGqsR3nr3GVHi3dZOats5HZaZskLdCYqOV
2225
+ tMmXe5zJKlZ/pcGQscc4WZ5iYZquZYgxUZqBqMKam7VsTojDNGAqSZeDm7qKka+hQ3OQhqapXYKX
2226
+ P3mmFVGSg7LK0uWH32cgAAAAAXRSTlMAQObYZgAAAAFvck5UAc+id5oAAApTSURBVGjezZoNXBPn
2227
+ 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
2273
+ v0rL9rg7ifF/FLKviJ4tGb0AAAAASUVORK5CYII=</xsl:text>
2274
+ </xsl:variable>
2275
+
2276
+ <!-- convert YYYY-MM-DD to (MM/YYYY) -->
2277
+ <xsl:template name="formatDate">
2278
+ <xsl:param name="date"/>
2279
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
2280
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
2281
+ <xsl:if test="$month != '' and $year != ''">
2282
+ <xsl:text>(</xsl:text><xsl:value-of select="$month"/>/<xsl:value-of select="$year"/><xsl:text>)</xsl:text>
2283
+ </xsl:if>
2284
+ </xsl:template>
2285
+
2286
+ <xsl:template name="getLevel">
2287
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
2288
+ <xsl:variable name="level">
2289
+ <xsl:choose>
2290
+ <xsl:when test="ancestor::itu:sections">
2291
+ <xsl:value-of select="$level_total - 2"/>
2292
+ </xsl:when>
2293
+ <xsl:when test="ancestor::itu:bibliography">
2294
+ <xsl:value-of select="$level_total - 2"/>
2295
+ </xsl:when>
2296
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
2297
+ <xsl:otherwise>
2298
+ <xsl:value-of select="$level_total - 1"/>
2299
+ </xsl:otherwise>
2300
+ </xsl:choose>
2301
+ </xsl:variable>
2302
+ <xsl:value-of select="$level"/>
2303
+ </xsl:template>
2304
+
2305
+ <xsl:template name="getSection">
2306
+ <xsl:param name="sectionNum"/>
2307
+ <xsl:variable name="level">
2308
+ <xsl:call-template name="getLevel"/>
2309
+ </xsl:variable>
2310
+ <xsl:variable name="section">
2311
+ <xsl:choose>
2312
+ <xsl:when test="ancestor::itu:bibliography">
2313
+ <xsl:value-of select="$sectionNum"/>
2314
+ </xsl:when>
2315
+ <xsl:when test="ancestor::itu:sections">
2316
+ <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
2317
+ <xsl:choose>
2318
+ <xsl:when test="$level = 1">
2319
+ <xsl:value-of select="$sectionNum"/>
2320
+ </xsl:when>
2321
+ <xsl:when test="$level &gt;= 2">
2322
+ <xsl:variable name="num">
2323
+ <xsl:number format=".1" level="multiple" count="itu:clause/itu:clause | itu:clause/itu:terms | itu:terms/itu:term | itu:clause/itu:term | itu:clause/itu:definitions"/>
2324
+ </xsl:variable>
2325
+ <xsl:value-of select="concat($sectionNum, $num)"/>
2326
+ </xsl:when>
2327
+ <xsl:otherwise>
2328
+ <!-- z<xsl:value-of select="$sectionNum"/>z -->
2329
+ </xsl:otherwise>
2330
+ </xsl:choose>
2331
+ </xsl:when>
2332
+ <xsl:when test="ancestor::itu:annex[@obligation = 'informative']">
2333
+ <xsl:choose>
2334
+ <xsl:when test="$level = 1">
2335
+ <xsl:text>Appendix </xsl:text>
2336
+ <xsl:number format="I" level="any" count="itu:annex[@obligation = 'informative']"/>
2337
+ </xsl:when>
2338
+ <xsl:otherwise>
2339
+ <xsl:number format="I.1" level="multiple" count="itu:annex[@obligation = 'informative'] | itu:clause"/>
2340
+ </xsl:otherwise>
2341
+ </xsl:choose>
2342
+ </xsl:when>
2343
+ <xsl:when test="ancestor::itu:annex[not(@obligation) or @obligation != 'informative']">
2344
+ <xsl:choose>
2345
+ <xsl:when test="$level = 1">
2346
+ <xsl:text>Annex </xsl:text>
2347
+ <xsl:choose>
2348
+ <xsl:when test="count(//itu:annex) = 1">
2349
+ <xsl:choose>
2350
+ <xsl:when test="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid">
2351
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid"/>
2352
+ </xsl:when>
2353
+ <xsl:otherwise>
2354
+ <xsl:number format="A" level="any" count="itu:annex[not(@obligation) or @obligation != 'informative']"/>
2355
+ </xsl:otherwise>
2356
+ </xsl:choose>
2357
+ </xsl:when>
2358
+ <xsl:otherwise>
2359
+ <xsl:number format="A" level="any" count="itu:annex[not(@obligation) or @obligation != 'informative']"/>
2360
+ </xsl:otherwise>
2361
+ </xsl:choose>
2362
+ </xsl:when>
2363
+ <xsl:otherwise>
2364
+ <xsl:choose>
2365
+ <xsl:when test="count(//itu:annex) = 1">
2366
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid"/><xsl:number format=".1" level="multiple" count="itu:clause"/> <!-- itu:annex | -->
2367
+ </xsl:when>
2368
+ <xsl:otherwise>
2369
+ <xsl:number format="A.1" level="multiple" count="itu:annex | itu:clause"/>
2370
+ </xsl:otherwise>
2371
+ </xsl:choose>
2372
+ </xsl:otherwise>
2373
+ </xsl:choose>
2374
+ </xsl:when>
2375
+ <xsl:otherwise>
2376
+ </xsl:otherwise>
2377
+ </xsl:choose>
2378
+ </xsl:variable>
2379
+ <xsl:value-of select="$section"/>
2380
+ </xsl:template>
2381
+
2382
+ <xsl:template name="addLetterSpacing">
2383
+ <xsl:param name="text"/>
2384
+ <xsl:if test="string-length($text) &gt; 0">
2385
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
2386
+ <xsl:value-of select="$char"/><fo:inline font-size="15pt"><xsl:value-of select="' '"/></fo:inline>
2387
+ <xsl:call-template name="addLetterSpacing">
2388
+ <xsl:with-param name="text" select="substring($text, 2)"/>
2389
+ </xsl:call-template>
2390
+ </xsl:if>
2391
+ </xsl:template>
2392
+
2393
+ <xsl:template name="getId">
2394
+ <xsl:choose>
2395
+ <xsl:when test="../@id">
2396
+ <xsl:value-of select="../@id"/>
2397
+ </xsl:when>
2398
+ <xsl:otherwise>
2399
+ <xsl:value-of select="concat(local-name(..), '_', text())"/>
2400
+ </xsl:otherwise>
2401
+ </xsl:choose>
2402
+ </xsl:template>
2403
+
2404
+ <xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="linebreak" select="'&#8232;'"/><xsl:attribute-set xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="link-style">
2405
+
2406
+
2407
+ </xsl:attribute-set><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()">
2408
+ <xsl:value-of select="."/>
2409
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='br']">
2410
+ <xsl:value-of select="$linebreak"/>
2411
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2412
+ <xsl:call-template name="add-zero-spaces"/>
2413
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']">
2414
+
2415
+ <xsl:variable name="simple-table">
2416
+ <!-- <xsl:copy> -->
2417
+ <xsl:call-template name="getSimpleTable"/>
2418
+ <!-- </xsl:copy> -->
2419
+ </xsl:variable>
2420
+
2421
+ <!-- DEBUG -->
2422
+ <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
2423
+ <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
2424
+
2425
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2426
+
2427
+ <fo:block space-before="18pt"> </fo:block>
2428
+
2429
+ <!-- <xsl:if test="$namespace = 'iso'">
2430
+ <fo:block space-before="6pt">&#xA0;</fo:block>
2431
+ </xsl:if> -->
2432
+
2433
+ <xsl:choose>
2434
+ <xsl:when test="@unnumbered = 'true'"/>
2435
+ <xsl:otherwise>
2436
+
2437
+
2438
+
2439
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+ <xsl:text>Table </xsl:text>
2448
+ <xsl:choose>
2449
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
2450
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
2451
+ </xsl:when>
2452
+ <xsl:when test="ancestor::*[local-name()='annex']">
2453
+
2454
+
2455
+
2456
+
2457
+ <xsl:choose>
2458
+ <xsl:when test="ancestor::itu:annex[@obligation = 'informative']">
2459
+ <xsl:variable name="annex-id" select="ancestor::itu:annex/@id"/>
2460
+ <!-- Table in Appendix -->
2461
+ <xsl:number format="I-" count="itu:annex[@obligation = 'informative']"/>
2462
+ <xsl:number format="1" level="any" count="itu:table[(not(@unnumbered) or @unnumbered != 'true') and ancestor::itu:annex[@id = $annex-id]]"/>
2463
+ </xsl:when>
2464
+ <!-- Table in Annex -->
2465
+ <xsl:when test="ancestor::itu:annex[not(@obligation) or @obligation != 'informative']">
2466
+ <xsl:variable name="annex-id" select="ancestor::itu:annex/@id"/>
2467
+ <xsl:number format="A-" count="itu:annex[not(@obligation) or @obligation != 'informative']"/>
2468
+ <xsl:number format="1" level="any" count="itu:table[(not(@unnumbered) or @unnumbered != 'true') and ancestor::itu:annex[@id = $annex-id]]"/>
2469
+ </xsl:when>
2470
+ </xsl:choose>
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+ </xsl:when>
2477
+ <xsl:otherwise>
2478
+
2479
+
2480
+ <xsl:number format="A." count="*[local-name()='annex']"/>
2481
+ <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']"/>
2482
+
2483
+ </xsl:otherwise>
2484
+ </xsl:choose>
2485
+ <xsl:if test="*[local-name()='name']">
2486
+
2487
+
2488
+
2489
+ <xsl:text> — </xsl:text>
2490
+
2491
+ <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
2492
+ </xsl:if>
2493
+ </fo:block>
2494
+
2495
+
2496
+ <xsl:call-template name="fn_name_display"/>
2497
+
2498
+ </xsl:otherwise>
2499
+ </xsl:choose>
2500
+
2501
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2502
+
2503
+ <!-- <xsl:variable name="cols-count">
2504
+ <xsl:choose>
2505
+ <xsl:when test="*[local-name()='thead']">
2506
+ <xsl:call-template name="calculate-columns-numbers">
2507
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2508
+ </xsl:call-template>
2509
+ </xsl:when>
2510
+ <xsl:otherwise>
2511
+ <xsl:call-template name="calculate-columns-numbers">
2512
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2513
+ </xsl:call-template>
2514
+ </xsl:otherwise>
2515
+ </xsl:choose>
2516
+ </xsl:variable> -->
2517
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2518
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2519
+
2520
+
2521
+
2522
+ <xsl:variable name="colwidths">
2523
+ <xsl:call-template name="calculate-column-widths">
2524
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2525
+ <xsl:with-param name="table" select="$simple-table"/>
2526
+ </xsl:call-template>
2527
+ </xsl:variable>
2528
+
2529
+ <!-- <xsl:variable name="colwidths2">
2530
+ <xsl:call-template name="calculate-column-widths">
2531
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2532
+ </xsl:call-template>
2533
+ </xsl:variable> -->
2534
+
2535
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2536
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
2537
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2538
+
2539
+ <xsl:variable name="margin-left">
2540
+ <xsl:choose>
2541
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2542
+ <xsl:otherwise>0</xsl:otherwise>
2543
+ </xsl:choose>
2544
+ </xsl:variable>
2545
+
2546
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2547
+
2548
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2555
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2556
+ <xsl:attribute name="space-after">18pt</xsl:attribute>
2557
+
2558
+
2559
+
2560
+ <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">
2561
+
2562
+
2563
+
2564
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2565
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+
2573
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2574
+
2575
+
2576
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2577
+ <xsl:choose>
2578
+ <xsl:when test=". = 1">
2579
+ <fo:table-column column-width="proportional-column-width(2)"/>
2580
+ </xsl:when>
2581
+ <xsl:otherwise>
2582
+ <fo:table-column column-width="proportional-column-width({.})"/>
2583
+ </xsl:otherwise>
2584
+ </xsl:choose>
2585
+ </xsl:for-each>
2586
+ <xsl:apply-templates/>
2587
+ </fo:table>
2588
+
2589
+
2590
+
2591
+ </fo:block-container>
2592
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='name']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='name']" mode="process">
2593
+ <xsl:apply-templates/>
2594
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="calculate-columns-numbers">
2595
+ <xsl:param name="table-row"/>
2596
+ <xsl:variable name="columns-count" select="count($table-row/*)"/>
2597
+ <xsl:variable name="sum-colspans" select="sum($table-row/*/@colspan)"/>
2598
+ <xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
2599
+ <xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
2600
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="calculate-column-widths">
2601
+ <xsl:param name="table"/>
2602
+ <xsl:param name="cols-count"/>
2603
+ <xsl:param name="curr-col" select="1"/>
2604
+ <xsl:param name="width" select="0"/>
2605
+
2606
+ <xsl:if test="$curr-col &lt;= $cols-count">
2607
+ <xsl:variable name="widths">
2608
+ <xsl:choose>
2609
+ <xsl:when test="not($table)">
2610
+ <xsl:for-each select="*[local-name()='thead']//*[local-name()='tr']">
2611
+ <xsl:variable name="words">
2612
+ <xsl:call-template name="tokenize">
2613
+ <xsl:with-param name="text" select="translate(*[local-name()='th'][$curr-col],'- —:', ' ')"/>
2614
+ </xsl:call-template>
2615
+ </xsl:variable>
2616
+ <xsl:variable name="max_length">
2617
+ <xsl:call-template name="max_length">
2618
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2619
+ </xsl:call-template>
2620
+ </xsl:variable>
2621
+ <width>
2622
+ <xsl:value-of select="$max_length"/>
2623
+ </width>
2624
+ </xsl:for-each>
2625
+ <xsl:for-each select="*[local-name()='tbody']//*[local-name()='tr']">
2626
+ <xsl:variable name="words">
2627
+ <xsl:call-template name="tokenize">
2628
+ <xsl:with-param name="text" select="translate(*[local-name()='td'][$curr-col],'- —:', ' ')"/>
2629
+ </xsl:call-template>
2630
+ </xsl:variable>
2631
+ <xsl:variable name="max_length">
2632
+ <xsl:call-template name="max_length">
2633
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2634
+ </xsl:call-template>
2635
+ </xsl:variable>
2636
+ <width>
2637
+ <xsl:value-of select="$max_length"/>
2638
+ </width>
2639
+
2640
+ </xsl:for-each>
2641
+ </xsl:when>
2642
+ <xsl:otherwise>
2643
+ <xsl:for-each select="xalan:nodeset($table)//tr">
2644
+ <xsl:variable name="td_text">
2645
+ <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
2646
+ </xsl:variable>
2647
+ <xsl:variable name="words">
2648
+ <xsl:call-template name="tokenize">
2649
+ <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
2650
+ <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/>
2651
+ </xsl:call-template>
2652
+ </xsl:variable>
2653
+ <xsl:variable name="max_length">
2654
+ <xsl:call-template name="max_length">
2655
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2656
+ </xsl:call-template>
2657
+ </xsl:variable>
2658
+ <width>
2659
+ <xsl:variable name="divider">
2660
+ <xsl:choose>
2661
+ <xsl:when test="td[$curr-col]/@divide">
2662
+ <xsl:value-of select="td[$curr-col]/@divide"/>
2663
+ </xsl:when>
2664
+ <xsl:otherwise>1</xsl:otherwise>
2665
+ </xsl:choose>
2666
+ </xsl:variable>
2667
+ <xsl:value-of select="$max_length div $divider"/>
2668
+ </width>
2669
+
2670
+ </xsl:for-each>
2671
+
2672
+ </xsl:otherwise>
2673
+ </xsl:choose>
2674
+ </xsl:variable>
2675
+
2676
+
2677
+ <column>
2678
+ <xsl:for-each select="xalan:nodeset($widths)//width">
2679
+ <xsl:sort select="." data-type="number" order="descending"/>
2680
+ <xsl:if test="position()=1">
2681
+ <xsl:value-of select="."/>
2682
+ </xsl:if>
2683
+ </xsl:for-each>
2684
+ </column>
2685
+ <xsl:call-template name="calculate-column-widths">
2686
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2687
+ <xsl:with-param name="curr-col" select="$curr-col +1"/>
2688
+ <xsl:with-param name="table" select="$table"/>
2689
+ </xsl:call-template>
2690
+ </xsl:if>
2691
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()" mode="td_text">
2692
+ <xsl:variable name="zero-space">​</xsl:variable>
2693
+ <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
2694
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table2']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead']" mode="process">
2695
+ <!-- font-weight="bold" -->
2696
+ <fo:table-header>
2697
+ <xsl:apply-templates/>
2698
+ </fo:table-header>
2699
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tfoot']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tfoot']" mode="process">
2700
+ <xsl:apply-templates/>
2701
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="insertTableFooter">
2702
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2703
+ <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
2704
+
2705
+ <fo:table-footer>
2706
+
2707
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2708
+
2709
+ <!-- if there are note(s) or fn(s) then create footer row -->
2710
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2711
+
2712
+ <xsl:variable name="cols-count">
2713
+ <xsl:choose>
2714
+ <xsl:when test="../*[local-name()='thead']">
2715
+ <!-- <xsl:value-of select="count(../*[local-name()='thead']/*[local-name()='tr']/*[local-name()='th'])"/> -->
2716
+ <xsl:call-template name="calculate-columns-numbers">
2717
+ <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
2718
+ </xsl:call-template>
2719
+ </xsl:when>
2720
+ <xsl:otherwise>
2721
+ <!-- <xsl:value-of select="count(./*[local-name()='tr'][1]/*[local-name()='td'])"/> -->
2722
+ <xsl:call-template name="calculate-columns-numbers">
2723
+ <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
2724
+ </xsl:call-template>
2725
+ </xsl:otherwise>
2726
+ </xsl:choose>
2727
+ </xsl:variable>
2728
+
2729
+ <fo:table-row>
2730
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2731
+
2732
+
2733
+
2734
+ <xsl:if test="ancestor::*[local-name()='preface']">
2735
+ <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2736
+ </xsl:if>
2737
+
2738
+ <!-- fn will be processed inside 'note' processing -->
2739
+
2740
+
2741
+ <!-- except gb -->
2742
+
2743
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2744
+
2745
+
2746
+ <!-- horizontal row separator -->
2747
+
2748
+
2749
+ <!-- fn processing -->
2750
+ <xsl:call-template name="fn_display"/>
2751
+
2752
+ </fo:table-cell>
2753
+ </fo:table-row>
2754
+
2755
+ </xsl:if>
2756
+ </fo:table-footer>
2757
+
2758
+ </xsl:if>
2759
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tbody']">
2760
+
2761
+ <xsl:apply-templates select="../*[local-name()='thead']" mode="process"/>
2762
+
2763
+ <xsl:call-template name="insertTableFooter"/>
2764
+
2765
+ <fo:table-body>
2766
+ <xsl:apply-templates/>
2767
+ <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
2768
+
2769
+ </fo:table-body>
2770
+
2771
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tr']">
2772
+ <xsl:variable name="parent-name" select="local-name(..)"/>
2773
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2774
+ <fo:table-row min-height="4mm">
2775
+ <xsl:if test="$parent-name = 'thead'">
2776
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+ </xsl:if>
2783
+ <xsl:if test="$parent-name = 'tfoot'">
2784
+
2785
+
2786
+ </xsl:if>
2787
+
2788
+
2789
+ <xsl:apply-templates/>
2790
+ </fo:table-row>
2791
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='th']">
2792
+ <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2793
+
2794
+
2795
+
2796
+ <xsl:if test="ancestor::*[local-name()='preface']">
2797
+ <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2798
+ </xsl:if>
2799
+
2800
+
2801
+
2802
+
2803
+
2804
+ <xsl:if test="@colspan">
2805
+ <xsl:attribute name="number-columns-spanned">
2806
+ <xsl:value-of select="@colspan"/>
2807
+ </xsl:attribute>
2808
+ </xsl:if>
2809
+ <xsl:if test="@rowspan">
2810
+ <xsl:attribute name="number-rows-spanned">
2811
+ <xsl:value-of select="@rowspan"/>
2812
+ </xsl:attribute>
2813
+ </xsl:if>
2814
+ <fo:block>
2815
+ <xsl:apply-templates/>
2816
+ </fo:block>
2817
+ </fo:table-cell>
2818
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']">
2819
+ <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2820
+
2821
+
2822
+ <xsl:if test="ancestor::*[local-name()='preface']">
2823
+ <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2824
+ </xsl:if>
2825
+ <xsl:attribute name="display-align">before</xsl:attribute>
2826
+
2827
+
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+ <xsl:if test="@colspan">
2835
+ <xsl:attribute name="number-columns-spanned">
2836
+ <xsl:value-of select="@colspan"/>
2837
+ </xsl:attribute>
2838
+ </xsl:if>
2839
+ <xsl:if test="@rowspan">
2840
+ <xsl:attribute name="number-rows-spanned">
2841
+ <xsl:value-of select="@rowspan"/>
2842
+ </xsl:attribute>
2843
+ </xsl:if>
2844
+ <fo:block>
2845
+ <xsl:apply-templates/>
2846
+ </fo:block>
2847
+ <!-- <xsl:choose>
2848
+ <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
2849
+ <xsl:apply-templates />
2850
+ </xsl:when>
2851
+ <xsl:otherwise>
2852
+ <fo:block>
2853
+ <xsl:apply-templates />
2854
+ </fo:block>
2855
+ </xsl:otherwise>
2856
+ </xsl:choose> -->
2857
+
2858
+
2859
+ </fo:table-cell>
2860
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']" mode="process">
2861
+
2862
+
2863
+ <fo:block font-size="10pt" margin-bottom="12pt">
2864
+
2865
+
2866
+
2867
+ <fo:inline padding-right="2mm">
2868
+
2869
+ <xsl:text>NOTE </xsl:text>
2870
+
2871
+ <xsl:variable name="id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
2872
+ <xsl:if test="count(//*[local-name()='note'][ancestor::*[@id = $id]]) &gt; 1">
2873
+ <xsl:number count="*[local-name()='note'][ancestor::*[@id = $id]]" level="any"/>
2874
+ </xsl:if>
2875
+
2876
+
2877
+
2878
+
2879
+ </fo:inline>
2880
+ <xsl:apply-templates mode="process"/>
2881
+ </fo:block>
2882
+
2883
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
2884
+ <xsl:apply-templates/>
2885
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_display">
2886
+ <xsl:variable name="references">
2887
+ <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
2888
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2889
+
2890
+ <xsl:if test="ancestor::*[local-name()='preface']">
2891
+ <xsl:attribute name="preface">true</xsl:attribute>
2892
+ </xsl:if>
2893
+
2894
+
2895
+ <xsl:apply-templates/>
2896
+ </fn>
2897
+ </xsl:for-each>
2898
+ </xsl:variable>
2899
+ <xsl:for-each select="xalan:nodeset($references)//fn">
2900
+ <xsl:variable name="reference" select="@reference"/>
2901
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2902
+ <fo:block margin-bottom="12pt">
2903
+
2904
+
2905
+
2906
+ <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2907
+
2908
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
2909
+
2910
+
2911
+
2912
+
2913
+
2914
+ <xsl:attribute name="padding-right">3mm</xsl:attribute>
2915
+
2916
+
2917
+ <xsl:value-of select="@reference"/>
2918
+
2919
+ <!-- <xsl:if test="@preface = 'true'"> -->
2920
+ <xsl:text>)</xsl:text>
2921
+ <!-- </xsl:if> -->
2922
+
2923
+ </fo:inline>
2924
+ <fo:inline>
2925
+
2926
+ <xsl:apply-templates/>
2927
+ </fo:inline>
2928
+ </fo:block>
2929
+ </xsl:if>
2930
+ </xsl:for-each>
2931
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_name_display">
2932
+ <!-- <xsl:variable name="references">
2933
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2934
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2935
+ <xsl:apply-templates />
2936
+ </fn>
2937
+ </xsl:for-each>
2938
+ </xsl:variable>
2939
+ $references=<xsl:copy-of select="$references"/> -->
2940
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2941
+ <xsl:variable name="reference" select="@reference"/>
2942
+ <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
2943
+ <fo:block margin-bottom="12pt">
2944
+ <xsl:apply-templates/>
2945
+ </fo:block>
2946
+ </xsl:for-each>
2947
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_display_figure">
2948
+ <xsl:variable name="key_iso">
2949
+ <!-- and (not(@class) or @class !='pseudocode') -->
2950
+ </xsl:variable>
2951
+ <xsl:variable name="references">
2952
+ <xsl:for-each select=".//*[local-name()='fn']">
2953
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2954
+ <xsl:apply-templates/>
2955
+ </fn>
2956
+ </xsl:for-each>
2957
+ </xsl:variable>
2958
+ <xsl:if test="xalan:nodeset($references)//fn">
2959
+ <fo:block>
2960
+ <fo:table width="95%" table-layout="fixed">
2961
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2962
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2963
+
2964
+ </xsl:if>
2965
+ <fo:table-column column-width="15%"/>
2966
+ <fo:table-column column-width="85%"/>
2967
+ <fo:table-body>
2968
+ <xsl:for-each select="xalan:nodeset($references)//fn">
2969
+ <xsl:variable name="reference" select="@reference"/>
2970
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2971
+ <fo:table-row>
2972
+ <fo:table-cell>
2973
+ <fo:block>
2974
+ <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
2975
+
2976
+ <xsl:value-of select="@reference"/>
2977
+ </fo:inline>
2978
+ </fo:block>
2979
+ </fo:table-cell>
2980
+ <fo:table-cell>
2981
+ <fo:block text-align="justify" margin-bottom="12pt">
2982
+
2983
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2984
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
2985
+ </xsl:if>
2986
+
2987
+ <xsl:apply-templates/>
2988
+ </fo:block>
2989
+ </fo:table-cell>
2990
+ </fo:table-row>
2991
+ </xsl:if>
2992
+ </xsl:for-each>
2993
+ </fo:table-body>
2994
+ </fo:table>
2995
+ </fo:block>
2996
+ </xsl:if>
2997
+
2998
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']">
2999
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3000
+ <fo:inline font-size="80%" keep-with-previous.within-line="always">
3001
+
3002
+
3003
+
3004
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3005
+ <xsl:attribute name="color">blue</xsl:attribute>
3006
+
3007
+
3008
+ <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3009
+
3010
+ <xsl:value-of select="@reference"/>
3011
+ </fo:basic-link>
3012
+ </fo:inline>
3013
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']/*[local-name()='p']">
3014
+ <fo:inline>
3015
+ <xsl:apply-templates/>
3016
+ </fo:inline>
3017
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dl']">
3018
+ <xsl:variable name="parent" select="local-name(..)"/>
3019
+
3020
+ <xsl:variable name="key_iso">
3021
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
3022
+ </xsl:variable>
3023
+
3024
+ <xsl:choose>
3025
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3026
+
3027
+
3028
+ <fo:block margin-bottom="12pt" text-align="left">
3029
+
3030
+ <xsl:text>where </xsl:text>
3031
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
3032
+ <xsl:text/>
3033
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3034
+ </fo:block>
3035
+
3036
+ </xsl:when>
3037
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3038
+ <fo:block margin-bottom="12pt" text-align="left">
3039
+
3040
+
3041
+
3042
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3043
+
3044
+
3045
+ <xsl:text>where</xsl:text>
3046
+ </fo:block>
3047
+ </xsl:when>
3048
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
3049
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt">
3050
+
3051
+
3052
+
3053
+ <xsl:text>Key</xsl:text>
3054
+ </fo:block>
3055
+ </xsl:when>
3056
+ </xsl:choose>
3057
+
3058
+ <!-- a few components -->
3059
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
3060
+ <fo:block>
3061
+
3062
+
3063
+ <xsl:if test="local-name(..) = 'li'">
3064
+ <xsl:attribute name="margin-left">-4mm</xsl:attribute>
3065
+ </xsl:if>
3066
+
3067
+
3068
+ <fo:block>
3069
+
3070
+
3071
+ <!-- create virtual html table for dl/[dt and dd] -->
3072
+ <xsl:variable name="html-table">
3073
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3074
+ <xsl:element name="{$ns}:table">
3075
+ <tbody>
3076
+ <xsl:apply-templates mode="dl"/>
3077
+ </tbody>
3078
+ </xsl:element>
3079
+ </xsl:variable>
3080
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
3081
+ <xsl:variable name="colwidths">
3082
+ <xsl:call-template name="calculate-column-widths">
3083
+ <xsl:with-param name="cols-count" select="2"/>
3084
+ <xsl:with-param name="table" select="$html-table"/>
3085
+ </xsl:call-template>
3086
+ </xsl:variable>
3087
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3088
+
3089
+ <fo:table width="95%" table-layout="fixed">
3090
+
3091
+ <xsl:choose>
3092
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
3093
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
3094
+ </xsl:when>
3095
+ <xsl:when test="normalize-space($key_iso) = 'true'">
3096
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3097
+
3098
+ </xsl:when>
3099
+ </xsl:choose>
3100
+ <xsl:choose>
3101
+ <xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
3102
+ <fo:table-column column-width="50%"/>
3103
+ <fo:table-column column-width="50%"/>
3104
+ </xsl:when>
3105
+ <xsl:otherwise>
3106
+ <xsl:choose>
3107
+ <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
3108
+ <fo:table-column column-width="60%"/>
3109
+ <fo:table-column column-width="40%"/>
3110
+ </xsl:when> -->
3111
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.3">
3112
+ <fo:table-column column-width="50%"/>
3113
+ <fo:table-column column-width="50%"/>
3114
+ </xsl:when>
3115
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 0.5">
3116
+ <fo:table-column column-width="40%"/>
3117
+ <fo:table-column column-width="60%"/>
3118
+ </xsl:when>
3119
+ <xsl:otherwise>
3120
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3121
+ <xsl:choose>
3122
+ <xsl:when test=". = 1">
3123
+ <fo:table-column column-width="proportional-column-width(2)"/>
3124
+ </xsl:when>
3125
+ <xsl:otherwise>
3126
+ <fo:table-column column-width="proportional-column-width({.})"/>
3127
+ </xsl:otherwise>
3128
+ </xsl:choose>
3129
+ </xsl:for-each>
3130
+ </xsl:otherwise>
3131
+ </xsl:choose>
3132
+ <!-- <fo:table-column column-width="15%"/>
3133
+ <fo:table-column column-width="85%"/> -->
3134
+ </xsl:otherwise>
3135
+ </xsl:choose>
3136
+ <fo:table-body>
3137
+ <xsl:apply-templates>
3138
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
3139
+ </xsl:apply-templates>
3140
+ </fo:table-body>
3141
+ </fo:table>
3142
+ </fo:block>
3143
+ </fo:block>
3144
+ </xsl:if>
3145
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dl']/*[local-name()='note']">
3146
+ <xsl:param name="key_iso"/>
3147
+
3148
+ <!-- <tr>
3149
+ <td>NOTE</td>
3150
+ <td>
3151
+ <xsl:apply-templates />
3152
+ </td>
3153
+ </tr>
3154
+ -->
3155
+ <fo:table-row>
3156
+ <fo:table-cell>
3157
+ <fo:block margin-top="6pt">
3158
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3159
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3160
+ </xsl:if>
3161
+ NOTE
3162
+ </fo:block>
3163
+ </fo:table-cell>
3164
+ <fo:table-cell>
3165
+ <fo:block>
3166
+ <xsl:apply-templates/>
3167
+ </fo:block>
3168
+ </fo:table-cell>
3169
+ </fo:table-row>
3170
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dt']" mode="dl">
3171
+ <tr>
3172
+ <td>
3173
+ <xsl:apply-templates/>
3174
+ </td>
3175
+ <td>
3176
+
3177
+
3178
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3179
+
3180
+ </td>
3181
+ </tr>
3182
+
3183
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dt']">
3184
+ <xsl:param name="key_iso"/>
3185
+
3186
+ <fo:table-row>
3187
+ <fo:table-cell>
3188
+ <fo:block margin-top="6pt">
3189
+
3190
+
3191
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3192
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3193
+
3194
+ </xsl:if>
3195
+
3196
+
3197
+ <xsl:apply-templates/>
3198
+
3199
+ </fo:block>
3200
+ </fo:table-cell>
3201
+ <fo:table-cell>
3202
+ <fo:block>
3203
+
3204
+ <xsl:attribute name="text-align">justify</xsl:attribute>
3205
+
3206
+
3207
+
3208
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3209
+
3210
+ </fo:block>
3211
+ </fo:table-cell>
3212
+ </fo:table-row>
3213
+
3214
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="dl"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="dl_process">
3215
+ <xsl:apply-templates/>
3216
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="process">
3217
+ <xsl:apply-templates/>
3218
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
3219
+ <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
3220
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='em']">
3221
+ <fo:inline font-style="italic">
3222
+ <xsl:apply-templates/>
3223
+ </fo:inline>
3224
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='strong']">
3225
+ <fo:inline font-weight="bold">
3226
+ <xsl:apply-templates/>
3227
+ </fo:inline>
3228
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='sup']">
3229
+ <fo:inline font-size="80%" vertical-align="super">
3230
+ <xsl:apply-templates/>
3231
+ </fo:inline>
3232
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='sub']">
3233
+ <fo:inline font-size="80%" vertical-align="sub">
3234
+ <xsl:apply-templates/>
3235
+ </fo:inline>
3236
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tt']">
3237
+ <fo:inline font-family="Courier" font-size="10pt">
3238
+ <xsl:apply-templates/>
3239
+ </fo:inline>
3240
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='del']">
3241
+ <fo:inline font-size="10pt" color="red" text-decoration="line-through">
3242
+ <xsl:apply-templates/>
3243
+ </fo:inline>
3244
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()[ancestor::*[local-name()='smallcap']]">
3245
+ <xsl:variable name="text" select="normalize-space(.)"/>
3246
+ <fo:inline font-size="75%">
3247
+ <xsl:if test="string-length($text) &gt; 0">
3248
+ <xsl:call-template name="recursiveSmallCaps">
3249
+ <xsl:with-param name="text" select="$text"/>
3250
+ </xsl:call-template>
3251
+ </xsl:if>
3252
+ </fo:inline>
3253
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="recursiveSmallCaps">
3254
+ <xsl:param name="text"/>
3255
+ <xsl:variable name="char" select="substring($text,1,1)"/>
3256
+ <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/>
3257
+ <xsl:choose>
3258
+ <xsl:when test="$char=$upperCase">
3259
+ <fo:inline font-size="{100 div 0.75}%">
3260
+ <xsl:value-of select="$upperCase"/>
3261
+ </fo:inline>
3262
+ </xsl:when>
3263
+ <xsl:otherwise>
3264
+ <xsl:value-of select="$upperCase"/>
3265
+ </xsl:otherwise>
3266
+ </xsl:choose>
3267
+ <xsl:if test="string-length($text) &gt; 1">
3268
+ <xsl:call-template name="recursiveSmallCaps">
3269
+ <xsl:with-param name="text" select="substring($text,2)"/>
3270
+ </xsl:call-template>
3271
+ </xsl:if>
3272
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="tokenize">
3273
+ <xsl:param name="text"/>
3274
+ <xsl:param name="separator" select="' '"/>
3275
+ <xsl:choose>
3276
+ <xsl:when test="not(contains($text, $separator))">
3277
+ <word>
3278
+ <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
3279
+ <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
3280
+ <xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
3281
+ <xsl:variable name="len_str">
3282
+ <xsl:choose>
3283
+ <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
3284
+ <xsl:value-of select="$len_str_tmp * 1.5"/>
3285
+ </xsl:when>
3286
+ <xsl:otherwise>
3287
+ <xsl:value-of select="$len_str_tmp"/>
3288
+ </xsl:otherwise>
3289
+ </xsl:choose>
3290
+ </xsl:variable>
3291
+
3292
+ <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
3293
+ <xsl:message>
3294
+ div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
3295
+ len_str=<xsl:value-of select="$len_str"/>
3296
+ len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
3297
+ </xsl:message>
3298
+ </xsl:if> -->
3299
+ <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
3300
+ <len_str><xsl:value-of select="$len_str"/></len_str> -->
3301
+ <xsl:choose>
3302
+ <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
3303
+ <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
3304
+ </xsl:when>
3305
+ <xsl:otherwise>
3306
+ <xsl:value-of select="$len_str"/>
3307
+ </xsl:otherwise>
3308
+ </xsl:choose>
3309
+ </word>
3310
+ </xsl:when>
3311
+ <xsl:otherwise>
3312
+ <word>
3313
+ <xsl:value-of select="string-length(normalize-space(substring-before($text, $separator)))"/>
3314
+ </word>
3315
+ <xsl:call-template name="tokenize">
3316
+ <xsl:with-param name="text" select="substring-after($text, $separator)"/>
3317
+ </xsl:call-template>
3318
+ </xsl:otherwise>
3319
+ </xsl:choose>
3320
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="max_length">
3321
+ <xsl:param name="words"/>
3322
+ <xsl:for-each select="$words//word">
3323
+ <xsl:sort select="." data-type="number" order="descending"/>
3324
+ <xsl:if test="position()=1">
3325
+ <xsl:value-of select="."/>
3326
+ </xsl:if>
3327
+ </xsl:for-each>
3328
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="add-zero-spaces">
3329
+ <xsl:param name="text" select="."/>
3330
+ <xsl:variable name="zero-space-after-chars">-</xsl:variable>
3331
+ <xsl:variable name="zero-space-after-dot">.</xsl:variable>
3332
+ <xsl:variable name="zero-space-after-colon">:</xsl:variable>
3333
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3334
+ <xsl:variable name="zero-space-after-underscore">_</xsl:variable>
3335
+ <xsl:variable name="zero-space">​</xsl:variable>
3336
+ <xsl:choose>
3337
+ <xsl:when test="contains($text, $zero-space-after-chars)">
3338
+ <xsl:value-of select="substring-before($text, $zero-space-after-chars)"/>
3339
+ <xsl:value-of select="$zero-space-after-chars"/>
3340
+ <xsl:value-of select="$zero-space"/>
3341
+ <xsl:call-template name="add-zero-spaces">
3342
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-chars)"/>
3343
+ </xsl:call-template>
3344
+ </xsl:when>
3345
+ <xsl:when test="contains($text, $zero-space-after-dot)">
3346
+ <xsl:value-of select="substring-before($text, $zero-space-after-dot)"/>
3347
+ <xsl:value-of select="$zero-space-after-dot"/>
3348
+ <xsl:value-of select="$zero-space"/>
3349
+ <xsl:call-template name="add-zero-spaces">
3350
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-dot)"/>
3351
+ </xsl:call-template>
3352
+ </xsl:when>
3353
+ <xsl:when test="contains($text, $zero-space-after-colon)">
3354
+ <xsl:value-of select="substring-before($text, $zero-space-after-colon)"/>
3355
+ <xsl:value-of select="$zero-space-after-colon"/>
3356
+ <xsl:value-of select="$zero-space"/>
3357
+ <xsl:call-template name="add-zero-spaces">
3358
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-colon)"/>
3359
+ </xsl:call-template>
3360
+ </xsl:when>
3361
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3362
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3363
+ <xsl:value-of select="$zero-space-after-equal"/>
3364
+ <xsl:value-of select="$zero-space"/>
3365
+ <xsl:call-template name="add-zero-spaces">
3366
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3367
+ </xsl:call-template>
3368
+ </xsl:when>
3369
+ <xsl:when test="contains($text, $zero-space-after-underscore)">
3370
+ <xsl:value-of select="substring-before($text, $zero-space-after-underscore)"/>
3371
+ <xsl:value-of select="$zero-space-after-underscore"/>
3372
+ <xsl:value-of select="$zero-space"/>
3373
+ <xsl:call-template name="add-zero-spaces">
3374
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-underscore)"/>
3375
+ </xsl:call-template>
3376
+ </xsl:when>
3377
+ <xsl:otherwise>
3378
+ <xsl:value-of select="$text"/>
3379
+ </xsl:otherwise>
3380
+ </xsl:choose>
3381
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="add-zero-spaces-equal">
3382
+ <xsl:param name="text" select="."/>
3383
+ <xsl:variable name="zero-space-after-equals">==========</xsl:variable>
3384
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3385
+ <xsl:variable name="zero-space">​</xsl:variable>
3386
+ <xsl:choose>
3387
+ <xsl:when test="contains($text, $zero-space-after-equals)">
3388
+ <xsl:value-of select="substring-before($text, $zero-space-after-equals)"/>
3389
+ <xsl:value-of select="$zero-space-after-equals"/>
3390
+ <xsl:value-of select="$zero-space"/>
3391
+ <xsl:call-template name="add-zero-spaces-equal">
3392
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equals)"/>
3393
+ </xsl:call-template>
3394
+ </xsl:when>
3395
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3396
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3397
+ <xsl:value-of select="$zero-space-after-equal"/>
3398
+ <xsl:value-of select="$zero-space"/>
3399
+ <xsl:call-template name="add-zero-spaces-equal">
3400
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3401
+ </xsl:call-template>
3402
+ </xsl:when>
3403
+ <xsl:otherwise>
3404
+ <xsl:value-of select="$text"/>
3405
+ </xsl:otherwise>
3406
+ </xsl:choose>
3407
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="getSimpleTable">
3408
+ <xsl:variable name="simple-table">
3409
+
3410
+ <!-- Step 1. colspan processing -->
3411
+ <xsl:variable name="simple-table-colspan">
3412
+ <tbody>
3413
+ <xsl:apply-templates mode="simple-table-colspan"/>
3414
+ </tbody>
3415
+ </xsl:variable>
3416
+
3417
+ <!-- Step 2. rowspan processing -->
3418
+ <xsl:variable name="simple-table-rowspan">
3419
+ <xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
3420
+ </xsl:variable>
3421
+
3422
+ <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
3423
+
3424
+ <!-- <xsl:choose>
3425
+ <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
3426
+
3427
+ </xsl:when>
3428
+ <xsl:otherwise>
3429
+ <xsl:copy-of select="current()"/>
3430
+ </xsl:otherwise>
3431
+ </xsl:choose> -->
3432
+ </xsl:variable>
3433
+ <xsl:copy-of select="$simple-table"/>
3434
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
3435
+ <xsl:apply-templates mode="simple-table-colspan"/>
3436
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']" mode="simple-table-colspan"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='th'] | *[local-name()='td']" mode="simple-table-colspan">
3437
+ <xsl:choose>
3438
+ <xsl:when test="@colspan">
3439
+ <xsl:variable name="td">
3440
+ <xsl:element name="td">
3441
+ <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
3442
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3443
+ <xsl:apply-templates mode="simple-table-colspan"/>
3444
+ </xsl:element>
3445
+ </xsl:variable>
3446
+ <xsl:call-template name="repeatNode">
3447
+ <xsl:with-param name="count" select="@colspan"/>
3448
+ <xsl:with-param name="node" select="$td"/>
3449
+ </xsl:call-template>
3450
+ </xsl:when>
3451
+ <xsl:otherwise>
3452
+ <xsl:element name="td">
3453
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3454
+ <xsl:apply-templates mode="simple-table-colspan"/>
3455
+ </xsl:element>
3456
+ </xsl:otherwise>
3457
+ </xsl:choose>
3458
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@colspan" mode="simple-table-colspan"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tr']" mode="simple-table-colspan">
3459
+ <xsl:element name="tr">
3460
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3461
+ <xsl:apply-templates mode="simple-table-colspan"/>
3462
+ </xsl:element>
3463
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@*|node()" mode="simple-table-colspan">
3464
+ <xsl:copy>
3465
+ <xsl:apply-templates select="@*|node()" mode="simple-table-colspan"/>
3466
+ </xsl:copy>
3467
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="repeatNode">
3468
+ <xsl:param name="count"/>
3469
+ <xsl:param name="node"/>
3470
+
3471
+ <xsl:if test="$count &gt; 0">
3472
+ <xsl:call-template name="repeatNode">
3473
+ <xsl:with-param name="count" select="$count - 1"/>
3474
+ <xsl:with-param name="node" select="$node"/>
3475
+ </xsl:call-template>
3476
+ <xsl:copy-of select="$node"/>
3477
+ </xsl:if>
3478
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@*|node()" mode="simple-table-rowspan">
3479
+ <xsl:copy>
3480
+ <xsl:apply-templates select="@*|node()" mode="simple-table-rowspan"/>
3481
+ </xsl:copy>
3482
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="tbody" mode="simple-table-rowspan">
3483
+ <xsl:copy>
3484
+ <xsl:copy-of select="tr[1]"/>
3485
+ <xsl:apply-templates select="tr[2]" mode="simple-table-rowspan">
3486
+ <xsl:with-param name="previousRow" select="tr[1]"/>
3487
+ </xsl:apply-templates>
3488
+ </xsl:copy>
3489
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="tr" mode="simple-table-rowspan">
3490
+ <xsl:param name="previousRow"/>
3491
+ <xsl:variable name="currentRow" select="."/>
3492
+
3493
+ <xsl:variable name="normalizedTDs">
3494
+ <xsl:for-each select="xalan:nodeset($previousRow)//td">
3495
+ <xsl:choose>
3496
+ <xsl:when test="@rowspan &gt; 1">
3497
+ <xsl:copy>
3498
+ <xsl:attribute name="rowspan">
3499
+ <xsl:value-of select="@rowspan - 1"/>
3500
+ </xsl:attribute>
3501
+ <xsl:copy-of select="@*[not(name() = 'rowspan')]"/>
3502
+ <xsl:copy-of select="node()"/>
3503
+ </xsl:copy>
3504
+ </xsl:when>
3505
+ <xsl:otherwise>
3506
+ <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
3507
+ </xsl:otherwise>
3508
+ </xsl:choose>
3509
+ </xsl:for-each>
3510
+ </xsl:variable>
3511
+
3512
+ <xsl:variable name="newRow">
3513
+ <xsl:copy>
3514
+ <xsl:copy-of select="$currentRow/@*"/>
3515
+ <xsl:copy-of select="xalan:nodeset($normalizedTDs)"/>
3516
+ </xsl:copy>
3517
+ </xsl:variable>
3518
+ <xsl:copy-of select="$newRow"/>
3519
+
3520
+ <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
3521
+ <xsl:with-param name="previousRow" select="$newRow"/>
3522
+ </xsl:apply-templates>
3523
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="getLang">
3524
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3525
+ <xsl:choose>
3526
+ <xsl:when test="$language = 'English'">en</xsl:when>
3527
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
3528
+ </xsl:choose>
3529
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="capitalizeWords">
3530
+ <xsl:param name="str"/>
3531
+ <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
3532
+ <xsl:choose>
3533
+ <xsl:when test="contains($str2, ' ')">
3534
+ <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3535
+ <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3536
+ <xsl:value-of select="substring($substr, 2)"/>
3537
+ <xsl:text> </xsl:text>
3538
+ <xsl:call-template name="capitalizeWords">
3539
+ <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
3540
+ </xsl:call-template>
3541
+ </xsl:when>
3542
+ <xsl:otherwise>
3543
+ <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3544
+ <xsl:value-of select="substring($str2, 2)"/>
3545
+ </xsl:otherwise>
3546
+ </xsl:choose>
3547
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="mathml:math">
3548
+ <fo:inline font-family="STIX2Math">
3549
+ <fo:instream-foreign-object fox:alt-text="Math">
3550
+ <xsl:copy-of select="."/>
3551
+ </fo:instream-foreign-object>
3552
+ </fo:inline>
3553
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='localityStack']">
3554
+ <xsl:for-each select="*[local-name()='locality']">
3555
+ <xsl:if test="position() =1"><xsl:text>, </xsl:text></xsl:if>
3556
+ <xsl:apply-templates select="."/>
3557
+ <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
3558
+ </xsl:for-each>
3559
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='link']" name="link">
3560
+ <xsl:variable name="target">
3561
+ <xsl:choose>
3562
+ <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
3563
+ <xsl:value-of select="normalize-space(substring-after(@target, 'mailto:'))"/>
3564
+ </xsl:when>
3565
+ <xsl:otherwise>
3566
+ <xsl:value-of select="normalize-space(@target)"/>
3567
+ </xsl:otherwise>
3568
+ </xsl:choose>
3569
+ </xsl:variable>
3570
+ <fo:inline xsl:use-attribute-sets="link-style">
3571
+ <xsl:choose>
3572
+ <xsl:when test="$target = ''">
3573
+ <xsl:apply-templates/>
3574
+ </xsl:when>
3575
+ <xsl:otherwise>
3576
+ <fo:basic-link external-destination="{@target}" fox:alt-text="{@target}">
3577
+ <xsl:choose>
3578
+ <xsl:when test="normalize-space(.) = ''">
3579
+ <xsl:value-of select="$target"/>
3580
+ </xsl:when>
3581
+ <xsl:otherwise>
3582
+ <xsl:apply-templates/>
3583
+ </xsl:otherwise>
3584
+ </xsl:choose>
3585
+ </fo:basic-link>
3586
+ </xsl:otherwise>
3587
+ </xsl:choose>
3588
+ </fo:inline>
3589
+ </xsl:template></xsl:stylesheet>