metanorma-un 0.8.4 → 0.8.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- 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 +373 -96
- data/lib/isodoc/un/un.plenary.xsl +373 -96
- data/lib/isodoc/un/un.recommendation.xsl +420 -99
- data/lib/metanorma/un/version.rb +1 -1
- metadata +3 -3
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
<xsl:variable name="debug">false</xsl:variable>
|
12
12
|
|
13
|
-
<xsl:variable name="
|
13
|
+
<xsl:variable name="contents_">
|
14
14
|
<contents>
|
15
15
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
|
16
16
|
<xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
|
@@ -20,9 +20,11 @@
|
|
20
20
|
<xsl:apply-templates select="/un:un-standard/un:sections/*" mode="contents"/>
|
21
21
|
<xsl:apply-templates select="/un:un-standard/un:annex" mode="contents"/>
|
22
22
|
<xsl:apply-templates select="/un:un-standard/un:bibliography/un:references" mode="contents"/>
|
23
|
+
|
24
|
+
<xsl:call-template name="processTablesFigures_Contents"/>
|
23
25
|
</contents>
|
24
26
|
</xsl:variable>
|
25
|
-
|
27
|
+
<xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
|
26
28
|
|
27
29
|
<xsl:variable name="title" select="/un:un-standard/un:bibdata/un:title[@language = 'en' and @type = 'main']"/>
|
28
30
|
|
@@ -276,7 +278,7 @@
|
|
276
278
|
<xsl:if test="$debug = 'true'">
|
277
279
|
<xsl:text disable-output-escaping="yes"><!--</xsl:text>
|
278
280
|
DEBUG
|
279
|
-
contents=<xsl:copy-of select="
|
281
|
+
contents=<xsl:copy-of select="$contents"/>
|
280
282
|
<xsl:text disable-output-escaping="yes">--></xsl:text>
|
281
283
|
</xsl:if>
|
282
284
|
|
@@ -869,7 +871,7 @@
|
|
869
871
|
<xsl:text>Contents</xsl:text>
|
870
872
|
|
871
873
|
</title-toc>
|
872
|
-
|
874
|
+
|
873
875
|
<title-descriptors lang="en">Descriptors</title-descriptors>
|
874
876
|
|
875
877
|
<title-part lang="en">
|
@@ -905,7 +907,31 @@
|
|
905
907
|
<title-continued lang="en">(continued)</title-continued>
|
906
908
|
<title-continued lang="fr">(continué)</title-continued>
|
907
909
|
|
908
|
-
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="
|
910
|
+
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
|
911
|
+
<xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
|
912
|
+
<xsl:value-of select="$toc_table_title"/>
|
913
|
+
<xsl:if test="normalize-space($toc_table_title) = ''">
|
914
|
+
<xsl:call-template name="getTitle">
|
915
|
+
<xsl:with-param name="name" select="'title-list-tables'"/>
|
916
|
+
</xsl:call-template>
|
917
|
+
</xsl:if>
|
918
|
+
</xsl:variable><xsl:variable name="title-list-figures">
|
919
|
+
<xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
|
920
|
+
<xsl:value-of select="$toc_figure_title"/>
|
921
|
+
<xsl:if test="normalize-space($toc_figure_title) = ''">
|
922
|
+
<xsl:call-template name="getTitle">
|
923
|
+
<xsl:with-param name="name" select="'title-list-figures'"/>
|
924
|
+
</xsl:call-template>
|
925
|
+
</xsl:if>
|
926
|
+
</xsl:variable><xsl:variable name="title-list-recommendations">
|
927
|
+
<xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
|
928
|
+
<xsl:value-of select="$toc_requirement_title"/>
|
929
|
+
<xsl:if test="normalize-space($toc_requirement_title) = ''">
|
930
|
+
<xsl:call-template name="getTitle">
|
931
|
+
<xsl:with-param name="name" select="'title-list-recommendations'"/>
|
932
|
+
</xsl:call-template>
|
933
|
+
</xsl:if>
|
934
|
+
</xsl:variable><xsl:variable name="bibdata">
|
909
935
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
|
910
936
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
|
911
937
|
</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">
|
@@ -2117,6 +2143,30 @@
|
|
2117
2143
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2118
2144
|
<xsl:apply-templates select="." mode="contents"/>
|
2119
2145
|
</xsl:for-each>
|
2146
|
+
</xsl:template><xsl:template name="processTablesFigures_Contents">
|
2147
|
+
<xsl:param name="always"/>
|
2148
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2149
|
+
<xsl:call-template name="processTables_Contents"/>
|
2150
|
+
</xsl:if>
|
2151
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2152
|
+
<xsl:call-template name="processFigures_Contents"/>
|
2153
|
+
</xsl:if>
|
2154
|
+
</xsl:template><xsl:template name="processTables_Contents">
|
2155
|
+
<tables>
|
2156
|
+
<xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
|
2157
|
+
<table id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2158
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2159
|
+
</table>
|
2160
|
+
</xsl:for-each>
|
2161
|
+
</tables>
|
2162
|
+
</xsl:template><xsl:template name="processFigures_Contents">
|
2163
|
+
<figures>
|
2164
|
+
<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) != '']">
|
2165
|
+
<figure id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2166
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2167
|
+
</figure>
|
2168
|
+
</xsl:for-each>
|
2169
|
+
</figures>
|
2120
2170
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
2121
2171
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2122
2172
|
<xsl:sort select="@displayorder" data-type="number"/>
|
@@ -2138,8 +2188,27 @@
|
|
2138
2188
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2139
2189
|
<xsl:apply-templates select="."/>
|
2140
2190
|
</xsl:for-each>
|
2141
|
-
</xsl:template><xsl:template match="text()">
|
2142
|
-
<xsl:
|
2191
|
+
</xsl:template><xsl:variable name="tag_open">###fo:inline###</xsl:variable><xsl:variable name="tag_close">###/fo:inline###</xsl:variable><xsl:template match="text()" name="text">
|
2192
|
+
<xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
2193
|
+
<xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_open,'$1',$tag_close))"/>
|
2194
|
+
<xsl:call-template name="replace_fo_inline">
|
2195
|
+
<xsl:with-param name="text" select="$text"/>
|
2196
|
+
</xsl:call-template>
|
2197
|
+
</xsl:template><xsl:template name="replace_fo_inline">
|
2198
|
+
<xsl:param name="text"/>
|
2199
|
+
<xsl:choose>
|
2200
|
+
<xsl:when test="contains($text, $tag_open)">
|
2201
|
+
<xsl:value-of select="substring-before($text, $tag_open)"/>
|
2202
|
+
<xsl:text disable-output-escaping="yes"><fo:inline keep-together.within-line="always"></xsl:text>
|
2203
|
+
<xsl:variable name="text_after" select="substring-after($text, $tag_open)"/>
|
2204
|
+
<xsl:value-of select="substring-before($text_after, $tag_close)"/>
|
2205
|
+
<xsl:text disable-output-escaping="yes"></fo:inline></xsl:text>
|
2206
|
+
<xsl:call-template name="replace_fo_inline">
|
2207
|
+
<xsl:with-param name="text" select="substring-after($text_after, $tag_close)"/>
|
2208
|
+
</xsl:call-template>
|
2209
|
+
</xsl:when>
|
2210
|
+
<xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
|
2211
|
+
</xsl:choose>
|
2143
2212
|
</xsl:template><xsl:template match="*[local-name()='br']">
|
2144
2213
|
<xsl:value-of select="$linebreak"/>
|
2145
2214
|
</xsl:template><xsl:template match="*[local-name()='copyright-statement']">
|
@@ -2905,37 +2974,7 @@
|
|
2905
2974
|
|
2906
2975
|
<!-- list of footnotes to calculate actual footnotes number -->
|
2907
2976
|
<xsl:variable name="p_fn_">
|
2908
|
-
<xsl:
|
2909
|
-
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
2910
|
-
<fn gen_id="{generate-id(.)}">
|
2911
|
-
<xsl:copy-of select="@*"/>
|
2912
|
-
<xsl:copy-of select="node()"/>
|
2913
|
-
</fn>
|
2914
|
-
</xsl:when>
|
2915
|
-
<xsl:otherwise>
|
2916
|
-
<!-- itetation for:
|
2917
|
-
footnotes in bibdata/title
|
2918
|
-
footnotes in bibliography
|
2919
|
-
footnotes in document's body (except table's head/body/foot and figure text)
|
2920
|
-
-->
|
2921
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
2922
|
-
<fn gen_id="{generate-id(.)}">
|
2923
|
-
<xsl:copy-of select="@*"/>
|
2924
|
-
<xsl:copy-of select="node()"/>
|
2925
|
-
</fn>
|
2926
|
-
</xsl:for-each>
|
2927
|
-
<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']/*">
|
2928
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
2929
|
-
<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])]">
|
2930
|
-
<!-- copy unique fn -->
|
2931
|
-
<fn gen_id="{generate-id(.)}">
|
2932
|
-
<xsl:copy-of select="@*"/>
|
2933
|
-
<xsl:copy-of select="node()"/>
|
2934
|
-
</fn>
|
2935
|
-
</xsl:for-each>
|
2936
|
-
</xsl:for-each>
|
2937
|
-
</xsl:otherwise>
|
2938
|
-
</xsl:choose>
|
2977
|
+
<xsl:call-template name="get_fn_list"/>
|
2939
2978
|
</xsl:variable>
|
2940
2979
|
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
2941
2980
|
|
@@ -2996,6 +3035,38 @@
|
|
2996
3035
|
<xsl:copy-of select="$footnote_inline"/>
|
2997
3036
|
</xsl:otherwise>
|
2998
3037
|
</xsl:choose>
|
3038
|
+
</xsl:template><xsl:template name="get_fn_list">
|
3039
|
+
<xsl:choose>
|
3040
|
+
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
3041
|
+
<fn gen_id="{generate-id(.)}">
|
3042
|
+
<xsl:copy-of select="@*"/>
|
3043
|
+
<xsl:copy-of select="node()"/>
|
3044
|
+
</fn>
|
3045
|
+
</xsl:when>
|
3046
|
+
<xsl:otherwise>
|
3047
|
+
<!-- itetation for:
|
3048
|
+
footnotes in bibdata/title
|
3049
|
+
footnotes in bibliography
|
3050
|
+
footnotes in document's body (except table's head/body/foot and figure text)
|
3051
|
+
-->
|
3052
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
3053
|
+
<fn gen_id="{generate-id(.)}">
|
3054
|
+
<xsl:copy-of select="@*"/>
|
3055
|
+
<xsl:copy-of select="node()"/>
|
3056
|
+
</fn>
|
3057
|
+
</xsl:for-each>
|
3058
|
+
<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']/*">
|
3059
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
3060
|
+
<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])]">
|
3061
|
+
<!-- copy unique fn -->
|
3062
|
+
<fn gen_id="{generate-id(.)}">
|
3063
|
+
<xsl:copy-of select="@*"/>
|
3064
|
+
<xsl:copy-of select="node()"/>
|
3065
|
+
</fn>
|
3066
|
+
</xsl:for-each>
|
3067
|
+
</xsl:for-each>
|
3068
|
+
</xsl:otherwise>
|
3069
|
+
</xsl:choose>
|
2999
3070
|
</xsl:template><xsl:template name="table_fn_display">
|
3000
3071
|
<xsl:variable name="references">
|
3001
3072
|
|
@@ -3167,7 +3238,7 @@
|
|
3167
3238
|
</fo:inline>
|
3168
3239
|
</xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
|
3169
3240
|
<fo:inline><xsl:value-of select="."/></fo:inline>
|
3170
|
-
</xsl:template><xsl:template match="*[local-name()='fn']
|
3241
|
+
</xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
|
3171
3242
|
<fo:inline>
|
3172
3243
|
<xsl:apply-templates/>
|
3173
3244
|
</fo:inline>
|
@@ -4871,13 +4942,14 @@
|
|
4871
4942
|
<xsl:apply-templates mode="bookmarks"/>
|
4872
4943
|
</xsl:template><xsl:template name="addBookmarks">
|
4873
4944
|
<xsl:param name="contents"/>
|
4874
|
-
<xsl:
|
4945
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
4946
|
+
<xsl:if test="$contents_nodes//item">
|
4875
4947
|
<fo:bookmark-tree>
|
4876
4948
|
<xsl:choose>
|
4877
|
-
<xsl:when test="
|
4949
|
+
<xsl:when test="$contents_nodes/doc">
|
4878
4950
|
<xsl:choose>
|
4879
|
-
<xsl:when test="count(
|
4880
|
-
<xsl:for-each select="
|
4951
|
+
<xsl:when test="count($contents_nodes/doc) > 1">
|
4952
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4881
4953
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
4882
4954
|
<xsl:if test="@bundle = 'true'">
|
4883
4955
|
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
@@ -4928,7 +5000,7 @@
|
|
4928
5000
|
</xsl:for-each>
|
4929
5001
|
</xsl:when>
|
4930
5002
|
<xsl:otherwise>
|
4931
|
-
<xsl:for-each select="
|
5003
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4932
5004
|
|
4933
5005
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
4934
5006
|
|
@@ -4946,25 +5018,36 @@
|
|
4946
5018
|
</xsl:choose>
|
4947
5019
|
</xsl:when>
|
4948
5020
|
<xsl:otherwise>
|
4949
|
-
<xsl:apply-templates select="
|
5021
|
+
<xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
|
5022
|
+
|
5023
|
+
<xsl:call-template name="insertFigureBookmarks">
|
5024
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5025
|
+
</xsl:call-template>
|
5026
|
+
|
5027
|
+
<xsl:call-template name="insertTableBookmarks">
|
5028
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5029
|
+
<xsl:with-param name="lang" select="@lang"/>
|
5030
|
+
</xsl:call-template>
|
5031
|
+
|
4950
5032
|
</xsl:otherwise>
|
4951
5033
|
</xsl:choose>
|
4952
5034
|
|
5035
|
+
|
4953
5036
|
|
4954
5037
|
|
4955
5038
|
|
4956
5039
|
|
4957
|
-
|
4958
|
-
|
5040
|
+
|
4959
5041
|
|
4960
5042
|
</fo:bookmark-tree>
|
4961
5043
|
</xsl:if>
|
4962
5044
|
</xsl:template><xsl:template name="insertFigureBookmarks">
|
4963
5045
|
<xsl:param name="contents"/>
|
4964
|
-
<xsl:
|
4965
|
-
|
5046
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5047
|
+
<xsl:if test="$contents_nodes/figure">
|
5048
|
+
<fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
|
4966
5049
|
<fo:bookmark-title>Figures</fo:bookmark-title>
|
4967
|
-
<xsl:for-each select="
|
5050
|
+
<xsl:for-each select="$contents_nodes/figure">
|
4968
5051
|
<fo:bookmark internal-destination="{@id}">
|
4969
5052
|
<fo:bookmark-title>
|
4970
5053
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4973,18 +5056,40 @@
|
|
4973
5056
|
</xsl:for-each>
|
4974
5057
|
</fo:bookmark>
|
4975
5058
|
</xsl:if>
|
5059
|
+
|
5060
|
+
|
5061
|
+
<xsl:if test="$contents_nodes//figures/figure">
|
5062
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5063
|
+
|
5064
|
+
|
5065
|
+
|
5066
|
+
<xsl:variable name="bookmark-title">
|
5067
|
+
|
5068
|
+
<xsl:value-of select="$title-list-figures"/>
|
5069
|
+
|
5070
|
+
</xsl:variable>
|
5071
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
|
5072
|
+
<xsl:for-each select="$contents_nodes//figures/figure">
|
5073
|
+
<fo:bookmark internal-destination="{@id}">
|
5074
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5075
|
+
</fo:bookmark>
|
5076
|
+
</xsl:for-each>
|
5077
|
+
</fo:bookmark>
|
5078
|
+
</xsl:if>
|
5079
|
+
|
4976
5080
|
</xsl:template><xsl:template name="insertTableBookmarks">
|
4977
5081
|
<xsl:param name="contents"/>
|
4978
5082
|
<xsl:param name="lang"/>
|
4979
|
-
<xsl:
|
4980
|
-
|
5083
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5084
|
+
<xsl:if test="$contents_nodes/table">
|
5085
|
+
<fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
|
4981
5086
|
<fo:bookmark-title>
|
4982
5087
|
<xsl:choose>
|
4983
5088
|
<xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
|
4984
5089
|
<xsl:otherwise>Tables</xsl:otherwise>
|
4985
5090
|
</xsl:choose>
|
4986
5091
|
</fo:bookmark-title>
|
4987
|
-
<xsl:for-each select="
|
5092
|
+
<xsl:for-each select="$contents_nodes/table">
|
4988
5093
|
<fo:bookmark internal-destination="{@id}">
|
4989
5094
|
<fo:bookmark-title>
|
4990
5095
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4993,6 +5098,29 @@
|
|
4993
5098
|
</xsl:for-each>
|
4994
5099
|
</fo:bookmark>
|
4995
5100
|
</xsl:if>
|
5101
|
+
|
5102
|
+
|
5103
|
+
<xsl:if test="$contents_nodes//tables/table">
|
5104
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5105
|
+
|
5106
|
+
|
5107
|
+
|
5108
|
+
<xsl:variable name="bookmark-title">
|
5109
|
+
|
5110
|
+
<xsl:value-of select="$title-list-tables"/>
|
5111
|
+
|
5112
|
+
</xsl:variable>
|
5113
|
+
|
5114
|
+
<fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
|
5115
|
+
|
5116
|
+
<xsl:for-each select="$contents_nodes//tables/table">
|
5117
|
+
<fo:bookmark internal-destination="{@id}">
|
5118
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5119
|
+
</fo:bookmark>
|
5120
|
+
</xsl:for-each>
|
5121
|
+
</fo:bookmark>
|
5122
|
+
</xsl:if>
|
5123
|
+
|
4996
5124
|
</xsl:template><xsl:template name="getLangVersion">
|
4997
5125
|
<xsl:param name="lang"/>
|
4998
5126
|
<xsl:param name="doctype" select="''"/>
|
@@ -5217,7 +5345,51 @@
|
|
5217
5345
|
<xsl:with-param name="text" select="$text_step1"/>
|
5218
5346
|
</xsl:call-template>
|
5219
5347
|
</xsl:variable>
|
5220
|
-
|
5348
|
+
|
5349
|
+
<!-- <xsl:value-of select="$text_step2"/> -->
|
5350
|
+
|
5351
|
+
<!-- add zero-width space after space -->
|
5352
|
+
<xsl:variable name="text_step3" select="java:replaceAll(java:java.lang.String.new($text_step2),' ',' ')"/>
|
5353
|
+
|
5354
|
+
<!-- split text by zero-width space -->
|
5355
|
+
<xsl:variable name="text_step4">
|
5356
|
+
<xsl:call-template name="split">
|
5357
|
+
<xsl:with-param name="pText" select="$text_step3"/>
|
5358
|
+
<xsl:with-param name="sep" select="$zero_width_space"/>
|
5359
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
5360
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
5361
|
+
</xsl:call-template>
|
5362
|
+
</xsl:variable>
|
5363
|
+
|
5364
|
+
<xsl:for-each select="xalan:nodeset($text_step4)/item">
|
5365
|
+
<xsl:choose>
|
5366
|
+
<xsl:when test="string-length() > 30"> <!-- word with length more than 30 will be interspersed with zero-width space -->
|
5367
|
+
<xsl:call-template name="interspers">
|
5368
|
+
<xsl:with-param name="str" select="."/>
|
5369
|
+
</xsl:call-template>
|
5370
|
+
</xsl:when>
|
5371
|
+
<xsl:otherwise>
|
5372
|
+
<xsl:value-of select="."/>
|
5373
|
+
</xsl:otherwise>
|
5374
|
+
</xsl:choose>
|
5375
|
+
</xsl:for-each>
|
5376
|
+
|
5377
|
+
</xsl:template><xsl:template name="interspers">
|
5378
|
+
<xsl:param name="str"/>
|
5379
|
+
<xsl:param name="char" select="$zero_width_space"/>
|
5380
|
+
<xsl:if test="$str != ''">
|
5381
|
+
<xsl:value-of select="substring($str, 1, 1)"/>
|
5382
|
+
|
5383
|
+
<xsl:variable name="next_char" select="substring($str, 2, 1)"/>
|
5384
|
+
<xsl:if test="not(contains(concat(' -.:=_— ', $char), $next_char))">
|
5385
|
+
<xsl:value-of select="$char"/>
|
5386
|
+
</xsl:if>
|
5387
|
+
|
5388
|
+
<xsl:call-template name="interspers">
|
5389
|
+
<xsl:with-param name="str" select="substring($str, 2)"/>
|
5390
|
+
<xsl:with-param name="char" select="$char"/>
|
5391
|
+
</xsl:call-template>
|
5392
|
+
</xsl:if>
|
5221
5393
|
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
5222
5394
|
<xsl:apply-templates mode="syntax_highlight"/>
|
5223
5395
|
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
@@ -5653,6 +5825,8 @@
|
|
5653
5825
|
</xsl:otherwise>
|
5654
5826
|
</xsl:choose> -->
|
5655
5827
|
</fo:block>
|
5828
|
+
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
|
5829
|
+
<xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
|
5656
5830
|
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
|
5657
5831
|
<xsl:if test="normalize-space() != ''">
|
5658
5832
|
<xsl:value-of select="."/>
|
@@ -5687,7 +5861,8 @@
|
|
5687
5861
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5688
5862
|
</xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
|
5689
5863
|
<xsl:if test="normalize-space() != ''">
|
5690
|
-
<xsl:value-of select="."/>
|
5864
|
+
<!-- <xsl:value-of select="."/> -->
|
5865
|
+
<xsl:call-template name="text"/>
|
5691
5866
|
</xsl:if>
|
5692
5867
|
</xsl:template><xsl:template match="*[local-name() = 'quote']">
|
5693
5868
|
<fo:block-container margin-left="0mm">
|
@@ -5727,26 +5902,24 @@
|
|
5727
5902
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
5728
5903
|
<xsl:text>— </xsl:text>
|
5729
5904
|
<xsl:apply-templates/>
|
5730
|
-
</xsl:template><xsl:variable name="
|
5905
|
+
</xsl:template><xsl:variable name="bibitems_">
|
5906
|
+
<xsl:for-each select="//*[local-name() = 'bibitem']">
|
5907
|
+
<xsl:copy-of select="."/>
|
5908
|
+
</xsl:for-each>
|
5909
|
+
</xsl:variable><xsl:variable name="bibitems" select="xalan:nodeset($bibitems_)"/><xsl:variable name="bibitems_hidden_">
|
5731
5910
|
<xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
|
5732
5911
|
<xsl:copy-of select="."/>
|
5733
5912
|
</xsl:for-each>
|
5734
|
-
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']
|
5913
|
+
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']">
|
5735
5914
|
<xsl:copy-of select="."/>
|
5736
5915
|
</xsl:for-each>
|
5737
|
-
</xsl:variable><xsl:variable name="
|
5738
|
-
|
5739
|
-
<xsl:variable name="
|
5740
|
-
|
5741
|
-
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
5742
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
5743
|
-
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
5744
|
-
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
5745
|
-
</xsl:choose>
|
5746
|
-
</xsl:variable>
|
5747
|
-
|
5916
|
+
</xsl:variable><xsl:variable name="bibitems_hidden" select="xalan:nodeset($bibitems_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
5917
|
+
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
5918
|
+
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
5919
|
+
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
5748
5920
|
<xsl:choose>
|
5749
|
-
<xsl:when test="
|
5921
|
+
<!-- <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) -->
|
5922
|
+
<xsl:when test="$external-destination != '' or not($bibitems_hidden/*[local-name() ='bibitem'][@id = $current_bibitemid])"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link (internal to the bibitem or external) -->
|
5750
5923
|
<fo:inline xsl:use-attribute-sets="eref-style">
|
5751
5924
|
<xsl:if test="@type = 'footnote'">
|
5752
5925
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
@@ -5760,8 +5933,8 @@
|
|
5760
5933
|
<xsl:variable name="text" select="normalize-space()"/>
|
5761
5934
|
|
5762
5935
|
|
5763
|
-
|
5764
|
-
<fo:basic-link
|
5936
|
+
|
5937
|
+
<fo:basic-link fox:alt-text="{@citeas}">
|
5765
5938
|
<xsl:if test="normalize-space(@citeas) = ''">
|
5766
5939
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
5767
5940
|
</xsl:if>
|
@@ -5773,14 +5946,21 @@
|
|
5773
5946
|
|
5774
5947
|
</xsl:if>
|
5775
5948
|
|
5776
|
-
|
5949
|
+
<xsl:choose>
|
5950
|
+
<xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
|
5951
|
+
<xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
|
5952
|
+
</xsl:when>
|
5953
|
+
<xsl:otherwise>
|
5954
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
|
5955
|
+
</xsl:otherwise>
|
5956
|
+
</xsl:choose>
|
5777
5957
|
|
5778
5958
|
<xsl:apply-templates/>
|
5779
5959
|
</fo:basic-link>
|
5780
|
-
|
5960
|
+
|
5781
5961
|
</fo:inline>
|
5782
5962
|
</xsl:when>
|
5783
|
-
<xsl:otherwise>
|
5963
|
+
<xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
|
5784
5964
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5785
5965
|
</xsl:otherwise>
|
5786
5966
|
</xsl:choose>
|
@@ -6479,23 +6659,45 @@
|
|
6479
6659
|
<xsl:apply-templates/>
|
6480
6660
|
</fo:inline>
|
6481
6661
|
</xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
|
6662
|
+
|
6663
|
+
<!-- list of footnotes to calculate actual footnotes number -->
|
6664
|
+
<xsl:variable name="p_fn_">
|
6665
|
+
<xsl:call-template name="get_fn_list"/>
|
6666
|
+
</xsl:variable>
|
6667
|
+
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
6668
|
+
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
6669
|
+
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
6670
|
+
<!-- fn sequence number in document -->
|
6671
|
+
<xsl:variable name="current_fn_number">
|
6672
|
+
<xsl:choose>
|
6673
|
+
<xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
|
6674
|
+
<xsl:otherwise>
|
6675
|
+
<!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
|
6676
|
+
<xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
|
6677
|
+
</xsl:otherwise>
|
6678
|
+
</xsl:choose>
|
6679
|
+
</xsl:variable>
|
6482
6680
|
<fo:footnote>
|
6483
6681
|
<xsl:variable name="number">
|
6484
6682
|
|
6485
|
-
<xsl:
|
6683
|
+
<xsl:value-of select="$current_fn_number"/>
|
6486
6684
|
|
6487
6685
|
</xsl:variable>
|
6686
|
+
|
6687
|
+
<xsl:variable name="current_fn_number_text">
|
6688
|
+
<xsl:value-of select="$number"/>
|
6689
|
+
|
6690
|
+
</xsl:variable>
|
6691
|
+
|
6488
6692
|
<fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
|
6489
|
-
<fo:basic-link internal-destination="{
|
6490
|
-
<xsl:value-of select="$
|
6491
|
-
|
6693
|
+
<fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
|
6694
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6492
6695
|
</fo:basic-link>
|
6493
6696
|
</fo:inline>
|
6494
6697
|
<fo:footnote-body>
|
6495
6698
|
<fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
|
6496
|
-
<fo:inline id="{
|
6497
|
-
<xsl:value-of select="$
|
6498
|
-
|
6699
|
+
<fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
|
6700
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6499
6701
|
</fo:inline>
|
6500
6702
|
<xsl:apply-templates/>
|
6501
6703
|
</fo:block>
|
@@ -6746,6 +6948,78 @@
|
|
6746
6948
|
<xsl:apply-templates/>
|
6747
6949
|
</fo:block>
|
6748
6950
|
|
6951
|
+
</xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
|
6952
|
+
<xsl:copy>
|
6953
|
+
<xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
|
6954
|
+
</xsl:copy>
|
6955
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
|
6956
|
+
<xsl:copy>
|
6957
|
+
<xsl:copy-of select="@*"/>
|
6958
|
+
|
6959
|
+
<xsl:variable name="nodes_preface_">
|
6960
|
+
<xsl:for-each select="*">
|
6961
|
+
<node id="{@id}"/>
|
6962
|
+
</xsl:for-each>
|
6963
|
+
</xsl:variable>
|
6964
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
6965
|
+
|
6966
|
+
<xsl:for-each select="*">
|
6967
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6968
|
+
|
6969
|
+
<!-- process Section's title -->
|
6970
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
6971
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
6972
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
6973
|
+
</xsl:if>
|
6974
|
+
|
6975
|
+
<xsl:choose>
|
6976
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
6977
|
+
<xsl:otherwise>
|
6978
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
6979
|
+
</xsl:otherwise>
|
6980
|
+
</xsl:choose>
|
6981
|
+
|
6982
|
+
</xsl:for-each>
|
6983
|
+
</xsl:copy>
|
6984
|
+
</xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
|
6985
|
+
<xsl:copy>
|
6986
|
+
<xsl:copy-of select="@*"/>
|
6987
|
+
|
6988
|
+
<xsl:variable name="nodes_sections_">
|
6989
|
+
<xsl:for-each select="*">
|
6990
|
+
<node id="{@id}"/>
|
6991
|
+
</xsl:for-each>
|
6992
|
+
</xsl:variable>
|
6993
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
6994
|
+
|
6995
|
+
<!-- move section 'Normative references' inside 'sections' -->
|
6996
|
+
<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']]">
|
6997
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
6998
|
+
|
6999
|
+
<!-- process Section's title -->
|
7000
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7001
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7002
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7003
|
+
</xsl:if>
|
7004
|
+
|
7005
|
+
<xsl:choose>
|
7006
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7007
|
+
<xsl:otherwise>
|
7008
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7009
|
+
</xsl:otherwise>
|
7010
|
+
</xsl:choose>
|
7011
|
+
|
7012
|
+
</xsl:for-each>
|
7013
|
+
</xsl:copy>
|
7014
|
+
</xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
|
7015
|
+
<xsl:copy>
|
7016
|
+
<xsl:copy-of select="@*"/>
|
7017
|
+
<!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
|
7018
|
+
<xsl:for-each select="*[not(@normative='true') and not(*[@normative='true'])]">
|
7019
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7020
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7021
|
+
</xsl:for-each>
|
7022
|
+
</xsl:copy>
|
6749
7023
|
</xsl:template><xsl:template name="convertDate">
|
6750
7024
|
<xsl:param name="date"/>
|
6751
7025
|
<xsl:param name="format" select="'short'"/>
|
@@ -6990,22 +7264,25 @@
|
|
6990
7264
|
<xsl:param name="pText" select="."/>
|
6991
7265
|
<xsl:param name="sep" select="','"/>
|
6992
7266
|
<xsl:param name="normalize-space" select="'true'"/>
|
7267
|
+
<xsl:param name="keep_sep" select="'false'"/>
|
6993
7268
|
<xsl:if test="string-length($pText) >0">
|
6994
|
-
|
6995
|
-
|
6996
|
-
|
6997
|
-
|
6998
|
-
|
6999
|
-
|
7000
|
-
|
7001
|
-
|
7002
|
-
|
7003
|
-
|
7004
|
-
|
7005
|
-
<xsl:
|
7006
|
-
|
7007
|
-
|
7008
|
-
|
7269
|
+
<item>
|
7270
|
+
<xsl:choose>
|
7271
|
+
<xsl:when test="$normalize-space = 'true'">
|
7272
|
+
<xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
|
7273
|
+
</xsl:when>
|
7274
|
+
<xsl:otherwise>
|
7275
|
+
<xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
|
7276
|
+
</xsl:otherwise>
|
7277
|
+
</xsl:choose>
|
7278
|
+
</item>
|
7279
|
+
<xsl:if test="$keep_sep = 'true' and contains($pText, $sep)"><item><xsl:value-of select="$sep"/></item></xsl:if>
|
7280
|
+
<xsl:call-template name="split">
|
7281
|
+
<xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
|
7282
|
+
<xsl:with-param name="sep" select="$sep"/>
|
7283
|
+
<xsl:with-param name="normalize-space" select="$normalize-space"/>
|
7284
|
+
<xsl:with-param name="keep_sep" select="$keep_sep"/>
|
7285
|
+
</xsl:call-template>
|
7009
7286
|
</xsl:if>
|
7010
7287
|
</xsl:template><xsl:template name="getDocumentId">
|
7011
7288
|
<xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
|