metanorma-itu 1.0.13 → 1.0.14

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