metanorma-iho 0.5.4 → 0.5.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.
@@ -20,12 +20,15 @@
20
20
  <item level="1" id="Foreword" display="true">Foreword</item>
21
21
  <item id="term-script" display="false">3.2</item>
22
22
  -->
23
- <xsl:variable name="contents">
23
+ <xsl:variable name="contents_">
24
24
  <contents>
25
25
  <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
26
- <xsl:call-template name="processMainSectionsDefault_Contents"/>
26
+ <xsl:call-template name="processMainSectionsDefault_Contents"/>
27
+
28
+ <xsl:call-template name="processTablesFigures_Contents"/>
27
29
  </contents>
28
30
  </xsl:variable>
31
+ <xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
29
32
 
30
33
  <xsl:template match="/">
31
34
 
@@ -212,11 +215,11 @@
212
215
  <xsl:if test="$debug = 'true'">
213
216
  <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
214
217
  DEBUG
215
- contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
218
+ contents=<xsl:copy-of select="$contents"/>
216
219
  <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
217
220
  </xsl:if>
218
221
 
219
- <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
222
+ <xsl:for-each select="$contents//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
220
223
  <fo:block role="TOCI">
221
224
  <xsl:if test="@level = 1">
222
225
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
@@ -256,6 +259,27 @@
256
259
  </fo:block>
257
260
 
258
261
  </xsl:for-each>
262
+
263
+ <!-- List of Tables -->
264
+ <xsl:if test="$contents//tables/table">
265
+ <xsl:call-template name="insertListOf_Title">
266
+ <xsl:with-param name="title" select="$title-list-tables"/>
267
+ </xsl:call-template>
268
+ <xsl:for-each select="$contents//tables/table">
269
+ <xsl:call-template name="insertListOf_Item"/>
270
+ </xsl:for-each>
271
+ </xsl:if>
272
+
273
+ <!-- List of Figures -->
274
+ <xsl:if test="$contents//figures/figure">
275
+ <xsl:call-template name="insertListOf_Title">
276
+ <xsl:with-param name="title" select="$title-list-figures"/>
277
+ </xsl:call-template>
278
+ <xsl:for-each select="$contents//figures/figure">
279
+ <xsl:call-template name="insertListOf_Item"/>
280
+ </xsl:for-each>
281
+ </xsl:if>
282
+
259
283
  </fo:block>
260
284
  </fo:block-container>
261
285
  </fo:block-container>
@@ -345,6 +369,28 @@
345
369
 
346
370
  </xsl:template>
347
371
 
372
+ <xsl:template name="insertListOf_Title">
373
+ <xsl:param name="title"/>
374
+ <fo:block role="TOCI" font-weight="bold" margin-top="6pt" keep-with-next="always">
375
+ <xsl:value-of select="$title"/>
376
+ </fo:block>
377
+ </xsl:template>
378
+
379
+ <xsl:template name="insertListOf_Item">
380
+ <fo:block role="TOCI" text-align-last="justify" margin-left="12mm" text-indent="-12mm">
381
+ <fo:basic-link internal-destination="{@id}">
382
+ <xsl:call-template name="setAltText">
383
+ <xsl:with-param name="value" select="@alt-text"/>
384
+ </xsl:call-template>
385
+ <xsl:apply-templates select="." mode="contents"/>
386
+ <fo:inline keep-together.within-line="always">
387
+ <fo:leader font-size="9pt" font-weight="normal" leader-pattern="dots"/>
388
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
389
+ </fo:inline>
390
+ </fo:basic-link>
391
+ </fo:block>
392
+ </xsl:template>
393
+
348
394
  <!-- ============================= -->
349
395
  <!-- CONTENTS -->
350
396
  <!-- ============================= -->
@@ -723,7 +769,7 @@
723
769
  <xsl:text>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</xsl:text>
724
770
  </xsl:variable>
725
771
 
726
- <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:variable name="lang">
772
+ <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">
727
773
  <xsl:call-template name="getLang"/>
728
774
  </xsl:variable><xsl:variable name="pageWidth_">
729
775
  210
@@ -769,7 +815,7 @@
769
815
  <xsl:text>Contents</xsl:text>
770
816
 
771
817
  </title-toc>
772
-
818
+
773
819
  <title-descriptors lang="en">Descriptors</title-descriptors>
774
820
 
775
821
  <title-part lang="en">
@@ -805,7 +851,31 @@
805
851
  <title-continued lang="en">(continued)</title-continued>
806
852
  <title-continued lang="fr">(continué)</title-continued>
807
853
 
808
- </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
854
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
855
+ <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
856
+ <xsl:value-of select="$toc_table_title"/>
857
+ <xsl:if test="normalize-space($toc_table_title) = ''">
858
+ <xsl:call-template name="getTitle">
859
+ <xsl:with-param name="name" select="'title-list-tables'"/>
860
+ </xsl:call-template>
861
+ </xsl:if>
862
+ </xsl:variable><xsl:variable name="title-list-figures">
863
+ <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
864
+ <xsl:value-of select="$toc_figure_title"/>
865
+ <xsl:if test="normalize-space($toc_figure_title) = ''">
866
+ <xsl:call-template name="getTitle">
867
+ <xsl:with-param name="name" select="'title-list-figures'"/>
868
+ </xsl:call-template>
869
+ </xsl:if>
870
+ </xsl:variable><xsl:variable name="title-list-recommendations">
871
+ <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
872
+ <xsl:value-of select="$toc_requirement_title"/>
873
+ <xsl:if test="normalize-space($toc_requirement_title) = ''">
874
+ <xsl:call-template name="getTitle">
875
+ <xsl:with-param name="name" select="'title-list-recommendations'"/>
876
+ </xsl:call-template>
877
+ </xsl:if>
878
+ </xsl:variable><xsl:variable name="bibdata">
809
879
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
810
880
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
811
881
  </xsl:variable><xsl:variable name="linebreak">&#8232;</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">
@@ -2042,6 +2112,30 @@
2042
2112
  <xsl:sort select="@displayorder" data-type="number"/>
2043
2113
  <xsl:apply-templates select="." mode="contents"/>
2044
2114
  </xsl:for-each>
2115
+ </xsl:template><xsl:template name="processTablesFigures_Contents">
2116
+ <xsl:param name="always"/>
2117
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
2118
+ <xsl:call-template name="processTables_Contents"/>
2119
+ </xsl:if>
2120
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
2121
+ <xsl:call-template name="processFigures_Contents"/>
2122
+ </xsl:if>
2123
+ </xsl:template><xsl:template name="processTables_Contents">
2124
+ <tables>
2125
+ <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
2126
+ <table id="{@id}" alt-text="{*[local-name() = 'name']}">
2127
+ <xsl:copy-of select="*[local-name() = 'name']"/>
2128
+ </table>
2129
+ </xsl:for-each>
2130
+ </tables>
2131
+ </xsl:template><xsl:template name="processFigures_Contents">
2132
+ <figures>
2133
+ <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) != '']">
2134
+ <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
2135
+ <xsl:copy-of select="*[local-name() = 'name']"/>
2136
+ </figure>
2137
+ </xsl:for-each>
2138
+ </figures>
2045
2139
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2046
2140
  <xsl:for-each select="/*/*[local-name()='preface']/*">
2047
2141
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -2814,37 +2908,7 @@
2814
2908
 
2815
2909
  <!-- list of footnotes to calculate actual footnotes number -->
2816
2910
  <xsl:variable name="p_fn_">
2817
- <xsl:choose>
2818
- <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
2819
- <fn gen_id="{generate-id(.)}">
2820
- <xsl:copy-of select="@*"/>
2821
- <xsl:copy-of select="node()"/>
2822
- </fn>
2823
- </xsl:when>
2824
- <xsl:otherwise>
2825
- <!-- itetation for:
2826
- footnotes in bibdata/title
2827
- footnotes in bibliography
2828
- footnotes in document's body (except table's head/body/foot and figure text)
2829
- -->
2830
- <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
2831
- <fn gen_id="{generate-id(.)}">
2832
- <xsl:copy-of select="@*"/>
2833
- <xsl:copy-of select="node()"/>
2834
- </fn>
2835
- </xsl:for-each>
2836
- <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']/*">
2837
- <xsl:sort select="@displayorder" data-type="number"/>
2838
- <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])]">
2839
- <!-- copy unique fn -->
2840
- <fn gen_id="{generate-id(.)}">
2841
- <xsl:copy-of select="@*"/>
2842
- <xsl:copy-of select="node()"/>
2843
- </fn>
2844
- </xsl:for-each>
2845
- </xsl:for-each>
2846
- </xsl:otherwise>
2847
- </xsl:choose>
2911
+ <xsl:call-template name="get_fn_list"/>
2848
2912
  </xsl:variable>
2849
2913
  <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
2850
2914
 
@@ -2905,6 +2969,38 @@
2905
2969
  <xsl:copy-of select="$footnote_inline"/>
2906
2970
  </xsl:otherwise>
2907
2971
  </xsl:choose>
2972
+ </xsl:template><xsl:template name="get_fn_list">
2973
+ <xsl:choose>
2974
+ <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
2975
+ <fn gen_id="{generate-id(.)}">
2976
+ <xsl:copy-of select="@*"/>
2977
+ <xsl:copy-of select="node()"/>
2978
+ </fn>
2979
+ </xsl:when>
2980
+ <xsl:otherwise>
2981
+ <!-- itetation for:
2982
+ footnotes in bibdata/title
2983
+ footnotes in bibliography
2984
+ footnotes in document's body (except table's head/body/foot and figure text)
2985
+ -->
2986
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
2987
+ <fn gen_id="{generate-id(.)}">
2988
+ <xsl:copy-of select="@*"/>
2989
+ <xsl:copy-of select="node()"/>
2990
+ </fn>
2991
+ </xsl:for-each>
2992
+ <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']/*">
2993
+ <xsl:sort select="@displayorder" data-type="number"/>
2994
+ <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])]">
2995
+ <!-- copy unique fn -->
2996
+ <fn gen_id="{generate-id(.)}">
2997
+ <xsl:copy-of select="@*"/>
2998
+ <xsl:copy-of select="node()"/>
2999
+ </fn>
3000
+ </xsl:for-each>
3001
+ </xsl:for-each>
3002
+ </xsl:otherwise>
3003
+ </xsl:choose>
2908
3004
  </xsl:template><xsl:template name="table_fn_display">
2909
3005
  <xsl:variable name="references">
2910
3006
 
@@ -3076,7 +3172,7 @@
3076
3172
  </fo:inline>
3077
3173
  </xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
3078
3174
  <fo:inline><xsl:value-of select="."/></fo:inline>
3079
- </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
3175
+ </xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
3080
3176
  <fo:inline>
3081
3177
  <xsl:apply-templates/>
3082
3178
  </fo:inline>
@@ -4770,13 +4866,14 @@
4770
4866
  <xsl:apply-templates mode="bookmarks"/>
4771
4867
  </xsl:template><xsl:template name="addBookmarks">
4772
4868
  <xsl:param name="contents"/>
4773
- <xsl:if test="xalan:nodeset($contents)//item">
4869
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
4870
+ <xsl:if test="$contents_nodes//item">
4774
4871
  <fo:bookmark-tree>
4775
4872
  <xsl:choose>
4776
- <xsl:when test="xalan:nodeset($contents)/doc">
4873
+ <xsl:when test="$contents_nodes/doc">
4777
4874
  <xsl:choose>
4778
- <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
4779
- <xsl:for-each select="xalan:nodeset($contents)/doc">
4875
+ <xsl:when test="count($contents_nodes/doc) &gt; 1">
4876
+ <xsl:for-each select="$contents_nodes/doc">
4780
4877
  <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
4781
4878
  <xsl:if test="@bundle = 'true'">
4782
4879
  <xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
@@ -4827,7 +4924,7 @@
4827
4924
  </xsl:for-each>
4828
4925
  </xsl:when>
4829
4926
  <xsl:otherwise>
4830
- <xsl:for-each select="xalan:nodeset($contents)/doc">
4927
+ <xsl:for-each select="$contents_nodes/doc">
4831
4928
 
4832
4929
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
4833
4930
 
@@ -4845,25 +4942,36 @@
4845
4942
  </xsl:choose>
4846
4943
  </xsl:when>
4847
4944
  <xsl:otherwise>
4848
- <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
4945
+ <xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
4946
+
4947
+ <xsl:call-template name="insertFigureBookmarks">
4948
+ <xsl:with-param name="contents" select="$contents_nodes/contents"/>
4949
+ </xsl:call-template>
4950
+
4951
+ <xsl:call-template name="insertTableBookmarks">
4952
+ <xsl:with-param name="contents" select="$contents_nodes/contents"/>
4953
+ <xsl:with-param name="lang" select="@lang"/>
4954
+ </xsl:call-template>
4955
+
4849
4956
  </xsl:otherwise>
4850
4957
  </xsl:choose>
4851
4958
 
4959
+
4852
4960
 
4853
4961
 
4854
4962
 
4855
4963
 
4856
-
4857
-
4964
+
4858
4965
 
4859
4966
  </fo:bookmark-tree>
4860
4967
  </xsl:if>
4861
4968
  </xsl:template><xsl:template name="insertFigureBookmarks">
4862
4969
  <xsl:param name="contents"/>
4863
- <xsl:if test="xalan:nodeset($contents)/figure">
4864
- <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
4970
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
4971
+ <xsl:if test="$contents_nodes/figure">
4972
+ <fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
4865
4973
  <fo:bookmark-title>Figures</fo:bookmark-title>
4866
- <xsl:for-each select="xalan:nodeset($contents)/figure">
4974
+ <xsl:for-each select="$contents_nodes/figure">
4867
4975
  <fo:bookmark internal-destination="{@id}">
4868
4976
  <fo:bookmark-title>
4869
4977
  <xsl:value-of select="normalize-space(title)"/>
@@ -4872,18 +4980,40 @@
4872
4980
  </xsl:for-each>
4873
4981
  </fo:bookmark>
4874
4982
  </xsl:if>
4983
+
4984
+
4985
+ <xsl:if test="$contents_nodes//figures/figure">
4986
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
4987
+
4988
+
4989
+
4990
+ <xsl:variable name="bookmark-title">
4991
+
4992
+ <xsl:value-of select="$title-list-figures"/>
4993
+
4994
+ </xsl:variable>
4995
+ <fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
4996
+ <xsl:for-each select="$contents_nodes//figures/figure">
4997
+ <fo:bookmark internal-destination="{@id}">
4998
+ <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
4999
+ </fo:bookmark>
5000
+ </xsl:for-each>
5001
+ </fo:bookmark>
5002
+ </xsl:if>
5003
+
4875
5004
  </xsl:template><xsl:template name="insertTableBookmarks">
4876
5005
  <xsl:param name="contents"/>
4877
5006
  <xsl:param name="lang"/>
4878
- <xsl:if test="xalan:nodeset($contents)/table">
4879
- <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
5007
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
5008
+ <xsl:if test="$contents_nodes/table">
5009
+ <fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
4880
5010
  <fo:bookmark-title>
4881
5011
  <xsl:choose>
4882
5012
  <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
4883
5013
  <xsl:otherwise>Tables</xsl:otherwise>
4884
5014
  </xsl:choose>
4885
5015
  </fo:bookmark-title>
4886
- <xsl:for-each select="xalan:nodeset($contents)/table">
5016
+ <xsl:for-each select="$contents_nodes/table">
4887
5017
  <fo:bookmark internal-destination="{@id}">
4888
5018
  <fo:bookmark-title>
4889
5019
  <xsl:value-of select="normalize-space(title)"/>
@@ -4892,6 +5022,29 @@
4892
5022
  </xsl:for-each>
4893
5023
  </fo:bookmark>
4894
5024
  </xsl:if>
5025
+
5026
+
5027
+ <xsl:if test="$contents_nodes//tables/table">
5028
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
5029
+
5030
+
5031
+
5032
+ <xsl:variable name="bookmark-title">
5033
+
5034
+ <xsl:value-of select="$title-list-tables"/>
5035
+
5036
+ </xsl:variable>
5037
+
5038
+ <fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
5039
+
5040
+ <xsl:for-each select="$contents_nodes//tables/table">
5041
+ <fo:bookmark internal-destination="{@id}">
5042
+ <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
5043
+ </fo:bookmark>
5044
+ </xsl:for-each>
5045
+ </fo:bookmark>
5046
+ </xsl:if>
5047
+
4895
5048
  </xsl:template><xsl:template name="getLangVersion">
4896
5049
  <xsl:param name="lang"/>
4897
5050
  <xsl:param name="doctype" select="''"/>
@@ -5548,6 +5701,8 @@
5548
5701
  </xsl:otherwise>
5549
5702
  </xsl:choose> -->
5550
5703
  </fo:block>
5704
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
5705
+ <xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
5551
5706
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
5552
5707
  <xsl:if test="normalize-space() != ''">
5553
5708
  <xsl:value-of select="."/>
@@ -5622,26 +5777,11 @@
5622
5777
  </xsl:template><xsl:template match="*[local-name() = 'author']">
5623
5778
  <xsl:text>— </xsl:text>
5624
5779
  <xsl:apply-templates/>
5625
- </xsl:template><xsl:variable name="bibitem_hidden_">
5626
- <xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
5627
- <xsl:copy-of select="."/>
5628
- </xsl:for-each>
5629
- <xsl:for-each select="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem']">
5630
- <xsl:copy-of select="."/>
5631
- </xsl:for-each>
5632
- </xsl:variable><xsl:variable name="bibitem_hidden" select="xalan:nodeset($bibitem_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
5633
-
5634
- <xsl:variable name="bibitemid">
5635
- <xsl:choose>
5636
- <!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
5637
- <xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
5638
- <xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
5639
- <xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
5640
- </xsl:choose>
5641
- </xsl:variable>
5642
-
5780
+ </xsl:template><xsl:template match="*[local-name() = 'eref']">
5781
+ <xsl:variable name="current_bibitemid" select="@bibitemid"/>
5782
+ <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/>
5643
5783
  <xsl:choose>
5644
- <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
5784
+ <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) -->
5645
5785
  <fo:inline xsl:use-attribute-sets="eref-style">
5646
5786
  <xsl:if test="@type = 'footnote'">
5647
5787
  <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
@@ -5655,8 +5795,8 @@
5655
5795
  <xsl:variable name="text" select="normalize-space()"/>
5656
5796
 
5657
5797
 
5658
-
5659
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5798
+
5799
+ <fo:basic-link fox:alt-text="{@citeas}">
5660
5800
  <xsl:if test="normalize-space(@citeas) = ''">
5661
5801
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
5662
5802
  </xsl:if>
@@ -5669,14 +5809,21 @@
5669
5809
 
5670
5810
  </xsl:if>
5671
5811
 
5672
-
5812
+ <xsl:choose>
5813
+ <xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
5814
+ <xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
5815
+ </xsl:when>
5816
+ <xsl:otherwise>
5817
+ <xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
5818
+ </xsl:otherwise>
5819
+ </xsl:choose>
5673
5820
 
5674
5821
  <xsl:apply-templates/>
5675
5822
  </fo:basic-link>
5676
-
5823
+
5677
5824
  </fo:inline>
5678
5825
  </xsl:when>
5679
- <xsl:otherwise>
5826
+ <xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
5680
5827
  <fo:inline><xsl:apply-templates/></fo:inline>
5681
5828
  </xsl:otherwise>
5682
5829
  </xsl:choose>
@@ -6469,27 +6616,47 @@
6469
6616
  <xsl:apply-templates/>
6470
6617
  </fo:inline>
6471
6618
  </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
6619
+
6620
+ <!-- list of footnotes to calculate actual footnotes number -->
6621
+ <xsl:variable name="p_fn_">
6622
+ <xsl:call-template name="get_fn_list"/>
6623
+ </xsl:variable>
6624
+ <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
6625
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
6626
+ <xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
6627
+ <!-- fn sequence number in document -->
6628
+ <xsl:variable name="current_fn_number">
6629
+ <xsl:choose>
6630
+ <xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
6631
+ <xsl:otherwise>
6632
+ <!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
6633
+ <xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
6634
+ </xsl:otherwise>
6635
+ </xsl:choose>
6636
+ </xsl:variable>
6472
6637
  <fo:footnote>
6473
6638
  <xsl:variable name="number">
6474
6639
 
6475
- <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
6640
+ <xsl:value-of select="$current_fn_number"/>
6476
6641
 
6477
6642
  </xsl:variable>
6478
- <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
6479
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
6480
- <xsl:value-of select="$number"/>
6481
-
6643
+
6644
+ <xsl:variable name="current_fn_number_text">
6645
+ <xsl:value-of select="$number"/>
6646
+
6482
6647
  <xsl:text>)</xsl:text>
6483
6648
 
6649
+ </xsl:variable>
6650
+
6651
+ <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
6652
+ <fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
6653
+ <xsl:value-of select="$current_fn_number_text"/>
6484
6654
  </fo:basic-link>
6485
6655
  </fo:inline>
6486
6656
  <fo:footnote-body>
6487
6657
  <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
6488
- <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6489
- <xsl:value-of select="$number"/>
6490
-
6491
- <xsl:text>)</xsl:text>
6492
-
6658
+ <fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6659
+ <xsl:value-of select="$current_fn_number_text"/>
6493
6660
  </fo:inline>
6494
6661
  <xsl:apply-templates/>
6495
6662
  </fo:block>
@@ -6730,6 +6897,78 @@
6730
6897
  <!-- processing for admonition/p found in the template for 'p' -->
6731
6898
  <xsl:call-template name="paragraph"/>
6732
6899
 
6900
+ </xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
6901
+ <xsl:copy>
6902
+ <xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
6903
+ </xsl:copy>
6904
+ </xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
6905
+ <xsl:copy>
6906
+ <xsl:copy-of select="@*"/>
6907
+
6908
+ <xsl:variable name="nodes_preface_">
6909
+ <xsl:for-each select="*">
6910
+ <node id="{@id}"/>
6911
+ </xsl:for-each>
6912
+ </xsl:variable>
6913
+ <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
6914
+
6915
+ <xsl:for-each select="*">
6916
+ <xsl:sort select="@displayorder" data-type="number"/>
6917
+
6918
+ <!-- process Section's title -->
6919
+ <xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
6920
+ <xsl:if test="$preceding-sibling_id != ''">
6921
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
6922
+ </xsl:if>
6923
+
6924
+ <xsl:choose>
6925
+ <xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
6926
+ <xsl:otherwise>
6927
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6928
+ </xsl:otherwise>
6929
+ </xsl:choose>
6930
+
6931
+ </xsl:for-each>
6932
+ </xsl:copy>
6933
+ </xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
6934
+ <xsl:copy>
6935
+ <xsl:copy-of select="@*"/>
6936
+
6937
+ <xsl:variable name="nodes_sections_">
6938
+ <xsl:for-each select="*">
6939
+ <node id="{@id}"/>
6940
+ </xsl:for-each>
6941
+ </xsl:variable>
6942
+ <xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
6943
+
6944
+ <!-- move section 'Normative references' inside 'sections' -->
6945
+ <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']]">
6946
+ <xsl:sort select="@displayorder" data-type="number"/>
6947
+
6948
+ <!-- process Section's title -->
6949
+ <xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
6950
+ <xsl:if test="$preceding-sibling_id != ''">
6951
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
6952
+ </xsl:if>
6953
+
6954
+ <xsl:choose>
6955
+ <xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
6956
+ <xsl:otherwise>
6957
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6958
+ </xsl:otherwise>
6959
+ </xsl:choose>
6960
+
6961
+ </xsl:for-each>
6962
+ </xsl:copy>
6963
+ </xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
6964
+ <xsl:copy>
6965
+ <xsl:copy-of select="@*"/>
6966
+ <!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
6967
+ <xsl:for-each select="*[not(@normative='true') and not(*[*[@normative='true']])]">
6968
+ <xsl:sort select="@displayorder" data-type="number"/>
6969
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6970
+ </xsl:for-each>
6971
+ </xsl:copy>
6733
6972
  </xsl:template><xsl:template name="convertDate">
6734
6973
  <xsl:param name="date"/>
6735
6974
  <xsl:param name="format" select="'short'"/>