metanorma-un 0.8.2 → 0.8.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/isodoc/un/html/unece.css +1 -2
- data/lib/isodoc/un/html/unece.scss +0 -1
- data/lib/isodoc/un/html/wordstyle.css +20 -0
- data/lib/isodoc/un/html/wordstyle.scss +19 -0
- data/lib/isodoc/un/un.plenary-attachment.xsl +1155 -383
- data/lib/isodoc/un/un.plenary.xsl +1155 -383
- data/lib/isodoc/un/un.recommendation.xsl +1181 -323
- data/lib/isodoc/un/xref.rb +39 -25
- data/lib/metanorma/un/basicdoc.rng +5 -3
- data/lib/metanorma/un/biblio.rng +5 -3
- data/lib/metanorma/un/isodoc.rng +73 -3
- data/lib/metanorma/un/version.rb +1 -1
- metadata +2 -2
@@ -2,11 +2,7 @@
|
|
2
2
|
|
3
3
|
<xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/>
|
4
4
|
|
5
|
-
|
6
|
-
<xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
|
7
|
-
<xsl:variable name="images" select="document($svg_images)"/>
|
8
|
-
<xsl:param name="basepath"/>
|
9
|
-
|
5
|
+
|
10
6
|
<xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
|
11
7
|
|
12
8
|
|
@@ -14,24 +10,18 @@
|
|
14
10
|
|
15
11
|
|
16
12
|
<xsl:variable name="debug">false</xsl:variable>
|
17
|
-
|
18
|
-
<xsl:variable name="marginLeftRight1" select="40"/>
|
19
|
-
<xsl:variable name="marginLeftRight2" select="40"/>
|
20
|
-
<xsl:variable name="marginTop" select="30"/>
|
21
|
-
<xsl:variable name="marginBottom" select="34"/>
|
22
13
|
|
23
|
-
<xsl:variable name="
|
14
|
+
<xsl:variable name="contents_">
|
24
15
|
<contents>
|
25
16
|
<xsl:apply-templates select="/un:un-standard/un:sections/*" mode="contents"/>
|
26
17
|
<xsl:apply-templates select="/un:un-standard/un:annex" mode="contents"/>
|
27
18
|
<xsl:apply-templates select="/un:un-standard/un:bibliography/un:references" mode="contents"/>
|
19
|
+
<xsl:call-template name="processTablesFigures_Contents"/>
|
28
20
|
</contents>
|
29
21
|
</xsl:variable>
|
22
|
+
<xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
|
23
|
+
|
30
24
|
|
31
|
-
<xsl:variable name="lang">
|
32
|
-
<xsl:call-template name="getLang"/>
|
33
|
-
</xsl:variable>
|
34
|
-
|
35
25
|
<xsl:variable name="title" select="/un:un-standard/un:bibdata/un:title[@language = 'en' and @type = 'main']"/>
|
36
26
|
|
37
27
|
<xsl:variable name="doctype" select="/un:un-standard/un:bibdata/un:ext/un:doctype"/>
|
@@ -210,7 +200,7 @@
|
|
210
200
|
</xsl:variable>
|
211
201
|
<fo:block font-size="9pt" text-align="right" font-style="italic" margin-bottom="6pt"><xsl:value-of select="$title-page"/></fo:block>
|
212
202
|
<fo:block role="TOC">
|
213
|
-
<xsl:for-each select="
|
203
|
+
<xsl:for-each select="$contents//item[not (@type = 'annex' or @parent = 'annex') and @display = 'true']">
|
214
204
|
|
215
205
|
<fo:block role="TOCI">
|
216
206
|
|
@@ -248,9 +238,9 @@
|
|
248
238
|
|
249
239
|
</xsl:for-each>
|
250
240
|
|
251
|
-
<xsl:if test="
|
252
|
-
<fo:block text-align="center" margin-top="12pt" margin-bottom="12pt">ANNEXES</fo:block>
|
253
|
-
<xsl:for-each select="
|
241
|
+
<xsl:if test="$contents//item[@type = 'annex' and @display = 'true']">
|
242
|
+
<fo:block text-align="center" margin-top="12pt" margin-bottom="12pt" keep-with-next="always">ANNEXES</fo:block>
|
243
|
+
<xsl:for-each select="$contents//item[@type = 'annex' and @display = 'true']">
|
254
244
|
<fo:block role="TOCI">
|
255
245
|
<fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
|
256
246
|
<fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
|
@@ -280,6 +270,26 @@
|
|
280
270
|
</xsl:for-each>
|
281
271
|
</xsl:if>
|
282
272
|
|
273
|
+
<!-- List of Tables -->
|
274
|
+
<xsl:if test="$contents//tables/table">
|
275
|
+
<xsl:call-template name="insertListOf_Title">
|
276
|
+
<xsl:with-param name="title" select="$title-list-tables"/>
|
277
|
+
</xsl:call-template>
|
278
|
+
<xsl:for-each select="$contents//tables/table">
|
279
|
+
<xsl:call-template name="insertListOf_Item"/>
|
280
|
+
</xsl:for-each>
|
281
|
+
</xsl:if>
|
282
|
+
|
283
|
+
<!-- List of Figures -->
|
284
|
+
<xsl:if test="$contents//figures/figure">
|
285
|
+
<xsl:call-template name="insertListOf_Title">
|
286
|
+
<xsl:with-param name="title" select="$title-list-figures"/>
|
287
|
+
</xsl:call-template>
|
288
|
+
<xsl:for-each select="$contents//figures/figure">
|
289
|
+
<xsl:call-template name="insertListOf_Item"/>
|
290
|
+
</xsl:for-each>
|
291
|
+
</xsl:if>
|
292
|
+
|
283
293
|
</fo:block>
|
284
294
|
</fo:flow>
|
285
295
|
</fo:page-sequence>
|
@@ -301,7 +311,7 @@
|
|
301
311
|
<xsl:if test="$debug = 'true'">
|
302
312
|
<xsl:text disable-output-escaping="yes"><!--</xsl:text>
|
303
313
|
DEBUG
|
304
|
-
contents=<xsl:copy-of select="
|
314
|
+
contents=<xsl:copy-of select="$contents"/>
|
305
315
|
<xsl:text disable-output-escaping="yes">--></xsl:text>
|
306
316
|
</xsl:if>
|
307
317
|
|
@@ -339,6 +349,30 @@
|
|
339
349
|
</fo:page-sequence>
|
340
350
|
</fo:root>
|
341
351
|
</xsl:template>
|
352
|
+
|
353
|
+
<xsl:template name="insertListOf_Title">
|
354
|
+
<xsl:param name="title"/>
|
355
|
+
<fo:block text-align="center" margin-top="12pt" margin-bottom="12pt" keep-with-next="always">
|
356
|
+
<xsl:value-of select="$title"/>
|
357
|
+
</fo:block>
|
358
|
+
</xsl:template>
|
359
|
+
|
360
|
+
<xsl:template name="insertListOf_Item">
|
361
|
+
<fo:block role="TOCI">
|
362
|
+
<fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
|
363
|
+
<fo:basic-link internal-destination="{@id}">
|
364
|
+
<xsl:call-template name="setAltText">
|
365
|
+
<xsl:with-param name="value" select="@alt-text"/>
|
366
|
+
</xsl:call-template>
|
367
|
+
<xsl:apply-templates select="." mode="contents"/>
|
368
|
+
<fo:inline keep-together.within-line="always">
|
369
|
+
<fo:leader leader-pattern="dots"/>
|
370
|
+
<fo:page-number-citation ref-id="{@id}"/>
|
371
|
+
</fo:inline>
|
372
|
+
</fo:basic-link>
|
373
|
+
</fo:block>
|
374
|
+
</fo:block>
|
375
|
+
</xsl:template>
|
342
376
|
|
343
377
|
<!-- ============================= -->
|
344
378
|
<!-- CONTENTS -->
|
@@ -594,64 +628,7 @@
|
|
594
628
|
<xsl:apply-templates/>
|
595
629
|
</fo:block>
|
596
630
|
</xsl:template>
|
597
|
-
|
598
|
-
<xsl:template match="un:ul | un:ol" mode="ul_ol">
|
599
|
-
<fo:list-block provisional-distance-between-starts="3mm" margin-left="7mm" text-indent="0mm">
|
600
|
-
<xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
|
601
|
-
</fo:list-block>
|
602
|
-
<xsl:apply-templates select="./un:note"/>
|
603
|
-
</xsl:template>
|
604
|
-
|
605
|
-
|
606
|
-
<xsl:template match="un:li">
|
607
|
-
<xsl:variable name="level">
|
608
|
-
<xsl:call-template name="getLevel"/>
|
609
|
-
</xsl:variable>
|
610
|
-
<fo:list-item>
|
611
|
-
<fo:list-item-label end-indent="label-end()">
|
612
|
-
<fo:block>
|
613
|
-
<xsl:choose>
|
614
|
-
<xsl:when test="local-name(..) = 'ul'">
|
615
|
-
<xsl:call-template name="setULLabel"/>
|
616
|
-
</xsl:when>
|
617
|
-
<xsl:otherwise> <!-- for ordered lists -->
|
618
|
-
<xsl:choose>
|
619
|
-
<xsl:when test="../@type = 'arabic'">
|
620
|
-
<xsl:number format="a)" lang="en"/>
|
621
|
-
</xsl:when>
|
622
|
-
<xsl:when test="../@type = 'alphabet'">
|
623
|
-
<xsl:number format="1)"/>
|
624
|
-
</xsl:when>
|
625
|
-
<xsl:when test="ancestor::*[un:annex]">
|
626
|
-
<xsl:choose>
|
627
|
-
<xsl:when test="$level = 1">
|
628
|
-
<xsl:number format="a)" lang="en"/>
|
629
|
-
</xsl:when>
|
630
|
-
<xsl:when test="$level = 2">
|
631
|
-
<xsl:number format="i)"/>
|
632
|
-
</xsl:when>
|
633
|
-
<xsl:otherwise>
|
634
|
-
<xsl:number format="1.)"/>
|
635
|
-
</xsl:otherwise>
|
636
|
-
</xsl:choose>
|
637
|
-
</xsl:when>
|
638
|
-
<xsl:otherwise>
|
639
|
-
<xsl:number format="1."/>
|
640
|
-
</xsl:otherwise>
|
641
|
-
</xsl:choose>
|
642
|
-
</xsl:otherwise>
|
643
|
-
</xsl:choose>
|
644
|
-
</fo:block>
|
645
|
-
</fo:list-item-label>
|
646
|
-
<fo:list-item-body start-indent="body-start()">
|
647
|
-
<fo:block>
|
648
|
-
<xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
|
649
|
-
<xsl:apply-templates select="./un:note"/>
|
650
|
-
</fo:block>
|
651
|
-
</fo:list-item-body>
|
652
|
-
</fo:list-item>
|
653
|
-
</xsl:template>
|
654
|
-
|
631
|
+
|
655
632
|
<xsl:template match="un:li//un:p">
|
656
633
|
<fo:block text-align="justify" margin-bottom="6pt">
|
657
634
|
<xsl:apply-templates/>
|
@@ -873,50 +850,6 @@
|
|
873
850
|
|
874
851
|
|
875
852
|
|
876
|
-
<xsl:template match="un:formula" name="formula-un" priority="2">
|
877
|
-
|
878
|
-
<fo:block-container margin-left="0mm">
|
879
|
-
<xsl:if test="parent::*[local-name() = 'note']">
|
880
|
-
<xsl:attribute name="margin-left">
|
881
|
-
<xsl:choose>
|
882
|
-
<xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
|
883
|
-
<xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
|
884
|
-
</xsl:choose>
|
885
|
-
</xsl:attribute>
|
886
|
-
</xsl:if>
|
887
|
-
<fo:block-container margin-left="0mm">
|
888
|
-
|
889
|
-
<fo:block id="{@id}" margin-top="6pt">
|
890
|
-
<fo:table table-layout="fixed" width="100%">
|
891
|
-
<fo:table-column column-width="95%"/>
|
892
|
-
<fo:table-column column-width="5%"/>
|
893
|
-
<fo:table-body>
|
894
|
-
<fo:table-row>
|
895
|
-
<fo:table-cell>
|
896
|
-
<fo:block text-align="center">
|
897
|
-
<xsl:if test="ancestor::un:annex">
|
898
|
-
<xsl:attribute name="text-align">left</xsl:attribute>
|
899
|
-
<xsl:attribute name="margin-left">7mm</xsl:attribute>
|
900
|
-
</xsl:if>
|
901
|
-
<xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
|
902
|
-
</fo:block>
|
903
|
-
</fo:table-cell>
|
904
|
-
<fo:table-cell> <!-- display-align="center" -->
|
905
|
-
<fo:block text-align="right">
|
906
|
-
<xsl:apply-templates select="un:name"/>
|
907
|
-
</fo:block>
|
908
|
-
</fo:table-cell>
|
909
|
-
</fo:table-row>
|
910
|
-
</fo:table-body>
|
911
|
-
</fo:table>
|
912
|
-
</fo:block>
|
913
|
-
|
914
|
-
</fo:block-container>
|
915
|
-
</fo:block-container>
|
916
|
-
</xsl:template>
|
917
|
-
|
918
|
-
|
919
|
-
|
920
853
|
<!-- ============================ -->
|
921
854
|
<!-- ============================ -->
|
922
855
|
|
@@ -963,11 +896,21 @@
|
|
963
896
|
<xsl:text>iVBORw0KGgoAAAANSUhEUgAAAUgAAAEfCAYAAAAjn198AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA8BpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMDE0IDc5LjE1Njc5NywgMjAxNC8wOC8yMC0wOTo1MzowMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo4M0JCQjMxNzJBNjcxMUVBQjQ3MkM1NDNGQjcxMjlFQyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo4M0JCQjMxNjJBNjcxMUVBQjQ3MkM1NDNGQjcxMjlFQyIgeG1wOkNyZWF0b3JUb29sPSJBY3JvYmF0IFBERk1ha2VyIDE4IGZvciBXb3JkIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6OTM1MzU0ZmUtYzRmYS00Y2I4LTlkOGMtYjk0M2E4OTk2YzhiIiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOjhlMzkwMGEzLTMwZWUtNGRlNy04NDc0LTlhZTA5ZTFjZjhmMiIvPiA8ZGM6Y3JlYXRvcj4gPHJkZjpTZXE+IDxyZGY6bGk+U3RlcGhl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</xsl:text>
|
964
897
|
</xsl:variable>
|
965
898
|
|
966
|
-
<xsl:variable name="
|
899
|
+
<xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:key name="bibitems" match="*[local-name() = 'bibitem']" use="@id"/><xsl:key name="bibitems_hidden" match="*[local-name() = 'bibitem'][@hidden='true'] | *[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']" use="@id"/><xsl:variable name="lang">
|
900
|
+
<xsl:call-template name="getLang"/>
|
901
|
+
</xsl:variable><xsl:variable name="pageWidth_">
|
967
902
|
210
|
968
903
|
</xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
|
969
904
|
297
|
970
|
-
</xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="
|
905
|
+
</xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="marginLeftRight1_">
|
906
|
+
40
|
907
|
+
</xsl:variable><xsl:variable name="marginLeftRight1" select="normalize-space($marginLeftRight1_)"/><xsl:variable name="marginLeftRight2_">
|
908
|
+
40
|
909
|
+
</xsl:variable><xsl:variable name="marginLeftRight2" select="normalize-space($marginLeftRight2_)"/><xsl:variable name="marginTop_">
|
910
|
+
30
|
911
|
+
</xsl:variable><xsl:variable name="marginTop" select="normalize-space($marginTop_)"/><xsl:variable name="marginBottom_">
|
912
|
+
34
|
913
|
+
</xsl:variable><xsl:variable name="marginBottom" select="normalize-space($marginBottom_)"/><xsl:variable name="titles_">
|
971
914
|
|
972
915
|
<title-edition lang="en">
|
973
916
|
|
@@ -979,6 +922,10 @@
|
|
979
922
|
<xsl:text>Édition </xsl:text>
|
980
923
|
</title-edition>
|
981
924
|
|
925
|
+
<title-edition lang="ru">
|
926
|
+
<xsl:text>Издание </xsl:text>
|
927
|
+
</title-edition>
|
928
|
+
|
982
929
|
<!-- These titles of Table of contents renders different than determined in localized-strings -->
|
983
930
|
<title-toc lang="en">
|
984
931
|
|
@@ -995,7 +942,7 @@
|
|
995
942
|
<xsl:text>Contents</xsl:text>
|
996
943
|
|
997
944
|
</title-toc>
|
998
|
-
|
945
|
+
|
999
946
|
<title-descriptors lang="en">Descriptors</title-descriptors>
|
1000
947
|
|
1001
948
|
<title-part lang="en">
|
@@ -1007,7 +954,11 @@
|
|
1007
954
|
|
1008
955
|
|
1009
956
|
|
1010
|
-
</title-part>
|
957
|
+
</title-part>
|
958
|
+
<title-part lang="ru">
|
959
|
+
|
960
|
+
|
961
|
+
</title-part>
|
1011
962
|
<title-part lang="zh">第 # 部分:</title-part>
|
1012
963
|
|
1013
964
|
<title-subpart lang="en">Sub-part #</title-subpart>
|
@@ -1023,13 +974,38 @@
|
|
1023
974
|
|
1024
975
|
<title-summary lang="en">Summary</title-summary>
|
1025
976
|
|
977
|
+
<title-continued lang="ru">(продолжение)</title-continued>
|
1026
978
|
<title-continued lang="en">(continued)</title-continued>
|
1027
979
|
<title-continued lang="fr">(continué)</title-continued>
|
1028
980
|
|
1029
|
-
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="
|
981
|
+
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
|
982
|
+
<xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
|
983
|
+
<xsl:value-of select="$toc_table_title"/>
|
984
|
+
<xsl:if test="normalize-space($toc_table_title) = ''">
|
985
|
+
<xsl:call-template name="getTitle">
|
986
|
+
<xsl:with-param name="name" select="'title-list-tables'"/>
|
987
|
+
</xsl:call-template>
|
988
|
+
</xsl:if>
|
989
|
+
</xsl:variable><xsl:variable name="title-list-figures">
|
990
|
+
<xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
|
991
|
+
<xsl:value-of select="$toc_figure_title"/>
|
992
|
+
<xsl:if test="normalize-space($toc_figure_title) = ''">
|
993
|
+
<xsl:call-template name="getTitle">
|
994
|
+
<xsl:with-param name="name" select="'title-list-figures'"/>
|
995
|
+
</xsl:call-template>
|
996
|
+
</xsl:if>
|
997
|
+
</xsl:variable><xsl:variable name="title-list-recommendations">
|
998
|
+
<xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
|
999
|
+
<xsl:value-of select="$toc_requirement_title"/>
|
1000
|
+
<xsl:if test="normalize-space($toc_requirement_title) = ''">
|
1001
|
+
<xsl:call-template name="getTitle">
|
1002
|
+
<xsl:with-param name="name" select="'title-list-recommendations'"/>
|
1003
|
+
</xsl:call-template>
|
1004
|
+
</xsl:if>
|
1005
|
+
</xsl:variable><xsl:variable name="bibdata">
|
1030
1006
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
|
1031
1007
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
|
1032
|
-
</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
|
1008
|
+
</xsl:variable><xsl:variable name="linebreak">
</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:variable name="non_breaking_hyphen">‑</xsl:variable><xsl:variable name="thin_space"> </xsl:variable><xsl:variable name="zero_width_space"></xsl:variable><xsl:variable name="en_dash">–</xsl:variable><xsl:template name="getTitle">
|
1033
1009
|
<xsl:param name="name"/>
|
1034
1010
|
<xsl:param name="lang"/>
|
1035
1011
|
<xsl:variable name="lang_">
|
@@ -1052,7 +1028,7 @@
|
|
1052
1028
|
<xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
|
1053
1029
|
</xsl:otherwise>
|
1054
1030
|
</xsl:choose>
|
1055
|
-
</xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:
|
1031
|
+
</xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:attribute-set name="root-style">
|
1056
1032
|
|
1057
1033
|
|
1058
1034
|
|
@@ -1207,7 +1183,7 @@
|
|
1207
1183
|
|
1208
1184
|
|
1209
1185
|
</xsl:attribute-set><xsl:attribute-set name="example-name-style">
|
1210
|
-
|
1186
|
+
|
1211
1187
|
|
1212
1188
|
|
1213
1189
|
|
@@ -1221,6 +1197,7 @@
|
|
1221
1197
|
|
1222
1198
|
|
1223
1199
|
|
1200
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
1224
1201
|
<xsl:attribute name="font-size">10pt</xsl:attribute>
|
1225
1202
|
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
1226
1203
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
@@ -1578,7 +1555,8 @@
|
|
1578
1555
|
|
1579
1556
|
|
1580
1557
|
</xsl:attribute-set><xsl:attribute-set name="quote-style">
|
1581
|
-
<xsl:attribute name="
|
1558
|
+
<xsl:attribute name="margin-left">12mm</xsl:attribute>
|
1559
|
+
<xsl:attribute name="margin-right">12mm</xsl:attribute>
|
1582
1560
|
|
1583
1561
|
|
1584
1562
|
|
@@ -1587,9 +1565,9 @@
|
|
1587
1565
|
|
1588
1566
|
|
1589
1567
|
</xsl:attribute-set><xsl:attribute-set name="quote-source-style">
|
1568
|
+
<xsl:attribute name="text-align">right</xsl:attribute>
|
1590
1569
|
|
1591
1570
|
|
1592
|
-
|
1593
1571
|
</xsl:attribute-set><xsl:attribute-set name="termsource-style">
|
1594
1572
|
|
1595
1573
|
|
@@ -1608,6 +1586,9 @@
|
|
1608
1586
|
|
1609
1587
|
</xsl:attribute-set><xsl:attribute-set name="term-style">
|
1610
1588
|
|
1589
|
+
</xsl:attribute-set><xsl:attribute-set name="term-name-style">
|
1590
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
1591
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
1611
1592
|
</xsl:attribute-set><xsl:attribute-set name="figure-style">
|
1612
1593
|
|
1613
1594
|
</xsl:attribute-set><xsl:attribute-set name="figure-name-style">
|
@@ -1638,6 +1619,33 @@
|
|
1638
1619
|
|
1639
1620
|
|
1640
1621
|
</xsl:attribute-set><xsl:attribute-set name="formula-style">
|
1622
|
+
<xsl:attribute name="margin-top">6pt</xsl:attribute>
|
1623
|
+
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
1624
|
+
|
1625
|
+
|
1626
|
+
|
1627
|
+
|
1628
|
+
|
1629
|
+
|
1630
|
+
</xsl:attribute-set><xsl:attribute-set name="formula-stem-block-style">
|
1631
|
+
<xsl:attribute name="text-align">center</xsl:attribute>
|
1632
|
+
|
1633
|
+
|
1634
|
+
|
1635
|
+
|
1636
|
+
|
1637
|
+
|
1638
|
+
|
1639
|
+
|
1640
|
+
|
1641
|
+
|
1642
|
+
|
1643
|
+
</xsl:attribute-set><xsl:attribute-set name="formula-stem-number-style">
|
1644
|
+
<xsl:attribute name="text-align">right</xsl:attribute>
|
1645
|
+
|
1646
|
+
|
1647
|
+
|
1648
|
+
|
1641
1649
|
|
1642
1650
|
</xsl:attribute-set><xsl:attribute-set name="image-style">
|
1643
1651
|
<xsl:attribute name="text-align">center</xsl:attribute>
|
@@ -1674,6 +1682,18 @@
|
|
1674
1682
|
<xsl:attribute name="margin-bottom">12pt</xsl:attribute>
|
1675
1683
|
<xsl:attribute name="keep-with-previous">always</xsl:attribute>
|
1676
1684
|
|
1685
|
+
</xsl:attribute-set><xsl:attribute-set name="preferred-block-style">
|
1686
|
+
|
1687
|
+
|
1688
|
+
|
1689
|
+
|
1690
|
+
|
1691
|
+
|
1692
|
+
</xsl:attribute-set><xsl:attribute-set name="preferred-term-style">
|
1693
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
1694
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
1695
|
+
|
1696
|
+
|
1677
1697
|
</xsl:attribute-set><xsl:attribute-set name="domain-style">
|
1678
1698
|
|
1679
1699
|
</xsl:attribute-set><xsl:attribute-set name="admitted-style">
|
@@ -1690,13 +1710,19 @@
|
|
1690
1710
|
</xsl:attribute-set><xsl:variable name="color-added-text">
|
1691
1711
|
<xsl:text>rgb(0, 255, 0)</xsl:text>
|
1692
1712
|
</xsl:variable><xsl:attribute-set name="add-style">
|
1693
|
-
|
1694
|
-
|
1695
|
-
|
1696
|
-
|
1697
|
-
|
1698
|
-
|
1699
|
-
|
1713
|
+
|
1714
|
+
<xsl:attribute name="color">red</xsl:attribute>
|
1715
|
+
<xsl:attribute name="text-decoration">underline</xsl:attribute>
|
1716
|
+
<!-- <xsl:attribute name="color">black</xsl:attribute>
|
1717
|
+
<xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
|
1718
|
+
<xsl:attribute name="padding-top">1mm</xsl:attribute>
|
1719
|
+
<xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
|
1720
|
+
|
1721
|
+
</xsl:attribute-set><xsl:variable name="add-style">
|
1722
|
+
<add-style xsl:use-attribute-sets="add-style"/>
|
1723
|
+
</xsl:variable><xsl:template name="append_add-style">
|
1724
|
+
<xsl:copy-of select="xalan:nodeset($add-style)/add-style/@*"/>
|
1725
|
+
</xsl:template><xsl:variable name="color-deleted-text">
|
1700
1726
|
<xsl:text>red</xsl:text>
|
1701
1727
|
</xsl:variable><xsl:attribute-set name="del-style">
|
1702
1728
|
<xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
|
@@ -1707,6 +1733,37 @@
|
|
1707
1733
|
|
1708
1734
|
</xsl:attribute-set><xsl:attribute-set name="list-style">
|
1709
1735
|
|
1736
|
+
|
1737
|
+
|
1738
|
+
|
1739
|
+
|
1740
|
+
|
1741
|
+
|
1742
|
+
|
1743
|
+
|
1744
|
+
|
1745
|
+
|
1746
|
+
|
1747
|
+
|
1748
|
+
|
1749
|
+
|
1750
|
+
|
1751
|
+
|
1752
|
+
<xsl:attribute name="provisional-distance-between-starts">3mm</xsl:attribute>
|
1753
|
+
<xsl:attribute name="margin-left">7mm</xsl:attribute>
|
1754
|
+
<xsl:attribute name="text-indent">0mm</xsl:attribute>
|
1755
|
+
|
1756
|
+
</xsl:attribute-set><xsl:attribute-set name="list-item-style">
|
1757
|
+
|
1758
|
+
|
1759
|
+
</xsl:attribute-set><xsl:attribute-set name="list-item-label-style">
|
1760
|
+
|
1761
|
+
|
1762
|
+
|
1763
|
+
</xsl:attribute-set><xsl:attribute-set name="list-item-body-style">
|
1764
|
+
|
1765
|
+
|
1766
|
+
|
1710
1767
|
</xsl:attribute-set><xsl:attribute-set name="toc-style">
|
1711
1768
|
<xsl:attribute name="line-height">135%</xsl:attribute>
|
1712
1769
|
</xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
|
@@ -1991,15 +2048,148 @@
|
|
1991
2048
|
|
1992
2049
|
|
1993
2050
|
|
2051
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-doctag">
|
2052
|
+
<xsl:attribute name="color">#d73a49</xsl:attribute>
|
2053
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-keyword">
|
2054
|
+
<xsl:attribute name="color">#d73a49</xsl:attribute>
|
2055
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-keyword">
|
2056
|
+
<xsl:attribute name="color">#d73a49</xsl:attribute>
|
2057
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-template-tag">
|
2058
|
+
<xsl:attribute name="color">#d73a49</xsl:attribute>
|
2059
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-template-variable">
|
2060
|
+
<xsl:attribute name="color">#d73a49</xsl:attribute>
|
2061
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-type">
|
2062
|
+
<xsl:attribute name="color">#d73a49</xsl:attribute>
|
2063
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-variable_and_language_">
|
2064
|
+
<xsl:attribute name="color">#d73a49</xsl:attribute>
|
2065
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-title">
|
2066
|
+
<xsl:attribute name="color">#6f42c1</xsl:attribute>
|
2067
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class_">
|
2068
|
+
<xsl:attribute name="color">#6f42c1</xsl:attribute>
|
2069
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class__and_inherited__">
|
2070
|
+
<xsl:attribute name="color">#6f42c1</xsl:attribute>
|
2071
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-title_and_function_">
|
2072
|
+
<xsl:attribute name="color">#6f42c1</xsl:attribute>
|
2073
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-attr">
|
2074
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2075
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-attribute">
|
2076
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2077
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-literal">
|
2078
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2079
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-meta">
|
2080
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2081
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-number">
|
2082
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2083
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-operator">
|
2084
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2085
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-variable">
|
2086
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2087
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-selector-attr">
|
2088
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2089
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-selector-class">
|
2090
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2091
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-selector-id">
|
2092
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2093
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-regexp">
|
2094
|
+
<xsl:attribute name="color">#032f62</xsl:attribute>
|
2095
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-string">
|
2096
|
+
<xsl:attribute name="color">#032f62</xsl:attribute>
|
2097
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-string">
|
2098
|
+
<xsl:attribute name="color">#032f62</xsl:attribute>
|
2099
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-built_in">
|
2100
|
+
<xsl:attribute name="color">#e36209</xsl:attribute>
|
2101
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-symbol">
|
2102
|
+
<xsl:attribute name="color">#e36209</xsl:attribute>
|
2103
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-comment">
|
2104
|
+
<xsl:attribute name="color">#6a737d</xsl:attribute>
|
2105
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-code">
|
2106
|
+
<xsl:attribute name="color">#6a737d</xsl:attribute>
|
2107
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-formula">
|
2108
|
+
<xsl:attribute name="color">#6a737d</xsl:attribute>
|
2109
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-name">
|
2110
|
+
<xsl:attribute name="color">#22863a</xsl:attribute>
|
2111
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-quote">
|
2112
|
+
<xsl:attribute name="color">#22863a</xsl:attribute>
|
2113
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-selector-tag">
|
2114
|
+
<xsl:attribute name="color">#22863a</xsl:attribute>
|
2115
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-selector-pseudo">
|
2116
|
+
<xsl:attribute name="color">#22863a</xsl:attribute>
|
2117
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-subst">
|
2118
|
+
<xsl:attribute name="color">#24292e</xsl:attribute>
|
2119
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-section">
|
2120
|
+
<xsl:attribute name="color">#005cc5</xsl:attribute>
|
2121
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
2122
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-bullet">
|
2123
|
+
<xsl:attribute name="color">#735c0f</xsl:attribute>
|
2124
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-emphasis">
|
2125
|
+
<xsl:attribute name="color">#24292e</xsl:attribute>
|
2126
|
+
<xsl:attribute name="font-style">italic</xsl:attribute>
|
2127
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-strong">
|
2128
|
+
<xsl:attribute name="color">#24292e</xsl:attribute>
|
2129
|
+
<xsl:attribute name="font-weight">bold</xsl:attribute>
|
2130
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-addition">
|
2131
|
+
<xsl:attribute name="color">#22863a</xsl:attribute>
|
2132
|
+
<xsl:attribute name="background-color">#f0fff4</xsl:attribute>
|
2133
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-deletion">
|
2134
|
+
<xsl:attribute name="color">#b31d28</xsl:attribute>
|
2135
|
+
<xsl:attribute name="background-color">#ffeef0</xsl:attribute>
|
2136
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-char_and_escape_">
|
2137
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-link">
|
2138
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-params">
|
2139
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-property">
|
2140
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-punctuation">
|
2141
|
+
</xsl:attribute-set><xsl:attribute-set name="hljs-tag">
|
2142
|
+
</xsl:attribute-set><xsl:attribute-set name="indexsect-title-style">
|
2143
|
+
<xsl:attribute name="role">H1</xsl:attribute>
|
2144
|
+
|
2145
|
+
|
2146
|
+
|
2147
|
+
|
2148
|
+
|
2149
|
+
</xsl:attribute-set><xsl:attribute-set name="indexsect-clause-title-style">
|
2150
|
+
<xsl:attribute name="keep-with-next">always</xsl:attribute>
|
2151
|
+
|
2152
|
+
|
2153
|
+
|
2154
|
+
|
2155
|
+
|
1994
2156
|
</xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
|
2157
|
+
<xsl:variable name="nodes_preface_">
|
2158
|
+
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2159
|
+
<node id="{@id}"/>
|
2160
|
+
</xsl:for-each>
|
2161
|
+
</xsl:variable>
|
2162
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
2163
|
+
|
1995
2164
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
1996
2165
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2166
|
+
|
2167
|
+
<!-- process Section's title -->
|
2168
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
2169
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
2170
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
|
2171
|
+
</xsl:if>
|
2172
|
+
|
1997
2173
|
<xsl:apply-templates select="." mode="contents"/>
|
1998
2174
|
</xsl:for-each>
|
1999
2175
|
</xsl:template><xsl:template name="processMainSectionsDefault_Contents">
|
2000
2176
|
|
2177
|
+
<xsl:variable name="nodes_sections_">
|
2178
|
+
<xsl:for-each select="/*/*[local-name()='sections']/*">
|
2179
|
+
<node id="{@id}"/>
|
2180
|
+
</xsl:for-each>
|
2181
|
+
</xsl:variable>
|
2182
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
2183
|
+
|
2001
2184
|
<xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
|
2002
2185
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2186
|
+
|
2187
|
+
<!-- process Section's title -->
|
2188
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
2189
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
2190
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
|
2191
|
+
</xsl:if>
|
2192
|
+
|
2003
2193
|
<xsl:apply-templates select="." mode="contents"/>
|
2004
2194
|
</xsl:for-each>
|
2005
2195
|
|
@@ -2012,6 +2202,30 @@
|
|
2012
2202
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2013
2203
|
<xsl:apply-templates select="." mode="contents"/>
|
2014
2204
|
</xsl:for-each>
|
2205
|
+
</xsl:template><xsl:template name="processTablesFigures_Contents">
|
2206
|
+
<xsl:param name="always"/>
|
2207
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2208
|
+
<xsl:call-template name="processTables_Contents"/>
|
2209
|
+
</xsl:if>
|
2210
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2211
|
+
<xsl:call-template name="processFigures_Contents"/>
|
2212
|
+
</xsl:if>
|
2213
|
+
</xsl:template><xsl:template name="processTables_Contents">
|
2214
|
+
<tables>
|
2215
|
+
<xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
|
2216
|
+
<table id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2217
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2218
|
+
</table>
|
2219
|
+
</xsl:for-each>
|
2220
|
+
</tables>
|
2221
|
+
</xsl:template><xsl:template name="processFigures_Contents">
|
2222
|
+
<figures>
|
2223
|
+
<xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name'] and not(@unnumbered = 'true') and normalize-space(@id) != ''] | //*[@id and starts-with(*[local-name() = 'name'], 'Figure ') and normalize-space(@id) != '']">
|
2224
|
+
<figure id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2225
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2226
|
+
</figure>
|
2227
|
+
</xsl:for-each>
|
2228
|
+
</figures>
|
2015
2229
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
2016
2230
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2017
2231
|
<xsl:sort select="@displayorder" data-type="number"/>
|
@@ -2077,9 +2291,12 @@
|
|
2077
2291
|
|
2078
2292
|
|
2079
2293
|
</xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='p']">
|
2294
|
+
<xsl:param name="margin"/>
|
2080
2295
|
|
2081
2296
|
<!-- process in the template 'paragraph' -->
|
2082
|
-
<xsl:call-template name="paragraph"
|
2297
|
+
<xsl:call-template name="paragraph">
|
2298
|
+
<xsl:with-param name="margin" select="$margin"/>
|
2299
|
+
</xsl:call-template>
|
2083
2300
|
|
2084
2301
|
</xsl:template><xsl:template match="*[local-name()='feedback-statement']">
|
2085
2302
|
<fo:block xsl:use-attribute-sets="feedback-statement-style">
|
@@ -2091,9 +2308,12 @@
|
|
2091
2308
|
<xsl:call-template name="title"/>
|
2092
2309
|
|
2093
2310
|
</xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='p']">
|
2311
|
+
<xsl:param name="margin"/>
|
2094
2312
|
|
2095
2313
|
<!-- process in the template 'paragraph' -->
|
2096
|
-
<xsl:call-template name="paragraph"
|
2314
|
+
<xsl:call-template name="paragraph">
|
2315
|
+
<xsl:with-param name="margin" select="$margin"/>
|
2316
|
+
</xsl:call-template>
|
2097
2317
|
|
2098
2318
|
</xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
|
2099
2319
|
<!-- <xsl:call-template name="add-zero-spaces"/> -->
|
@@ -2132,7 +2352,7 @@
|
|
2132
2352
|
</xsl:call-template>
|
2133
2353
|
</xsl:if>
|
2134
2354
|
</xsl:variable>
|
2135
|
-
<!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2355
|
+
<!-- DEBUG colwidths=<xsl:copy-of select="$colwidths"/> -->
|
2136
2356
|
|
2137
2357
|
|
2138
2358
|
<xsl:variable name="margin-side">
|
@@ -2409,7 +2629,7 @@
|
|
2409
2629
|
<!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
|
2410
2630
|
<!-- 2009 thinspace -->
|
2411
2631
|
<!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
|
2412
|
-
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '
|
2632
|
+
<xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
|
2413
2633
|
</xsl:call-template>
|
2414
2634
|
</xsl:variable>
|
2415
2635
|
<xsl:variable name="max_length">
|
@@ -2450,8 +2670,7 @@
|
|
2450
2670
|
</xsl:call-template>
|
2451
2671
|
</xsl:if>
|
2452
2672
|
</xsl:template><xsl:template match="text()" mode="td_text">
|
2453
|
-
<xsl:
|
2454
|
-
<xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
|
2673
|
+
<xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
|
2455
2674
|
</xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
|
2456
2675
|
<xsl:value-of select="*[local-name()='origin']/@citeas"/>
|
2457
2676
|
</xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
|
@@ -2820,37 +3039,7 @@
|
|
2820
3039
|
|
2821
3040
|
<!-- list of footnotes to calculate actual footnotes number -->
|
2822
3041
|
<xsl:variable name="p_fn_">
|
2823
|
-
<xsl:
|
2824
|
-
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
2825
|
-
<fn gen_id="{generate-id(.)}">
|
2826
|
-
<xsl:copy-of select="@*"/>
|
2827
|
-
<xsl:copy-of select="node()"/>
|
2828
|
-
</fn>
|
2829
|
-
</xsl:when>
|
2830
|
-
<xsl:otherwise>
|
2831
|
-
<!-- itetation for:
|
2832
|
-
footnotes in bibdata/title
|
2833
|
-
footnotes in bibliography
|
2834
|
-
footnotes in document's body (except table's head/body/foot and figure text)
|
2835
|
-
-->
|
2836
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
2837
|
-
<fn gen_id="{generate-id(.)}">
|
2838
|
-
<xsl:copy-of select="@*"/>
|
2839
|
-
<xsl:copy-of select="node()"/>
|
2840
|
-
</fn>
|
2841
|
-
</xsl:for-each>
|
2842
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
|
2843
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
2844
|
-
<xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
|
2845
|
-
<!-- copy unique fn -->
|
2846
|
-
<fn gen_id="{generate-id(.)}">
|
2847
|
-
<xsl:copy-of select="@*"/>
|
2848
|
-
<xsl:copy-of select="node()"/>
|
2849
|
-
</fn>
|
2850
|
-
</xsl:for-each>
|
2851
|
-
</xsl:for-each>
|
2852
|
-
</xsl:otherwise>
|
2853
|
-
</xsl:choose>
|
3042
|
+
<xsl:call-template name="get_fn_list"/>
|
2854
3043
|
</xsl:variable>
|
2855
3044
|
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
2856
3045
|
|
@@ -2911,6 +3100,38 @@
|
|
2911
3100
|
<xsl:copy-of select="$footnote_inline"/>
|
2912
3101
|
</xsl:otherwise>
|
2913
3102
|
</xsl:choose>
|
3103
|
+
</xsl:template><xsl:template name="get_fn_list">
|
3104
|
+
<xsl:choose>
|
3105
|
+
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
3106
|
+
<fn gen_id="{generate-id(.)}">
|
3107
|
+
<xsl:copy-of select="@*"/>
|
3108
|
+
<xsl:copy-of select="node()"/>
|
3109
|
+
</fn>
|
3110
|
+
</xsl:when>
|
3111
|
+
<xsl:otherwise>
|
3112
|
+
<!-- itetation for:
|
3113
|
+
footnotes in bibdata/title
|
3114
|
+
footnotes in bibliography
|
3115
|
+
footnotes in document's body (except table's head/body/foot and figure text)
|
3116
|
+
-->
|
3117
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
3118
|
+
<fn gen_id="{generate-id(.)}">
|
3119
|
+
<xsl:copy-of select="@*"/>
|
3120
|
+
<xsl:copy-of select="node()"/>
|
3121
|
+
</fn>
|
3122
|
+
</xsl:for-each>
|
3123
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
|
3124
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
3125
|
+
<xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
|
3126
|
+
<!-- copy unique fn -->
|
3127
|
+
<fn gen_id="{generate-id(.)}">
|
3128
|
+
<xsl:copy-of select="@*"/>
|
3129
|
+
<xsl:copy-of select="node()"/>
|
3130
|
+
</fn>
|
3131
|
+
</xsl:for-each>
|
3132
|
+
</xsl:for-each>
|
3133
|
+
</xsl:otherwise>
|
3134
|
+
</xsl:choose>
|
2914
3135
|
</xsl:template><xsl:template name="table_fn_display">
|
2915
3136
|
<xsl:variable name="references">
|
2916
3137
|
|
@@ -3082,7 +3303,7 @@
|
|
3082
3303
|
</fo:inline>
|
3083
3304
|
</xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
|
3084
3305
|
<fo:inline><xsl:value-of select="."/></fo:inline>
|
3085
|
-
</xsl:template><xsl:template match="*[local-name()='fn']
|
3306
|
+
</xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
|
3086
3307
|
<fo:inline>
|
3087
3308
|
<xsl:apply-templates/>
|
3088
3309
|
</fo:inline>
|
@@ -3445,20 +3666,44 @@
|
|
3445
3666
|
<fo:inline text-decoration="underline">
|
3446
3667
|
<xsl:apply-templates/>
|
3447
3668
|
</fo:inline>
|
3448
|
-
</xsl:template><xsl:template match="*[local-name()='add']">
|
3669
|
+
</xsl:template><xsl:template match="*[local-name()='add']" name="tag_add">
|
3449
3670
|
<xsl:param name="skip">true</xsl:param>
|
3671
|
+
<xsl:param name="block">false</xsl:param>
|
3672
|
+
<xsl:param name="type"/>
|
3673
|
+
<xsl:param name="text-align"/>
|
3450
3674
|
<xsl:choose>
|
3451
3675
|
<xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
|
3452
3676
|
<xsl:choose>
|
3453
|
-
<xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab'])) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
|
3677
|
+
<xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab']) or local-name(..) = 'formattedref' and not(preceding-sibling::node())) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
|
3454
3678
|
<xsl:otherwise>
|
3455
|
-
<
|
3679
|
+
<xsl:variable name="tag">
|
3456
3680
|
<xsl:call-template name="insertTag">
|
3457
|
-
<xsl:with-param name="type"
|
3681
|
+
<xsl:with-param name="type">
|
3682
|
+
<xsl:choose>
|
3683
|
+
<xsl:when test="$type = ''"><xsl:value-of select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end --></xsl:when>
|
3684
|
+
<xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
|
3685
|
+
</xsl:choose>
|
3686
|
+
</xsl:with-param>
|
3458
3687
|
<xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
|
3459
3688
|
<xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
|
3460
3689
|
</xsl:call-template>
|
3461
|
-
</
|
3690
|
+
</xsl:variable>
|
3691
|
+
<xsl:choose>
|
3692
|
+
<xsl:when test="$block = 'false'">
|
3693
|
+
<fo:inline>
|
3694
|
+
<xsl:copy-of select="$tag"/>
|
3695
|
+
</fo:inline>
|
3696
|
+
</xsl:when>
|
3697
|
+
<xsl:otherwise>
|
3698
|
+
<fo:block> <!-- for around figures -->
|
3699
|
+
<xsl:if test="$text-align != ''">
|
3700
|
+
<xsl:attribute name="text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
|
3701
|
+
</xsl:if>
|
3702
|
+
<xsl:copy-of select="$tag"/>
|
3703
|
+
</fo:block>
|
3704
|
+
</xsl:otherwise>
|
3705
|
+
</xsl:choose>
|
3706
|
+
|
3462
3707
|
</xsl:otherwise>
|
3463
3708
|
</xsl:choose>
|
3464
3709
|
</xsl:when>
|
@@ -3817,19 +4062,23 @@
|
|
3817
4062
|
</xsl:apply-templates>
|
3818
4063
|
</xsl:template><xsl:template name="getLang">
|
3819
4064
|
<xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
|
3820
|
-
<xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
|
3821
4065
|
<xsl:variable name="language">
|
3822
4066
|
<xsl:choose>
|
3823
4067
|
<xsl:when test="$language_current != ''">
|
3824
4068
|
<xsl:value-of select="$language_current"/>
|
3825
4069
|
</xsl:when>
|
3826
|
-
<xsl:when test="$language_current_2 != ''">
|
3827
|
-
<xsl:value-of select="$language_current_2"/>
|
3828
|
-
</xsl:when>
|
3829
4070
|
<xsl:otherwise>
|
3830
|
-
<xsl:
|
3831
|
-
|
3832
|
-
|
4071
|
+
<xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
|
4072
|
+
<xsl:choose>
|
4073
|
+
<xsl:when test="$language_current_2 != ''">
|
4074
|
+
<xsl:value-of select="$language_current_2"/>
|
4075
|
+
</xsl:when>
|
4076
|
+
<xsl:otherwise>
|
4077
|
+
<xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
|
4078
|
+
</xsl:otherwise>
|
4079
|
+
</xsl:choose>
|
4080
|
+
</xsl:otherwise>
|
4081
|
+
</xsl:choose>
|
3833
4082
|
</xsl:variable>
|
3834
4083
|
|
3835
4084
|
<xsl:choose>
|
@@ -4030,6 +4279,9 @@
|
|
4030
4279
|
</fo:inline>
|
4031
4280
|
</xsl:template><xsl:template match="*[local-name() = 'xref']">
|
4032
4281
|
<fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
|
4282
|
+
<xsl:if test="parent::*[local-name() = 'add']">
|
4283
|
+
<xsl:call-template name="append_add-style"/>
|
4284
|
+
</xsl:if>
|
4033
4285
|
<xsl:apply-templates/>
|
4034
4286
|
</fo:basic-link>
|
4035
4287
|
</xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
|
@@ -4044,8 +4296,8 @@
|
|
4044
4296
|
|
4045
4297
|
</xsl:if>
|
4046
4298
|
<fo:block-container margin-left="0mm">
|
4047
|
-
<fo:block id="{@id}"
|
4048
|
-
<xsl:apply-templates/>
|
4299
|
+
<fo:block id="{@id}">
|
4300
|
+
<xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
|
4049
4301
|
</fo:block>
|
4050
4302
|
</fo:block-container>
|
4051
4303
|
</fo:block-container>
|
@@ -4057,10 +4309,48 @@
|
|
4057
4309
|
<fo:inline>
|
4058
4310
|
<xsl:apply-templates/>
|
4059
4311
|
</fo:inline>
|
4060
|
-
</xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"
|
4312
|
+
</xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
|
4061
4313
|
<xsl:if test="normalize-space() != ''">
|
4062
4314
|
<xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
|
4063
4315
|
</xsl:if>
|
4316
|
+
</xsl:template><xsl:template match="*[local-name() = 'formula'][*[local-name() = 'name']]/*[local-name() = 'stem']">
|
4317
|
+
<fo:block xsl:use-attribute-sets="formula-style">
|
4318
|
+
|
4319
|
+
|
4320
|
+
|
4321
|
+
<fo:table table-layout="fixed" width="100%">
|
4322
|
+
<fo:table-column column-width="95%"/>
|
4323
|
+
<fo:table-column column-width="5%"/>
|
4324
|
+
<fo:table-body>
|
4325
|
+
<fo:table-row>
|
4326
|
+
<fo:table-cell display-align="center">
|
4327
|
+
<fo:block xsl:use-attribute-sets="formula-stem-block-style">
|
4328
|
+
|
4329
|
+
|
4330
|
+
<xsl:if test="ancestor::*[local-name() ='annex']">
|
4331
|
+
<xsl:attribute name="text-align">left</xsl:attribute>
|
4332
|
+
<xsl:attribute name="margin-left">7mm</xsl:attribute>
|
4333
|
+
</xsl:if>
|
4334
|
+
|
4335
|
+
|
4336
|
+
<xsl:apply-templates/>
|
4337
|
+
</fo:block>
|
4338
|
+
</fo:table-cell>
|
4339
|
+
<fo:table-cell display-align="center">
|
4340
|
+
<fo:block xsl:use-attribute-sets="formula-stem-number-style">
|
4341
|
+
<xsl:apply-templates select="../*[local-name() = 'name']"/>
|
4342
|
+
</fo:block>
|
4343
|
+
</fo:table-cell>
|
4344
|
+
</fo:table-row>
|
4345
|
+
</fo:table-body>
|
4346
|
+
</fo:table>
|
4347
|
+
</fo:block>
|
4348
|
+
</xsl:template><xsl:template match="*[local-name() = 'formula'][not(*[local-name() = 'name'])]/*[local-name() = 'stem']">
|
4349
|
+
<fo:block xsl:use-attribute-sets="formula-style">
|
4350
|
+
<fo:block xsl:use-attribute-sets="formula-stem-block-style">
|
4351
|
+
<xsl:apply-templates/>
|
4352
|
+
</fo:block>
|
4353
|
+
</fo:block>
|
4064
4354
|
</xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
|
4065
4355
|
|
4066
4356
|
<fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
|
@@ -4107,6 +4397,13 @@
|
|
4107
4397
|
|
4108
4398
|
|
4109
4399
|
|
4400
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
4401
|
+
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
4402
|
+
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
4403
|
+
<xsl:call-template name="append_add-style"/>
|
4404
|
+
</xsl:if>
|
4405
|
+
|
4406
|
+
|
4110
4407
|
<!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
|
4111
4408
|
<xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
|
4112
4409
|
<xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
|
@@ -4145,6 +4442,12 @@
|
|
4145
4442
|
|
4146
4443
|
|
4147
4444
|
|
4445
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
4446
|
+
<!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
|
4447
|
+
<xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
4448
|
+
<xsl:call-template name="append_add-style"/>
|
4449
|
+
</xsl:if>
|
4450
|
+
|
4148
4451
|
<xsl:apply-templates select="*[local-name() = 'name']"/>
|
4149
4452
|
|
4150
4453
|
</fo:inline>
|
@@ -4198,6 +4501,7 @@
|
|
4198
4501
|
</fo:block>
|
4199
4502
|
</xsl:template><xsl:template match="*[local-name() = 'term']">
|
4200
4503
|
<fo:block id="{@id}" xsl:use-attribute-sets="term-style">
|
4504
|
+
|
4201
4505
|
|
4202
4506
|
|
4203
4507
|
|
@@ -4639,7 +4943,11 @@
|
|
4639
4943
|
<xsl:value-of select="."/>
|
4640
4944
|
</xsl:template><xsl:template match="node()" mode="contents">
|
4641
4945
|
<xsl:apply-templates mode="contents"/>
|
4642
|
-
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = '
|
4946
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface' or local-name() = 'sections']/*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" mode="contents_no_displayorder">
|
4947
|
+
<xsl:call-template name="contents_section-title"/>
|
4948
|
+
</xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'section-title']" mode="contents_in_clause">
|
4949
|
+
<xsl:call-template name="contents_section-title"/>
|
4950
|
+
</xsl:template><xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title']/@depth or ../*[local-name() = 'title']/@depth = 1)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" name="contents_section-title" mode="contents">
|
4643
4951
|
<xsl:variable name="level">
|
4644
4952
|
<xsl:call-template name="getLevel">
|
4645
4953
|
<xsl:with-param name="depth" select="@depth"/>
|
@@ -4708,13 +5016,14 @@
|
|
4708
5016
|
<xsl:apply-templates mode="bookmarks"/>
|
4709
5017
|
</xsl:template><xsl:template name="addBookmarks">
|
4710
5018
|
<xsl:param name="contents"/>
|
4711
|
-
<xsl:
|
5019
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5020
|
+
<xsl:if test="$contents_nodes//item">
|
4712
5021
|
<fo:bookmark-tree>
|
4713
5022
|
<xsl:choose>
|
4714
|
-
<xsl:when test="
|
5023
|
+
<xsl:when test="$contents_nodes/doc">
|
4715
5024
|
<xsl:choose>
|
4716
|
-
<xsl:when test="count(
|
4717
|
-
<xsl:for-each select="
|
5025
|
+
<xsl:when test="count($contents_nodes/doc) > 1">
|
5026
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4718
5027
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
4719
5028
|
<xsl:if test="@bundle = 'true'">
|
4720
5029
|
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
@@ -4765,7 +5074,7 @@
|
|
4765
5074
|
</xsl:for-each>
|
4766
5075
|
</xsl:when>
|
4767
5076
|
<xsl:otherwise>
|
4768
|
-
<xsl:for-each select="
|
5077
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4769
5078
|
|
4770
5079
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
4771
5080
|
|
@@ -4783,25 +5092,36 @@
|
|
4783
5092
|
</xsl:choose>
|
4784
5093
|
</xsl:when>
|
4785
5094
|
<xsl:otherwise>
|
4786
|
-
<xsl:apply-templates select="
|
5095
|
+
<xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
|
5096
|
+
|
5097
|
+
<xsl:call-template name="insertFigureBookmarks">
|
5098
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5099
|
+
</xsl:call-template>
|
5100
|
+
|
5101
|
+
<xsl:call-template name="insertTableBookmarks">
|
5102
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5103
|
+
<xsl:with-param name="lang" select="@lang"/>
|
5104
|
+
</xsl:call-template>
|
5105
|
+
|
4787
5106
|
</xsl:otherwise>
|
4788
5107
|
</xsl:choose>
|
4789
5108
|
|
5109
|
+
|
4790
5110
|
|
4791
5111
|
|
4792
5112
|
|
4793
5113
|
|
4794
|
-
|
4795
|
-
|
5114
|
+
|
4796
5115
|
|
4797
5116
|
</fo:bookmark-tree>
|
4798
5117
|
</xsl:if>
|
4799
5118
|
</xsl:template><xsl:template name="insertFigureBookmarks">
|
4800
5119
|
<xsl:param name="contents"/>
|
4801
|
-
<xsl:
|
4802
|
-
|
5120
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5121
|
+
<xsl:if test="$contents_nodes/figure">
|
5122
|
+
<fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
|
4803
5123
|
<fo:bookmark-title>Figures</fo:bookmark-title>
|
4804
|
-
<xsl:for-each select="
|
5124
|
+
<xsl:for-each select="$contents_nodes/figure">
|
4805
5125
|
<fo:bookmark internal-destination="{@id}">
|
4806
5126
|
<fo:bookmark-title>
|
4807
5127
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4810,18 +5130,40 @@
|
|
4810
5130
|
</xsl:for-each>
|
4811
5131
|
</fo:bookmark>
|
4812
5132
|
</xsl:if>
|
5133
|
+
|
5134
|
+
|
5135
|
+
<xsl:if test="$contents_nodes//figures/figure">
|
5136
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5137
|
+
|
5138
|
+
|
5139
|
+
|
5140
|
+
<xsl:variable name="bookmark-title">
|
5141
|
+
|
5142
|
+
<xsl:value-of select="$title-list-figures"/>
|
5143
|
+
|
5144
|
+
</xsl:variable>
|
5145
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
|
5146
|
+
<xsl:for-each select="$contents_nodes//figures/figure">
|
5147
|
+
<fo:bookmark internal-destination="{@id}">
|
5148
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5149
|
+
</fo:bookmark>
|
5150
|
+
</xsl:for-each>
|
5151
|
+
</fo:bookmark>
|
5152
|
+
</xsl:if>
|
5153
|
+
|
4813
5154
|
</xsl:template><xsl:template name="insertTableBookmarks">
|
4814
5155
|
<xsl:param name="contents"/>
|
4815
5156
|
<xsl:param name="lang"/>
|
4816
|
-
<xsl:
|
4817
|
-
|
5157
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5158
|
+
<xsl:if test="$contents_nodes/table">
|
5159
|
+
<fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
|
4818
5160
|
<fo:bookmark-title>
|
4819
5161
|
<xsl:choose>
|
4820
5162
|
<xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
|
4821
5163
|
<xsl:otherwise>Tables</xsl:otherwise>
|
4822
5164
|
</xsl:choose>
|
4823
5165
|
</fo:bookmark-title>
|
4824
|
-
<xsl:for-each select="
|
5166
|
+
<xsl:for-each select="$contents_nodes/table">
|
4825
5167
|
<fo:bookmark internal-destination="{@id}">
|
4826
5168
|
<fo:bookmark-title>
|
4827
5169
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4830,6 +5172,29 @@
|
|
4830
5172
|
</xsl:for-each>
|
4831
5173
|
</fo:bookmark>
|
4832
5174
|
</xsl:if>
|
5175
|
+
|
5176
|
+
|
5177
|
+
<xsl:if test="$contents_nodes//tables/table">
|
5178
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5179
|
+
|
5180
|
+
|
5181
|
+
|
5182
|
+
<xsl:variable name="bookmark-title">
|
5183
|
+
|
5184
|
+
<xsl:value-of select="$title-list-tables"/>
|
5185
|
+
|
5186
|
+
</xsl:variable>
|
5187
|
+
|
5188
|
+
<fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
|
5189
|
+
|
5190
|
+
<xsl:for-each select="$contents_nodes//tables/table">
|
5191
|
+
<fo:bookmark internal-destination="{@id}">
|
5192
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5193
|
+
</fo:bookmark>
|
5194
|
+
</xsl:for-each>
|
5195
|
+
</fo:bookmark>
|
5196
|
+
</xsl:if>
|
5197
|
+
|
4833
5198
|
</xsl:template><xsl:template name="getLangVersion">
|
4834
5199
|
<xsl:param name="lang"/>
|
4835
5200
|
<xsl:param name="doctype" select="''"/>
|
@@ -5028,12 +5393,140 @@
|
|
5028
5393
|
</fo:block-container>
|
5029
5394
|
</fo:block-container>
|
5030
5395
|
</xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
|
5031
|
-
<xsl:
|
5396
|
+
<xsl:choose>
|
5397
|
+
<xsl:when test="normalize-space($syntax-highlight) = 'true' and normalize-space(../@lang) != ''"> <!-- condition for turn on of highlighting -->
|
5398
|
+
<xsl:variable name="syntax" select="java:org.metanorma.fop.Util.syntaxHighlight(., ../@lang)"/>
|
5399
|
+
<xsl:choose>
|
5400
|
+
<xsl:when test="normalize-space($syntax) != ''"><!-- if there is highlighted result -->
|
5401
|
+
<xsl:apply-templates select="xalan:nodeset($syntax)" mode="syntax_highlight"/> <!-- process span tags -->
|
5402
|
+
</xsl:when>
|
5403
|
+
<xsl:otherwise> <!-- if case of non-succesfull syntax highlight (for instance, unknown lang), process without highlighting -->
|
5404
|
+
<xsl:call-template name="add_spaces_to_sourcecode"/>
|
5405
|
+
</xsl:otherwise>
|
5406
|
+
</xsl:choose>
|
5407
|
+
</xsl:when>
|
5408
|
+
<xsl:otherwise>
|
5409
|
+
<xsl:call-template name="add_spaces_to_sourcecode"/>
|
5410
|
+
</xsl:otherwise>
|
5411
|
+
</xsl:choose>
|
5412
|
+
|
5413
|
+
</xsl:template><xsl:template name="add_spaces_to_sourcecode">
|
5414
|
+
<xsl:variable name="text_step1">
|
5032
5415
|
<xsl:call-template name="add-zero-spaces-equal"/>
|
5033
5416
|
</xsl:variable>
|
5034
|
-
<xsl:
|
5035
|
-
<xsl:
|
5036
|
-
|
5417
|
+
<xsl:variable name="text_step2">
|
5418
|
+
<xsl:call-template name="add-zero-spaces-java">
|
5419
|
+
<xsl:with-param name="text" select="$text_step1"/>
|
5420
|
+
</xsl:call-template>
|
5421
|
+
</xsl:variable>
|
5422
|
+
<xsl:value-of select="$text_step2"/>
|
5423
|
+
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
5424
|
+
<xsl:apply-templates mode="syntax_highlight"/>
|
5425
|
+
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
5426
|
+
<style class="hljs-addition" xsl:use-attribute-sets="hljs-addition"/>
|
5427
|
+
<style class="hljs-attr" xsl:use-attribute-sets="hljs-attr"/>
|
5428
|
+
<style class="hljs-attribute" xsl:use-attribute-sets="hljs-attribute"/>
|
5429
|
+
<style class="hljs-built_in" xsl:use-attribute-sets="hljs-built_in"/>
|
5430
|
+
<style class="hljs-bullet" xsl:use-attribute-sets="hljs-bullet"/>
|
5431
|
+
<style class="hljs-char_and_escape_" xsl:use-attribute-sets="hljs-char_and_escape_"/>
|
5432
|
+
<style class="hljs-code" xsl:use-attribute-sets="hljs-code"/>
|
5433
|
+
<style class="hljs-comment" xsl:use-attribute-sets="hljs-comment"/>
|
5434
|
+
<style class="hljs-deletion" xsl:use-attribute-sets="hljs-deletion"/>
|
5435
|
+
<style class="hljs-doctag" xsl:use-attribute-sets="hljs-doctag"/>
|
5436
|
+
<style class="hljs-emphasis" xsl:use-attribute-sets="hljs-emphasis"/>
|
5437
|
+
<style class="hljs-formula" xsl:use-attribute-sets="hljs-formula"/>
|
5438
|
+
<style class="hljs-keyword" xsl:use-attribute-sets="hljs-keyword"/>
|
5439
|
+
<style class="hljs-link" xsl:use-attribute-sets="hljs-link"/>
|
5440
|
+
<style class="hljs-literal" xsl:use-attribute-sets="hljs-literal"/>
|
5441
|
+
<style class="hljs-meta" xsl:use-attribute-sets="hljs-meta"/>
|
5442
|
+
<style class="hljs-meta_hljs-string" xsl:use-attribute-sets="hljs-meta_hljs-string"/>
|
5443
|
+
<style class="hljs-meta_hljs-keyword" xsl:use-attribute-sets="hljs-meta_hljs-keyword"/>
|
5444
|
+
<style class="hljs-name" xsl:use-attribute-sets="hljs-name"/>
|
5445
|
+
<style class="hljs-number" xsl:use-attribute-sets="hljs-number"/>
|
5446
|
+
<style class="hljs-operator" xsl:use-attribute-sets="hljs-operator"/>
|
5447
|
+
<style class="hljs-params" xsl:use-attribute-sets="hljs-params"/>
|
5448
|
+
<style class="hljs-property" xsl:use-attribute-sets="hljs-property"/>
|
5449
|
+
<style class="hljs-punctuation" xsl:use-attribute-sets="hljs-punctuation"/>
|
5450
|
+
<style class="hljs-quote" xsl:use-attribute-sets="hljs-quote"/>
|
5451
|
+
<style class="hljs-regexp" xsl:use-attribute-sets="hljs-regexp"/>
|
5452
|
+
<style class="hljs-section" xsl:use-attribute-sets="hljs-section"/>
|
5453
|
+
<style class="hljs-selector-attr" xsl:use-attribute-sets="hljs-selector-attr"/>
|
5454
|
+
<style class="hljs-selector-class" xsl:use-attribute-sets="hljs-selector-class"/>
|
5455
|
+
<style class="hljs-selector-id" xsl:use-attribute-sets="hljs-selector-id"/>
|
5456
|
+
<style class="hljs-selector-pseudo" xsl:use-attribute-sets="hljs-selector-pseudo"/>
|
5457
|
+
<style class="hljs-selector-tag" xsl:use-attribute-sets="hljs-selector-tag"/>
|
5458
|
+
<style class="hljs-string" xsl:use-attribute-sets="hljs-string"/>
|
5459
|
+
<style class="hljs-strong" xsl:use-attribute-sets="hljs-strong"/>
|
5460
|
+
<style class="hljs-subst" xsl:use-attribute-sets="hljs-subst"/>
|
5461
|
+
<style class="hljs-symbol" xsl:use-attribute-sets="hljs-symbol"/>
|
5462
|
+
<style class="hljs-tag" xsl:use-attribute-sets="hljs-tag"/>
|
5463
|
+
<!-- <style class="hljs-tag_hljs-attr" xsl:use-attribute-sets="hljs-tag_hljs-attr"></style> -->
|
5464
|
+
<!-- <style class="hljs-tag_hljs-name" xsl:use-attribute-sets="hljs-tag_hljs-name"></style> -->
|
5465
|
+
<style class="hljs-template-tag" xsl:use-attribute-sets="hljs-template-tag"/>
|
5466
|
+
<style class="hljs-template-variable" xsl:use-attribute-sets="hljs-template-variable"/>
|
5467
|
+
<style class="hljs-title" xsl:use-attribute-sets="hljs-title"/>
|
5468
|
+
<style class="hljs-title_and_class_" xsl:use-attribute-sets="hljs-title_and_class_"/>
|
5469
|
+
<style class="hljs-title_and_class__and_inherited__" xsl:use-attribute-sets="hljs-title_and_class__and_inherited__"/>
|
5470
|
+
<style class="hljs-title_and_function_" xsl:use-attribute-sets="hljs-title_and_function_"/>
|
5471
|
+
<style class="hljs-type" xsl:use-attribute-sets="hljs-type"/>
|
5472
|
+
<style class="hljs-variable" xsl:use-attribute-sets="hljs-variable"/>
|
5473
|
+
<style class="hljs-variable_and_language_" xsl:use-attribute-sets="hljs-variable_and_language_"/>
|
5474
|
+
</xsl:variable><xsl:variable name="syntax_highlight_styles" select="xalan:nodeset($syntax_highlight_styles_)"/><xsl:template match="span" mode="syntax_highlight" priority="2">
|
5475
|
+
<!-- <fo:inline color="green" font-style="italic"><xsl:apply-templates mode="syntax_highlight"/></fo:inline> -->
|
5476
|
+
<fo:inline>
|
5477
|
+
<xsl:variable name="classes_">
|
5478
|
+
<xsl:call-template name="split">
|
5479
|
+
<xsl:with-param name="pText" select="@class"/>
|
5480
|
+
<xsl:with-param name="sep" select="' '"/>
|
5481
|
+
</xsl:call-template>
|
5482
|
+
<!-- a few classes together (_and_ suffix) -->
|
5483
|
+
<xsl:if test="contains(@class, 'hljs-char') and contains(@class, 'escape_')">
|
5484
|
+
<item>hljs-char_and_escape_</item>
|
5485
|
+
</xsl:if>
|
5486
|
+
<xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_')">
|
5487
|
+
<item>hljs-title_and_class_</item>
|
5488
|
+
</xsl:if>
|
5489
|
+
<xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_') and contains(@class, 'inherited__')">
|
5490
|
+
<item>hljs-title_and_class__and_inherited__</item>
|
5491
|
+
</xsl:if>
|
5492
|
+
<xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'function_')">
|
5493
|
+
<item>hljs-title_and_function_</item>
|
5494
|
+
</xsl:if>
|
5495
|
+
<xsl:if test="contains(@class, 'hljs-variable') and contains(@class, 'language_')">
|
5496
|
+
<item>hljs-variable_and_language_</item>
|
5497
|
+
</xsl:if>
|
5498
|
+
<!-- with parent classes (_ suffix) -->
|
5499
|
+
<xsl:if test="contains(@class, 'hljs-keyword') and contains(ancestor::*/@class, 'hljs-meta')">
|
5500
|
+
<item>hljs-meta_hljs-keyword</item>
|
5501
|
+
</xsl:if>
|
5502
|
+
<xsl:if test="contains(@class, 'hljs-string') and contains(ancestor::*/@class, 'hljs-meta')">
|
5503
|
+
<item>hljs-meta_hljs-string</item>
|
5504
|
+
</xsl:if>
|
5505
|
+
</xsl:variable>
|
5506
|
+
<xsl:variable name="classes" select="xalan:nodeset($classes_)"/>
|
5507
|
+
|
5508
|
+
<xsl:for-each select="$classes/item">
|
5509
|
+
<xsl:variable name="class_name" select="."/>
|
5510
|
+
<xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
|
5511
|
+
<xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
|
5512
|
+
</xsl:for-each>
|
5513
|
+
</xsl:for-each>
|
5514
|
+
|
5515
|
+
<!-- <xsl:variable name="class_name">
|
5516
|
+
<xsl:choose>
|
5517
|
+
<xsl:when test="@class = 'hljs-attr' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-attr</xsl:when>
|
5518
|
+
<xsl:when test="@class = 'hljs-name' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-name</xsl:when>
|
5519
|
+
<xsl:when test="@class = 'hljs-string' and ancestor::*/@class = 'hljs-meta'">hljs-meta_hljs-string</xsl:when>
|
5520
|
+
<xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
|
5521
|
+
</xsl:choose>
|
5522
|
+
</xsl:variable>
|
5523
|
+
<xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
|
5524
|
+
<xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
|
5525
|
+
</xsl:for-each> -->
|
5526
|
+
|
5527
|
+
<xsl:apply-templates mode="syntax_highlight"/></fo:inline>
|
5528
|
+
</xsl:template><xsl:template match="text()" mode="syntax_highlight" priority="2">
|
5529
|
+
<xsl:call-template name="add_spaces_to_sourcecode"/>
|
5037
5530
|
</xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
|
5038
5531
|
<xsl:if test="normalize-space() != ''">
|
5039
5532
|
<fo:block xsl:use-attribute-sets="sourcecode-name-style">
|
@@ -5362,6 +5855,8 @@
|
|
5362
5855
|
</xsl:otherwise>
|
5363
5856
|
</xsl:choose> -->
|
5364
5857
|
</fo:block>
|
5858
|
+
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
|
5859
|
+
<xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
|
5365
5860
|
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
|
5366
5861
|
<xsl:if test="normalize-space() != ''">
|
5367
5862
|
<xsl:value-of select="."/>
|
@@ -5408,11 +5903,14 @@
|
|
5408
5903
|
|
5409
5904
|
|
5410
5905
|
<fo:block-container margin-left="0mm">
|
5411
|
-
|
5412
|
-
<fo:block xsl:use-attribute-sets="quote-style">
|
5906
|
+
<fo:block-container xsl:use-attribute-sets="quote-style">
|
5413
5907
|
|
5414
|
-
<
|
5415
|
-
|
5908
|
+
<fo:block-container margin-left="0mm" margin-right="0mm">
|
5909
|
+
<fo:block role="BlockQuote">
|
5910
|
+
<xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
|
5911
|
+
</fo:block>
|
5912
|
+
</fo:block-container>
|
5913
|
+
</fo:block-container>
|
5416
5914
|
<xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
|
5417
5915
|
<fo:block xsl:use-attribute-sets="quote-source-style">
|
5418
5916
|
<!-- — ISO, ISO 7301:2011, Clause 1 -->
|
@@ -5433,26 +5931,11 @@
|
|
5433
5931
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
5434
5932
|
<xsl:text>— </xsl:text>
|
5435
5933
|
<xsl:apply-templates/>
|
5436
|
-
</xsl:template><xsl:
|
5437
|
-
<xsl:
|
5438
|
-
|
5439
|
-
</xsl:for-each>
|
5440
|
-
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem']">
|
5441
|
-
<xsl:copy-of select="."/>
|
5442
|
-
</xsl:for-each>
|
5443
|
-
</xsl:variable><xsl:variable name="bibitem_hidden" select="xalan:nodeset($bibitem_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
5444
|
-
|
5445
|
-
<xsl:variable name="bibitemid">
|
5446
|
-
<xsl:choose>
|
5447
|
-
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
5448
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
5449
|
-
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
5450
|
-
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
5451
|
-
</xsl:choose>
|
5452
|
-
</xsl:variable>
|
5453
|
-
|
5934
|
+
</xsl:template><xsl:template match="*[local-name() = 'eref']">
|
5935
|
+
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
5936
|
+
<xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/>
|
5454
5937
|
<xsl:choose>
|
5455
|
-
<xsl:when test="
|
5938
|
+
<xsl:when test="$external-destination != '' or not(key('bibitems_hidden', $current_bibitemid))"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link (internal to the bibitem or external) -->
|
5456
5939
|
<fo:inline xsl:use-attribute-sets="eref-style">
|
5457
5940
|
<xsl:if test="@type = 'footnote'">
|
5458
5941
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
@@ -5466,8 +5949,8 @@
|
|
5466
5949
|
<xsl:variable name="text" select="normalize-space()"/>
|
5467
5950
|
|
5468
5951
|
|
5469
|
-
|
5470
|
-
<fo:basic-link
|
5952
|
+
|
5953
|
+
<fo:basic-link fox:alt-text="{@citeas}">
|
5471
5954
|
<xsl:if test="normalize-space(@citeas) = ''">
|
5472
5955
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
5473
5956
|
</xsl:if>
|
@@ -5477,14 +5960,21 @@
|
|
5477
5960
|
|
5478
5961
|
</xsl:if>
|
5479
5962
|
|
5480
|
-
|
5963
|
+
<xsl:choose>
|
5964
|
+
<xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
|
5965
|
+
<xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
|
5966
|
+
</xsl:when>
|
5967
|
+
<xsl:otherwise>
|
5968
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
|
5969
|
+
</xsl:otherwise>
|
5970
|
+
</xsl:choose>
|
5481
5971
|
|
5482
5972
|
<xsl:apply-templates/>
|
5483
5973
|
</fo:basic-link>
|
5484
|
-
|
5974
|
+
|
5485
5975
|
</fo:inline>
|
5486
5976
|
</xsl:when>
|
5487
|
-
<xsl:otherwise>
|
5977
|
+
<xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
|
5488
5978
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5489
5979
|
</xsl:otherwise>
|
5490
5980
|
</xsl:choose>
|
@@ -5557,6 +6047,31 @@
|
|
5557
6047
|
<xsl:with-param name="count" select="$count - 1"/>
|
5558
6048
|
</xsl:call-template>
|
5559
6049
|
</xsl:if>
|
6050
|
+
</xsl:template><xsl:template match="*[local-name() = 'preferred']">
|
6051
|
+
<xsl:variable name="level">
|
6052
|
+
<xsl:call-template name="getLevel"/>
|
6053
|
+
</xsl:variable>
|
6054
|
+
<xsl:variable name="font-size">
|
6055
|
+
inherit
|
6056
|
+
</xsl:variable>
|
6057
|
+
<xsl:variable name="levelTerm">
|
6058
|
+
<xsl:call-template name="getLevelTermName"/>
|
6059
|
+
</xsl:variable>
|
6060
|
+
<fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
|
6061
|
+
|
6062
|
+
|
6063
|
+
|
6064
|
+
<xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
|
6065
|
+
<fo:block xsl:use-attribute-sets="term-name-style">
|
6066
|
+
<xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
|
6067
|
+
</fo:block>
|
6068
|
+
</xsl:if>
|
6069
|
+
|
6070
|
+
<fo:block xsl:use-attribute-sets="preferred-term-style">
|
6071
|
+
<xsl:call-template name="setStyle_preferred"/>
|
6072
|
+
<xsl:apply-templates/>
|
6073
|
+
</fo:block>
|
6074
|
+
</fo:block>
|
5560
6075
|
</xsl:template><xsl:template match="*[local-name() = 'domain']">
|
5561
6076
|
<fo:inline xsl:use-attribute-sets="domain-style"><<xsl:apply-templates/>></fo:inline>
|
5562
6077
|
<xsl:text> </xsl:text>
|
@@ -5652,24 +6167,8 @@
|
|
5652
6167
|
<xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
|
5653
6168
|
</xsl:template><xsl:variable name="ul_labels_">
|
5654
6169
|
|
5655
|
-
|
5656
|
-
|
5657
|
-
|
5658
|
-
|
5659
|
-
|
5660
|
-
|
5661
|
-
|
5662
|
-
|
5663
|
-
|
5664
|
-
|
5665
|
-
|
5666
|
-
|
5667
|
-
|
5668
|
-
|
5669
|
-
|
5670
|
-
|
5671
|
-
<label>•</label>
|
5672
|
-
|
6170
|
+
<label>•</label>
|
6171
|
+
|
5673
6172
|
</xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
|
5674
6173
|
<xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
|
5675
6174
|
<xsl:variable name="list_level">
|
@@ -5695,6 +6194,91 @@
|
|
5695
6194
|
</xsl:template><xsl:template match="label" mode="ul_labels">
|
5696
6195
|
<xsl:copy-of select="@*[not(local-name() = 'level')]"/>
|
5697
6196
|
<xsl:value-of select="."/>
|
6197
|
+
</xsl:template><xsl:template name="getListItemFormat">
|
6198
|
+
<!-- Example: for BSI <?list-type loweralpha?> -->
|
6199
|
+
<xsl:variable name="processing_instruction_type" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-type'))"/>
|
6200
|
+
<xsl:choose>
|
6201
|
+
<xsl:when test="local-name(..) = 'ul'">
|
6202
|
+
<xsl:choose>
|
6203
|
+
<xsl:when test="normalize-space($processing_instruction_type) = 'simple'"/>
|
6204
|
+
<xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
|
6205
|
+
</xsl:choose>
|
6206
|
+
</xsl:when>
|
6207
|
+
<xsl:otherwise> <!-- for ordered lists 'ol' -->
|
6208
|
+
|
6209
|
+
<!-- Example: for BSI <?list-start 2?> -->
|
6210
|
+
<xsl:variable name="processing_instruction_start" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-start'))"/>
|
6211
|
+
|
6212
|
+
<xsl:variable name="start_value">
|
6213
|
+
<xsl:choose>
|
6214
|
+
<xsl:when test="normalize-space($processing_instruction_start) != ''">
|
6215
|
+
<xsl:value-of select="number($processing_instruction_start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
|
6216
|
+
</xsl:when>
|
6217
|
+
<xsl:when test="normalize-space(../@start) != ''">
|
6218
|
+
<xsl:value-of select="number(../@start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
|
6219
|
+
</xsl:when>
|
6220
|
+
<xsl:otherwise>0</xsl:otherwise>
|
6221
|
+
</xsl:choose>
|
6222
|
+
</xsl:variable>
|
6223
|
+
|
6224
|
+
<xsl:variable name="curr_value"><xsl:number/></xsl:variable>
|
6225
|
+
|
6226
|
+
<xsl:variable name="type">
|
6227
|
+
<xsl:choose>
|
6228
|
+
<xsl:when test="normalize-space($processing_instruction_type) != ''"><xsl:value-of select="$processing_instruction_type"/></xsl:when>
|
6229
|
+
<xsl:when test="normalize-space(../@type) != ''"><xsl:value-of select="../@type"/></xsl:when>
|
6230
|
+
|
6231
|
+
<xsl:otherwise> <!-- if no @type or @class = 'steps' -->
|
6232
|
+
|
6233
|
+
<xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
|
6234
|
+
<xsl:variable name="list_level">
|
6235
|
+
<xsl:choose>
|
6236
|
+
<xsl:when test="$list_level_ <= 5"><xsl:value-of select="$list_level_"/></xsl:when>
|
6237
|
+
<xsl:otherwise><xsl:value-of select="$list_level_ mod 5"/></xsl:otherwise>
|
6238
|
+
</xsl:choose>
|
6239
|
+
</xsl:variable>
|
6240
|
+
|
6241
|
+
<xsl:choose>
|
6242
|
+
<xsl:when test="$list_level mod 5 = 0">roman_upper</xsl:when> <!-- level 5 -->
|
6243
|
+
<xsl:when test="$list_level mod 4 = 0">alphabet_upper</xsl:when> <!-- level 4 -->
|
6244
|
+
<xsl:when test="$list_level mod 3 = 0">roman</xsl:when> <!-- level 3 -->
|
6245
|
+
<xsl:when test="$list_level mod 2 = 0 and ancestor::*/@class = 'steps'">alphabet</xsl:when> <!-- level 2 and @class = 'steps'-->
|
6246
|
+
<xsl:when test="$list_level mod 2 = 0">arabic</xsl:when> <!-- level 2 -->
|
6247
|
+
<xsl:otherwise> <!-- level 1 -->
|
6248
|
+
<xsl:choose>
|
6249
|
+
<xsl:when test="ancestor::*/@class = 'steps'">arabic</xsl:when>
|
6250
|
+
<xsl:otherwise>alphabet</xsl:otherwise>
|
6251
|
+
</xsl:choose>
|
6252
|
+
</xsl:otherwise>
|
6253
|
+
</xsl:choose>
|
6254
|
+
|
6255
|
+
</xsl:otherwise>
|
6256
|
+
</xsl:choose>
|
6257
|
+
</xsl:variable>
|
6258
|
+
|
6259
|
+
<xsl:variable name="format">
|
6260
|
+
<xsl:choose>
|
6261
|
+
<xsl:when test="$type = 'arabic'">
|
6262
|
+
1)
|
6263
|
+
</xsl:when>
|
6264
|
+
<xsl:when test="$type = 'alphabet'">
|
6265
|
+
a)
|
6266
|
+
</xsl:when>
|
6267
|
+
<xsl:when test="$type = 'alphabet_upper'">
|
6268
|
+
A.
|
6269
|
+
</xsl:when>
|
6270
|
+
<xsl:when test="$type = 'roman'">
|
6271
|
+
i)
|
6272
|
+
</xsl:when>
|
6273
|
+
<xsl:when test="$type = 'roman_upper'">I.</xsl:when>
|
6274
|
+
<xsl:otherwise>1.</xsl:otherwise> <!-- for any case, if $type has non-determined value, not using -->
|
6275
|
+
</xsl:choose>
|
6276
|
+
</xsl:variable>
|
6277
|
+
|
6278
|
+
<xsl:number value="$start_value + $curr_value" format="{normalize-space($format)}" lang="en"/>
|
6279
|
+
|
6280
|
+
</xsl:otherwise>
|
6281
|
+
</xsl:choose>
|
5698
6282
|
</xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
|
5699
6283
|
<xsl:choose>
|
5700
6284
|
<xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
|
@@ -5710,18 +6294,71 @@
|
|
5710
6294
|
|
5711
6295
|
<fo:block-container margin-left="0mm">
|
5712
6296
|
<fo:block>
|
5713
|
-
<xsl:apply-templates select="." mode="
|
6297
|
+
<xsl:apply-templates select="." mode="list"/>
|
5714
6298
|
</fo:block>
|
5715
6299
|
</fo:block-container>
|
5716
6300
|
</fo:block-container>
|
5717
6301
|
</xsl:when>
|
5718
6302
|
<xsl:otherwise>
|
5719
6303
|
<fo:block>
|
5720
|
-
<xsl:apply-templates select="." mode="
|
6304
|
+
<xsl:apply-templates select="." mode="list"/>
|
5721
6305
|
</fo:block>
|
5722
6306
|
</xsl:otherwise>
|
5723
6307
|
</xsl:choose>
|
5724
|
-
</xsl:template><xsl:
|
6308
|
+
</xsl:template><xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
|
6309
|
+
<fo:list-block xsl:use-attribute-sets="list-style">
|
6310
|
+
|
6311
|
+
|
6312
|
+
|
6313
|
+
|
6314
|
+
|
6315
|
+
|
6316
|
+
|
6317
|
+
|
6318
|
+
|
6319
|
+
<xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
|
6320
|
+
</fo:list-block>
|
6321
|
+
<!-- <xsl:for-each select="./iho:note">
|
6322
|
+
<xsl:call-template name="note"/>
|
6323
|
+
</xsl:for-each> -->
|
6324
|
+
<xsl:apply-templates select="./*[local-name() = 'note']"/>
|
6325
|
+
</xsl:template><xsl:template match="*[local-name()='li']">
|
6326
|
+
<fo:list-item xsl:use-attribute-sets="list-item-style">
|
6327
|
+
<xsl:copy-of select="@id"/>
|
6328
|
+
|
6329
|
+
|
6330
|
+
|
6331
|
+
<fo:list-item-label end-indent="label-end()">
|
6332
|
+
<fo:block xsl:use-attribute-sets="list-item-label-style">
|
6333
|
+
|
6334
|
+
|
6335
|
+
|
6336
|
+
<!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
|
6337
|
+
<xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
|
6338
|
+
<xsl:call-template name="append_add-style"/>
|
6339
|
+
</xsl:if>
|
6340
|
+
|
6341
|
+
<xsl:call-template name="getListItemFormat"/>
|
6342
|
+
</fo:block>
|
6343
|
+
</fo:list-item-label>
|
6344
|
+
<fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
|
6345
|
+
<fo:block>
|
6346
|
+
|
6347
|
+
|
6348
|
+
|
6349
|
+
|
6350
|
+
|
6351
|
+
<xsl:apply-templates/>
|
6352
|
+
|
6353
|
+
<!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
|
6354
|
+
|
6355
|
+
<xsl:for-each select="./bsi:note">
|
6356
|
+
<xsl:call-template name="note"/>
|
6357
|
+
</xsl:for-each> -->
|
6358
|
+
</fo:block>
|
6359
|
+
</fo:list-item-body>
|
6360
|
+
</fo:list-item>
|
6361
|
+
</xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="bookmark_in_fn">
|
5725
6362
|
<xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
|
5726
6363
|
<bookmark><xsl:value-of select="@id"/></bookmark>
|
5727
6364
|
</xsl:for-each>
|
@@ -5743,7 +6380,7 @@
|
|
5743
6380
|
<!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
|
5744
6381
|
<xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
|
5745
6382
|
<xsl:if test="@to">
|
5746
|
-
<xsl:value-of select="$
|
6383
|
+
<xsl:value-of select="$en_dash"/>
|
5747
6384
|
<xsl:copy>
|
5748
6385
|
<xsl:copy-of select="@*"/>
|
5749
6386
|
<xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
|
@@ -5768,7 +6405,7 @@
|
|
5768
6405
|
<xsl:param name="target"/>
|
5769
6406
|
<!-- <node></node> -->
|
5770
6407
|
<xsl:choose>
|
5771
|
-
<xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $
|
6408
|
+
<xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $en_dash) and $remove = 'true'">
|
5772
6409
|
<!-- skip text (i.e. remove it) and process next element -->
|
5773
6410
|
<!-- [removed_<xsl:value-of select="."/>] -->
|
5774
6411
|
<xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
|
@@ -5852,12 +6489,22 @@
|
|
5852
6489
|
</xsl:variable>
|
5853
6490
|
<xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
|
5854
6491
|
<xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
|
6492
|
+
</xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
|
6493
|
+
<fo:block xsl:use-attribute-sets="indexsect-title-style">
|
6494
|
+
<!-- Index -->
|
6495
|
+
<xsl:apply-templates/>
|
6496
|
+
</fo:block>
|
6497
|
+
</xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']/*[local-name() = 'title']" priority="4">
|
6498
|
+
<!-- Letter A, B, C, ... -->
|
6499
|
+
<fo:block xsl:use-attribute-sets="indexsect-clause-title-style">
|
6500
|
+
<xsl:apply-templates/>
|
6501
|
+
</fo:block>
|
5855
6502
|
</xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
|
5856
6503
|
<xsl:apply-templates/>
|
5857
6504
|
<fo:block>
|
5858
|
-
|
5859
|
-
|
5860
|
-
|
6505
|
+
<xsl:if test="following-sibling::*[local-name() = 'clause']">
|
6506
|
+
<fo:block> </fo:block>
|
6507
|
+
</xsl:if>
|
5861
6508
|
</fo:block>
|
5862
6509
|
</xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
|
5863
6510
|
<xsl:apply-templates/>
|
@@ -5867,6 +6514,9 @@
|
|
5867
6514
|
|
5868
6515
|
<xsl:apply-templates/>
|
5869
6516
|
</fo:block>
|
6517
|
+
</xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/text()">
|
6518
|
+
<!-- to split by '_' and other chars -->
|
6519
|
+
<xsl:call-template name="add-zero-spaces-java"/>
|
5870
6520
|
</xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
|
5871
6521
|
<fo:inline id="{@id}" font-size="1pt"/>
|
5872
6522
|
</xsl:template><xsl:template match="*[local-name() = 'errata']">
|
@@ -6025,23 +6675,45 @@
|
|
6025
6675
|
<xsl:apply-templates/>
|
6026
6676
|
</fo:inline>
|
6027
6677
|
</xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
|
6678
|
+
|
6679
|
+
<!-- list of footnotes to calculate actual footnotes number -->
|
6680
|
+
<xsl:variable name="p_fn_">
|
6681
|
+
<xsl:call-template name="get_fn_list"/>
|
6682
|
+
</xsl:variable>
|
6683
|
+
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
6684
|
+
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
6685
|
+
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
6686
|
+
<!-- fn sequence number in document -->
|
6687
|
+
<xsl:variable name="current_fn_number">
|
6688
|
+
<xsl:choose>
|
6689
|
+
<xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
|
6690
|
+
<xsl:otherwise>
|
6691
|
+
<!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
|
6692
|
+
<xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
|
6693
|
+
</xsl:otherwise>
|
6694
|
+
</xsl:choose>
|
6695
|
+
</xsl:variable>
|
6028
6696
|
<fo:footnote>
|
6029
6697
|
<xsl:variable name="number">
|
6030
6698
|
|
6031
|
-
<xsl:
|
6699
|
+
<xsl:value-of select="$current_fn_number"/>
|
6032
6700
|
|
6033
6701
|
</xsl:variable>
|
6702
|
+
|
6703
|
+
<xsl:variable name="current_fn_number_text">
|
6704
|
+
<xsl:value-of select="$number"/>
|
6705
|
+
|
6706
|
+
</xsl:variable>
|
6707
|
+
|
6034
6708
|
<fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
|
6035
|
-
<fo:basic-link internal-destination="{
|
6036
|
-
<xsl:value-of select="$
|
6037
|
-
|
6709
|
+
<fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
|
6710
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6038
6711
|
</fo:basic-link>
|
6039
6712
|
</fo:inline>
|
6040
6713
|
<fo:footnote-body>
|
6041
6714
|
<fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
|
6042
|
-
<fo:inline id="{
|
6043
|
-
<xsl:value-of select="$
|
6044
|
-
|
6715
|
+
<fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
|
6716
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6045
6717
|
</fo:inline>
|
6046
6718
|
<xsl:apply-templates/>
|
6047
6719
|
</fo:block>
|
@@ -6169,7 +6841,7 @@
|
|
6169
6841
|
</fo:table-body>
|
6170
6842
|
</fo:table>
|
6171
6843
|
</fo:block>
|
6172
|
-
</xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
|
6844
|
+
</xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']" priority="2">
|
6173
6845
|
<fo:table-row min-height="5mm">
|
6174
6846
|
<xsl:apply-templates/>
|
6175
6847
|
</fo:table-row>
|
@@ -6294,6 +6966,78 @@
|
|
6294
6966
|
<xsl:apply-templates/>
|
6295
6967
|
</fo:block>
|
6296
6968
|
|
6969
|
+
</xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
|
6970
|
+
<xsl:copy>
|
6971
|
+
<xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
|
6972
|
+
</xsl:copy>
|
6973
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
|
6974
|
+
<xsl:copy>
|
6975
|
+
<xsl:copy-of select="@*"/>
|
6976
|
+
|
6977
|
+
<xsl:variable name="nodes_preface_">
|
6978
|
+
<xsl:for-each select="*">
|
6979
|
+
<node id="{@id}"/>
|
6980
|
+
</xsl:for-each>
|
6981
|
+
</xsl:variable>
|
6982
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
6983
|
+
|
6984
|
+
<xsl:for-each select="*">
|
6985
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6986
|
+
|
6987
|
+
<!-- process Section's title -->
|
6988
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
6989
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
6990
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
6991
|
+
</xsl:if>
|
6992
|
+
|
6993
|
+
<xsl:choose>
|
6994
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
6995
|
+
<xsl:otherwise>
|
6996
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
6997
|
+
</xsl:otherwise>
|
6998
|
+
</xsl:choose>
|
6999
|
+
|
7000
|
+
</xsl:for-each>
|
7001
|
+
</xsl:copy>
|
7002
|
+
</xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
|
7003
|
+
<xsl:copy>
|
7004
|
+
<xsl:copy-of select="@*"/>
|
7005
|
+
|
7006
|
+
<xsl:variable name="nodes_sections_">
|
7007
|
+
<xsl:for-each select="*">
|
7008
|
+
<node id="{@id}"/>
|
7009
|
+
</xsl:for-each>
|
7010
|
+
</xsl:variable>
|
7011
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
7012
|
+
|
7013
|
+
<!-- move section 'Normative references' inside 'sections' -->
|
7014
|
+
<xsl:for-each select="* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
|
7015
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7016
|
+
|
7017
|
+
<!-- process Section's title -->
|
7018
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7019
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7020
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7021
|
+
</xsl:if>
|
7022
|
+
|
7023
|
+
<xsl:choose>
|
7024
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7025
|
+
<xsl:otherwise>
|
7026
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7027
|
+
</xsl:otherwise>
|
7028
|
+
</xsl:choose>
|
7029
|
+
|
7030
|
+
</xsl:for-each>
|
7031
|
+
</xsl:copy>
|
7032
|
+
</xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
|
7033
|
+
<xsl:copy>
|
7034
|
+
<xsl:copy-of select="@*"/>
|
7035
|
+
<!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
|
7036
|
+
<xsl:for-each select="*[not(@normative='true') and not(*[*[@normative='true']])]">
|
7037
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7038
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7039
|
+
</xsl:for-each>
|
7040
|
+
</xsl:copy>
|
6297
7041
|
</xsl:template><xsl:template name="convertDate">
|
6298
7042
|
<xsl:param name="date"/>
|
6299
7043
|
<xsl:param name="format" select="'short'"/>
|
@@ -6407,9 +7151,6 @@
|
|
6407
7151
|
<xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
|
6408
7152
|
</xsl:choose>
|
6409
7153
|
</xsl:template><xsl:template name="addPDFUAmeta">
|
6410
|
-
<xsl:variable name="lang">
|
6411
|
-
<xsl:call-template name="getLang"/>
|
6412
|
-
</xsl:variable>
|
6413
7154
|
<pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
|
6414
7155
|
<pdf:dictionary type="normal" key="ViewerPreferences">
|
6415
7156
|
<pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
|
@@ -6637,10 +7378,12 @@
|
|
6637
7378
|
<xsl:param name="key"/>
|
6638
7379
|
<xsl:param name="formatted">false</xsl:param>
|
6639
7380
|
<xsl:param name="lang"/>
|
7381
|
+
<xsl:param name="returnEmptyIfNotFound">false</xsl:param>
|
6640
7382
|
|
6641
7383
|
<xsl:variable name="curr_lang">
|
6642
7384
|
<xsl:choose>
|
6643
7385
|
<xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
|
7386
|
+
<xsl:when test="$returnEmptyIfNotFound = 'true'"/>
|
6644
7387
|
<xsl:otherwise>
|
6645
7388
|
<xsl:call-template name="getLang"/>
|
6646
7389
|
</xsl:otherwise>
|
@@ -6675,6 +7418,7 @@
|
|
6675
7418
|
</xsl:otherwise>
|
6676
7419
|
</xsl:choose>
|
6677
7420
|
</xsl:when>
|
7421
|
+
<xsl:when test="$returnEmptyIfNotFound = 'true'"/>
|
6678
7422
|
<xsl:otherwise>
|
6679
7423
|
<xsl:variable name="key_">
|
6680
7424
|
<xsl:call-template name="capitalize">
|
@@ -6744,53 +7488,153 @@
|
|
6744
7488
|
<xsl:param name="first"/>
|
6745
7489
|
<xsl:if test="$number != ''">
|
6746
7490
|
<xsl:variable name="words">
|
6747
|
-
|
6748
|
-
<
|
6749
|
-
|
6750
|
-
|
6751
|
-
|
6752
|
-
|
6753
|
-
|
6754
|
-
|
6755
|
-
|
6756
|
-
|
6757
|
-
|
6758
|
-
|
6759
|
-
|
6760
|
-
|
6761
|
-
|
6762
|
-
|
6763
|
-
|
6764
|
-
|
6765
|
-
|
6766
|
-
|
6767
|
-
|
6768
|
-
|
6769
|
-
|
6770
|
-
|
6771
|
-
|
6772
|
-
|
6773
|
-
|
6774
|
-
|
6775
|
-
|
6776
|
-
|
6777
|
-
|
6778
|
-
|
6779
|
-
|
6780
|
-
|
6781
|
-
|
6782
|
-
|
6783
|
-
|
6784
|
-
|
6785
|
-
|
6786
|
-
|
6787
|
-
|
6788
|
-
|
6789
|
-
|
6790
|
-
|
6791
|
-
|
6792
|
-
|
6793
|
-
|
7491
|
+
<words>
|
7492
|
+
<xsl:choose>
|
7493
|
+
<xsl:when test="$lang = 'fr'"> <!-- https://en.wiktionary.org/wiki/Appendix:French_numbers -->
|
7494
|
+
<word cardinal="1">Une-</word>
|
7495
|
+
<word ordinal="1">Première </word>
|
7496
|
+
<word cardinal="2">Deux-</word>
|
7497
|
+
<word ordinal="2">Seconde </word>
|
7498
|
+
<word cardinal="3">Trois-</word>
|
7499
|
+
<word ordinal="3">Tierce </word>
|
7500
|
+
<word cardinal="4">Quatre-</word>
|
7501
|
+
<word ordinal="4">Quatrième </word>
|
7502
|
+
<word cardinal="5">Cinq-</word>
|
7503
|
+
<word ordinal="5">Cinquième </word>
|
7504
|
+
<word cardinal="6">Six-</word>
|
7505
|
+
<word ordinal="6">Sixième </word>
|
7506
|
+
<word cardinal="7">Sept-</word>
|
7507
|
+
<word ordinal="7">Septième </word>
|
7508
|
+
<word cardinal="8">Huit-</word>
|
7509
|
+
<word ordinal="8">Huitième </word>
|
7510
|
+
<word cardinal="9">Neuf-</word>
|
7511
|
+
<word ordinal="9">Neuvième </word>
|
7512
|
+
<word ordinal="10">Dixième </word>
|
7513
|
+
<word ordinal="11">Onzième </word>
|
7514
|
+
<word ordinal="12">Douzième </word>
|
7515
|
+
<word ordinal="13">Treizième </word>
|
7516
|
+
<word ordinal="14">Quatorzième </word>
|
7517
|
+
<word ordinal="15">Quinzième </word>
|
7518
|
+
<word ordinal="16">Seizième </word>
|
7519
|
+
<word ordinal="17">Dix-septième </word>
|
7520
|
+
<word ordinal="18">Dix-huitième </word>
|
7521
|
+
<word ordinal="19">Dix-neuvième </word>
|
7522
|
+
<word cardinal="20">Vingt-</word>
|
7523
|
+
<word ordinal="20">Vingtième </word>
|
7524
|
+
<word cardinal="30">Trente-</word>
|
7525
|
+
<word ordinal="30">Trentième </word>
|
7526
|
+
<word cardinal="40">Quarante-</word>
|
7527
|
+
<word ordinal="40">Quarantième </word>
|
7528
|
+
<word cardinal="50">Cinquante-</word>
|
7529
|
+
<word ordinal="50">Cinquantième </word>
|
7530
|
+
<word cardinal="60">Soixante-</word>
|
7531
|
+
<word ordinal="60">Soixantième </word>
|
7532
|
+
<word cardinal="70">Septante-</word>
|
7533
|
+
<word ordinal="70">Septantième </word>
|
7534
|
+
<word cardinal="80">Huitante-</word>
|
7535
|
+
<word ordinal="80">Huitantième </word>
|
7536
|
+
<word cardinal="90">Nonante-</word>
|
7537
|
+
<word ordinal="90">Nonantième </word>
|
7538
|
+
<word cardinal="100">Cent-</word>
|
7539
|
+
<word ordinal="100">Centième </word>
|
7540
|
+
</xsl:when>
|
7541
|
+
<xsl:when test="$lang = 'ru'">
|
7542
|
+
<word cardinal="1">Одна-</word>
|
7543
|
+
<word ordinal="1">Первое </word>
|
7544
|
+
<word cardinal="2">Две-</word>
|
7545
|
+
<word ordinal="2">Второе </word>
|
7546
|
+
<word cardinal="3">Три-</word>
|
7547
|
+
<word ordinal="3">Третье </word>
|
7548
|
+
<word cardinal="4">Четыре-</word>
|
7549
|
+
<word ordinal="4">Четвертое </word>
|
7550
|
+
<word cardinal="5">Пять-</word>
|
7551
|
+
<word ordinal="5">Пятое </word>
|
7552
|
+
<word cardinal="6">Шесть-</word>
|
7553
|
+
<word ordinal="6">Шестое </word>
|
7554
|
+
<word cardinal="7">Семь-</word>
|
7555
|
+
<word ordinal="7">Седьмое </word>
|
7556
|
+
<word cardinal="8">Восемь-</word>
|
7557
|
+
<word ordinal="8">Восьмое </word>
|
7558
|
+
<word cardinal="9">Девять-</word>
|
7559
|
+
<word ordinal="9">Девятое </word>
|
7560
|
+
<word ordinal="10">Десятое </word>
|
7561
|
+
<word ordinal="11">Одиннадцатое </word>
|
7562
|
+
<word ordinal="12">Двенадцатое </word>
|
7563
|
+
<word ordinal="13">Тринадцатое </word>
|
7564
|
+
<word ordinal="14">Четырнадцатое </word>
|
7565
|
+
<word ordinal="15">Пятнадцатое </word>
|
7566
|
+
<word ordinal="16">Шестнадцатое </word>
|
7567
|
+
<word ordinal="17">Семнадцатое </word>
|
7568
|
+
<word ordinal="18">Восемнадцатое </word>
|
7569
|
+
<word ordinal="19">Девятнадцатое </word>
|
7570
|
+
<word cardinal="20">Двадцать-</word>
|
7571
|
+
<word ordinal="20">Двадцатое </word>
|
7572
|
+
<word cardinal="30">Тридцать-</word>
|
7573
|
+
<word ordinal="30">Тридцатое </word>
|
7574
|
+
<word cardinal="40">Сорок-</word>
|
7575
|
+
<word ordinal="40">Сороковое </word>
|
7576
|
+
<word cardinal="50">Пятьдесят-</word>
|
7577
|
+
<word ordinal="50">Пятидесятое </word>
|
7578
|
+
<word cardinal="60">Шестьдесят-</word>
|
7579
|
+
<word ordinal="60">Шестидесятое </word>
|
7580
|
+
<word cardinal="70">Семьдесят-</word>
|
7581
|
+
<word ordinal="70">Семидесятое </word>
|
7582
|
+
<word cardinal="80">Восемьдесят-</word>
|
7583
|
+
<word ordinal="80">Восьмидесятое </word>
|
7584
|
+
<word cardinal="90">Девяносто-</word>
|
7585
|
+
<word ordinal="90">Девяностое </word>
|
7586
|
+
<word cardinal="100">Сто-</word>
|
7587
|
+
<word ordinal="100">Сотое </word>
|
7588
|
+
</xsl:when>
|
7589
|
+
<xsl:otherwise> <!-- default english -->
|
7590
|
+
<word cardinal="1">One-</word>
|
7591
|
+
<word ordinal="1">First </word>
|
7592
|
+
<word cardinal="2">Two-</word>
|
7593
|
+
<word ordinal="2">Second </word>
|
7594
|
+
<word cardinal="3">Three-</word>
|
7595
|
+
<word ordinal="3">Third </word>
|
7596
|
+
<word cardinal="4">Four-</word>
|
7597
|
+
<word ordinal="4">Fourth </word>
|
7598
|
+
<word cardinal="5">Five-</word>
|
7599
|
+
<word ordinal="5">Fifth </word>
|
7600
|
+
<word cardinal="6">Six-</word>
|
7601
|
+
<word ordinal="6">Sixth </word>
|
7602
|
+
<word cardinal="7">Seven-</word>
|
7603
|
+
<word ordinal="7">Seventh </word>
|
7604
|
+
<word cardinal="8">Eight-</word>
|
7605
|
+
<word ordinal="8">Eighth </word>
|
7606
|
+
<word cardinal="9">Nine-</word>
|
7607
|
+
<word ordinal="9">Ninth </word>
|
7608
|
+
<word ordinal="10">Tenth </word>
|
7609
|
+
<word ordinal="11">Eleventh </word>
|
7610
|
+
<word ordinal="12">Twelfth </word>
|
7611
|
+
<word ordinal="13">Thirteenth </word>
|
7612
|
+
<word ordinal="14">Fourteenth </word>
|
7613
|
+
<word ordinal="15">Fifteenth </word>
|
7614
|
+
<word ordinal="16">Sixteenth </word>
|
7615
|
+
<word ordinal="17">Seventeenth </word>
|
7616
|
+
<word ordinal="18">Eighteenth </word>
|
7617
|
+
<word ordinal="19">Nineteenth </word>
|
7618
|
+
<word cardinal="20">Twenty-</word>
|
7619
|
+
<word ordinal="20">Twentieth </word>
|
7620
|
+
<word cardinal="30">Thirty-</word>
|
7621
|
+
<word ordinal="30">Thirtieth </word>
|
7622
|
+
<word cardinal="40">Forty-</word>
|
7623
|
+
<word ordinal="40">Fortieth </word>
|
7624
|
+
<word cardinal="50">Fifty-</word>
|
7625
|
+
<word ordinal="50">Fiftieth </word>
|
7626
|
+
<word cardinal="60">Sixty-</word>
|
7627
|
+
<word ordinal="60">Sixtieth </word>
|
7628
|
+
<word cardinal="70">Seventy-</word>
|
7629
|
+
<word ordinal="70">Seventieth </word>
|
7630
|
+
<word cardinal="80">Eighty-</word>
|
7631
|
+
<word ordinal="80">Eightieth </word>
|
7632
|
+
<word cardinal="90">Ninety-</word>
|
7633
|
+
<word ordinal="90">Ninetieth </word>
|
7634
|
+
<word cardinal="100">Hundred-</word>
|
7635
|
+
<word ordinal="100">Hundredth </word>
|
7636
|
+
</xsl:otherwise>
|
7637
|
+
</xsl:choose>
|
6794
7638
|
</words>
|
6795
7639
|
</xsl:variable>
|
6796
7640
|
|
@@ -6864,4 +7708,18 @@
|
|
6864
7708
|
<xsl:otherwise>_</xsl:otherwise>
|
6865
7709
|
</xsl:choose>
|
6866
7710
|
</xsl:attribute>
|
7711
|
+
</xsl:template><xsl:template name="substring-after-last">
|
7712
|
+
<xsl:param name="value"/>
|
7713
|
+
<xsl:param name="delimiter"/>
|
7714
|
+
<xsl:choose>
|
7715
|
+
<xsl:when test="contains($value, $delimiter)">
|
7716
|
+
<xsl:call-template name="substring-after-last">
|
7717
|
+
<xsl:with-param name="value" select="substring-after($value, $delimiter)"/>
|
7718
|
+
<xsl:with-param name="delimiter" select="$delimiter"/>
|
7719
|
+
</xsl:call-template>
|
7720
|
+
</xsl:when>
|
7721
|
+
<xsl:otherwise>
|
7722
|
+
<xsl:value-of select="$value"/>
|
7723
|
+
</xsl:otherwise>
|
7724
|
+
</xsl:choose>
|
6867
7725
|
</xsl:template></xsl:stylesheet>
|