metanorma-nist 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,24 +1,8 @@
1
1
  <script>
2
- //TOC generation
3
- $('#toc').toc({
4
- 'selectors': toclevel(), //elements to use as headings
5
- 'container': 'body', //element to find all selectors in
6
- 'smoothScrolling': true, //enable or disable smooth scrolling on click
7
- 'prefix': 'toc', //prefix for anchor tags and class names
8
- 'onHighlight': function(el) {}, //called when a new section is highlighted
9
- 'highlightOnScroll': true, //add class to heading that is currently in focus
10
- 'highlightOffset': 100, //offset to trigger the next headline
11
- 'anchorName': function(i, heading, prefix) { //custom function for anchor name
12
- return prefix+i;
13
- },
14
- 'headerText': function(i, heading, $heading) { //custom function building the header-item text
15
- return $heading.text();
16
- },
17
- 'itemClass': function(i, heading, $heading, prefix) { // custom function for item class
18
- return $heading[0].tagName.toLowerCase();
19
- }
20
- });
21
-
2
+ $("#toc").on('click', 'li', function(e) {
3
+ $(this).parent().find('li.toc-active').removeClass('toc-active');
4
+ $(this).addClass('toc-active');
5
+ });
22
6
  </script>
23
7
 
24
8
  <script>
@@ -0,0 +1,3804 @@
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:nist="https://www.metanorma.org/ns/nist" 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 version="1.0" method="xml" encoding="UTF-8" indent="no"/>
4
+
5
+
6
+
7
+
8
+
9
+ <xsl:variable name="pageWidth" select="'8.5in'"/>
10
+ <xsl:variable name="pageHeight" select="'11in'"/>
11
+
12
+ <xsl:variable name="title" select="/nist:nist-standard/nist:bibdata/nist:title[@language = 'en' and @type = 'main']"/>
13
+
14
+ <xsl:variable name="date">
15
+ <xsl:choose>
16
+ <xsl:when test="/nist:nist-standard/nist:bibdata/nist:date[@type='issued']">
17
+ <xsl:call-template name="formatDate">
18
+ <xsl:with-param name="date" select="/nist:nist-standard/nist:bibdata/nist:date[@type='issued']/nist:on"/>
19
+ </xsl:call-template>
20
+ </xsl:when>
21
+ <xsl:otherwise>
22
+ <xsl:call-template name="formatDate">
23
+ <xsl:with-param name="date" select="/nist:nist-standard/nist:bibdata/nist:date/nist:on"/>
24
+ </xsl:call-template>
25
+ </xsl:otherwise>
26
+ </xsl:choose>
27
+ </xsl:variable>
28
+ <xsl:variable name="color">rgb(36, 64, 97)</xsl:variable>
29
+ <xsl:variable name="seriestitle" select="/nist:nist-standard/nist:bibdata/nist:series[@type = 'main']/nist:title"/>
30
+ <!-- Example:
31
+ <item level="1" id="Foreword" display="true">Foreword</item>
32
+ <item id="term-script" display="false">3.2</item>
33
+ -->
34
+ <xsl:variable name="contents">
35
+ <contents>
36
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:executivesummary" mode="contents"/>
37
+ <xsl:apply-templates select="/nist:nist-standard/nist:sections/*" mode="contents"/> <!-- /* Main sections -->
38
+ <xsl:apply-templates select="/nist:nist-standard/nist:annex" mode="contents"/>
39
+ <xsl:apply-templates select="/nist:nist-standard/nist:bibliography/nist:references" mode="contents"/>
40
+ </contents>
41
+ </xsl:variable>
42
+
43
+ <xsl:variable name="lang">
44
+ <xsl:call-template name="getLang"/>
45
+ </xsl:variable>
46
+
47
+ <xsl:template match="/">
48
+ <fo:root font-family="Times New Roman, STIX2Math" font-size="12pt" xml:lang="{$lang}">
49
+ <fo:layout-master-set>
50
+ <!-- Cover pages -->
51
+ <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
52
+ <fo:region-body margin-top="1.75in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
53
+ <fo:region-before region-name="header-cover" extent="1.75in"/>
54
+ <fo:region-after extent="1in"/>
55
+ <fo:region-start extent="1in"/>
56
+ <fo:region-end extent="1in"/>
57
+ </fo:simple-page-master>
58
+
59
+ <!-- Preface page(s) -->
60
+ <fo:simple-page-master master-name="preface" page-width="{$pageWidth}" page-height="{$pageHeight}">
61
+ <fo:region-body margin-top="1.15in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
62
+ <fo:region-before region-name="header-preface" extent="1.15in"/>
63
+ <fo:region-after region-name="footer" extent="1in"/>
64
+ <fo:region-start region-name="left" extent="1in"/>
65
+ <fo:region-end region-name="right" extent="1in"/>
66
+ </fo:simple-page-master>
67
+
68
+ <!-- Document pages -->
69
+ <fo:simple-page-master master-name="document" page-width="{$pageWidth}" page-height="{$pageHeight}">
70
+ <fo:region-body margin-top="1in" margin-bottom="1in" margin-left="1in" margin-right="1in"/>
71
+ <fo:region-before region-name="header" extent="1in"/>
72
+ <fo:region-after region-name="footer" extent="1in"/>
73
+ <fo:region-start region-name="left" extent="1in"/>
74
+ <fo:region-end region-name="right" extent="1in"/>
75
+ </fo:simple-page-master>
76
+
77
+ </fo:layout-master-set>
78
+
79
+ <fo:declarations>
80
+ <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
81
+ <pdf:dictionary type="normal" key="ViewerPreferences">
82
+ <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
83
+ </pdf:dictionary>
84
+ </pdf:catalog>
85
+ <x:xmpmeta xmlns:x="adobe:ns:meta/">
86
+ <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
87
+ <rdf:Description xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pdf="http://ns.adobe.com/pdf/1.3/" rdf:about="">
88
+ <!-- Dublin Core properties go here -->
89
+ <dc:title><xsl:value-of select="$title"/></dc:title>
90
+ <dc:creator>
91
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata/nist:contributor[nist:role/@type = 'author']">
92
+ <xsl:value-of select="nist:person/nist:name/nist:completename"/>
93
+ <xsl:if test="position() != last()">; </xsl:if>
94
+ </xsl:for-each>
95
+ </dc:creator>
96
+ <dc:description>
97
+ <xsl:variable name="abstract">
98
+ <xsl:copy-of select="/nist:nist-standard/nist:preface/nist:abstract//text()"/>
99
+ </xsl:variable>
100
+ <xsl:value-of select="normalize-space($abstract)"/>
101
+ </dc:description>
102
+ <pdf:Keywords>
103
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata//nist:keyword">
104
+ <xsl:sort data-type="text" order="ascending"/>
105
+ <xsl:apply-templates/>
106
+ <xsl:if test="position() != last()">, </xsl:if>
107
+ </xsl:for-each>
108
+ </pdf:Keywords>
109
+ </rdf:Description>
110
+ <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
111
+ <!-- XMP properties go here -->
112
+ <xmp:CreatorTool/>
113
+ </rdf:Description>
114
+ </rdf:RDF>
115
+ </x:xmpmeta>
116
+ </fo:declarations>
117
+
118
+ <!-- cover page -->
119
+ <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
120
+ <!-- header -->
121
+ <fo:static-content flow-name="header-cover" font-family="Times New Roman" font-size="11pt" font-weight="bold" font-style="italic">
122
+ <fo:block-container color="white" background-color="{$color}" margin-left="-1mm" margin-right="-1mm" margin-top="1in" display-align="after" height="5mm">
123
+ <fo:block text-align-last="justify" margin-left="1mm" margin-right="1mm" padding-left="0.5mm" padding-top="0.5mm">
124
+ <fo:inline padding-left="0.5mm"> <!-- font-size="7.5pt" -->
125
+ <!-- <xsl:call-template name="recursiveSmallCaps">
126
+ <xsl:with-param name="text" select="$seriestitle"/>
127
+ </xsl:call-template> -->
128
+ <xsl:value-of select="$seriestitle"/>
129
+ </fo:inline>
130
+ <fo:inline keep-together.within-line="always">
131
+ <fo:leader leader-pattern="space"/>
132
+ <xsl:text>csrc.nist.gov  </xsl:text>
133
+ <!-- <xsl:call-template name="recursiveSmallCaps">
134
+ <xsl:with-param name="text" select="'csrc.nist.gov&#xA0;&#xA0;'"/>
135
+ </xsl:call-template> -->
136
+ </fo:inline>
137
+ </fo:block>
138
+ </fo:block-container>
139
+ </fo:static-content>
140
+
141
+ <fo:flow flow-name="xsl-region-body" color="rgb(36, 64, 97)">
142
+ <!-- logo -->
143
+ <fo:block-container absolute-position="fixed" left="25.4mm" top="229mm">
144
+ <fo:block>
145
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-NIST-Logo))}" width="57mm" content-height="25.4mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image"/>
146
+ </fo:block>
147
+ </fo:block-container>
148
+
149
+ <xsl:if test="contains(/nist:nist-standard/nist:bibdata/nist:status/nist:stage, 'draft')">
150
+ <!-- <fo:block-container absolute-position="fixed" left="20mm" top="170mm" fox:transform="rotate(-45)">
151
+ <fo:block font-family="Calibri" font-size="180pt" color="rgb(223, 223, 223)">DRAFT</fo:block>
152
+ </fo:block-container> -->
153
+ <fo:block-container absolute-position="fixed" left="0mm" top="0mm">
154
+ <fo:block line-height="0">
155
+ <fo:instream-foreign-object fox:alt-text="DRAFT">
156
+ <svg:svg xmlns:svg="http://www.w3.org/2000/svg" width="200mm" height="250mm">
157
+ <svg:g transform="rotate(-45) scale(0.6, 1)">
158
+ <svg:text x="-175mm" y="205mm" style="font-family:Calibri;font-size:260pt;font-weight:normal;fill:rgb(223, 223, 223);">
159
+ DRAFT
160
+ </svg:text>
161
+ </svg:g>
162
+ </svg:svg>
163
+ </fo:instream-foreign-object>
164
+ </fo:block>
165
+ </fo:block-container>
166
+ </xsl:if>
167
+
168
+
169
+ <fo:block>
170
+ <fo:block font-family="Arial" font-size="24pt" font-weight="bold" margin-top="12pt" margin-bottom="18pt" letter-spacing="-0.5pt" margin-right="-2mm">
171
+ <xsl:value-of select="$title"/>
172
+ </fo:block>
173
+ <fo:block margin-bottom="12pt"> </fo:block>
174
+ <fo:block margin-bottom="20pt"> </fo:block>
175
+
176
+ <!-- Authors list -->
177
+ <fo:block line-height="116%">
178
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata/nist:contributor[nist:role/@type = 'author']">
179
+ <xsl:value-of select="nist:person/nist:name/nist:completename"/>
180
+ <xsl:variable name="org-name" select="nist:person/nist:affiliation/nist:organization/nist:name"/>
181
+ <xsl:variable name="org-address" select="nist:person/nist:affiliation/nist:organization/nist:address/nist:formattedAddress"/>
182
+ <xsl:if test="concat(following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:name, following-sibling::nist:contributor[nist:role/@type = 'author'][1]/nist:person/nist:affiliation/nist:organization/nist:address/nist:formattedAddress) != concat($org-name, $org-address)">
183
+
184
+ <xsl:for-each select="xalan:tokenize($org-name, ',')">
185
+ <fo:block>
186
+ <fo:inline font-style="italic">
187
+ <xsl:value-of select="."/>
188
+ <!-- <xsl:if test="normalize-space($org-address) != ''">
189
+ <fo:inline>, <xsl:value-of select="$org-address"/></fo:inline>
190
+ </xsl:if> -->
191
+ </fo:inline>
192
+ </fo:block>
193
+ </xsl:for-each>
194
+
195
+ <xsl:if test="normalize-space($org-address) != ''">
196
+ <fo:block>
197
+ <fo:inline font-style="italic">
198
+ <xsl:value-of select="$org-address"/>
199
+ </fo:inline>
200
+ </fo:block>
201
+ </xsl:if>
202
+ </xsl:if>
203
+ <xsl:value-of select="$linebreak"/>
204
+ </xsl:for-each>
205
+ </fo:block>
206
+ <fo:block margin-bottom="22pt"> </fo:block>
207
+ <fo:block margin-bottom="12pt"> <!-- font-size="14pt" -->
208
+ <xsl:value-of select="$date"/>
209
+ </fo:block>
210
+ <fo:block margin-bottom="12pt"> </fo:block>
211
+
212
+ <!-- <xsl:if test="/nist:nist-standard/nist:bibdata/nist:uri[@type = 'doi']">
213
+ <fo:block>
214
+ <xsl:text>This publication is available free of charge from:</xsl:text>
215
+ <xsl:value-of select="$linebreak"/>
216
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:uri[@type = 'doi']"/>
217
+ </fo:block>
218
+ </xsl:if> -->
219
+
220
+ </fo:block>
221
+ </fo:flow>
222
+ </fo:page-sequence>
223
+
224
+
225
+ <fo:page-sequence master-reference="preface" initial-page-number="2" format="i" force-page-count="no-force" line-height="116%">
226
+
227
+ <fo:static-content flow-name="xsl-footnote-separator">
228
+ <fo:block margin-bottom="4mm">
229
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
230
+ </fo:block>
231
+ </fo:static-content>
232
+ <xsl:call-template name="insertFooter"/>
233
+
234
+ <fo:flow flow-name="xsl-region-body">
235
+ <fo:block margin-top="18pt">
236
+
237
+ <!-- Abstract -->
238
+ <xsl:if test="/nist:nist-standard/nist:preface/nist:abstract">
239
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">Abstract</fo:block>
240
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:abstract"/>
241
+ </xsl:if>
242
+
243
+ <!-- Keywords -->
244
+ <xsl:if test="/nist:nist-standard/nist:bibdata/nist:keyword">
245
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">
246
+ <xsl:text>Keywords</xsl:text>
247
+ </fo:block>
248
+ <fo:block margin-bottom="12pt" text-align="justify">
249
+ <xsl:for-each select="/nist:nist-standard/nist:bibdata//nist:keyword">
250
+ <xsl:sort data-type="text" order="ascending"/>
251
+ <xsl:apply-templates/>
252
+ <xsl:choose>
253
+ <xsl:when test="position() != last()">; </xsl:when>
254
+ <xsl:otherwise/>
255
+ </xsl:choose>
256
+ </xsl:for-each>
257
+ </fo:block>
258
+ </xsl:if>
259
+
260
+ <xsl:if test="/nist:nist-standard/nist:preface/nist:acknowledgements">
261
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-top="18pt" margin-bottom="12pt">Acknowledgements</fo:block>
262
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:acknowledgements"/>
263
+ </xsl:if>
264
+
265
+
266
+ <!-- Disclaimer -->
267
+ <!-- Additional Information -->
268
+ <!-- Comments on this publication may be submitted to -->
269
+ <xsl:if test="/nist:nist-standard/nist:boilerplate/nist:legal-statement">
270
+ <xsl:apply-templates select="/nist:nist-standard/nist:boilerplate/nist:legal-statement"/>
271
+ </xsl:if>
272
+
273
+ <fo:block font-family="Arial" text-align="center" font-weight="bold" color="{$color}" margin-bottom="12pt">Feedback</fo:block>
274
+ <xsl:text>Feedback on this publication is welcome, and can be sent to: code-signing@nist.gov.</xsl:text>
275
+
276
+ <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:clause"/>
277
+
278
+ <fo:block break-after="page"/>
279
+
280
+ <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:foreword"/> -->
281
+
282
+ <!-- Executive summary -->
283
+ <!-- <xsl:apply-templates select="/nist:nist-standard/nist:preface/nist:executivesummary"/> -->
284
+
285
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
286
+ DEBUG
287
+ contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
288
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
289
+
290
+ <!-- CONTENTS -->
291
+ <!-- <fo:block break-after="page"/>
292
+ <fo:block-container font-family="Arial">
293
+ <fo:block font-family="Arial Black" font-size="12pt" margin-top="4pt" margin-bottom="12pt" text-align="center">Table of Contents</fo:block>
294
+ <xsl:for-each select="xalan:nodeset($contents)//item[not(@type = 'table') and not(@type = 'figure')]">
295
+ <xsl:if test="@display = 'true'">
296
+ <fo:block color="{$color}">
297
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
298
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
299
+ <xsl:if test="@level = 1">
300
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
301
+ </xsl:if>
302
+ <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
303
+ <xsl:if test="@level &gt;= 2 and @section != ''">
304
+ <xsl:attribute name="margin-left">21.5mm</xsl:attribute>
305
+ </xsl:if>
306
+ <xsl:if test="@type = 'annex'">
307
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
308
+ </xsl:if>
309
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
310
+ <xsl:if test="@section != '' and not(@display-section = 'false')">
311
+ <fo:inline>
312
+ <xsl:if test="not(@type = 'annex')">
313
+ <xsl:attribute name="padding-right">
314
+ <xsl:choose>
315
+ <xsl:when test="@level = 1">6mm</xsl:when>
316
+ <xsl:otherwise>5mm</xsl:otherwise>
317
+ </xsl:choose>
318
+ </xsl:attribute>
319
+ </xsl:if>
320
+ <xsl:value-of select="@section"/>
321
+ <xsl:choose>
322
+ <xsl:when test="@type = 'annex'">
323
+ <xsl:text> — </xsl:text>
324
+ </xsl:when>
325
+ <xsl:otherwise>
326
+ <xsl:text>. </xsl:text>
327
+ </xsl:otherwise>
328
+ </xsl:choose>
329
+ </fo:inline>
330
+ </xsl:if>
331
+ <xsl:value-of select="text()"/><xsl:text> </xsl:text>
332
+ <fo:inline keep-together.within-line="always">
333
+ <fo:leader leader-pattern="dots"/>
334
+ <fo:page-number-citation ref-id="{@id}"/>
335
+ </fo:inline>
336
+ </fo:basic-link>
337
+ </fo:block>
338
+ </fo:block>
339
+ </xsl:if>
340
+ </xsl:for-each>
341
+
342
+ <xsl:if test="xalan:nodeset($contents)//item[@type = 'figure']">
343
+ <fo:block font-size="12pt">&#xA0;</fo:block>
344
+ <fo:block font-size="12pt">&#xA0;</fo:block>
345
+ <fo:block font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt">List of Figures</fo:block>
346
+ <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'figure']">
347
+ <fo:block text-align-last="justify" margin-top="6pt" margin-bottom="6pt">
348
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
349
+ <xsl:value-of select="@section"/>
350
+ <xsl:if test="text() != ''">
351
+ <xsl:text> — </xsl:text>
352
+ <xsl:value-of select="text()"/>
353
+ </xsl:if>
354
+ <fo:inline keep-together.within-line="always">
355
+ <fo:leader leader-pattern="dots"/>
356
+ <fo:page-number-citation ref-id="{@id}"/>
357
+ </fo:inline>
358
+ </fo:basic-link>
359
+ </fo:block>
360
+ </xsl:for-each>
361
+ </xsl:if>
362
+
363
+ <xsl:if test="xalan:nodeset($contents)//item[@type = 'table']">
364
+ <fo:block font-size="12pt">&#xA0;</fo:block>
365
+ <fo:block font-size="12pt">&#xA0;</fo:block>
366
+ <fo:block font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt">List of Tables</fo:block>
367
+ <xsl:for-each select="xalan:nodeset($contents)//item[@type = 'table']">
368
+ <fo:block text-align-last="justify" margin-top="6pt" margin-bottom="6pt">
369
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
370
+ <xsl:value-of select="@section"/>
371
+ <xsl:if test="text() != ''">
372
+ <xsl:text> — </xsl:text>
373
+ <xsl:value-of select="text()"/>
374
+ </xsl:if>
375
+ <fo:inline keep-together.within-line="always">
376
+ <fo:leader leader-pattern="dots"/>
377
+ <fo:page-number-citation ref-id="{@id}"/>
378
+ </fo:inline>
379
+ </fo:basic-link>
380
+ </fo:block>
381
+ </xsl:for-each>
382
+ </xsl:if>
383
+ </fo:block-container> -->
384
+ </fo:block>
385
+ </fo:flow>
386
+ </fo:page-sequence>
387
+
388
+ <!-- BODY -->
389
+ <fo:page-sequence master-reference="document" initial-page-number="1" force-page-count="no-force" line-height="116%">
390
+ <fo:static-content flow-name="xsl-footnote-separator">
391
+ <fo:block margin-bottom="4mm">
392
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
393
+ </fo:block>
394
+ </fo:static-content>
395
+
396
+ <xsl:call-template name="insertHeaderFooter"/>
397
+
398
+ <fo:flow flow-name="xsl-region-body">
399
+ <!-- Clause(s) -->
400
+ <fo:block>
401
+ <xsl:apply-templates select="/nist:nist-standard/nist:sections/*"/>
402
+
403
+ <xsl:apply-templates select="/nist:nist-standard/nist:annex"/>
404
+
405
+ <!-- Bibliography -->
406
+ <xsl:apply-templates select="/nist:nist-standard/nist:bibliography/nist:references"/>
407
+
408
+ </fo:block>
409
+
410
+ </fo:flow>
411
+ </fo:page-sequence>
412
+
413
+
414
+ </fo:root>
415
+ </xsl:template>
416
+
417
+ <!-- for pass the paremeter 'sectionNum' over templates, like 'tunnel' parameter in XSLT 2.0 -->
418
+ <xsl:template match="node()">
419
+ <xsl:param name="sectionNum"/>
420
+ <xsl:param name="sectionNumSkew"/>
421
+ <xsl:apply-templates>
422
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
423
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
424
+ </xsl:apply-templates>
425
+ </xsl:template>
426
+
427
+ <!-- ============================= -->
428
+ <!-- CONTENTS -->
429
+ <!-- ============================= -->
430
+ <xsl:template match="node()" mode="contents">
431
+ <xsl:param name="sectionNum"/>
432
+ <xsl:param name="sectionNumSkew"/>
433
+ <xsl:apply-templates mode="contents">
434
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
435
+ <xsl:with-param name="sectionNumSkew" select="$sectionNumSkew"/>
436
+ </xsl:apply-templates>
437
+ </xsl:template>
438
+
439
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
440
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
441
+ <xsl:template match="nist:nist-standard/nist:sections/*" mode="contents">
442
+ <xsl:param name="sectionNum"/>
443
+ <xsl:param name="sectionNumSkew" select="0"/>
444
+ <xsl:variable name="sectionNum_">
445
+ <xsl:choose>
446
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
447
+ <xsl:when test="$sectionNumSkew != 0">
448
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable>
449
+ <xsl:value-of select="$number + $sectionNumSkew"/>
450
+ </xsl:when>
451
+ <xsl:otherwise>
452
+ <xsl:number count="*"/>
453
+ </xsl:otherwise>
454
+ </xsl:choose>
455
+ </xsl:variable>
456
+ <xsl:apply-templates mode="contents">
457
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
458
+ </xsl:apply-templates>
459
+ </xsl:template>
460
+
461
+ <!-- Any node with title element - clause, definition, annex,... -->
462
+ <xsl:template match="nist:title | nist:preferred" mode="contents">
463
+ <xsl:param name="sectionNum"/>
464
+
465
+ <xsl:variable name="id">
466
+ <xsl:choose>
467
+ <xsl:when test="../@id">
468
+ <xsl:value-of select="../@id"/>
469
+ </xsl:when>
470
+ <xsl:otherwise>
471
+ <xsl:value-of select="text()"/>
472
+ </xsl:otherwise>
473
+ </xsl:choose>
474
+ </xsl:variable>
475
+
476
+ <xsl:variable name="level">
477
+ <xsl:call-template name="getLevel"/>
478
+ </xsl:variable>
479
+
480
+ <xsl:variable name="section">
481
+ <xsl:call-template name="getSection">
482
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
483
+ </xsl:call-template>
484
+ </xsl:variable>
485
+
486
+ <xsl:variable name="display">
487
+ <xsl:choose>
488
+ <!-- <xsl:when test="ancestor::itu:annex">true</xsl:when> -->
489
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 2">false</xsl:when>
490
+ <xsl:when test="$level &lt;= 2">true</xsl:when>
491
+ <xsl:otherwise>false</xsl:otherwise>
492
+ </xsl:choose>
493
+ </xsl:variable>
494
+
495
+ <xsl:variable name="type">
496
+ <xsl:value-of select="local-name(..)"/>
497
+ </xsl:variable>
498
+
499
+ <item id="{$id}" level="{$level}" section="{$section}" display="{$display}" type="{$type}">
500
+ <xsl:value-of select="."/>
501
+ </item>
502
+
503
+ <xsl:apply-templates mode="contents">
504
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
505
+ </xsl:apply-templates>
506
+ </xsl:template>
507
+
508
+ <xsl:template match="nist:bibitem" mode="contents"/>
509
+
510
+ <xsl:template match="nist:figure" mode="contents">
511
+ <xsl:param name="sectionNum"/>
512
+ <item level="" id="{@id}" type="figure">
513
+ <xsl:attribute name="section">
514
+ <xsl:text>Figure </xsl:text>
515
+ <xsl:choose>
516
+ <xsl:when test="ancestor::nist:annex">
517
+ <xsl:choose>
518
+ <xsl:when test="count(//nist:annex) = 1">
519
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format="-1" level="any" count="nist:annex//nist:figure"/>
520
+ </xsl:when>
521
+ <xsl:otherwise>
522
+ <xsl:number format="A.1-1" level="multiple" count="nist:annex | nist:figure"/>
523
+ </xsl:otherwise>
524
+ </xsl:choose>
525
+ </xsl:when>
526
+ <xsl:when test="ancestor::nist:figure">
527
+ <xsl:for-each select="parent::*[1]">
528
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
529
+ </xsl:for-each>
530
+ <xsl:number format="-a" count="nist:figure"/>
531
+ </xsl:when>
532
+ <xsl:otherwise>
533
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
534
+ <!-- <xsl:number format="1.1-1" level="multiple" count="nist:annex | nist:figure"/> -->
535
+ </xsl:otherwise>
536
+ </xsl:choose>
537
+ </xsl:attribute>
538
+ <xsl:value-of select="nist:name"/>
539
+ </item>
540
+ </xsl:template>
541
+
542
+ <xsl:template match="nist:table" mode="contents">
543
+ <xsl:param name="sectionNum"/>
544
+ <xsl:variable name="annex-id" select="ancestor::nist:annex/@id"/>
545
+ <item level="" id="{@id}" display="false" type="table">
546
+ <xsl:attribute name="section">
547
+ <xsl:text>Table </xsl:text>
548
+ <xsl:choose>
549
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
550
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table']"/>
551
+ </xsl:when>
552
+ <xsl:when test="ancestor::*[local-name()='annex']">
553
+ <xsl:number format="A-" count="nist:annex"/>
554
+ <xsl:number format="1" level="any" count="nist:table[ancestor::nist:annex[@id = $annex-id]]"/>
555
+ </xsl:when>
556
+ <xsl:otherwise>
557
+ <!-- <xsl:number format="1"/> -->
558
+ <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table']"/>
559
+ </xsl:otherwise>
560
+ </xsl:choose>
561
+ </xsl:attribute>
562
+ <xsl:value-of select="nist:name/text()"/>
563
+ </item>
564
+ </xsl:template>
565
+
566
+ <xsl:template match="nist:formula" mode="contents">
567
+ <xsl:param name="sectionNum"/>
568
+ <item level="" id="{@id}" display="false">
569
+ <xsl:attribute name="section">
570
+ <xsl:text>Formula (</xsl:text><xsl:number format="A.1" level="multiple" count="nist:annex | nist:formula"/><xsl:text>)</xsl:text>
571
+ </xsl:attribute>
572
+ </item>
573
+ </xsl:template>
574
+
575
+ <xsl:template match="nist:example" mode="contents">
576
+ <xsl:param name="sectionNum"/>
577
+ <xsl:variable name="level">
578
+ <xsl:call-template name="getLevel"/>
579
+ </xsl:variable>
580
+ <xsl:variable name="section">
581
+ <xsl:call-template name="getSection">
582
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
583
+ </xsl:call-template>
584
+ </xsl:variable>
585
+
586
+ <xsl:variable name="parent-element" select="local-name(..)"/>
587
+ <item level="" id="{@id}" display="false" type="Example" section="{$section}">
588
+ <xsl:attribute name="parent">
589
+ <xsl:choose>
590
+ <xsl:when test="$parent-element = 'clause'">Clause</xsl:when>
591
+ <xsl:otherwise/>
592
+ </xsl:choose>
593
+ </xsl:attribute>
594
+ </item>
595
+ <xsl:apply-templates mode="contents">
596
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
597
+ </xsl:apply-templates>
598
+ </xsl:template>
599
+
600
+ <xsl:template match="nist:terms" mode="contents">
601
+ <item level="" id="{@id}" display="false" type="Terms">
602
+ <xsl:if test="ancestor::nist:annex">
603
+ <xsl:attribute name="section">
604
+ <xsl:text>Appendix </xsl:text><xsl:number format="A" count="nist:annex"/>
605
+ </xsl:attribute>
606
+ </xsl:if>
607
+ </item>
608
+ </xsl:template>
609
+
610
+ <xsl:template match="nist:references" mode="contents">
611
+ <item level="" id="{@id}" display="false" type="References">
612
+ <xsl:choose>
613
+ <xsl:when test="ancestor::nist:annex">
614
+ <xsl:attribute name="section">
615
+ <xsl:text>Appendix </xsl:text><xsl:number format="A" count="nist:annex"/>
616
+ </xsl:attribute>
617
+ </xsl:when>
618
+ <xsl:otherwise>
619
+ <xsl:attribute name="level">1</xsl:attribute>
620
+ <xsl:attribute name="display">true</xsl:attribute>
621
+ <xsl:text>References</xsl:text>
622
+ </xsl:otherwise>
623
+ </xsl:choose>
624
+ </item>
625
+ </xsl:template>
626
+
627
+ <!-- ============================= -->
628
+ <!-- ============================= -->
629
+
630
+
631
+
632
+ <!-- ============================= -->
633
+ <!-- Authority -->
634
+ <!-- ============================= -->
635
+ <xsl:template match="/nist:nist-standard/nist:boilerplate/nist:feedback-statement/nist:clause">
636
+ <fo:block font-family="Arial" font-size="12pt" space-before="6pt">
637
+ <xsl:apply-templates>
638
+ <xsl:with-param name="margin">12pt</xsl:with-param>
639
+ </xsl:apply-templates>
640
+ </fo:block>
641
+ </xsl:template>
642
+ <!-- ============================= -->
643
+ <!-- ============================= -->
644
+
645
+
646
+
647
+ <!-- ============================= -->
648
+ <!-- PARAGRAPHS -->
649
+ <!-- ============================= -->
650
+ <xsl:template match="nist:p">
651
+ <xsl:param name="margin"/>
652
+ <fo:block>
653
+ <xsl:attribute name="margin-bottom">
654
+ <xsl:choose>
655
+ <xsl:when test="(local-name(..) = 'td' or local-name(..) = 'th') and ancestor::nist:annex">0</xsl:when>
656
+ <xsl:when test="$margin != ''"><xsl:value-of select="$margin"/></xsl:when>
657
+ <xsl:otherwise>12pt</xsl:otherwise>
658
+ </xsl:choose>
659
+ </xsl:attribute>
660
+ <xsl:attribute name="text-align">
661
+ <xsl:choose>
662
+ <xsl:when test="@align"><xsl:value-of select="@align"/></xsl:when>
663
+ <xsl:when test="ancestor::nist:preface or ancestor::nist:boilerplate">justify</xsl:when>
664
+ <xsl:otherwise>left</xsl:otherwise>
665
+ </xsl:choose>
666
+ </xsl:attribute>
667
+ <xsl:apply-templates/>
668
+ </fo:block>
669
+ </xsl:template>
670
+
671
+ <xsl:template match="nist:note/nist:p" name="note">
672
+ <fo:block font-size="11pt" space-before="4pt">
673
+ <xsl:text>NOTE </xsl:text>
674
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
675
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
676
+ </xsl:if>
677
+ <xsl:text>– </xsl:text>
678
+ <xsl:apply-templates/>
679
+ </fo:block>
680
+ </xsl:template>
681
+
682
+ <xsl:template match="nist:recommendation">
683
+ <fo:block margin-left="20mm">
684
+ <fo:block font-weight="bold">
685
+ <xsl:text>Recommendation </xsl:text>
686
+ <xsl:choose>
687
+ <xsl:when test="ancestor::nist:sections">
688
+ <xsl:number level="any" count="nist:sections//nist:recommendation"/>
689
+ </xsl:when>
690
+ <xsl:when test="ancestor::*[local-name()='annex']">
691
+ <xsl:variable name="annex-id" select="ancestor::*[local-name()='annex']/@id"/>
692
+ <xsl:number format="A-" count="nist:annex"/>
693
+ <xsl:number format="1" level="any" count="nist:recommendation[ancestor::nist:annex[@id = $annex-id]]"/>
694
+ <!-- <xsl:number format="A-1" level="multiple" count="nist:annex | nist:recommendation"/> -->
695
+ </xsl:when>
696
+ </xsl:choose>
697
+ <xsl:text>:</xsl:text>
698
+ </fo:block>
699
+ <xsl:apply-templates/>
700
+ </fo:block>
701
+ </xsl:template>
702
+
703
+ <xsl:template match="nist:admonition">
704
+ <fo:block-container border="1pt solid black" margin-left="-2mm" margin-right="-2mm" padding-top="6mm" padding-bottom="7mm" background-color="rgb(222,222,222)">
705
+ <fo:block margin-left="8mm" margin-right="8mm">
706
+ <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
707
+ <xsl:choose>
708
+ <xsl:when test="@type='important'">IMPORTANT</xsl:when>
709
+ <xsl:when test="@type='tip'">
710
+ <xsl:apply-templates select="nist:name" mode="process"/>
711
+ </xsl:when>
712
+ <xsl:otherwise>
713
+ <xsl:apply-templates select="nist:name" mode="process"/>
714
+ </xsl:otherwise>
715
+ </xsl:choose>
716
+ </fo:block>
717
+ <xsl:apply-templates/>
718
+ </fo:block>
719
+ </fo:block-container>
720
+ <fo:block margin-bottom="6pt"> </fo:block>
721
+ </xsl:template>
722
+
723
+ <xsl:template match="nist:admonition/nist:name"/>
724
+ <xsl:template match="nist:admonition/nist:name" mode="process">
725
+ <xsl:apply-templates/>
726
+ </xsl:template>
727
+
728
+ <xsl:template match="nist:admonition/nist:p">
729
+ <fo:block><xsl:apply-templates/></fo:block>
730
+ </xsl:template>
731
+
732
+ <!-- ============================= -->
733
+ <!-- ============================= -->
734
+
735
+
736
+ <!-- ============================= -->
737
+ <!-- Bibliography -->
738
+ <!-- ============================= -->
739
+
740
+
741
+ <xsl:template match="nist:references">
742
+ <fo:block break-after="page"/>
743
+ <fo:block>
744
+ <xsl:if test="not(nist:title)">
745
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
746
+ </xsl:if>
747
+ <xsl:apply-templates/>
748
+ </fo:block>
749
+ </xsl:template>
750
+
751
+
752
+ <!-- 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. -->
753
+ <xsl:template match="nist:bibitem">
754
+
755
+ <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm">
756
+ <fo:list-item>
757
+ <fo:list-item-label end-indent="label-end()">
758
+ <fo:block>
759
+ <fo:inline id="{@id}">
760
+ <!-- <xsl:number format="[1]"/> -->
761
+ <xsl:value-of select="nist:docidentifier"/>
762
+ </fo:inline>
763
+ </fo:block>
764
+ </fo:list-item-label>
765
+ <fo:list-item-body start-indent="body-start()">
766
+ <fo:block>
767
+ <xsl:choose>
768
+ <xsl:when test="nist:title[@type = 'main' and @language = 'en']">
769
+ <xsl:apply-templates select="nist:title[@type = 'main' and @language = 'en']"/>
770
+ </xsl:when>
771
+ <xsl:otherwise>
772
+ <xsl:apply-templates select="nist:title"/>
773
+ </xsl:otherwise>
774
+ </xsl:choose>
775
+ <xsl:apply-templates select="nist:formattedref"/>
776
+ </fo:block>
777
+ </fo:list-item-body>
778
+ </fo:list-item>
779
+ </fo:list-block>
780
+ </xsl:template>
781
+
782
+ <!-- ============================= -->
783
+ <!-- ============================= -->
784
+
785
+
786
+ <xsl:template match="text()">
787
+ <xsl:value-of select="."/>
788
+ </xsl:template>
789
+
790
+
791
+ <!-- calculate main section number (1,2,3) and pass it deep into templates -->
792
+ <!-- it's necessary, because there is itu:bibliography/itu:references from other section, but numbering should be sequental -->
793
+ <xsl:template match="nist:nist-standard/nist:sections/*">
794
+ <xsl:param name="sectionNum"/>
795
+ <xsl:param name="sectionNumSkew" select="0"/>
796
+ <fo:block>
797
+ <xsl:variable name="sectionNum_">
798
+ <xsl:choose>
799
+ <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
800
+ <xsl:when test="$sectionNumSkew != 0">
801
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable>
802
+ <xsl:value-of select="$number + $sectionNumSkew"/>
803
+ </xsl:when>
804
+ <xsl:otherwise>
805
+ <xsl:number count="*"/>
806
+ </xsl:otherwise>
807
+ </xsl:choose>
808
+ </xsl:variable>
809
+ <xsl:apply-templates>
810
+ <xsl:with-param name="sectionNum" select="$sectionNum_"/>
811
+ </xsl:apply-templates>
812
+ </fo:block>
813
+ <xsl:if test="position() != last()">
814
+ <fo:block break-after="page"/>
815
+ </xsl:if>
816
+ </xsl:template>
817
+
818
+
819
+ <xsl:template match="nist:title">
820
+ <xsl:param name="sectionNum"/>
821
+ <xsl:variable name="id">
822
+ <xsl:choose>
823
+ <xsl:when test="../@id">
824
+ <xsl:value-of select="../@id"/>
825
+ </xsl:when>
826
+ <xsl:otherwise>
827
+ <xsl:value-of select="text()"/>
828
+ </xsl:otherwise>
829
+ </xsl:choose>
830
+ </xsl:variable>
831
+
832
+ <xsl:variable name="parent-name" select="local-name(..)"/>
833
+ <xsl:variable name="references_num_current">
834
+ <xsl:number level="any" count="nist:references"/>
835
+ </xsl:variable>
836
+
837
+ <xsl:variable name="level">
838
+ <xsl:call-template name="getLevel"/>
839
+ </xsl:variable>
840
+
841
+ <xsl:variable name="font-size">
842
+ <xsl:choose>
843
+ <xsl:when test="$level = 1">12pt</xsl:when>
844
+ <xsl:when test="$level &gt;= 2">11pt</xsl:when>
845
+ <xsl:otherwise>11pt</xsl:otherwise>
846
+ </xsl:choose>
847
+ </xsl:variable>
848
+
849
+ <xsl:variable name="space-after">
850
+ <xsl:choose>
851
+ <xsl:when test="$level = 2">12pt</xsl:when>
852
+ <xsl:otherwise>6pt</xsl:otherwise>
853
+ </xsl:choose>
854
+ </xsl:variable>
855
+
856
+ <xsl:variable name="section">
857
+ <xsl:call-template name="getSection">
858
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
859
+ </xsl:call-template>
860
+ </xsl:variable>
861
+
862
+ <xsl:choose>
863
+ <xsl:when test="ancestor::nist:legal-statement">
864
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" margin-bottom="12pt" color="{$color}">
865
+ <xsl:apply-templates/>
866
+ </fo:block>
867
+ </xsl:when>
868
+ <xsl:when test="ancestor::nist:executivesummary">
869
+ <fo:block-container color="white" background-color="black" margin-bottom="12pt">
870
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="left" margin-left="4mm" padding-top="1mm">
871
+ <xsl:apply-templates/>
872
+ </fo:block>
873
+ </fo:block-container>
874
+ </xsl:when>
875
+ <xsl:when test="ancestor::nist:preface">
876
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" space-before="12pt" margin-bottom="12pt" color="{$color}">
877
+ <xsl:apply-templates/>
878
+ </fo:block>
879
+ </xsl:when>
880
+ <xsl:when test="$parent-name = 'references'"> <!-- and $references_num_current != 1 -->
881
+ <fo:block-container color="white" background-color="{$color}" margin-bottom="12pt" keep-with-next="always" height="5mm" margin-left="-0.5mm" margin-right="-0.5mm">
882
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" margin-left="1mm" padding-top="0.3mm">
883
+ <!-- <xsl:apply-templates /> -->
884
+ <xsl:text>References</xsl:text>
885
+ </fo:block>
886
+ </fo:block-container>
887
+ </xsl:when>
888
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 3">
889
+ <fo:block id="{$id}" font-family="Arial" font-size="11pt" font-weight="bold" margin-top="3pt" margin-bottom="12pt">
890
+ <xsl:if test="$parent-name != 'references'">
891
+ <xsl:value-of select="$section"/><xsl:text>. </xsl:text>
892
+ </xsl:if>
893
+ <xsl:apply-templates/>
894
+ </fo:block>
895
+ </xsl:when>
896
+ <xsl:when test="ancestor::nist:annex and $level &gt;= 2">
897
+ <fo:block id="{$id}" font-family="Arial" font-size="12pt" font-weight="bold" text-align="center" margin-top="3pt" margin-bottom="12pt">
898
+ <xsl:if test="$parent-name != 'references'">
899
+ <xsl:value-of select="$section"/><xsl:text>. </xsl:text>
900
+ </xsl:if>
901
+ <xsl:apply-templates/>
902
+ </fo:block>
903
+ </xsl:when>
904
+ <xsl:when test="$level = 1">
905
+ <fo:block-container color="white" background-color="{$color}" margin-bottom="12pt" keep-with-next="always" height="6mm" margin-left="-2mm" margin-right="-2mm">
906
+ <fo:block id="{$id}" font-family="Arial" font-size="{$font-size}" font-weight="bold" text-align="left" keep-with-next="always" margin-left="4mm" padding-top="1mm">
907
+ <xsl:choose>
908
+ <xsl:when test="$parent-name != 'annex'">
909
+ <fo:inline padding-right="7.5mm"><xsl:value-of select="$section"/></fo:inline> <!-- . -->
910
+ </xsl:when>
911
+ <xsl:otherwise>
912
+ <fo:inline><xsl:value-of select="$section"/> — </fo:inline>
913
+ </xsl:otherwise>
914
+ </xsl:choose>
915
+ <xsl:apply-templates/>
916
+ </fo:block>
917
+ </fo:block-container>
918
+ </xsl:when>
919
+ <xsl:otherwise>
920
+ <fo:block id="{$id}" font-family="Arial" font-size="{$font-size}" color="{$color}" font-weight="bold" text-align="left" space-after="{$space-after}" keep-with-next="always">
921
+ <fo:inline padding-right="4mm"><xsl:value-of select="$section"/>.</fo:inline>
922
+ <xsl:apply-templates/>
923
+ </fo:block>
924
+ </xsl:otherwise>
925
+ </xsl:choose>
926
+ </xsl:template>
927
+
928
+
929
+ <xsl:template match="nist:preferred2">
930
+ <xsl:param name="sectionNum"/>
931
+ <!-- DEBUG need -->
932
+ <fo:block space-before="6pt" text-align="justify">
933
+ <fo:inline id="{../@id}" padding-right="5mm" font-weight="bold">
934
+ <!-- <xsl:value-of select="$sectionNum"/><xsl:number format=".1" level="multiple" count="itu:clause/itu:clause | itu:clause/itu:terms | itu:terms/itu:term"/> -->
935
+ <xsl:variable name="section">
936
+ <xsl:call-template name="getSection">
937
+ <xsl:with-param name="sectionNum" select="$sectionNum"/>
938
+ </xsl:call-template>
939
+ </xsl:variable>
940
+ <xsl:value-of select="$section"/>
941
+ </fo:inline>
942
+ <fo:inline font-weight="bold">
943
+ <xsl:apply-templates/>
944
+ </fo:inline>
945
+ <xsl:if test="../nist:termsource/nist:origin">
946
+ <xsl:text> [</xsl:text><xsl:value-of select="../nist:termsource/nist:origin/@citeas"/><xsl:text>]</xsl:text>
947
+ </xsl:if>
948
+ <xsl:text>: </xsl:text>
949
+ <xsl:apply-templates select="following-sibling::nist:definition/node()" mode="process"/> <!-- -->
950
+ </fo:block>
951
+ </xsl:template>
952
+
953
+
954
+ <xsl:template match="nist:p//nist:fn[not(ancestor::nist:table)] | nist:title/nist:fn | nist:table/nist:name/nist:fn" priority="2">
955
+ <fo:footnote>
956
+ <xsl:variable name="number">
957
+ <xsl:number level="any" count="nist:p//nist:fn[not(ancestor::nist:table)] | nist:title/nist:fn | nist:table/nist:name/nist:fn"/>
958
+ </xsl:variable>
959
+ <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
960
+ <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
961
+ <xsl:value-of select="$number + count(//nist:bibitem/nist:note)"/>
962
+ </fo:basic-link>
963
+ </fo:inline>
964
+ <fo:footnote-body>
965
+ <fo:block-container margin-left="3mm">
966
+ <fo:block font-size="9pt" font-family="Times New Roman" font-style="normal" font-weight="normal" margin-left="-3mm" margin-top="6pt" margin-bottom="12pt" start-indent="0mm" text-indent="-2mm" line-height="10pt" page-break-inside="avoid">
967
+ <fo:inline id="footnote_{@reference}_{$number}" font-size="75%" keep-with-next.within-line="always" vertical-align="super" padding-right="1mm"> <!-- alignment-baseline="hanging" -->
968
+ <xsl:value-of select="$number + count(//nist:bibitem/nist:note)"/>
969
+ </fo:inline>
970
+ <xsl:for-each select="nist:p">
971
+ <xsl:apply-templates/>
972
+ </xsl:for-each>
973
+ </fo:block>
974
+ </fo:block-container>
975
+ </fo:footnote-body>
976
+ </fo:footnote>
977
+ </xsl:template>
978
+
979
+
980
+ <xsl:template match="*[local-name()='tt']" priority="2">
981
+ <xsl:variable name="element-name">
982
+ <xsl:choose>
983
+ <xsl:when test="normalize-space(ancestor::nist:p[1]//text()[not(parent::nist:tt)]) != ''">fo:inline</xsl:when>
984
+ <xsl:otherwise>fo:block</xsl:otherwise>
985
+ </xsl:choose>
986
+ </xsl:variable>
987
+ <xsl:element name="{$element-name}">
988
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
989
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
990
+ <xsl:attribute name="text-align">center</xsl:attribute>
991
+ <xsl:apply-templates/>
992
+ </xsl:element>
993
+ </xsl:template>
994
+
995
+
996
+ <xsl:template match="nist:figure">
997
+ <fo:block-container id="{@id}">
998
+ <fo:block>
999
+ <xsl:apply-templates/>
1000
+ </fo:block>
1001
+ <xsl:call-template name="fn_display_figure"/>
1002
+ <xsl:for-each select="nist:note//nist:p">
1003
+ <xsl:call-template name="note"/>
1004
+ </xsl:for-each>
1005
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-previous="always">
1006
+ <xsl:text>Figure </xsl:text>
1007
+ <xsl:choose>
1008
+ <xsl:when test="ancestor::nist:annex">
1009
+ <xsl:choose>
1010
+ <xsl:when test="count(//nist:annex) = 1">
1011
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format="-1" level="any" count="nist:annex//nist:figure"/>
1012
+ </xsl:when>
1013
+ <xsl:otherwise>
1014
+ <xsl:number format="A-1-1" level="multiple" count="nist:annex | nist:figure"/>
1015
+ </xsl:otherwise>
1016
+ </xsl:choose>
1017
+ </xsl:when>
1018
+ <xsl:when test="ancestor::nist:figure">
1019
+ <xsl:for-each select="parent::*[1]">
1020
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
1021
+ </xsl:for-each>
1022
+ <xsl:number format="-a" count="nist:figure"/>
1023
+ </xsl:when>
1024
+ <xsl:otherwise>
1025
+ <xsl:number format="1" level="any" count="nist:figure[not(parent::nist:figure)]"/>
1026
+ </xsl:otherwise>
1027
+ </xsl:choose>
1028
+ <xsl:if test="nist:name">
1029
+ <xsl:text> — </xsl:text>
1030
+ <xsl:value-of select="nist:name"/>
1031
+ </xsl:if>
1032
+ </fo:block>
1033
+ </fo:block-container>
1034
+ </xsl:template>
1035
+
1036
+ <xsl:template match="nist:figure/nist:name"/>
1037
+ <xsl:template match="nist:figure/nist:fn" priority="2"/>
1038
+ <xsl:template match="nist:figure/nist:note"/>
1039
+
1040
+
1041
+ <xsl:template match="nist:figure2[@class = 'pseudocode']">
1042
+ <fo:block>
1043
+ <xsl:apply-templates/>
1044
+ </fo:block>
1045
+ </xsl:template>
1046
+
1047
+ <xsl:template match="nist:figure2[@class = 'pseudocode']//nist:p">
1048
+ <fo:block font-size="10pt" margin-top="6pt" margin-bottom="6pt">
1049
+ <xsl:apply-templates/>
1050
+ </fo:block>
1051
+ </xsl:template>
1052
+
1053
+
1054
+ <xsl:template match="nist:image">
1055
+ <fo:block text-align="center">
1056
+ <!-- <fo:external-graphic src="{@src}" content-width="75%" content-height="scale-to-fit" scaling="uniform"/> -->
1057
+ <fo:external-graphic src="{@src}" width="75%" content-height="100%" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image"/>
1058
+ </fo:block>
1059
+ </xsl:template>
1060
+
1061
+
1062
+ <!-- Examples:
1063
+ [b-ASM] b-ASM, http://www.eecs.umich.edu/gasm/ (accessed 20 March 2018).
1064
+ [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.
1065
+ -->
1066
+ <xsl:template match="nist:annex//nist:bibitem">
1067
+ <fo:block id="{@id}" margin-top="6pt" margin-left="12mm" text-indent="-12mm">
1068
+ <xsl:if test="nist:formattedref">
1069
+ <xsl:choose>
1070
+ <xsl:when test="nist:docidentifier[@type = 'metanorma']">
1071
+ <xsl:attribute name="margin-left">0</xsl:attribute>
1072
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1073
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1074
+ <!-- create list -->
1075
+ <fo:list-block>
1076
+ <fo:list-item>
1077
+ <fo:list-item-label end-indent="label-end()">
1078
+ <fo:block>
1079
+ <xsl:apply-templates select="nist:docidentifier[@type = 'metanorma']" mode="process"/>
1080
+ </fo:block>
1081
+ </fo:list-item-label>
1082
+ <fo:list-item-body start-indent="body-start()">
1083
+ <fo:block margin-left="3mm">
1084
+ <xsl:apply-templates select="nist:formattedref"/>
1085
+ </fo:block>
1086
+ </fo:list-item-body>
1087
+ </fo:list-item>
1088
+ </fo:list-block>
1089
+ </xsl:when>
1090
+ <xsl:otherwise>
1091
+ <xsl:apply-templates select="nist:formattedref"/>
1092
+ <xsl:apply-templates select="nist:docidentifier[@type != 'metanorma' or not(@type)]" mode="process"/>
1093
+ </xsl:otherwise>
1094
+ </xsl:choose>
1095
+
1096
+
1097
+ </xsl:if>
1098
+ <xsl:if test="nist:title">
1099
+ <xsl:for-each select="nist:contributor">
1100
+ <xsl:value-of select="nist:organization/nist:name"/>
1101
+ <xsl:if test="position() != last()">, </xsl:if>
1102
+ </xsl:for-each>
1103
+ <xsl:text> (</xsl:text>
1104
+
1105
+ <xsl:value-of select="$date"/>
1106
+ <xsl:text>) </xsl:text>
1107
+ <fo:inline font-style="italic"><xsl:value-of select="nist:title"/></fo:inline>
1108
+ <xsl:if test="nist:contributor[nist:role/@type='publisher']/nist:organization/nist:name">
1109
+ <xsl:text> (</xsl:text><xsl:value-of select="nist:contributor[nist:role/@type='publisher']/nist:organization/nist:name"/><xsl:text>)</xsl:text>
1110
+ </xsl:if>
1111
+ <xsl:text>, </xsl:text>
1112
+ <xsl:value-of select="$date"/>
1113
+ <xsl:text>. </xsl:text>
1114
+ <xsl:value-of select="nist:docidentifier"/>
1115
+ <xsl:value-of select="$linebreak"/>
1116
+ <xsl:value-of select="nist:uri"/>
1117
+ </xsl:if>
1118
+ </fo:block>
1119
+ </xsl:template>
1120
+
1121
+ <xsl:template match="nist:annex//nist:bibitem//nist:formattedref">
1122
+ <xsl:apply-templates/>
1123
+ </xsl:template>
1124
+
1125
+ <xsl:template match="nist:docidentifier[@type = 'metanorma']" mode="process">
1126
+ <xsl:apply-templates/>
1127
+ </xsl:template>
1128
+ <xsl:template match="nist:docidentifier[@type != 'metanorma' or not(@type)]" mode="process">
1129
+ <xsl:text> [</xsl:text><xsl:apply-templates/><xsl:text>]</xsl:text>
1130
+ </xsl:template>
1131
+ <xsl:template match="nist:docidentifier"/>
1132
+
1133
+
1134
+
1135
+ <xsl:template match="nist:annex//nist:note/nist:p">
1136
+ <fo:block font-size="11pt" margin-top="4pt">
1137
+ <xsl:text>NOTE </xsl:text>
1138
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
1139
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
1140
+ </xsl:if>
1141
+ <xsl:text>– </xsl:text>
1142
+ <xsl:apply-templates/>
1143
+ </fo:block>
1144
+ </xsl:template>
1145
+
1146
+ <xsl:template match="nist:ul | nist:ol">
1147
+ <fo:list-block>
1148
+ <xsl:apply-templates/>
1149
+ </fo:list-block>
1150
+ <xsl:apply-templates select="./nist:note" mode="process"/>
1151
+ </xsl:template>
1152
+
1153
+ <xsl:template match="nist:ul//nist:note | nist:ol//nist:note"/>
1154
+ <xsl:template match="nist:ul//nist:note/nist:p | nist:ol//nist:note/nist:p" mode="process">
1155
+ <fo:block font-size="11pt" margin-top="4pt">
1156
+ <xsl:text>NOTE </xsl:text>
1157
+ <xsl:if test="../following-sibling::nist:note or ../preceding-sibling::nist:note">
1158
+ <xsl:number count="nist:note"/><xsl:text> </xsl:text>
1159
+ </xsl:if>
1160
+ <xsl:text>– </xsl:text>
1161
+ <xsl:apply-templates/>
1162
+ </fo:block>
1163
+ </xsl:template>
1164
+
1165
+ <xsl:template match="nist:li">
1166
+ <xsl:variable name="level">
1167
+ <xsl:variable name="numtmp">
1168
+ <xsl:number level="multiple" count="nist:ol"/>
1169
+ </xsl:variable>
1170
+ <!-- level example: 1.1
1171
+ calculate counts of '.' in numtmp value - level of nested lists
1172
+ -->
1173
+ <xsl:value-of select="string-length($numtmp) - string-length(translate($numtmp, '.', '')) + 1"/>
1174
+ </xsl:variable>
1175
+ <fo:list-item>
1176
+ <fo:list-item-label end-indent="label-end()">
1177
+ <fo:block>
1178
+ <xsl:choose>
1179
+ <!-- <xsl:when test="local-name(..) = 'ul'">&#x2014;</xsl:when>--> <!-- dash -->
1180
+ <xsl:when test="local-name(..) = 'ul'">•</xsl:when>
1181
+ <xsl:otherwise> <!-- for ordered lists -->
1182
+ <xsl:choose>
1183
+ <xsl:when test="../@type = 'arabic'">
1184
+ <xsl:number format="a)"/>
1185
+ </xsl:when>
1186
+ <xsl:when test="../@type = 'alphabet'">
1187
+ <xsl:number format="1)"/>
1188
+ </xsl:when>
1189
+ <xsl:when test="ancestor::*[nist:annex]">
1190
+ <xsl:choose>
1191
+ <xsl:when test="$level = 1">
1192
+ <xsl:number format="a)"/>
1193
+ </xsl:when>
1194
+ <xsl:when test="$level = 2">
1195
+ <xsl:number format="i)"/>
1196
+ </xsl:when>
1197
+ <xsl:otherwise>
1198
+ <xsl:number format="1.)"/>
1199
+ </xsl:otherwise>
1200
+ </xsl:choose>
1201
+ </xsl:when>
1202
+ <xsl:otherwise>
1203
+ <xsl:number format="1."/>
1204
+ </xsl:otherwise>
1205
+ </xsl:choose>
1206
+ </xsl:otherwise>
1207
+ </xsl:choose>
1208
+ </fo:block>
1209
+ </fo:list-item-label>
1210
+ <fo:list-item-body start-indent="body-start()">
1211
+ <xsl:apply-templates/>
1212
+ <xsl:apply-templates select=".//nist:note" mode="process"/>
1213
+ </fo:list-item-body>
1214
+ </fo:list-item>
1215
+ </xsl:template>
1216
+
1217
+ <xsl:template match="nist:li//nist:p">
1218
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
1219
+ <fo:block margin-bottom="6pt">
1220
+ <xsl:if test="$num &gt;= 2">
1221
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
1222
+ </xsl:if>
1223
+ <xsl:apply-templates/>
1224
+ </fo:block>
1225
+ </xsl:template>
1226
+
1227
+ <xsl:template match="nist:link">
1228
+ <xsl:if test="ancestor::nist:formattedref">
1229
+ <xsl:value-of select="$linebreak"/>
1230
+ </xsl:if>
1231
+ <fo:basic-link external-destination="{@target}" color="blue" text-decoration="underline" fox:alt-text="link {@target}">
1232
+ <xsl:choose>
1233
+ <xsl:when test="normalize-space(.) = ''">
1234
+ <xsl:choose>
1235
+ <xsl:when test="starts-with(@target, 'mailto:')">
1236
+ <xsl:value-of select="substring-after(@target, 'mailto:')"/>
1237
+ </xsl:when>
1238
+ <xsl:otherwise>
1239
+ <xsl:value-of select="@target"/>
1240
+ </xsl:otherwise>
1241
+ </xsl:choose>
1242
+ </xsl:when>
1243
+ <xsl:otherwise>
1244
+ <xsl:apply-templates/>
1245
+ </xsl:otherwise>
1246
+ </xsl:choose>
1247
+ </fo:basic-link>
1248
+ <!-- </fo:inline> -->
1249
+ </xsl:template>
1250
+
1251
+
1252
+ <xsl:template match="nist:termnote">
1253
+ <fo:block margin-top="4pt">
1254
+ <xsl:text>NOTE </xsl:text>
1255
+ <xsl:if test="following-sibling::nist:termnote or preceding-sibling::nist:termnote">
1256
+ <xsl:number/><xsl:text> </xsl:text>
1257
+ </xsl:if>
1258
+ <xsl:text>– </xsl:text>
1259
+ <xsl:apply-templates/>
1260
+ </fo:block>
1261
+ </xsl:template>
1262
+ <xsl:template match="nist:termnote/nist:p">
1263
+ <xsl:apply-templates/>
1264
+ </xsl:template>
1265
+
1266
+
1267
+ <xsl:template match="nist:annex">
1268
+ <fo:block break-after="page"/>
1269
+ <xsl:apply-templates/>
1270
+ </xsl:template>
1271
+
1272
+ <xsl:template match="nist:formula" name="formula">
1273
+ <fo:block id="{@id}" margin-top="6pt"> <!-- text-align="center" -->
1274
+ <fo:table table-layout="fixed" width="100%">
1275
+ <fo:table-column column-width="95%"/>
1276
+ <fo:table-column column-width="5%"/>
1277
+ <fo:table-body>
1278
+ <fo:table-row>
1279
+ <fo:table-cell>
1280
+ <fo:block text-align="center">
1281
+ <xsl:if test="ancestor::nist:annex">
1282
+ <xsl:attribute name="text-align">left</xsl:attribute>
1283
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
1284
+ </xsl:if>
1285
+ <xsl:apply-templates/>
1286
+ </fo:block>
1287
+ </fo:table-cell>
1288
+ <fo:table-cell> <!-- display-align="center" -->
1289
+ <fo:block text-align="right">
1290
+ <xsl:if test="not(ancestor::nist:annex)">
1291
+ <xsl:text>(</xsl:text><xsl:number level="any"/><xsl:text>)</xsl:text>
1292
+ </xsl:if>
1293
+ <xsl:if test="ancestor::nist:annex">
1294
+ <xsl:variable name="annex-id" select="ancestor::nist:annex/@id"/>
1295
+ <xsl:text>(</xsl:text>
1296
+ <xsl:number format="A-" count="nist:annex"/>
1297
+ <xsl:number format="1" level="any" count="nist:formula[ancestor::nist:annex[@id = $annex-id]]"/>
1298
+ <xsl:text>)</xsl:text>
1299
+ </xsl:if>
1300
+ </fo:block>
1301
+ </fo:table-cell>
1302
+ </fo:table-row>
1303
+ </fo:table-body>
1304
+ </fo:table>
1305
+ <fo:inline keep-together.within-line="always">
1306
+ </fo:inline>
1307
+ </fo:block>
1308
+ </xsl:template>
1309
+
1310
+ <xsl:template match="nist:formula" mode="process">
1311
+ <xsl:call-template name="formula"/>
1312
+ </xsl:template>
1313
+
1314
+ <xsl:template match="nist:xref">
1315
+ <xsl:param name="sectionNum"/>
1316
+
1317
+ <xsl:variable name="section" select="xalan:nodeset($contents)//item[@id = current()/@target]/@section"/>
1318
+
1319
+ <fo:basic-link internal-destination="{@target}" text-decoration="underline" color="blue" fox:alt-text="{@target}">
1320
+ <xsl:variable name="type" select="xalan:nodeset($contents)//item[@id = current()/@target]/@type"/>
1321
+ <xsl:choose>
1322
+ <xsl:when test="$type = 'clause'">Section </xsl:when><!-- and not (ancestor::annex) -->
1323
+ <xsl:when test="$type = 'Example'">Example </xsl:when>
1324
+ <xsl:otherwise/> <!-- <xsl:value-of select="$type"/> -->
1325
+ </xsl:choose>
1326
+
1327
+ <xsl:choose>
1328
+ <xsl:when test="$type = 'Example'">
1329
+ <xsl:variable name="currentSection">
1330
+ <xsl:call-template name="getSection"/>
1331
+ </xsl:variable>
1332
+ <xsl:if test="not(contains($section, $currentSection))">
1333
+ <xsl:text>in </xsl:text>
1334
+ <xsl:value-of select="xalan:nodeset($contents)//item[@id = current()/@target]/@parent"/>
1335
+ <xsl:text> </xsl:text>
1336
+ <xsl:value-of select="$section"/>
1337
+ </xsl:if>
1338
+ </xsl:when>
1339
+ <xsl:otherwise>
1340
+ <xsl:choose>
1341
+ <xsl:when test="$section != ''"><xsl:value-of select="$section"/></xsl:when>
1342
+ <xsl:otherwise>???</xsl:otherwise>
1343
+ </xsl:choose>
1344
+ </xsl:otherwise>
1345
+ </xsl:choose>
1346
+
1347
+ </fo:basic-link>
1348
+ </xsl:template>
1349
+
1350
+
1351
+ <xsl:template match="nist:example">
1352
+ <fo:block id="{@id}" font-size="10pt" font-weight="bold" margin-bottom="12pt">EXAMPLE</fo:block>
1353
+ <fo:block font-size="11pt" margin-top="12pt" margin-bottom="12pt" margin-left="15mm">
1354
+ <xsl:apply-templates/>
1355
+ </fo:block>
1356
+ </xsl:template>
1357
+ <xsl:template match="nist:example/nist:p">
1358
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
1359
+ <fo:block margin-bottom="12pt">
1360
+ <xsl:if test="$num = 1">
1361
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
1362
+ </xsl:if>
1363
+ <xsl:apply-templates/>
1364
+ </fo:block>
1365
+ </xsl:template>
1366
+
1367
+ <!-- <xsl:template match="itu:example/itu:name">
1368
+ <fo:block font-weight="bold">
1369
+ <xsl:text>EXAMPLE</xsl:text>
1370
+ <xsl:if test="count(ancestor::itu:clause[1]/itu:example) &gt; 1">
1371
+ <xsl:text> </xsl:text><xsl:number count="itu:example"/>
1372
+ </xsl:if>
1373
+ <xsl:text> — </xsl:text>
1374
+ <xsl:apply-templates />
1375
+ </fo:block>
1376
+ </xsl:template> -->
1377
+
1378
+
1379
+
1380
+
1381
+ <xsl:template match="nist:eref">
1382
+ <!-- <fo:inline color="blue"> -->
1383
+ <fo:basic-link internal-destination="{@bibitemid}" color="blue" fox:alt-text="{@citeas}">
1384
+ <xsl:if test="@type = 'footnote'">
1385
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
1386
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1387
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1388
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1389
+ </xsl:if>
1390
+ <xsl:if test="@type = 'inline'">
1391
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1392
+ </xsl:if>
1393
+ <!-- <xsl:text>[</xsl:text> --><xsl:value-of select="@citeas" disable-output-escaping="yes"/><!-- <xsl:text>]</xsl:text> -->
1394
+ <xsl:if test="nist:locality">
1395
+ <xsl:text>, </xsl:text>
1396
+ <xsl:choose>
1397
+ <xsl:when test="nist:locality/@type = 'section'">Section </xsl:when>
1398
+ <xsl:when test="nist:locality/@type = 'clause'">Clause </xsl:when>
1399
+ <xsl:otherwise/>
1400
+ </xsl:choose>
1401
+ <xsl:apply-templates select="nist:locality"/>
1402
+ </xsl:if>
1403
+ </fo:basic-link>
1404
+ <!-- </fo:inline> -->
1405
+ </xsl:template>
1406
+
1407
+
1408
+ <xsl:template match="nist:terms[nist:term[nist:preferred and nist:definition]]">
1409
+ <fo:block id="{@id}">
1410
+ <fo:table width="100%" table-layout="fixed">
1411
+ <fo:table-column column-width="22%"/>
1412
+ <fo:table-column column-width="78%"/>
1413
+ <fo:table-body>
1414
+ <xsl:apply-templates mode="table"/>
1415
+ </fo:table-body>
1416
+ </fo:table>
1417
+ </fo:block>
1418
+ </xsl:template>
1419
+ <xsl:template match="nist:term" mode="table">
1420
+ <fo:table-row>
1421
+ <fo:table-cell padding-right="1mm">
1422
+ <fo:block margin-bottom="12pt">
1423
+ <xsl:apply-templates select="nist:preferred"/>
1424
+ </fo:block>
1425
+ </fo:table-cell>
1426
+ <fo:table-cell>
1427
+ <fo:block margin-bottom="12pt">
1428
+ <xsl:apply-templates select="nist:*[local-name(.) != 'preferred']"/>
1429
+ </fo:block>
1430
+ </fo:table-cell>
1431
+ </fo:table-row>
1432
+ </xsl:template>
1433
+ <xsl:template match="nist:preferred">
1434
+ <fo:inline id="{../@id}">
1435
+ <xsl:apply-templates/>
1436
+ </fo:inline>
1437
+ </xsl:template>
1438
+ <xsl:template match="nist:definition/nist:p">
1439
+ <fo:block>
1440
+ <xsl:apply-templates/>
1441
+ </fo:block>
1442
+ </xsl:template>
1443
+
1444
+ <xsl:template match="nist:errata">
1445
+ <!-- <row>
1446
+ <date>05-07-2013</date>
1447
+ <type>Editorial</type>
1448
+ <change>Changed CA-9 Priority Code from P1 to P2 in <xref target="tabled2"/>.</change>
1449
+ <pages>D-3</pages>
1450
+ </row>
1451
+ -->
1452
+ <fo:table table-layout="fixed" width="100%" font-size="10pt" border="1pt solid black">
1453
+ <fo:table-column column-width="20mm"/>
1454
+ <fo:table-column column-width="23mm"/>
1455
+ <fo:table-column column-width="107mm"/>
1456
+ <fo:table-column column-width="15mm"/>
1457
+ <fo:table-body>
1458
+ <fo:table-row font-family="Arial" text-align="center" font-weight="bold" background-color="black" color="white">
1459
+ <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
1460
+ <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
1461
+ <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
1462
+ <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
1463
+ </fo:table-row>
1464
+ <xsl:apply-templates/>
1465
+ </fo:table-body>
1466
+ </fo:table>
1467
+ </xsl:template>
1468
+
1469
+ <xsl:template match="nist:errata/nist:row">
1470
+ <fo:table-row>
1471
+ <xsl:apply-templates/>
1472
+ </fo:table-row>
1473
+ </xsl:template>
1474
+
1475
+ <xsl:template match="nist:errata/nist:row/*">
1476
+ <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
1477
+ <fo:block><xsl:apply-templates/></fo:block>
1478
+ </fo:table-cell>
1479
+ </xsl:template>
1480
+
1481
+ <xsl:template match="nist:quote">
1482
+ <fo:block-container margin-left="7mm" margin-right="7mm">
1483
+ <xsl:apply-templates/>
1484
+ <xsl:apply-templates select="nist:author" mode="process"/>
1485
+ </fo:block-container>
1486
+ </xsl:template>
1487
+
1488
+ <xsl:template match="nist:quote/nist:author"/>
1489
+ <xsl:template match="nist:quote/nist:p">
1490
+ <fo:block text-align="justify" margin-bottom="12pt">
1491
+ <xsl:apply-templates/>
1492
+ </fo:block>
1493
+ </xsl:template>
1494
+ <xsl:template match="nist:quote/nist:author" mode="process">
1495
+ <fo:block text-align="right" margin-left="0.5in" margin-right="0.5in">
1496
+ <fo:inline>— </fo:inline>
1497
+ <xsl:apply-templates/>
1498
+ </fo:block>
1499
+ </xsl:template>
1500
+
1501
+ <xsl:template match="nist:sourcecode">
1502
+ <fo:block font-family="Courier" font-size="10pt" margin-top="6pt" margin-bottom="6pt">
1503
+ <!-- <xsl:choose>
1504
+ <xsl:when test="@lang = 'en'"></xsl:when>
1505
+ <xsl:otherwise> -->
1506
+ <xsl:attribute name="white-space">pre</xsl:attribute>
1507
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
1508
+ <!-- </xsl:otherwise>
1509
+ </xsl:choose> -->
1510
+ <xsl:apply-templates/>
1511
+ </fo:block>
1512
+ </xsl:template>
1513
+
1514
+ <!-- <xsl:template match="nist:dt//nist:stem">
1515
+ <xsl:apply-templates />
1516
+ <xsl:value-of select="$linebreak"/>
1517
+ </xsl:template> -->
1518
+
1519
+
1520
+
1521
+ <xsl:template name="insertHeaderFooter">
1522
+ <xsl:call-template name="insertHeader"/>
1523
+ <xsl:call-template name="insertFooter"/>
1524
+ </xsl:template>
1525
+
1526
+ <xsl:template name="insertHeader">
1527
+ <fo:static-content flow-name="header" font-family="Arial" font-size="7.5pt">
1528
+ <fo:block-container height="1in" display-align="before" color="{$color}">
1529
+ <fo:block padding-top="0.5in" margin-bottom="7pt" line-height="115%"> <!-- text-align-last="justify" -->
1530
+ <fo:table table-layout="fixed" width="100%">
1531
+ <fo:table-column column-width="70%"/>
1532
+ <fo:table-column column-width="30%"/>
1533
+ <fo:table-body>
1534
+ <fo:table-row>
1535
+ <fo:table-cell>
1536
+ <fo:block>
1537
+ <xsl:call-template name="recursiveSmallCaps">
1538
+ <xsl:with-param name="text" select="$seriestitle"/>
1539
+ </xsl:call-template>
1540
+ </fo:block>
1541
+ </fo:table-cell>
1542
+ <fo:table-cell>
1543
+ <fo:block text-align="right">
1544
+ <xsl:call-template name="recursiveSmallCaps">
1545
+ <xsl:with-param name="text" select="$title"/>
1546
+ </xsl:call-template>
1547
+ </fo:block>
1548
+ </fo:table-cell>
1549
+ </fo:table-row>
1550
+ </fo:table-body>
1551
+ </fo:table>
1552
+ <!-- <xsl:call-template name="recursiveSmallCaps">
1553
+ <xsl:with-param name="text" select="$seriestitle"/>
1554
+ </xsl:call-template>
1555
+ <fo:inline keep-together.within-line="always">
1556
+ <fo:leader leader-pattern="space"/>
1557
+ <xsl:call-template name="recursiveSmallCaps">
1558
+ <xsl:with-param name="text" select="$title"/>
1559
+ </xsl:call-template>
1560
+ </fo:inline> -->
1561
+ </fo:block>
1562
+ <!-- <fo:block>
1563
+ <xsl:call-template name="recursiveSmallCaps">
1564
+ <xsl:with-param name="text" select="$date"/>
1565
+ </xsl:call-template>
1566
+ </fo:block> -->
1567
+ </fo:block-container>
1568
+ </fo:static-content>
1569
+ </xsl:template>
1570
+
1571
+ <xsl:template name="insertFooter">
1572
+ <fo:static-content flow-name="footer" font-size="11pt">
1573
+ <fo:block-container height="1in" display-align="after" color="{$color}">
1574
+ <fo:block text-align="center" padding-bottom="0.65in"><fo:page-number/></fo:block>
1575
+ </fo:block-container>
1576
+ </fo:static-content>
1577
+ </xsl:template>
1578
+
1579
+ <xsl:variable name="Image-NIST-Logo">
1580
+ <xsl:text>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
2605
+ </xsl:text>
2606
+ </xsl:variable>
2607
+
2608
+
2609
+ <!-- convert YYYY-MM-DD to (Month YYYY) -->
2610
+ <xsl:template name="formatDate">
2611
+ <xsl:param name="date"/>
2612
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
2613
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
2614
+ <xsl:variable name="day" select="substring($date, 9)"/>
2615
+ <xsl:variable name="monthStr">
2616
+ <xsl:choose>
2617
+ <xsl:when test="$month = '01'">January</xsl:when>
2618
+ <xsl:when test="$month = '02'">February</xsl:when>
2619
+ <xsl:when test="$month = '03'">March</xsl:when>
2620
+ <xsl:when test="$month = '04'">April</xsl:when>
2621
+ <xsl:when test="$month = '05'">May</xsl:when>
2622
+ <xsl:when test="$month = '06'">June</xsl:when>
2623
+ <xsl:when test="$month = '07'">July</xsl:when>
2624
+ <xsl:when test="$month = '08'">August</xsl:when>
2625
+ <xsl:when test="$month = '09'">September</xsl:when>
2626
+ <xsl:when test="$month = '10'">October</xsl:when>
2627
+ <xsl:when test="$month = '11'">November</xsl:when>
2628
+ <xsl:when test="$month = '12'">December</xsl:when>
2629
+ </xsl:choose>
2630
+ </xsl:variable>
2631
+ <xsl:variable name="result" select="normalize-space(concat($monthStr, ' ', $day, ', ', $year))"/>
2632
+ <xsl:value-of select="$result"/>
2633
+ </xsl:template>
2634
+
2635
+ <!-- convert YYYY-MM-DD to MM-DD-YYYY -->
2636
+ <xsl:template name="formatDateDigits">
2637
+ <xsl:param name="date"/>
2638
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
2639
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
2640
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
2641
+ <xsl:if test="$year != ''">
2642
+ <xsl:value-of select="$month"/>-<xsl:value-of select="$day"/>-<xsl:value-of select="$year"/>
2643
+ </xsl:if>
2644
+ </xsl:template>
2645
+
2646
+ <xsl:template name="getLevel">
2647
+ <xsl:variable name="level_total" select="count(ancestor::*)"/>
2648
+ <xsl:variable name="level">
2649
+ <xsl:choose>
2650
+ <xsl:when test="ancestor::nist:sections">
2651
+ <xsl:value-of select="$level_total - 2"/>
2652
+ </xsl:when>
2653
+ <xsl:when test="ancestor::nist:bibliography">
2654
+ <xsl:value-of select="$level_total - 2"/>
2655
+ </xsl:when>
2656
+ <xsl:when test="local-name(ancestor::*[1]) = 'annex'">1</xsl:when>
2657
+ <xsl:otherwise>
2658
+ <xsl:value-of select="$level_total - 1"/>
2659
+ </xsl:otherwise>
2660
+ </xsl:choose>
2661
+ </xsl:variable>
2662
+ <xsl:value-of select="$level"/>
2663
+ </xsl:template>
2664
+
2665
+ <xsl:template name="getSection">
2666
+ <xsl:param name="sectionNum"/>
2667
+ <xsl:variable name="level">
2668
+ <xsl:call-template name="getLevel"/>
2669
+ </xsl:variable>
2670
+ <xsl:variable name="section">
2671
+ <xsl:choose>
2672
+ <xsl:when test="ancestor::nist:bibliography">
2673
+ <xsl:value-of select="$sectionNum"/>
2674
+ </xsl:when>
2675
+ <xsl:when test="ancestor::nist:sections">
2676
+ <!-- 1, 2, 3, 4, ... from main section (not annex, bibliography, ...) -->
2677
+ <xsl:choose>
2678
+ <xsl:when test="$level = 1">
2679
+ <xsl:value-of select="$sectionNum"/>
2680
+ </xsl:when>
2681
+ <xsl:when test="$level &gt;= 2">
2682
+ <xsl:variable name="num">
2683
+ <xsl:number format=".1" level="multiple" count="nist:clause/nist:clause | nist:clause/nist:terms | nist:terms/nist:term | nist:clause/nist:term"/>
2684
+ </xsl:variable>
2685
+ <xsl:value-of select="concat($sectionNum, $num)"/>
2686
+ </xsl:when>
2687
+ <xsl:otherwise>
2688
+ </xsl:otherwise>
2689
+ </xsl:choose>
2690
+ </xsl:when>
2691
+ <xsl:when test="ancestor::nist:annex[@obligation = 'informative']">
2692
+ <xsl:choose>
2693
+ <xsl:when test="$level = 1">
2694
+ <xsl:text>Appendix </xsl:text>
2695
+ <xsl:number format="I" level="any" count="nist:annex[@obligation = 'informative']"/>
2696
+ </xsl:when>
2697
+ <xsl:otherwise>
2698
+ <xsl:number format="I.1" level="multiple" count="nist:annex[@obligation = 'informative'] | nist:clause"/>
2699
+ </xsl:otherwise>
2700
+ </xsl:choose>
2701
+ </xsl:when>
2702
+ <xsl:when test="ancestor::nist:annex">
2703
+ <xsl:choose>
2704
+ <xsl:when test="$level = 1">
2705
+ <xsl:text>Appendix </xsl:text>
2706
+ <xsl:choose>
2707
+ <xsl:when test="count(//nist:annex) = 1">
2708
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/>
2709
+ </xsl:when>
2710
+ <xsl:otherwise>
2711
+ <xsl:number format="A" level="any" count="nist:annex"/>
2712
+ </xsl:otherwise>
2713
+ </xsl:choose>
2714
+ </xsl:when>
2715
+ <xsl:otherwise>
2716
+ <xsl:choose>
2717
+ <xsl:when test="count(//nist:annex) = 1">
2718
+ <xsl:value-of select="/nist:nist-standard/nist:bibdata/nist:ext/nist:structuredidentifier/nist:annexid"/><xsl:number format=".1" level="multiple" count="nist:clause"/>
2719
+ </xsl:when>
2720
+ <xsl:otherwise>
2721
+ <xsl:number format="A.1" level="multiple" count="nist:annex | nist:clause"/>
2722
+ </xsl:otherwise>
2723
+ </xsl:choose>
2724
+ </xsl:otherwise>
2725
+ </xsl:choose>
2726
+ </xsl:when>
2727
+ <xsl:otherwise>
2728
+ </xsl:otherwise>
2729
+ </xsl:choose>
2730
+ </xsl:variable>
2731
+ <xsl:value-of select="$section"/>
2732
+ </xsl:template>
2733
+
2734
+ <xsl:variable xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="linebreak" select="'&#8232;'"/><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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()">
2735
+ <xsl:value-of select="."/>
2736
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
2737
+ <xsl:value-of select="$linebreak"/>
2738
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']//text() | *[local-name()='th']//text()" priority="1">
2739
+ <xsl:call-template name="add-zero-spaces"/>
2740
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
2741
+
2742
+ <xsl:variable name="simple-table">
2743
+ <!-- <xsl:copy> -->
2744
+ <xsl:call-template name="getSimpleTable"/>
2745
+ <!-- </xsl:copy> -->
2746
+ </xsl:variable>
2747
+
2748
+ <!-- DEBUG -->
2749
+ <!-- SourceTable=<xsl:copy-of select="current()"/>EndSourceTable -->
2750
+ <!-- Simpletable=<xsl:copy-of select="$simple-table"/>EndSimpltable -->
2751
+
2752
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2753
+
2754
+
2755
+ <xsl:choose>
2756
+ <xsl:when test="@unnumbered = 'true'"/>
2757
+ <xsl:otherwise>
2758
+
2759
+
2760
+
2761
+ <fo:block font-weight="bold" text-align="center" margin-bottom="6pt" keep-with-next="always">
2762
+
2763
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
2764
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2765
+
2766
+
2767
+
2768
+
2769
+ <xsl:text>Table </xsl:text>
2770
+ <xsl:choose>
2771
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
2772
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
2773
+ </xsl:when>
2774
+ <xsl:when test="ancestor::*[local-name()='annex']">
2775
+
2776
+
2777
+
2778
+ <xsl:variable name="annex-id" select="ancestor::*[local-name()='annex']/@id"/>
2779
+ <xsl:number format="A-" count="*[local-name()='annex']"/>
2780
+ <xsl:number format="1" level="any" count="*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true'][ancestor::*[local-name()='annex'][@id = $annex-id]]"/>
2781
+
2782
+
2783
+
2784
+
2785
+ </xsl:when>
2786
+ <xsl:otherwise>
2787
+ <!-- <xsl:number format="1"/> -->
2788
+ <xsl:number format="A." count="*[local-name()='annex']"/>
2789
+ <!-- <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/> -->
2790
+ <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']"/>
2791
+ </xsl:otherwise>
2792
+ </xsl:choose>
2793
+ <xsl:if test="*[local-name()='name']">
2794
+
2795
+
2796
+
2797
+ <xsl:text> — </xsl:text>
2798
+
2799
+ <xsl:apply-templates select="*[local-name()='name']" mode="process"/>
2800
+ </xsl:if>
2801
+ </fo:block>
2802
+
2803
+
2804
+ </xsl:otherwise>
2805
+ </xsl:choose>
2806
+
2807
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2808
+
2809
+ <!-- <xsl:variable name="cols-count">
2810
+ <xsl:choose>
2811
+ <xsl:when test="*[local-name()='thead']">
2812
+ <xsl:call-template name="calculate-columns-numbers">
2813
+ <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2814
+ </xsl:call-template>
2815
+ </xsl:when>
2816
+ <xsl:otherwise>
2817
+ <xsl:call-template name="calculate-columns-numbers">
2818
+ <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2819
+ </xsl:call-template>
2820
+ </xsl:otherwise>
2821
+ </xsl:choose>
2822
+ </xsl:variable> -->
2823
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2824
+ <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2825
+
2826
+
2827
+
2828
+ <xsl:variable name="colwidths">
2829
+ <xsl:call-template name="calculate-column-widths">
2830
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2831
+ <xsl:with-param name="table" select="$simple-table"/>
2832
+ </xsl:call-template>
2833
+ </xsl:variable>
2834
+
2835
+ <xsl:variable name="colwidths2">
2836
+ <xsl:call-template name="calculate-column-widths">
2837
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2838
+ </xsl:call-template>
2839
+ </xsl:variable>
2840
+
2841
+ <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2842
+ colwidthsNew=<xsl:copy-of select="$colwidths"/>
2843
+ colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2844
+
2845
+ <xsl:variable name="margin-left">
2846
+ <xsl:choose>
2847
+ <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2848
+ <xsl:otherwise>0</xsl:otherwise>
2849
+ </xsl:choose>
2850
+ </xsl:variable>
2851
+
2852
+ <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2853
+
2854
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+ <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm">
2861
+
2862
+
2863
+
2864
+
2865
+ <xsl:if test="ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface']">
2866
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2867
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2868
+ </xsl:if>
2869
+ <xsl:if test="not(ancestor::*[local-name()='annex'] or ancestor::*[local-name()='preface'])">
2870
+ <xsl:attribute name="font-family">Times New Roman</xsl:attribute>
2871
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
2872
+ </xsl:if>
2873
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2880
+ <xsl:choose>
2881
+ <xsl:when test=". = 1">
2882
+ <fo:table-column column-width="proportional-column-width(2)"/>
2883
+ </xsl:when>
2884
+ <xsl:otherwise>
2885
+ <fo:table-column column-width="proportional-column-width({.})"/>
2886
+ </xsl:otherwise>
2887
+ </xsl:choose>
2888
+ </xsl:for-each>
2889
+ <xsl:apply-templates/>
2890
+ </fo:table>
2891
+ </fo:block-container>
2892
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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">
2893
+ <xsl:apply-templates/>
2894
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
2895
+ <xsl:param name="table-row"/>
2896
+ <xsl:variable name="columns-count" select="count($table-row/*)"/>
2897
+ <xsl:variable name="sum-colspans" select="sum($table-row/*/@colspan)"/>
2898
+ <xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
2899
+ <xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
2900
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
2901
+ <xsl:param name="table"/>
2902
+ <xsl:param name="cols-count"/>
2903
+ <xsl:param name="curr-col" select="1"/>
2904
+ <xsl:param name="width" select="0"/>
2905
+
2906
+ <xsl:if test="$curr-col &lt;= $cols-count">
2907
+ <xsl:variable name="widths">
2908
+ <xsl:choose>
2909
+ <xsl:when test="not($table)">
2910
+ <xsl:for-each select="*[local-name()='thead']//*[local-name()='tr']">
2911
+ <xsl:variable name="words">
2912
+ <xsl:call-template name="tokenize">
2913
+ <xsl:with-param name="text" select="translate(*[local-name()='th'][$curr-col],'- —:', ' ')"/>
2914
+ </xsl:call-template>
2915
+ </xsl:variable>
2916
+ <xsl:variable name="max_length">
2917
+ <xsl:call-template name="max_length">
2918
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2919
+ </xsl:call-template>
2920
+ </xsl:variable>
2921
+ <width>
2922
+ <xsl:value-of select="$max_length"/>
2923
+ </width>
2924
+ </xsl:for-each>
2925
+ <xsl:for-each select="*[local-name()='tbody']//*[local-name()='tr']">
2926
+ <xsl:variable name="words">
2927
+ <xsl:call-template name="tokenize">
2928
+ <xsl:with-param name="text" select="translate(*[local-name()='td'][$curr-col],'- —:', ' ')"/>
2929
+ </xsl:call-template>
2930
+ </xsl:variable>
2931
+ <xsl:variable name="max_length">
2932
+ <xsl:call-template name="max_length">
2933
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2934
+ </xsl:call-template>
2935
+ </xsl:variable>
2936
+ <width>
2937
+ <xsl:value-of select="$max_length"/>
2938
+ </width>
2939
+
2940
+ </xsl:for-each>
2941
+ </xsl:when>
2942
+ <xsl:otherwise>
2943
+ <xsl:for-each select="xalan:nodeset($table)//tr">
2944
+ <xsl:variable name="words">
2945
+ <xsl:call-template name="tokenize">
2946
+ <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/>
2947
+ </xsl:call-template>
2948
+ </xsl:variable>
2949
+ <xsl:variable name="max_length">
2950
+ <xsl:call-template name="max_length">
2951
+ <xsl:with-param name="words" select="xalan:nodeset($words)"/>
2952
+ </xsl:call-template>
2953
+ </xsl:variable>
2954
+ <width>
2955
+ <xsl:variable name="divider">
2956
+ <xsl:choose>
2957
+ <xsl:when test="td[$curr-col]/@divide">
2958
+ <xsl:value-of select="td[$curr-col]/@divide"/>
2959
+ </xsl:when>
2960
+ <xsl:otherwise>1</xsl:otherwise>
2961
+ </xsl:choose>
2962
+ </xsl:variable>
2963
+ <xsl:value-of select="$max_length div $divider"/>
2964
+ </width>
2965
+
2966
+ </xsl:for-each>
2967
+
2968
+ </xsl:otherwise>
2969
+ </xsl:choose>
2970
+ </xsl:variable>
2971
+
2972
+
2973
+ <column>
2974
+ <xsl:for-each select="xalan:nodeset($widths)//width">
2975
+ <xsl:sort select="." data-type="number" order="descending"/>
2976
+ <xsl:if test="position()=1">
2977
+ <xsl:value-of select="."/>
2978
+ </xsl:if>
2979
+ </xsl:for-each>
2980
+ </column>
2981
+ <xsl:call-template name="calculate-column-widths">
2982
+ <xsl:with-param name="cols-count" select="$cols-count"/>
2983
+ <xsl:with-param name="curr-col" select="$curr-col +1"/>
2984
+ <xsl:with-param name="table" select="$table"/>
2985
+ </xsl:call-template>
2986
+ </xsl:if>
2987
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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">
2988
+ <!-- <fo:table-header font-weight="bold">
2989
+ <xsl:apply-templates />
2990
+ </fo:table-header> -->
2991
+ <xsl:apply-templates/>
2992
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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">
2993
+ <xsl:apply-templates/>
2994
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
2995
+ <xsl:variable name="cols-count">
2996
+ <xsl:choose>
2997
+ <xsl:when test="../*[local-name()='thead']">
2998
+ <!-- <xsl:value-of select="count(../*[local-name()='thead']/*[local-name()='tr']/*[local-name()='th'])"/> -->
2999
+ <xsl:call-template name="calculate-columns-numbers">
3000
+ <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
3001
+ </xsl:call-template>
3002
+ </xsl:when>
3003
+ <xsl:otherwise>
3004
+ <!-- <xsl:value-of select="count(./*[local-name()='tr'][1]/*[local-name()='td'])"/> -->
3005
+ <xsl:call-template name="calculate-columns-numbers">
3006
+ <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
3007
+ </xsl:call-template>
3008
+ </xsl:otherwise>
3009
+ </xsl:choose>
3010
+ </xsl:variable>
3011
+
3012
+ <fo:table-body>
3013
+ <xsl:apply-templates select="../*[local-name()='thead']" mode="process"/>
3014
+ <xsl:apply-templates/>
3015
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3016
+ <!-- if there are note(s) or fn(s) then create footer row -->
3017
+ <xsl:if test="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']">
3018
+ <fo:table-row>
3019
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3020
+
3021
+
3022
+ <!-- fn will be processed inside 'note' processing -->
3023
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3024
+ <!-- fn processing -->
3025
+ <xsl:call-template name="fn_display"/>
3026
+
3027
+ </fo:table-cell>
3028
+ </fo:table-row>
3029
+
3030
+ </xsl:if>
3031
+ </fo:table-body>
3032
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3033
+ <xsl:variable name="parent-name" select="local-name(..)"/>
3034
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3035
+ <fo:table-row min-height="4mm">
3036
+ <xsl:if test="$parent-name = 'thead'">
3037
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3038
+
3039
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
3040
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3041
+
3042
+
3043
+
3044
+
3045
+ </xsl:if>
3046
+ <xsl:if test="$parent-name = 'tfoot'">
3047
+
3048
+ </xsl:if>
3049
+
3050
+ <xsl:apply-templates/>
3051
+ </fo:table-row>
3052
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3053
+ <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
3054
+
3055
+
3056
+
3057
+ <xsl:attribute name="text-align">center</xsl:attribute>
3058
+ <xsl:attribute name="background-color">black</xsl:attribute>
3059
+ <xsl:attribute name="color">white</xsl:attribute>
3060
+
3061
+
3062
+
3063
+
3064
+ <xsl:if test="@colspan">
3065
+ <xsl:attribute name="number-columns-spanned">
3066
+ <xsl:value-of select="@colspan"/>
3067
+ </xsl:attribute>
3068
+ </xsl:if>
3069
+ <xsl:if test="@rowspan">
3070
+ <xsl:attribute name="number-rows-spanned">
3071
+ <xsl:value-of select="@rowspan"/>
3072
+ </xsl:attribute>
3073
+ </xsl:if>
3074
+ <fo:block>
3075
+ <xsl:apply-templates/>
3076
+ </fo:block>
3077
+ </fo:table-cell>
3078
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3079
+ <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
3080
+
3081
+
3082
+
3083
+
3084
+
3085
+
3086
+ <xsl:if test="ancestor::*[local-name()='thead']">
3087
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
3088
+ </xsl:if>
3089
+
3090
+ <xsl:if test="@colspan">
3091
+ <xsl:attribute name="number-columns-spanned">
3092
+ <xsl:value-of select="@colspan"/>
3093
+ </xsl:attribute>
3094
+ </xsl:if>
3095
+ <xsl:if test="@rowspan">
3096
+ <xsl:attribute name="number-rows-spanned">
3097
+ <xsl:value-of select="@rowspan"/>
3098
+ </xsl:attribute>
3099
+ </xsl:if>
3100
+ <fo:block>
3101
+ <xsl:apply-templates/>
3102
+ </fo:block>
3103
+ <!-- <xsl:choose>
3104
+ <xsl:when test="count(*) = 1 and *[local-name() = 'p']">
3105
+ <xsl:apply-templates />
3106
+ </xsl:when>
3107
+ <xsl:otherwise>
3108
+ <fo:block>
3109
+ <xsl:apply-templates />
3110
+ </fo:block>
3111
+ </xsl:otherwise>
3112
+ </xsl:choose> -->
3113
+
3114
+
3115
+ </fo:table-cell>
3116
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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">
3117
+
3118
+
3119
+ <fo:block font-size="10pt" margin-bottom="12pt">
3120
+
3121
+ <fo:inline padding-right="2mm">
3122
+ <xsl:text>NOTE </xsl:text>
3123
+
3124
+
3125
+ <xsl:number format="1 "/>
3126
+
3127
+ </fo:inline>
3128
+ <xsl:apply-templates mode="process"/>
3129
+ </fo:block>
3130
+
3131
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3132
+ <xsl:apply-templates/>
3133
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3134
+ <xsl:variable name="references">
3135
+ <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
3136
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3137
+
3138
+
3139
+ <xsl:apply-templates/>
3140
+ </fn>
3141
+ </xsl:for-each>
3142
+ </xsl:variable>
3143
+ <xsl:for-each select="xalan:nodeset($references)//fn">
3144
+ <xsl:variable name="reference" select="@reference"/>
3145
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3146
+ <fo:block margin-bottom="12pt">
3147
+
3148
+ <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3149
+
3150
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3151
+
3152
+
3153
+
3154
+
3155
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3156
+
3157
+ <xsl:value-of select="@reference"/>
3158
+
3159
+ </fo:inline>
3160
+ <fo:inline>
3161
+
3162
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3163
+
3164
+ <xsl:apply-templates/>
3165
+ </fo:inline>
3166
+ </fo:block>
3167
+ </xsl:if>
3168
+ </xsl:for-each>
3169
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3170
+ <!-- <xsl:variable name="references">
3171
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3172
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3173
+ <xsl:apply-templates />
3174
+ </fn>
3175
+ </xsl:for-each>
3176
+ </xsl:variable>
3177
+ $references=<xsl:copy-of select="$references"/> -->
3178
+ <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3179
+ <xsl:variable name="reference" select="@reference"/>
3180
+ <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
3181
+ <fo:block margin-bottom="12pt">
3182
+ <xsl:apply-templates/>
3183
+ </fo:block>
3184
+ </xsl:for-each>
3185
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3186
+ <xsl:variable name="key_iso">
3187
+ <!-- and (not(@class) or @class !='pseudocode') -->
3188
+ </xsl:variable>
3189
+ <xsl:variable name="references">
3190
+ <xsl:for-each select=".//*[local-name()='fn']">
3191
+ <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3192
+ <xsl:apply-templates/>
3193
+ </fn>
3194
+ </xsl:for-each>
3195
+ </xsl:variable>
3196
+ <xsl:if test="xalan:nodeset($references)//fn">
3197
+ <fo:block>
3198
+ <fo:table width="95%" table-layout="fixed">
3199
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3200
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3201
+ </xsl:if>
3202
+ <fo:table-column column-width="15%"/>
3203
+ <fo:table-column column-width="85%"/>
3204
+ <fo:table-body>
3205
+ <xsl:for-each select="xalan:nodeset($references)//fn">
3206
+ <xsl:variable name="reference" select="@reference"/>
3207
+ <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3208
+ <fo:table-row>
3209
+ <fo:table-cell>
3210
+ <fo:block>
3211
+ <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
3212
+
3213
+ <xsl:value-of select="@reference"/>
3214
+ </fo:inline>
3215
+ </fo:block>
3216
+ </fo:table-cell>
3217
+ <fo:table-cell>
3218
+ <fo:block text-align="justify" margin-bottom="12pt">
3219
+
3220
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3221
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
3222
+ </xsl:if>
3223
+
3224
+ <xsl:apply-templates/>
3225
+ </fo:block>
3226
+ </fo:table-cell>
3227
+ </fo:table-row>
3228
+ </xsl:if>
3229
+ </xsl:for-each>
3230
+ </fo:table-body>
3231
+ </fo:table>
3232
+ </fo:block>
3233
+ </xsl:if>
3234
+
3235
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3236
+ <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3237
+ <fo:inline font-size="80%" keep-with-previous.within-line="always">
3238
+
3239
+
3240
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
3241
+ <xsl:attribute name="color">blue</xsl:attribute>
3242
+
3243
+
3244
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
3245
+
3246
+ <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
3247
+
3248
+ <xsl:value-of select="@reference"/>
3249
+ </fo:basic-link>
3250
+ </fo:inline>
3251
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3252
+ <fo:inline>
3253
+ <xsl:apply-templates/>
3254
+ </fo:inline>
3255
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3256
+ <xsl:variable name="parent" select="local-name(..)"/>
3257
+
3258
+ <xsl:variable name="key_iso">
3259
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
3260
+ </xsl:variable>
3261
+
3262
+ <xsl:choose>
3263
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3264
+
3265
+
3266
+ <fo:block margin-bottom="12pt" text-align="left">
3267
+
3268
+ <xsl:text>where </xsl:text>
3269
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
3270
+ <xsl:text/>
3271
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3272
+ </fo:block>
3273
+
3274
+ </xsl:when>
3275
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3276
+ <fo:block margin-bottom="12pt" text-align="left">
3277
+
3278
+
3279
+
3280
+ <xsl:text>where</xsl:text>
3281
+ </fo:block>
3282
+ </xsl:when>
3283
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
3284
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt">
3285
+
3286
+ <xsl:text>Key</xsl:text>
3287
+ </fo:block>
3288
+ </xsl:when>
3289
+ </xsl:choose>
3290
+
3291
+ <!-- a few components -->
3292
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
3293
+ <fo:block>
3294
+
3295
+
3296
+
3297
+ <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
3298
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
3299
+ </xsl:if>
3300
+
3301
+
3302
+ <fo:block>
3303
+
3304
+ <xsl:if test="not(.//*[local-name()='dt']//*[local-name()='stem'])">
3305
+ <xsl:attribute name="margin-left">-2.5mm</xsl:attribute>
3306
+ </xsl:if>
3307
+
3308
+ <!-- create virtual html table for dl/[dt and dd] -->
3309
+ <xsl:variable name="html-table">
3310
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3311
+ <xsl:element name="{$ns}:table">
3312
+ <tbody>
3313
+ <xsl:apply-templates mode="dl"/>
3314
+ </tbody>
3315
+ </xsl:element>
3316
+ </xsl:variable>
3317
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
3318
+ <xsl:variable name="colwidths">
3319
+ <xsl:call-template name="calculate-column-widths">
3320
+ <xsl:with-param name="cols-count" select="2"/>
3321
+ <xsl:with-param name="table" select="$html-table"/>
3322
+ </xsl:call-template>
3323
+ </xsl:variable>
3324
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
3325
+
3326
+ <fo:table width="95%" table-layout="fixed">
3327
+ <xsl:choose>
3328
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
3329
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
3330
+ </xsl:when>
3331
+ <xsl:when test="normalize-space($key_iso) = 'true'">
3332
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3333
+ </xsl:when>
3334
+ </xsl:choose>
3335
+ <xsl:choose>
3336
+ <xsl:when test="ancestor::*[local-name()='dl']"><!-- second level, i.e. inlined table -->
3337
+ <fo:table-column column-width="50%"/>
3338
+ <fo:table-column column-width="50%"/>
3339
+ </xsl:when>
3340
+ <xsl:otherwise>
3341
+ <xsl:choose>
3342
+ <!-- <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.7">
3343
+ <fo:table-column column-width="60%"/>
3344
+ <fo:table-column column-width="40%"/>
3345
+ </xsl:when> -->
3346
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 1.3">
3347
+ <fo:table-column column-width="50%"/>
3348
+ <fo:table-column column-width="50%"/>
3349
+ </xsl:when>
3350
+ <xsl:when test="xalan:nodeset($colwidths)/column[1] div xalan:nodeset($colwidths)/column[2] &gt; 0.5">
3351
+ <fo:table-column column-width="40%"/>
3352
+ <fo:table-column column-width="60%"/>
3353
+ </xsl:when>
3354
+ <xsl:otherwise>
3355
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
3356
+ <xsl:choose>
3357
+ <xsl:when test=". = 1">
3358
+ <fo:table-column column-width="proportional-column-width(2)"/>
3359
+ </xsl:when>
3360
+ <xsl:otherwise>
3361
+ <fo:table-column column-width="proportional-column-width({.})"/>
3362
+ </xsl:otherwise>
3363
+ </xsl:choose>
3364
+ </xsl:for-each>
3365
+ </xsl:otherwise>
3366
+ </xsl:choose>
3367
+ <!-- <fo:table-column column-width="15%"/>
3368
+ <fo:table-column column-width="85%"/> -->
3369
+ </xsl:otherwise>
3370
+ </xsl:choose>
3371
+ <fo:table-body>
3372
+ <xsl:apply-templates>
3373
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
3374
+ </xsl:apply-templates>
3375
+ </fo:table-body>
3376
+ </fo:table>
3377
+ </fo:block>
3378
+ </fo:block>
3379
+ </xsl:if>
3380
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3381
+ <xsl:param name="key_iso"/>
3382
+
3383
+ <!-- <tr>
3384
+ <td>NOTE</td>
3385
+ <td>
3386
+ <xsl:apply-templates />
3387
+ </td>
3388
+ </tr>
3389
+ -->
3390
+ <fo:table-row>
3391
+ <fo:table-cell>
3392
+ <fo:block margin-top="6pt">
3393
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3394
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3395
+ </xsl:if>
3396
+ NOTE
3397
+ </fo:block>
3398
+ </fo:table-cell>
3399
+ <fo:table-cell>
3400
+ <fo:block>
3401
+ <xsl:apply-templates/>
3402
+ </fo:block>
3403
+ </fo:table-cell>
3404
+ </fo:table-row>
3405
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3406
+ <tr>
3407
+ <td>
3408
+ <xsl:apply-templates/>
3409
+ </td>
3410
+ <td>
3411
+
3412
+ <xsl:if test="local-name(*[1]) != 'stem'">
3413
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3414
+ </xsl:if>
3415
+
3416
+
3417
+ </td>
3418
+ </tr>
3419
+
3420
+ <xsl:if test="local-name(*[1]) = 'stem'">
3421
+ <tr>
3422
+ <td>
3423
+ <xsl:text> </xsl:text>
3424
+ </td>
3425
+ <td>
3426
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="dl_process"/>
3427
+ </td>
3428
+ </tr>
3429
+ </xsl:if>
3430
+
3431
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3432
+ <xsl:param name="key_iso"/>
3433
+
3434
+ <fo:table-row>
3435
+ <fo:table-cell>
3436
+ <fo:block margin-top="6pt">
3437
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3438
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3439
+
3440
+ </xsl:if>
3441
+
3442
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3443
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3444
+
3445
+
3446
+ <xsl:apply-templates/>
3447
+ </fo:block>
3448
+ </fo:table-cell>
3449
+ <fo:table-cell>
3450
+ <fo:block>
3451
+
3452
+
3453
+ <xsl:if test="local-name(*[1]) != 'stem'">
3454
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3455
+ </xsl:if>
3456
+
3457
+
3458
+ </fo:block>
3459
+ </fo:table-cell>
3460
+ </fo:table-row>
3461
+
3462
+ <xsl:if test="local-name(*[1]) = 'stem'">
3463
+ <fo:table-row>
3464
+ <fo:table-cell>
3465
+ <fo:block margin-top="6pt">
3466
+ <xsl:if test="normalize-space($key_iso) = 'true'">
3467
+ <xsl:attribute name="margin-top">0</xsl:attribute>
3468
+ </xsl:if>
3469
+ <xsl:text> </xsl:text>
3470
+ </fo:block>
3471
+ </fo:table-cell>
3472
+ <fo:table-cell>
3473
+ <fo:block>
3474
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3475
+ </fo:block>
3476
+ </fo:table-cell>
3477
+ </fo:table-row>
3478
+ </xsl:if>
3479
+
3480
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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">
3481
+ <xsl:apply-templates/>
3482
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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">
3483
+ <xsl:apply-templates/>
3484
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3485
+ <fo:inline><xsl:apply-templates/></fo:inline>
3486
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3487
+ <fo:inline font-style="italic">
3488
+ <xsl:apply-templates/>
3489
+ </fo:inline>
3490
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3491
+ <fo:inline font-weight="bold">
3492
+ <xsl:apply-templates/>
3493
+ </fo:inline>
3494
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3495
+ <fo:inline font-size="80%" vertical-align="super">
3496
+ <xsl:apply-templates/>
3497
+ </fo:inline>
3498
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3499
+ <fo:inline font-size="80%" vertical-align="sub">
3500
+ <xsl:apply-templates/>
3501
+ </fo:inline>
3502
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3503
+ <fo:inline font-family="Courier" font-size="10pt">
3504
+ <xsl:apply-templates/>
3505
+ </fo:inline>
3506
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']">
3507
+ <fo:inline font-size="10pt" color="red" text-decoration="line-through">
3508
+ <xsl:apply-templates/>
3509
+ </fo:inline>
3510
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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']]">
3511
+ <xsl:variable name="text" select="normalize-space(.)"/>
3512
+ <fo:inline font-size="75%">
3513
+ <xsl:if test="string-length($text) &gt; 0">
3514
+ <xsl:call-template name="recursiveSmallCaps">
3515
+ <xsl:with-param name="text" select="$text"/>
3516
+ </xsl:call-template>
3517
+ </xsl:if>
3518
+ </fo:inline>
3519
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3520
+ <xsl:param name="text"/>
3521
+ <xsl:variable name="char" select="substring($text,1,1)"/>
3522
+ <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/>
3523
+ <xsl:choose>
3524
+ <xsl:when test="$char=$upperCase">
3525
+ <fo:inline font-size="{100 div 0.75}%">
3526
+ <xsl:value-of select="$upperCase"/>
3527
+ </fo:inline>
3528
+ </xsl:when>
3529
+ <xsl:otherwise>
3530
+ <xsl:value-of select="$upperCase"/>
3531
+ </xsl:otherwise>
3532
+ </xsl:choose>
3533
+ <xsl:if test="string-length($text) &gt; 1">
3534
+ <xsl:call-template name="recursiveSmallCaps">
3535
+ <xsl:with-param name="text" select="substring($text,2)"/>
3536
+ </xsl:call-template>
3537
+ </xsl:if>
3538
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3539
+ <xsl:param name="text"/>
3540
+ <xsl:param name="separator" select="' '"/>
3541
+ <xsl:choose>
3542
+ <xsl:when test="not(contains($text, $separator))">
3543
+ <word>
3544
+ <xsl:variable name="str_no_en_chars" select="normalize-space(translate($text, $en_chars, ''))"/>
3545
+ <xsl:variable name="len_str_no_en_chars" select="string-length($str_no_en_chars)"/>
3546
+ <xsl:variable name="len_str_tmp" select="string-length(normalize-space($text))"/>
3547
+ <xsl:variable name="len_str">
3548
+ <xsl:choose>
3549
+ <xsl:when test="normalize-space(translate($text, $upper, '')) = ''"> <!-- english word in CAPITAL letters -->
3550
+ <xsl:value-of select="$len_str_tmp * 1.5"/>
3551
+ </xsl:when>
3552
+ <xsl:otherwise>
3553
+ <xsl:value-of select="$len_str_tmp"/>
3554
+ </xsl:otherwise>
3555
+ </xsl:choose>
3556
+ </xsl:variable>
3557
+
3558
+ <!-- <xsl:if test="$len_str_no_en_chars div $len_str &gt; 0.8">
3559
+ <xsl:message>
3560
+ div=<xsl:value-of select="$len_str_no_en_chars div $len_str"/>
3561
+ len_str=<xsl:value-of select="$len_str"/>
3562
+ len_str_no_en_chars=<xsl:value-of select="$len_str_no_en_chars"/>
3563
+ </xsl:message>
3564
+ </xsl:if> -->
3565
+ <!-- <len_str_no_en_chars><xsl:value-of select="$len_str_no_en_chars"/></len_str_no_en_chars>
3566
+ <len_str><xsl:value-of select="$len_str"/></len_str> -->
3567
+ <xsl:choose>
3568
+ <xsl:when test="$len_str_no_en_chars div $len_str &gt; 0.8"> <!-- means non-english string -->
3569
+ <xsl:value-of select="$len_str - $len_str_no_en_chars"/>
3570
+ </xsl:when>
3571
+ <xsl:otherwise>
3572
+ <xsl:value-of select="$len_str"/>
3573
+ </xsl:otherwise>
3574
+ </xsl:choose>
3575
+ </word>
3576
+ </xsl:when>
3577
+ <xsl:otherwise>
3578
+ <word>
3579
+ <xsl:value-of select="string-length(normalize-space(substring-before($text, $separator)))"/>
3580
+ </word>
3581
+ <xsl:call-template name="tokenize">
3582
+ <xsl:with-param name="text" select="substring-after($text, $separator)"/>
3583
+ </xsl:call-template>
3584
+ </xsl:otherwise>
3585
+ </xsl:choose>
3586
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3587
+ <xsl:param name="words"/>
3588
+ <xsl:for-each select="$words//word">
3589
+ <xsl:sort select="." data-type="number" order="descending"/>
3590
+ <xsl:if test="position()=1">
3591
+ <xsl:value-of select="."/>
3592
+ </xsl:if>
3593
+ </xsl:for-each>
3594
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3595
+ <xsl:param name="text" select="."/>
3596
+ <xsl:variable name="zero-space-after-chars">-</xsl:variable>
3597
+ <xsl:variable name="zero-space-after-dot">.</xsl:variable>
3598
+ <xsl:variable name="zero-space-after-colon">:</xsl:variable>
3599
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3600
+ <xsl:variable name="zero-space">​</xsl:variable>
3601
+ <xsl:choose>
3602
+ <xsl:when test="contains($text, $zero-space-after-chars)">
3603
+ <xsl:value-of select="substring-before($text, $zero-space-after-chars)"/>
3604
+ <xsl:value-of select="$zero-space-after-chars"/>
3605
+ <xsl:value-of select="$zero-space"/>
3606
+ <xsl:call-template name="add-zero-spaces">
3607
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-chars)"/>
3608
+ </xsl:call-template>
3609
+ </xsl:when>
3610
+ <xsl:when test="contains($text, $zero-space-after-dot)">
3611
+ <xsl:value-of select="substring-before($text, $zero-space-after-dot)"/>
3612
+ <xsl:value-of select="$zero-space-after-dot"/>
3613
+ <xsl:value-of select="$zero-space"/>
3614
+ <xsl:call-template name="add-zero-spaces">
3615
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-dot)"/>
3616
+ </xsl:call-template>
3617
+ </xsl:when>
3618
+ <xsl:when test="contains($text, $zero-space-after-colon)">
3619
+ <xsl:value-of select="substring-before($text, $zero-space-after-colon)"/>
3620
+ <xsl:value-of select="$zero-space-after-colon"/>
3621
+ <xsl:value-of select="$zero-space"/>
3622
+ <xsl:call-template name="add-zero-spaces">
3623
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-colon)"/>
3624
+ </xsl:call-template>
3625
+ </xsl:when>
3626
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3627
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3628
+ <xsl:value-of select="$zero-space-after-equal"/>
3629
+ <xsl:value-of select="$zero-space"/>
3630
+ <xsl:call-template name="add-zero-spaces">
3631
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3632
+ </xsl:call-template>
3633
+ </xsl:when>
3634
+ <xsl:otherwise>
3635
+ <xsl:value-of select="$text"/>
3636
+ </xsl:otherwise>
3637
+ </xsl:choose>
3638
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3639
+ <xsl:param name="text" select="."/>
3640
+ <xsl:variable name="zero-space-after-equals">==========</xsl:variable>
3641
+ <xsl:variable name="zero-space-after-equal">=</xsl:variable>
3642
+ <xsl:variable name="zero-space">​</xsl:variable>
3643
+ <xsl:choose>
3644
+ <xsl:when test="contains($text, $zero-space-after-equals)">
3645
+ <xsl:value-of select="substring-before($text, $zero-space-after-equals)"/>
3646
+ <xsl:value-of select="$zero-space-after-equals"/>
3647
+ <xsl:value-of select="$zero-space"/>
3648
+ <xsl:call-template name="add-zero-spaces-equal">
3649
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equals)"/>
3650
+ </xsl:call-template>
3651
+ </xsl:when>
3652
+ <xsl:when test="contains($text, $zero-space-after-equal)">
3653
+ <xsl:value-of select="substring-before($text, $zero-space-after-equal)"/>
3654
+ <xsl:value-of select="$zero-space-after-equal"/>
3655
+ <xsl:value-of select="$zero-space"/>
3656
+ <xsl:call-template name="add-zero-spaces-equal">
3657
+ <xsl:with-param name="text" select="substring-after($text, $zero-space-after-equal)"/>
3658
+ </xsl:call-template>
3659
+ </xsl:when>
3660
+ <xsl:otherwise>
3661
+ <xsl:value-of select="$text"/>
3662
+ </xsl:otherwise>
3663
+ </xsl:choose>
3664
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3665
+ <xsl:variable name="simple-table">
3666
+
3667
+ <!-- Step 1. colspan processing -->
3668
+ <xsl:variable name="simple-table-colspan">
3669
+ <tbody>
3670
+ <xsl:apply-templates mode="simple-table-colspan"/>
3671
+ </tbody>
3672
+ </xsl:variable>
3673
+
3674
+ <!-- Step 2. rowspan processing -->
3675
+ <xsl:variable name="simple-table-rowspan">
3676
+ <xsl:apply-templates select="xalan:nodeset($simple-table-colspan)" mode="simple-table-rowspan"/>
3677
+ </xsl:variable>
3678
+
3679
+ <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
3680
+
3681
+ <!-- <xsl:choose>
3682
+ <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
3683
+
3684
+ </xsl:when>
3685
+ <xsl:otherwise>
3686
+ <xsl:copy-of select="current()"/>
3687
+ </xsl:otherwise>
3688
+ </xsl:choose> -->
3689
+ </xsl:variable>
3690
+ <xsl:copy-of select="$simple-table"/>
3691
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3692
+ <xsl:apply-templates mode="simple-table-colspan"/>
3693
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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">
3694
+ <xsl:choose>
3695
+ <xsl:when test="@colspan">
3696
+ <xsl:variable name="td">
3697
+ <xsl:element name="td">
3698
+ <xsl:attribute name="divide"><xsl:value-of select="@colspan"/></xsl:attribute>
3699
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3700
+ <xsl:apply-templates mode="simple-table-colspan"/>
3701
+ </xsl:element>
3702
+ </xsl:variable>
3703
+ <xsl:call-template name="repeatNode">
3704
+ <xsl:with-param name="count" select="@colspan"/>
3705
+ <xsl:with-param name="node" select="$td"/>
3706
+ </xsl:call-template>
3707
+ </xsl:when>
3708
+ <xsl:otherwise>
3709
+ <xsl:element name="td">
3710
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3711
+ <xsl:apply-templates mode="simple-table-colspan"/>
3712
+ </xsl:element>
3713
+ </xsl:otherwise>
3714
+ </xsl:choose>
3715
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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:itu="https://www.metanorma.org/ns/itu" 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">
3716
+ <xsl:element name="tr">
3717
+ <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
3718
+ <xsl:apply-templates mode="simple-table-colspan"/>
3719
+ </xsl:element>
3720
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3721
+ <xsl:copy>
3722
+ <xsl:apply-templates select="@*|node()" mode="simple-table-colspan"/>
3723
+ </xsl:copy>
3724
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3725
+ <xsl:param name="count"/>
3726
+ <xsl:param name="node"/>
3727
+
3728
+ <xsl:if test="$count &gt; 0">
3729
+ <xsl:call-template name="repeatNode">
3730
+ <xsl:with-param name="count" select="$count - 1"/>
3731
+ <xsl:with-param name="node" select="$node"/>
3732
+ </xsl:call-template>
3733
+ <xsl:copy-of select="$node"/>
3734
+ </xsl:if>
3735
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3736
+ <xsl:copy>
3737
+ <xsl:apply-templates select="@*|node()" mode="simple-table-rowspan"/>
3738
+ </xsl:copy>
3739
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3740
+ <xsl:copy>
3741
+ <xsl:copy-of select="tr[1]"/>
3742
+ <xsl:apply-templates select="tr[2]" mode="simple-table-rowspan">
3743
+ <xsl:with-param name="previousRow" select="tr[1]"/>
3744
+ </xsl:apply-templates>
3745
+ </xsl:copy>
3746
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3747
+ <xsl:param name="previousRow"/>
3748
+ <xsl:variable name="currentRow" select="."/>
3749
+
3750
+ <xsl:variable name="normalizedTDs">
3751
+ <xsl:for-each select="xalan:nodeset($previousRow)//td">
3752
+ <xsl:choose>
3753
+ <xsl:when test="@rowspan &gt; 1">
3754
+ <xsl:copy>
3755
+ <xsl:attribute name="rowspan">
3756
+ <xsl:value-of select="@rowspan - 1"/>
3757
+ </xsl:attribute>
3758
+ <xsl:copy-of select="@*[not(name() = 'rowspan')]"/>
3759
+ <xsl:copy-of select="node()"/>
3760
+ </xsl:copy>
3761
+ </xsl:when>
3762
+ <xsl:otherwise>
3763
+ <xsl:copy-of select="$currentRow/td[1 + count(current()/preceding-sibling::td[not(@rowspan) or (@rowspan = 1)])]"/>
3764
+ </xsl:otherwise>
3765
+ </xsl:choose>
3766
+ </xsl:for-each>
3767
+ </xsl:variable>
3768
+
3769
+ <xsl:variable name="newRow">
3770
+ <xsl:copy>
3771
+ <xsl:copy-of select="$currentRow/@*"/>
3772
+ <xsl:copy-of select="xalan:nodeset($normalizedTDs)"/>
3773
+ </xsl:copy>
3774
+ </xsl:variable>
3775
+ <xsl:copy-of select="$newRow"/>
3776
+
3777
+ <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
3778
+ <xsl:with-param name="previousRow" select="$newRow"/>
3779
+ </xsl:apply-templates>
3780
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3781
+ <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3782
+ <xsl:choose>
3783
+ <xsl:when test="$language = 'English'">en</xsl:when>
3784
+ <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
3785
+ </xsl:choose>
3786
+ </xsl:template><xsl:template xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" 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">
3787
+ <xsl:param name="str"/>
3788
+ <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
3789
+ <xsl:choose>
3790
+ <xsl:when test="contains($str2, ' ')">
3791
+ <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3792
+ <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3793
+ <xsl:value-of select="substring($substr, 2)"/>
3794
+ <xsl:text> </xsl:text>
3795
+ <xsl:call-template name="capitalizeWords">
3796
+ <xsl:with-param name="str" select="substring-after($str2, ' ')"/>
3797
+ </xsl:call-template>
3798
+ </xsl:when>
3799
+ <xsl:otherwise>
3800
+ <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3801
+ <xsl:value-of select="substring($str2, 2)"/>
3802
+ </xsl:otherwise>
3803
+ </xsl:choose>
3804
+ </xsl:template></xsl:stylesheet>