metanorma-itu 1.0.11 → 1.0.16

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