metanorma-un 0.8.4 → 0.8.7
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/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
@@ -11,13 +11,15 @@
|
|
11
11
|
|
12
12
|
<xsl:variable name="debug">false</xsl:variable>
|
13
13
|
|
14
|
-
<xsl:variable name="
|
14
|
+
<xsl:variable name="contents_">
|
15
15
|
<contents>
|
16
16
|
<xsl:apply-templates select="/un:un-standard/un:sections/*" mode="contents"/>
|
17
17
|
<xsl:apply-templates select="/un:un-standard/un:annex" mode="contents"/>
|
18
18
|
<xsl:apply-templates select="/un:un-standard/un:bibliography/un:references" mode="contents"/>
|
19
|
+
<xsl:call-template name="processTablesFigures_Contents"/>
|
19
20
|
</contents>
|
20
21
|
</xsl:variable>
|
22
|
+
<xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
|
21
23
|
|
22
24
|
|
23
25
|
<xsl:variable name="title" select="/un:un-standard/un:bibdata/un:title[@language = 'en' and @type = 'main']"/>
|
@@ -198,7 +200,7 @@
|
|
198
200
|
</xsl:variable>
|
199
201
|
<fo:block font-size="9pt" text-align="right" font-style="italic" margin-bottom="6pt"><xsl:value-of select="$title-page"/></fo:block>
|
200
202
|
<fo:block role="TOC">
|
201
|
-
<xsl:for-each select="
|
203
|
+
<xsl:for-each select="$contents//item[not (@type = 'annex' or @parent = 'annex') and @display = 'true']">
|
202
204
|
|
203
205
|
<fo:block role="TOCI">
|
204
206
|
|
@@ -236,9 +238,9 @@
|
|
236
238
|
|
237
239
|
</xsl:for-each>
|
238
240
|
|
239
|
-
<xsl:if test="
|
240
|
-
<fo:block text-align="center" margin-top="12pt" margin-bottom="12pt">ANNEXES</fo:block>
|
241
|
-
<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']">
|
242
244
|
<fo:block role="TOCI">
|
243
245
|
<fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
|
244
246
|
<fo:basic-link internal-destination="{@id}" fox:alt-text="{@section}">
|
@@ -268,6 +270,26 @@
|
|
268
270
|
</xsl:for-each>
|
269
271
|
</xsl:if>
|
270
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
|
+
|
271
293
|
</fo:block>
|
272
294
|
</fo:flow>
|
273
295
|
</fo:page-sequence>
|
@@ -289,7 +311,7 @@
|
|
289
311
|
<xsl:if test="$debug = 'true'">
|
290
312
|
<xsl:text disable-output-escaping="yes"><!--</xsl:text>
|
291
313
|
DEBUG
|
292
|
-
contents=<xsl:copy-of select="
|
314
|
+
contents=<xsl:copy-of select="$contents"/>
|
293
315
|
<xsl:text disable-output-escaping="yes">--></xsl:text>
|
294
316
|
</xsl:if>
|
295
317
|
|
@@ -327,6 +349,30 @@
|
|
327
349
|
</fo:page-sequence>
|
328
350
|
</fo:root>
|
329
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>
|
330
376
|
|
331
377
|
<!-- ============================= -->
|
332
378
|
<!-- CONTENTS -->
|
@@ -896,7 +942,7 @@
|
|
896
942
|
<xsl:text>Contents</xsl:text>
|
897
943
|
|
898
944
|
</title-toc>
|
899
|
-
|
945
|
+
|
900
946
|
<title-descriptors lang="en">Descriptors</title-descriptors>
|
901
947
|
|
902
948
|
<title-part lang="en">
|
@@ -932,7 +978,31 @@
|
|
932
978
|
<title-continued lang="en">(continued)</title-continued>
|
933
979
|
<title-continued lang="fr">(continué)</title-continued>
|
934
980
|
|
935
|
-
</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">
|
936
1006
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
|
937
1007
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
|
938
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">
|
@@ -2132,6 +2202,30 @@
|
|
2132
2202
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2133
2203
|
<xsl:apply-templates select="." mode="contents"/>
|
2134
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>
|
2135
2229
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
2136
2230
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2137
2231
|
<xsl:sort select="@displayorder" data-type="number"/>
|
@@ -2153,8 +2247,27 @@
|
|
2153
2247
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2154
2248
|
<xsl:apply-templates select="."/>
|
2155
2249
|
</xsl:for-each>
|
2156
|
-
</xsl:template><xsl:template match="text()">
|
2157
|
-
<xsl:
|
2250
|
+
</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">
|
2251
|
+
<xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
2252
|
+
<xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_open,'$1',$tag_close))"/>
|
2253
|
+
<xsl:call-template name="replace_fo_inline">
|
2254
|
+
<xsl:with-param name="text" select="$text"/>
|
2255
|
+
</xsl:call-template>
|
2256
|
+
</xsl:template><xsl:template name="replace_fo_inline">
|
2257
|
+
<xsl:param name="text"/>
|
2258
|
+
<xsl:choose>
|
2259
|
+
<xsl:when test="contains($text, $tag_open)">
|
2260
|
+
<xsl:value-of select="substring-before($text, $tag_open)"/>
|
2261
|
+
<xsl:text disable-output-escaping="yes"><fo:inline keep-together.within-line="always"></xsl:text>
|
2262
|
+
<xsl:variable name="text_after" select="substring-after($text, $tag_open)"/>
|
2263
|
+
<xsl:value-of select="substring-before($text_after, $tag_close)"/>
|
2264
|
+
<xsl:text disable-output-escaping="yes"></fo:inline></xsl:text>
|
2265
|
+
<xsl:call-template name="replace_fo_inline">
|
2266
|
+
<xsl:with-param name="text" select="substring-after($text_after, $tag_close)"/>
|
2267
|
+
</xsl:call-template>
|
2268
|
+
</xsl:when>
|
2269
|
+
<xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
|
2270
|
+
</xsl:choose>
|
2158
2271
|
</xsl:template><xsl:template match="*[local-name()='br']">
|
2159
2272
|
<xsl:value-of select="$linebreak"/>
|
2160
2273
|
</xsl:template><xsl:template match="*[local-name()='copyright-statement']">
|
@@ -2945,37 +3058,7 @@
|
|
2945
3058
|
|
2946
3059
|
<!-- list of footnotes to calculate actual footnotes number -->
|
2947
3060
|
<xsl:variable name="p_fn_">
|
2948
|
-
<xsl:
|
2949
|
-
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
2950
|
-
<fn gen_id="{generate-id(.)}">
|
2951
|
-
<xsl:copy-of select="@*"/>
|
2952
|
-
<xsl:copy-of select="node()"/>
|
2953
|
-
</fn>
|
2954
|
-
</xsl:when>
|
2955
|
-
<xsl:otherwise>
|
2956
|
-
<!-- itetation for:
|
2957
|
-
footnotes in bibdata/title
|
2958
|
-
footnotes in bibliography
|
2959
|
-
footnotes in document's body (except table's head/body/foot and figure text)
|
2960
|
-
-->
|
2961
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
2962
|
-
<fn gen_id="{generate-id(.)}">
|
2963
|
-
<xsl:copy-of select="@*"/>
|
2964
|
-
<xsl:copy-of select="node()"/>
|
2965
|
-
</fn>
|
2966
|
-
</xsl:for-each>
|
2967
|
-
<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']/*">
|
2968
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
2969
|
-
<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])]">
|
2970
|
-
<!-- copy unique fn -->
|
2971
|
-
<fn gen_id="{generate-id(.)}">
|
2972
|
-
<xsl:copy-of select="@*"/>
|
2973
|
-
<xsl:copy-of select="node()"/>
|
2974
|
-
</fn>
|
2975
|
-
</xsl:for-each>
|
2976
|
-
</xsl:for-each>
|
2977
|
-
</xsl:otherwise>
|
2978
|
-
</xsl:choose>
|
3061
|
+
<xsl:call-template name="get_fn_list"/>
|
2979
3062
|
</xsl:variable>
|
2980
3063
|
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
2981
3064
|
|
@@ -3036,6 +3119,38 @@
|
|
3036
3119
|
<xsl:copy-of select="$footnote_inline"/>
|
3037
3120
|
</xsl:otherwise>
|
3038
3121
|
</xsl:choose>
|
3122
|
+
</xsl:template><xsl:template name="get_fn_list">
|
3123
|
+
<xsl:choose>
|
3124
|
+
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
3125
|
+
<fn gen_id="{generate-id(.)}">
|
3126
|
+
<xsl:copy-of select="@*"/>
|
3127
|
+
<xsl:copy-of select="node()"/>
|
3128
|
+
</fn>
|
3129
|
+
</xsl:when>
|
3130
|
+
<xsl:otherwise>
|
3131
|
+
<!-- itetation for:
|
3132
|
+
footnotes in bibdata/title
|
3133
|
+
footnotes in bibliography
|
3134
|
+
footnotes in document's body (except table's head/body/foot and figure text)
|
3135
|
+
-->
|
3136
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
3137
|
+
<fn gen_id="{generate-id(.)}">
|
3138
|
+
<xsl:copy-of select="@*"/>
|
3139
|
+
<xsl:copy-of select="node()"/>
|
3140
|
+
</fn>
|
3141
|
+
</xsl:for-each>
|
3142
|
+
<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']/*">
|
3143
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
3144
|
+
<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])]">
|
3145
|
+
<!-- copy unique fn -->
|
3146
|
+
<fn gen_id="{generate-id(.)}">
|
3147
|
+
<xsl:copy-of select="@*"/>
|
3148
|
+
<xsl:copy-of select="node()"/>
|
3149
|
+
</fn>
|
3150
|
+
</xsl:for-each>
|
3151
|
+
</xsl:for-each>
|
3152
|
+
</xsl:otherwise>
|
3153
|
+
</xsl:choose>
|
3039
3154
|
</xsl:template><xsl:template name="table_fn_display">
|
3040
3155
|
<xsl:variable name="references">
|
3041
3156
|
|
@@ -3207,7 +3322,7 @@
|
|
3207
3322
|
</fo:inline>
|
3208
3323
|
</xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
|
3209
3324
|
<fo:inline><xsl:value-of select="."/></fo:inline>
|
3210
|
-
</xsl:template><xsl:template match="*[local-name()='fn']
|
3325
|
+
</xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
|
3211
3326
|
<fo:inline>
|
3212
3327
|
<xsl:apply-templates/>
|
3213
3328
|
</fo:inline>
|
@@ -4920,13 +5035,14 @@
|
|
4920
5035
|
<xsl:apply-templates mode="bookmarks"/>
|
4921
5036
|
</xsl:template><xsl:template name="addBookmarks">
|
4922
5037
|
<xsl:param name="contents"/>
|
4923
|
-
<xsl:
|
5038
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5039
|
+
<xsl:if test="$contents_nodes//item">
|
4924
5040
|
<fo:bookmark-tree>
|
4925
5041
|
<xsl:choose>
|
4926
|
-
<xsl:when test="
|
5042
|
+
<xsl:when test="$contents_nodes/doc">
|
4927
5043
|
<xsl:choose>
|
4928
|
-
<xsl:when test="count(
|
4929
|
-
<xsl:for-each select="
|
5044
|
+
<xsl:when test="count($contents_nodes/doc) > 1">
|
5045
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4930
5046
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
4931
5047
|
<xsl:if test="@bundle = 'true'">
|
4932
5048
|
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
@@ -4977,7 +5093,7 @@
|
|
4977
5093
|
</xsl:for-each>
|
4978
5094
|
</xsl:when>
|
4979
5095
|
<xsl:otherwise>
|
4980
|
-
<xsl:for-each select="
|
5096
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4981
5097
|
|
4982
5098
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
4983
5099
|
|
@@ -4995,25 +5111,36 @@
|
|
4995
5111
|
</xsl:choose>
|
4996
5112
|
</xsl:when>
|
4997
5113
|
<xsl:otherwise>
|
4998
|
-
<xsl:apply-templates select="
|
5114
|
+
<xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
|
5115
|
+
|
5116
|
+
<xsl:call-template name="insertFigureBookmarks">
|
5117
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5118
|
+
</xsl:call-template>
|
5119
|
+
|
5120
|
+
<xsl:call-template name="insertTableBookmarks">
|
5121
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5122
|
+
<xsl:with-param name="lang" select="@lang"/>
|
5123
|
+
</xsl:call-template>
|
5124
|
+
|
4999
5125
|
</xsl:otherwise>
|
5000
5126
|
</xsl:choose>
|
5001
5127
|
|
5128
|
+
|
5002
5129
|
|
5003
5130
|
|
5004
5131
|
|
5005
5132
|
|
5006
|
-
|
5007
|
-
|
5133
|
+
|
5008
5134
|
|
5009
5135
|
</fo:bookmark-tree>
|
5010
5136
|
</xsl:if>
|
5011
5137
|
</xsl:template><xsl:template name="insertFigureBookmarks">
|
5012
5138
|
<xsl:param name="contents"/>
|
5013
|
-
<xsl:
|
5014
|
-
|
5139
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5140
|
+
<xsl:if test="$contents_nodes/figure">
|
5141
|
+
<fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
|
5015
5142
|
<fo:bookmark-title>Figures</fo:bookmark-title>
|
5016
|
-
<xsl:for-each select="
|
5143
|
+
<xsl:for-each select="$contents_nodes/figure">
|
5017
5144
|
<fo:bookmark internal-destination="{@id}">
|
5018
5145
|
<fo:bookmark-title>
|
5019
5146
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -5022,18 +5149,40 @@
|
|
5022
5149
|
</xsl:for-each>
|
5023
5150
|
</fo:bookmark>
|
5024
5151
|
</xsl:if>
|
5152
|
+
|
5153
|
+
|
5154
|
+
<xsl:if test="$contents_nodes//figures/figure">
|
5155
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5156
|
+
|
5157
|
+
|
5158
|
+
|
5159
|
+
<xsl:variable name="bookmark-title">
|
5160
|
+
|
5161
|
+
<xsl:value-of select="$title-list-figures"/>
|
5162
|
+
|
5163
|
+
</xsl:variable>
|
5164
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
|
5165
|
+
<xsl:for-each select="$contents_nodes//figures/figure">
|
5166
|
+
<fo:bookmark internal-destination="{@id}">
|
5167
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5168
|
+
</fo:bookmark>
|
5169
|
+
</xsl:for-each>
|
5170
|
+
</fo:bookmark>
|
5171
|
+
</xsl:if>
|
5172
|
+
|
5025
5173
|
</xsl:template><xsl:template name="insertTableBookmarks">
|
5026
5174
|
<xsl:param name="contents"/>
|
5027
5175
|
<xsl:param name="lang"/>
|
5028
|
-
<xsl:
|
5029
|
-
|
5176
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5177
|
+
<xsl:if test="$contents_nodes/table">
|
5178
|
+
<fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
|
5030
5179
|
<fo:bookmark-title>
|
5031
5180
|
<xsl:choose>
|
5032
5181
|
<xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
|
5033
5182
|
<xsl:otherwise>Tables</xsl:otherwise>
|
5034
5183
|
</xsl:choose>
|
5035
5184
|
</fo:bookmark-title>
|
5036
|
-
<xsl:for-each select="
|
5185
|
+
<xsl:for-each select="$contents_nodes/table">
|
5037
5186
|
<fo:bookmark internal-destination="{@id}">
|
5038
5187
|
<fo:bookmark-title>
|
5039
5188
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -5042,6 +5191,29 @@
|
|
5042
5191
|
</xsl:for-each>
|
5043
5192
|
</fo:bookmark>
|
5044
5193
|
</xsl:if>
|
5194
|
+
|
5195
|
+
|
5196
|
+
<xsl:if test="$contents_nodes//tables/table">
|
5197
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5198
|
+
|
5199
|
+
|
5200
|
+
|
5201
|
+
<xsl:variable name="bookmark-title">
|
5202
|
+
|
5203
|
+
<xsl:value-of select="$title-list-tables"/>
|
5204
|
+
|
5205
|
+
</xsl:variable>
|
5206
|
+
|
5207
|
+
<fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
|
5208
|
+
|
5209
|
+
<xsl:for-each select="$contents_nodes//tables/table">
|
5210
|
+
<fo:bookmark internal-destination="{@id}">
|
5211
|
+
<fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
|
5212
|
+
</fo:bookmark>
|
5213
|
+
</xsl:for-each>
|
5214
|
+
</fo:bookmark>
|
5215
|
+
</xsl:if>
|
5216
|
+
|
5045
5217
|
</xsl:template><xsl:template name="getLangVersion">
|
5046
5218
|
<xsl:param name="lang"/>
|
5047
5219
|
<xsl:param name="doctype" select="''"/>
|
@@ -5266,7 +5438,51 @@
|
|
5266
5438
|
<xsl:with-param name="text" select="$text_step1"/>
|
5267
5439
|
</xsl:call-template>
|
5268
5440
|
</xsl:variable>
|
5269
|
-
|
5441
|
+
|
5442
|
+
<!-- <xsl:value-of select="$text_step2"/> -->
|
5443
|
+
|
5444
|
+
<!-- add zero-width space after space -->
|
5445
|
+
<xsl:variable name="text_step3" select="java:replaceAll(java:java.lang.String.new($text_step2),' ',' ')"/>
|
5446
|
+
|
5447
|
+
<!-- split text by zero-width space -->
|
5448
|
+
<xsl:variable name="text_step4">
|
5449
|
+
<xsl:call-template name="split">
|
5450
|
+
<xsl:with-param name="pText" select="$text_step3"/>
|
5451
|
+
<xsl:with-param name="sep" select="$zero_width_space"/>
|
5452
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
5453
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
5454
|
+
</xsl:call-template>
|
5455
|
+
</xsl:variable>
|
5456
|
+
|
5457
|
+
<xsl:for-each select="xalan:nodeset($text_step4)/item">
|
5458
|
+
<xsl:choose>
|
5459
|
+
<xsl:when test="string-length() > 30"> <!-- word with length more than 30 will be interspersed with zero-width space -->
|
5460
|
+
<xsl:call-template name="interspers">
|
5461
|
+
<xsl:with-param name="str" select="."/>
|
5462
|
+
</xsl:call-template>
|
5463
|
+
</xsl:when>
|
5464
|
+
<xsl:otherwise>
|
5465
|
+
<xsl:value-of select="."/>
|
5466
|
+
</xsl:otherwise>
|
5467
|
+
</xsl:choose>
|
5468
|
+
</xsl:for-each>
|
5469
|
+
|
5470
|
+
</xsl:template><xsl:template name="interspers">
|
5471
|
+
<xsl:param name="str"/>
|
5472
|
+
<xsl:param name="char" select="$zero_width_space"/>
|
5473
|
+
<xsl:if test="$str != ''">
|
5474
|
+
<xsl:value-of select="substring($str, 1, 1)"/>
|
5475
|
+
|
5476
|
+
<xsl:variable name="next_char" select="substring($str, 2, 1)"/>
|
5477
|
+
<xsl:if test="not(contains(concat(' -.:=_— ', $char), $next_char))">
|
5478
|
+
<xsl:value-of select="$char"/>
|
5479
|
+
</xsl:if>
|
5480
|
+
|
5481
|
+
<xsl:call-template name="interspers">
|
5482
|
+
<xsl:with-param name="str" select="substring($str, 2)"/>
|
5483
|
+
<xsl:with-param name="char" select="$char"/>
|
5484
|
+
</xsl:call-template>
|
5485
|
+
</xsl:if>
|
5270
5486
|
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
5271
5487
|
<xsl:apply-templates mode="syntax_highlight"/>
|
5272
5488
|
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
@@ -5702,6 +5918,8 @@
|
|
5702
5918
|
</xsl:otherwise>
|
5703
5919
|
</xsl:choose> -->
|
5704
5920
|
</fo:block>
|
5921
|
+
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
|
5922
|
+
<xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
|
5705
5923
|
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
|
5706
5924
|
<xsl:if test="normalize-space() != ''">
|
5707
5925
|
<xsl:value-of select="."/>
|
@@ -5736,7 +5954,8 @@
|
|
5736
5954
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5737
5955
|
</xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
|
5738
5956
|
<xsl:if test="normalize-space() != ''">
|
5739
|
-
<xsl:value-of select="."/>
|
5957
|
+
<!-- <xsl:value-of select="."/> -->
|
5958
|
+
<xsl:call-template name="text"/>
|
5740
5959
|
</xsl:if>
|
5741
5960
|
</xsl:template><xsl:template match="*[local-name() = 'quote']">
|
5742
5961
|
<fo:block-container margin-left="0mm">
|
@@ -5776,26 +5995,24 @@
|
|
5776
5995
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
5777
5996
|
<xsl:text>— </xsl:text>
|
5778
5997
|
<xsl:apply-templates/>
|
5779
|
-
</xsl:template><xsl:variable name="
|
5998
|
+
</xsl:template><xsl:variable name="bibitems_">
|
5999
|
+
<xsl:for-each select="//*[local-name() = 'bibitem']">
|
6000
|
+
<xsl:copy-of select="."/>
|
6001
|
+
</xsl:for-each>
|
6002
|
+
</xsl:variable><xsl:variable name="bibitems" select="xalan:nodeset($bibitems_)"/><xsl:variable name="bibitems_hidden_">
|
5780
6003
|
<xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
|
5781
6004
|
<xsl:copy-of select="."/>
|
5782
6005
|
</xsl:for-each>
|
5783
|
-
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']
|
6006
|
+
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']">
|
5784
6007
|
<xsl:copy-of select="."/>
|
5785
6008
|
</xsl:for-each>
|
5786
|
-
</xsl:variable><xsl:variable name="
|
5787
|
-
|
5788
|
-
<xsl:variable name="
|
5789
|
-
|
5790
|
-
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
5791
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
5792
|
-
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
5793
|
-
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
5794
|
-
</xsl:choose>
|
5795
|
-
</xsl:variable>
|
5796
|
-
|
6009
|
+
</xsl:variable><xsl:variable name="bibitems_hidden" select="xalan:nodeset($bibitems_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
6010
|
+
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
6011
|
+
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
6012
|
+
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
5797
6013
|
<xsl:choose>
|
5798
|
-
<xsl:when test="
|
6014
|
+
<!-- <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) -->
|
6015
|
+
<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) -->
|
5799
6016
|
<fo:inline xsl:use-attribute-sets="eref-style">
|
5800
6017
|
<xsl:if test="@type = 'footnote'">
|
5801
6018
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
@@ -5809,8 +6026,8 @@
|
|
5809
6026
|
<xsl:variable name="text" select="normalize-space()"/>
|
5810
6027
|
|
5811
6028
|
|
5812
|
-
|
5813
|
-
<fo:basic-link
|
6029
|
+
|
6030
|
+
<fo:basic-link fox:alt-text="{@citeas}">
|
5814
6031
|
<xsl:if test="normalize-space(@citeas) = ''">
|
5815
6032
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
5816
6033
|
</xsl:if>
|
@@ -5820,14 +6037,21 @@
|
|
5820
6037
|
|
5821
6038
|
</xsl:if>
|
5822
6039
|
|
5823
|
-
|
6040
|
+
<xsl:choose>
|
6041
|
+
<xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
|
6042
|
+
<xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
|
6043
|
+
</xsl:when>
|
6044
|
+
<xsl:otherwise>
|
6045
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
|
6046
|
+
</xsl:otherwise>
|
6047
|
+
</xsl:choose>
|
5824
6048
|
|
5825
6049
|
<xsl:apply-templates/>
|
5826
6050
|
</fo:basic-link>
|
5827
|
-
|
6051
|
+
|
5828
6052
|
</fo:inline>
|
5829
6053
|
</xsl:when>
|
5830
|
-
<xsl:otherwise>
|
6054
|
+
<xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
|
5831
6055
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5832
6056
|
</xsl:otherwise>
|
5833
6057
|
</xsl:choose>
|
@@ -6528,23 +6752,45 @@
|
|
6528
6752
|
<xsl:apply-templates/>
|
6529
6753
|
</fo:inline>
|
6530
6754
|
</xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
|
6755
|
+
|
6756
|
+
<!-- list of footnotes to calculate actual footnotes number -->
|
6757
|
+
<xsl:variable name="p_fn_">
|
6758
|
+
<xsl:call-template name="get_fn_list"/>
|
6759
|
+
</xsl:variable>
|
6760
|
+
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
6761
|
+
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
6762
|
+
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
6763
|
+
<!-- fn sequence number in document -->
|
6764
|
+
<xsl:variable name="current_fn_number">
|
6765
|
+
<xsl:choose>
|
6766
|
+
<xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
|
6767
|
+
<xsl:otherwise>
|
6768
|
+
<!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
|
6769
|
+
<xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
|
6770
|
+
</xsl:otherwise>
|
6771
|
+
</xsl:choose>
|
6772
|
+
</xsl:variable>
|
6531
6773
|
<fo:footnote>
|
6532
6774
|
<xsl:variable name="number">
|
6533
6775
|
|
6534
|
-
<xsl:
|
6776
|
+
<xsl:value-of select="$current_fn_number"/>
|
6535
6777
|
|
6536
6778
|
</xsl:variable>
|
6779
|
+
|
6780
|
+
<xsl:variable name="current_fn_number_text">
|
6781
|
+
<xsl:value-of select="$number"/>
|
6782
|
+
|
6783
|
+
</xsl:variable>
|
6784
|
+
|
6537
6785
|
<fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
|
6538
|
-
<fo:basic-link internal-destination="{
|
6539
|
-
<xsl:value-of select="$
|
6540
|
-
|
6786
|
+
<fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
|
6787
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6541
6788
|
</fo:basic-link>
|
6542
6789
|
</fo:inline>
|
6543
6790
|
<fo:footnote-body>
|
6544
6791
|
<fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
|
6545
|
-
<fo:inline id="{
|
6546
|
-
<xsl:value-of select="$
|
6547
|
-
|
6792
|
+
<fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
|
6793
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6548
6794
|
</fo:inline>
|
6549
6795
|
<xsl:apply-templates/>
|
6550
6796
|
</fo:block>
|
@@ -6797,6 +7043,78 @@
|
|
6797
7043
|
<xsl:apply-templates/>
|
6798
7044
|
</fo:block>
|
6799
7045
|
|
7046
|
+
</xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
|
7047
|
+
<xsl:copy>
|
7048
|
+
<xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
|
7049
|
+
</xsl:copy>
|
7050
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
|
7051
|
+
<xsl:copy>
|
7052
|
+
<xsl:copy-of select="@*"/>
|
7053
|
+
|
7054
|
+
<xsl:variable name="nodes_preface_">
|
7055
|
+
<xsl:for-each select="*">
|
7056
|
+
<node id="{@id}"/>
|
7057
|
+
</xsl:for-each>
|
7058
|
+
</xsl:variable>
|
7059
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
7060
|
+
|
7061
|
+
<xsl:for-each select="*">
|
7062
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7063
|
+
|
7064
|
+
<!-- process Section's title -->
|
7065
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7066
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7067
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7068
|
+
</xsl:if>
|
7069
|
+
|
7070
|
+
<xsl:choose>
|
7071
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7072
|
+
<xsl:otherwise>
|
7073
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7074
|
+
</xsl:otherwise>
|
7075
|
+
</xsl:choose>
|
7076
|
+
|
7077
|
+
</xsl:for-each>
|
7078
|
+
</xsl:copy>
|
7079
|
+
</xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
|
7080
|
+
<xsl:copy>
|
7081
|
+
<xsl:copy-of select="@*"/>
|
7082
|
+
|
7083
|
+
<xsl:variable name="nodes_sections_">
|
7084
|
+
<xsl:for-each select="*">
|
7085
|
+
<node id="{@id}"/>
|
7086
|
+
</xsl:for-each>
|
7087
|
+
</xsl:variable>
|
7088
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
7089
|
+
|
7090
|
+
<!-- move section 'Normative references' inside 'sections' -->
|
7091
|
+
<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']]">
|
7092
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7093
|
+
|
7094
|
+
<!-- process Section's title -->
|
7095
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7096
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7097
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7098
|
+
</xsl:if>
|
7099
|
+
|
7100
|
+
<xsl:choose>
|
7101
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7102
|
+
<xsl:otherwise>
|
7103
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7104
|
+
</xsl:otherwise>
|
7105
|
+
</xsl:choose>
|
7106
|
+
|
7107
|
+
</xsl:for-each>
|
7108
|
+
</xsl:copy>
|
7109
|
+
</xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
|
7110
|
+
<xsl:copy>
|
7111
|
+
<xsl:copy-of select="@*"/>
|
7112
|
+
<!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
|
7113
|
+
<xsl:for-each select="*[not(@normative='true') and not(*[@normative='true'])]">
|
7114
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7115
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7116
|
+
</xsl:for-each>
|
7117
|
+
</xsl:copy>
|
6800
7118
|
</xsl:template><xsl:template name="convertDate">
|
6801
7119
|
<xsl:param name="date"/>
|
6802
7120
|
<xsl:param name="format" select="'short'"/>
|
@@ -7041,22 +7359,25 @@
|
|
7041
7359
|
<xsl:param name="pText" select="."/>
|
7042
7360
|
<xsl:param name="sep" select="','"/>
|
7043
7361
|
<xsl:param name="normalize-space" select="'true'"/>
|
7362
|
+
<xsl:param name="keep_sep" select="'false'"/>
|
7044
7363
|
<xsl:if test="string-length($pText) >0">
|
7045
|
-
|
7046
|
-
|
7047
|
-
|
7048
|
-
|
7049
|
-
|
7050
|
-
|
7051
|
-
|
7052
|
-
|
7053
|
-
|
7054
|
-
|
7055
|
-
|
7056
|
-
<xsl:
|
7057
|
-
|
7058
|
-
|
7059
|
-
|
7364
|
+
<item>
|
7365
|
+
<xsl:choose>
|
7366
|
+
<xsl:when test="$normalize-space = 'true'">
|
7367
|
+
<xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
|
7368
|
+
</xsl:when>
|
7369
|
+
<xsl:otherwise>
|
7370
|
+
<xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
|
7371
|
+
</xsl:otherwise>
|
7372
|
+
</xsl:choose>
|
7373
|
+
</item>
|
7374
|
+
<xsl:if test="$keep_sep = 'true' and contains($pText, $sep)"><item><xsl:value-of select="$sep"/></item></xsl:if>
|
7375
|
+
<xsl:call-template name="split">
|
7376
|
+
<xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
|
7377
|
+
<xsl:with-param name="sep" select="$sep"/>
|
7378
|
+
<xsl:with-param name="normalize-space" select="$normalize-space"/>
|
7379
|
+
<xsl:with-param name="keep_sep" select="$keep_sep"/>
|
7380
|
+
</xsl:call-template>
|
7060
7381
|
</xsl:if>
|
7061
7382
|
</xsl:template><xsl:template name="getDocumentId">
|
7062
7383
|
<xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
|