metanorma-ogc 2.0.4 → 2.0.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/ogc/base_convert.rb +4 -4
- data/lib/isodoc/ogc/html_convert.rb +6 -6
- data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +402 -220
- data/lib/isodoc/ogc/ogc.best-practice.xsl +402 -220
- data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +402 -220
- data/lib/isodoc/ogc/ogc.community-practice.xsl +402 -220
- data/lib/isodoc/ogc/ogc.community-standard.xsl +402 -220
- data/lib/isodoc/ogc/ogc.discussion-paper.xsl +402 -220
- data/lib/isodoc/ogc/ogc.engineering-report.xsl +402 -220
- data/lib/isodoc/ogc/ogc.other.xsl +402 -220
- data/lib/isodoc/ogc/ogc.policy.xsl +402 -220
- data/lib/isodoc/ogc/ogc.reference-model.xsl +402 -220
- data/lib/isodoc/ogc/ogc.release-notes.xsl +402 -220
- data/lib/isodoc/ogc/ogc.standard.xsl +402 -220
- data/lib/isodoc/ogc/ogc.test-suite.xsl +402 -220
- data/lib/isodoc/ogc/ogc.user-guide.xsl +402 -220
- data/lib/isodoc/ogc/ogc.white-paper.xsl +335 -99
- data/lib/isodoc/ogc/presentation_xml_convert.rb +20 -24
- data/lib/isodoc/ogc/word_convert.rb +2 -78
- data/lib/isodoc/ogc/xref.rb +4 -4
- data/lib/metanorma/ogc/converter.rb +7 -0
- data/lib/metanorma/ogc/processor.rb +10 -10
- data/lib/metanorma/ogc/version.rb +1 -1
- metadata +3 -3
@@ -72,16 +72,18 @@
|
|
72
72
|
<xsl:attribute-set name="empty-style">
|
73
73
|
</xsl:attribute-set>
|
74
74
|
|
75
|
-
<xsl:variable name="
|
75
|
+
<xsl:variable name="contents_">
|
76
76
|
<contents>
|
77
77
|
<!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
|
78
78
|
<xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
|
79
79
|
|
80
80
|
<xsl:call-template name="processMainSectionsDefault_Contents"/>
|
81
81
|
<xsl:apply-templates select="//ogc:indexsect" mode="contents"/>
|
82
|
+
|
83
|
+
<xsl:call-template name="processTablesFigures_Contents"/>
|
82
84
|
</contents>
|
83
85
|
</xsl:variable>
|
84
|
-
|
86
|
+
<xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
|
85
87
|
|
86
88
|
<xsl:template match="/">
|
87
89
|
<xsl:call-template name="namespaceCheck"/>
|
@@ -206,7 +208,7 @@
|
|
206
208
|
</xsl:call-template>
|
207
209
|
</fo:block>
|
208
210
|
<xsl:variable name="margin-left">3.9</xsl:variable>
|
209
|
-
<xsl:for-each select="
|
211
|
+
<xsl:for-each select="$contents//item[@display = 'true']">
|
210
212
|
<fo:block margin-top="8pt" margin-bottom="5pt" margin-left="{(@level - 1) * $margin-left}mm" text-align-last="justify" role="TOCI">
|
211
213
|
<fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
|
212
214
|
<xsl:if test="@section != ''">
|
@@ -676,7 +678,7 @@
|
|
676
678
|
<xsl:text>Contents</xsl:text>
|
677
679
|
|
678
680
|
</title-toc>
|
679
|
-
|
681
|
+
|
680
682
|
<title-descriptors lang="en">Descriptors</title-descriptors>
|
681
683
|
|
682
684
|
<title-part lang="en">
|
@@ -712,7 +714,31 @@
|
|
712
714
|
<title-continued lang="en">(continued)</title-continued>
|
713
715
|
<title-continued lang="fr">(continué)</title-continued>
|
714
716
|
|
715
|
-
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="
|
717
|
+
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
|
718
|
+
<xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
|
719
|
+
<xsl:value-of select="$toc_table_title"/>
|
720
|
+
<xsl:if test="normalize-space($toc_table_title) = ''">
|
721
|
+
<xsl:call-template name="getTitle">
|
722
|
+
<xsl:with-param name="name" select="'title-list-tables'"/>
|
723
|
+
</xsl:call-template>
|
724
|
+
</xsl:if>
|
725
|
+
</xsl:variable><xsl:variable name="title-list-figures">
|
726
|
+
<xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
|
727
|
+
<xsl:value-of select="$toc_figure_title"/>
|
728
|
+
<xsl:if test="normalize-space($toc_figure_title) = ''">
|
729
|
+
<xsl:call-template name="getTitle">
|
730
|
+
<xsl:with-param name="name" select="'title-list-figures'"/>
|
731
|
+
</xsl:call-template>
|
732
|
+
</xsl:if>
|
733
|
+
</xsl:variable><xsl:variable name="title-list-recommendations">
|
734
|
+
<xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
|
735
|
+
<xsl:value-of select="$toc_requirement_title"/>
|
736
|
+
<xsl:if test="normalize-space($toc_requirement_title) = ''">
|
737
|
+
<xsl:call-template name="getTitle">
|
738
|
+
<xsl:with-param name="name" select="'title-list-recommendations'"/>
|
739
|
+
</xsl:call-template>
|
740
|
+
</xsl:if>
|
741
|
+
</xsl:variable><xsl:variable name="bibdata">
|
716
742
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
|
717
743
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
|
718
744
|
</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">
|
@@ -2048,6 +2074,30 @@
|
|
2048
2074
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2049
2075
|
<xsl:apply-templates select="." mode="contents"/>
|
2050
2076
|
</xsl:for-each>
|
2077
|
+
</xsl:template><xsl:template name="processTablesFigures_Contents">
|
2078
|
+
<xsl:param name="always"/>
|
2079
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2080
|
+
<xsl:call-template name="processTables_Contents"/>
|
2081
|
+
</xsl:if>
|
2082
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2083
|
+
<xsl:call-template name="processFigures_Contents"/>
|
2084
|
+
</xsl:if>
|
2085
|
+
</xsl:template><xsl:template name="processTables_Contents">
|
2086
|
+
<tables>
|
2087
|
+
<xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
|
2088
|
+
<table id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2089
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2090
|
+
</table>
|
2091
|
+
</xsl:for-each>
|
2092
|
+
</tables>
|
2093
|
+
</xsl:template><xsl:template name="processFigures_Contents">
|
2094
|
+
<figures>
|
2095
|
+
<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) != '']">
|
2096
|
+
<figure id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2097
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2098
|
+
</figure>
|
2099
|
+
</xsl:for-each>
|
2100
|
+
</figures>
|
2051
2101
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
2052
2102
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2053
2103
|
<xsl:sort select="@displayorder" data-type="number"/>
|
@@ -2069,8 +2119,27 @@
|
|
2069
2119
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2070
2120
|
<xsl:apply-templates select="."/>
|
2071
2121
|
</xsl:for-each>
|
2072
|
-
</xsl:template><xsl:template match="text()">
|
2073
|
-
<xsl:
|
2122
|
+
</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">
|
2123
|
+
<xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
2124
|
+
<xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_open,'$1',$tag_close))"/>
|
2125
|
+
<xsl:call-template name="replace_fo_inline">
|
2126
|
+
<xsl:with-param name="text" select="$text"/>
|
2127
|
+
</xsl:call-template>
|
2128
|
+
</xsl:template><xsl:template name="replace_fo_inline">
|
2129
|
+
<xsl:param name="text"/>
|
2130
|
+
<xsl:choose>
|
2131
|
+
<xsl:when test="contains($text, $tag_open)">
|
2132
|
+
<xsl:value-of select="substring-before($text, $tag_open)"/>
|
2133
|
+
<xsl:text disable-output-escaping="yes"><fo:inline keep-together.within-line="always"></xsl:text>
|
2134
|
+
<xsl:variable name="text_after" select="substring-after($text, $tag_open)"/>
|
2135
|
+
<xsl:value-of select="substring-before($text_after, $tag_close)"/>
|
2136
|
+
<xsl:text disable-output-escaping="yes"></fo:inline></xsl:text>
|
2137
|
+
<xsl:call-template name="replace_fo_inline">
|
2138
|
+
<xsl:with-param name="text" select="substring-after($text_after, $tag_close)"/>
|
2139
|
+
</xsl:call-template>
|
2140
|
+
</xsl:when>
|
2141
|
+
<xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
|
2142
|
+
</xsl:choose>
|
2074
2143
|
</xsl:template><xsl:template match="*[local-name()='br']">
|
2075
2144
|
<xsl:value-of select="$linebreak"/>
|
2076
2145
|
</xsl:template><xsl:template match="*[local-name()='copyright-statement']">
|
@@ -2865,37 +2934,7 @@
|
|
2865
2934
|
|
2866
2935
|
<!-- list of footnotes to calculate actual footnotes number -->
|
2867
2936
|
<xsl:variable name="p_fn_">
|
2868
|
-
<xsl:
|
2869
|
-
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
2870
|
-
<fn gen_id="{generate-id(.)}">
|
2871
|
-
<xsl:copy-of select="@*"/>
|
2872
|
-
<xsl:copy-of select="node()"/>
|
2873
|
-
</fn>
|
2874
|
-
</xsl:when>
|
2875
|
-
<xsl:otherwise>
|
2876
|
-
<!-- itetation for:
|
2877
|
-
footnotes in bibdata/title
|
2878
|
-
footnotes in bibliography
|
2879
|
-
footnotes in document's body (except table's head/body/foot and figure text)
|
2880
|
-
-->
|
2881
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
2882
|
-
<fn gen_id="{generate-id(.)}">
|
2883
|
-
<xsl:copy-of select="@*"/>
|
2884
|
-
<xsl:copy-of select="node()"/>
|
2885
|
-
</fn>
|
2886
|
-
</xsl:for-each>
|
2887
|
-
<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']/*">
|
2888
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
2889
|
-
<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])]">
|
2890
|
-
<!-- copy unique fn -->
|
2891
|
-
<fn gen_id="{generate-id(.)}">
|
2892
|
-
<xsl:copy-of select="@*"/>
|
2893
|
-
<xsl:copy-of select="node()"/>
|
2894
|
-
</fn>
|
2895
|
-
</xsl:for-each>
|
2896
|
-
</xsl:for-each>
|
2897
|
-
</xsl:otherwise>
|
2898
|
-
</xsl:choose>
|
2937
|
+
<xsl:call-template name="get_fn_list"/>
|
2899
2938
|
</xsl:variable>
|
2900
2939
|
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
2901
2940
|
|
@@ -2956,6 +2995,38 @@
|
|
2956
2995
|
<xsl:copy-of select="$footnote_inline"/>
|
2957
2996
|
</xsl:otherwise>
|
2958
2997
|
</xsl:choose>
|
2998
|
+
</xsl:template><xsl:template name="get_fn_list">
|
2999
|
+
<xsl:choose>
|
3000
|
+
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
3001
|
+
<fn gen_id="{generate-id(.)}">
|
3002
|
+
<xsl:copy-of select="@*"/>
|
3003
|
+
<xsl:copy-of select="node()"/>
|
3004
|
+
</fn>
|
3005
|
+
</xsl:when>
|
3006
|
+
<xsl:otherwise>
|
3007
|
+
<!-- itetation for:
|
3008
|
+
footnotes in bibdata/title
|
3009
|
+
footnotes in bibliography
|
3010
|
+
footnotes in document's body (except table's head/body/foot and figure text)
|
3011
|
+
-->
|
3012
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
3013
|
+
<fn gen_id="{generate-id(.)}">
|
3014
|
+
<xsl:copy-of select="@*"/>
|
3015
|
+
<xsl:copy-of select="node()"/>
|
3016
|
+
</fn>
|
3017
|
+
</xsl:for-each>
|
3018
|
+
<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']/*">
|
3019
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
3020
|
+
<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])]">
|
3021
|
+
<!-- copy unique fn -->
|
3022
|
+
<fn gen_id="{generate-id(.)}">
|
3023
|
+
<xsl:copy-of select="@*"/>
|
3024
|
+
<xsl:copy-of select="node()"/>
|
3025
|
+
</fn>
|
3026
|
+
</xsl:for-each>
|
3027
|
+
</xsl:for-each>
|
3028
|
+
</xsl:otherwise>
|
3029
|
+
</xsl:choose>
|
2959
3030
|
</xsl:template><xsl:template name="table_fn_display">
|
2960
3031
|
<xsl:variable name="references">
|
2961
3032
|
|
@@ -3138,7 +3209,7 @@
|
|
3138
3209
|
</fo:inline>
|
3139
3210
|
</xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
|
3140
3211
|
<fo:inline><xsl:value-of select="."/></fo:inline>
|
3141
|
-
</xsl:template><xsl:template match="*[local-name()='fn']
|
3212
|
+
</xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
|
3142
3213
|
<fo:inline>
|
3143
3214
|
<xsl:apply-templates/>
|
3144
3215
|
</fo:inline>
|
@@ -4830,13 +4901,14 @@
|
|
4830
4901
|
<xsl:apply-templates mode="bookmarks"/>
|
4831
4902
|
</xsl:template><xsl:template name="addBookmarks">
|
4832
4903
|
<xsl:param name="contents"/>
|
4833
|
-
<xsl:
|
4904
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
4905
|
+
<xsl:if test="$contents_nodes//item">
|
4834
4906
|
<fo:bookmark-tree>
|
4835
4907
|
<xsl:choose>
|
4836
|
-
<xsl:when test="
|
4908
|
+
<xsl:when test="$contents_nodes/doc">
|
4837
4909
|
<xsl:choose>
|
4838
|
-
<xsl:when test="count(
|
4839
|
-
<xsl:for-each select="
|
4910
|
+
<xsl:when test="count($contents_nodes/doc) > 1">
|
4911
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4840
4912
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
4841
4913
|
<xsl:if test="@bundle = 'true'">
|
4842
4914
|
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
@@ -4887,7 +4959,7 @@
|
|
4887
4959
|
</xsl:for-each>
|
4888
4960
|
</xsl:when>
|
4889
4961
|
<xsl:otherwise>
|
4890
|
-
<xsl:for-each select="
|
4962
|
+
<xsl:for-each select="$contents_nodes/doc">
|
4891
4963
|
|
4892
4964
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
4893
4965
|
|
@@ -4905,11 +4977,21 @@
|
|
4905
4977
|
</xsl:choose>
|
4906
4978
|
</xsl:when>
|
4907
4979
|
<xsl:otherwise>
|
4908
|
-
<xsl:apply-templates select="
|
4980
|
+
<xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
|
4981
|
+
|
4982
|
+
<xsl:call-template name="insertFigureBookmarks">
|
4983
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
4984
|
+
</xsl:call-template>
|
4985
|
+
|
4986
|
+
<xsl:call-template name="insertTableBookmarks">
|
4987
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
4988
|
+
<xsl:with-param name="lang" select="@lang"/>
|
4989
|
+
</xsl:call-template>
|
4990
|
+
|
4909
4991
|
</xsl:otherwise>
|
4910
4992
|
</xsl:choose>
|
4911
4993
|
|
4912
|
-
|
4994
|
+
|
4913
4995
|
|
4914
4996
|
|
4915
4997
|
|
@@ -4922,7 +5004,6 @@
|
|
4922
5004
|
</xsl:variable>
|
4923
5005
|
<xsl:variable name="list_of_tables_figures" select="xalan:nodeset($list_of_tables_figures_)"/>
|
4924
5006
|
|
4925
|
-
|
4926
5007
|
<xsl:if test="$list_of_tables_figures/table_figure">
|
4927
5008
|
<fo:bookmark internal-destination="empty_bookmark">
|
4928
5009
|
<fo:bookmark-title>—————</fo:bookmark-title>
|
@@ -4930,7 +5011,7 @@
|
|
4930
5011
|
</xsl:if>
|
4931
5012
|
|
4932
5013
|
<xsl:if test="$list_of_tables_figures//table_figure">
|
4933
|
-
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5014
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
4934
5015
|
<fo:bookmark-title>
|
4935
5016
|
<xsl:call-template name="getTitle">
|
4936
5017
|
<xsl:with-param name="name" select="'title-table-figures'"/>
|
@@ -4943,17 +5024,18 @@
|
|
4943
5024
|
</xsl:for-each>
|
4944
5025
|
</fo:bookmark>
|
4945
5026
|
</xsl:if>
|
4946
|
-
|
4947
|
-
|
5027
|
+
<!-- $namespace = 'ogc-white-paper' -->
|
5028
|
+
|
4948
5029
|
|
4949
5030
|
</fo:bookmark-tree>
|
4950
5031
|
</xsl:if>
|
4951
5032
|
</xsl:template><xsl:template name="insertFigureBookmarks">
|
4952
5033
|
<xsl:param name="contents"/>
|
4953
|
-
<xsl:
|
4954
|
-
|
5034
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5035
|
+
<xsl:if test="$contents_nodes/figure">
|
5036
|
+
<fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
|
4955
5037
|
<fo:bookmark-title>Figures</fo:bookmark-title>
|
4956
|
-
<xsl:for-each select="
|
5038
|
+
<xsl:for-each select="$contents_nodes/figure">
|
4957
5039
|
<fo:bookmark internal-destination="{@id}">
|
4958
5040
|
<fo:bookmark-title>
|
4959
5041
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4962,18 +5044,21 @@
|
|
4962
5044
|
</xsl:for-each>
|
4963
5045
|
</fo:bookmark>
|
4964
5046
|
</xsl:if>
|
5047
|
+
|
5048
|
+
<!-- see template addBookmarks -->
|
4965
5049
|
</xsl:template><xsl:template name="insertTableBookmarks">
|
4966
5050
|
<xsl:param name="contents"/>
|
4967
5051
|
<xsl:param name="lang"/>
|
4968
|
-
<xsl:
|
4969
|
-
|
5052
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5053
|
+
<xsl:if test="$contents_nodes/table">
|
5054
|
+
<fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
|
4970
5055
|
<fo:bookmark-title>
|
4971
5056
|
<xsl:choose>
|
4972
5057
|
<xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
|
4973
5058
|
<xsl:otherwise>Tables</xsl:otherwise>
|
4974
5059
|
</xsl:choose>
|
4975
5060
|
</fo:bookmark-title>
|
4976
|
-
<xsl:for-each select="
|
5061
|
+
<xsl:for-each select="$contents_nodes/table">
|
4977
5062
|
<fo:bookmark internal-destination="{@id}">
|
4978
5063
|
<fo:bookmark-title>
|
4979
5064
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -4982,6 +5067,8 @@
|
|
4982
5067
|
</xsl:for-each>
|
4983
5068
|
</fo:bookmark>
|
4984
5069
|
</xsl:if>
|
5070
|
+
|
5071
|
+
<!-- see template addBookmarks -->
|
4985
5072
|
</xsl:template><xsl:template name="getLangVersion">
|
4986
5073
|
<xsl:param name="lang"/>
|
4987
5074
|
<xsl:param name="doctype" select="''"/>
|
@@ -5206,7 +5293,51 @@
|
|
5206
5293
|
<xsl:with-param name="text" select="$text_step1"/>
|
5207
5294
|
</xsl:call-template>
|
5208
5295
|
</xsl:variable>
|
5209
|
-
|
5296
|
+
|
5297
|
+
<!-- <xsl:value-of select="$text_step2"/> -->
|
5298
|
+
|
5299
|
+
<!-- add zero-width space after space -->
|
5300
|
+
<xsl:variable name="text_step3" select="java:replaceAll(java:java.lang.String.new($text_step2),' ',' ')"/>
|
5301
|
+
|
5302
|
+
<!-- split text by zero-width space -->
|
5303
|
+
<xsl:variable name="text_step4">
|
5304
|
+
<xsl:call-template name="split">
|
5305
|
+
<xsl:with-param name="pText" select="$text_step3"/>
|
5306
|
+
<xsl:with-param name="sep" select="$zero_width_space"/>
|
5307
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
5308
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
5309
|
+
</xsl:call-template>
|
5310
|
+
</xsl:variable>
|
5311
|
+
|
5312
|
+
<xsl:for-each select="xalan:nodeset($text_step4)/item">
|
5313
|
+
<xsl:choose>
|
5314
|
+
<xsl:when test="string-length() > 30"> <!-- word with length more than 30 will be interspersed with zero-width space -->
|
5315
|
+
<xsl:call-template name="interspers">
|
5316
|
+
<xsl:with-param name="str" select="."/>
|
5317
|
+
</xsl:call-template>
|
5318
|
+
</xsl:when>
|
5319
|
+
<xsl:otherwise>
|
5320
|
+
<xsl:value-of select="."/>
|
5321
|
+
</xsl:otherwise>
|
5322
|
+
</xsl:choose>
|
5323
|
+
</xsl:for-each>
|
5324
|
+
|
5325
|
+
</xsl:template><xsl:template name="interspers">
|
5326
|
+
<xsl:param name="str"/>
|
5327
|
+
<xsl:param name="char" select="$zero_width_space"/>
|
5328
|
+
<xsl:if test="$str != ''">
|
5329
|
+
<xsl:value-of select="substring($str, 1, 1)"/>
|
5330
|
+
|
5331
|
+
<xsl:variable name="next_char" select="substring($str, 2, 1)"/>
|
5332
|
+
<xsl:if test="not(contains(concat(' -.:=_— ', $char), $next_char))">
|
5333
|
+
<xsl:value-of select="$char"/>
|
5334
|
+
</xsl:if>
|
5335
|
+
|
5336
|
+
<xsl:call-template name="interspers">
|
5337
|
+
<xsl:with-param name="str" select="substring($str, 2)"/>
|
5338
|
+
<xsl:with-param name="char" select="$char"/>
|
5339
|
+
</xsl:call-template>
|
5340
|
+
</xsl:if>
|
5210
5341
|
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
5211
5342
|
<xsl:apply-templates mode="syntax_highlight"/>
|
5212
5343
|
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
@@ -5648,6 +5779,8 @@
|
|
5648
5779
|
</xsl:otherwise>
|
5649
5780
|
</xsl:choose> -->
|
5650
5781
|
</fo:block>
|
5782
|
+
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
|
5783
|
+
<xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
|
5651
5784
|
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
|
5652
5785
|
<xsl:if test="normalize-space() != ''">
|
5653
5786
|
<xsl:value-of select="."/>
|
@@ -5682,7 +5815,8 @@
|
|
5682
5815
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5683
5816
|
</xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
|
5684
5817
|
<xsl:if test="normalize-space() != ''">
|
5685
|
-
<xsl:value-of select="."/>
|
5818
|
+
<!-- <xsl:value-of select="."/> -->
|
5819
|
+
<xsl:call-template name="text"/>
|
5686
5820
|
</xsl:if>
|
5687
5821
|
</xsl:template><xsl:template match="*[local-name() = 'quote']">
|
5688
5822
|
<fo:block-container margin-left="0mm">
|
@@ -5722,26 +5856,24 @@
|
|
5722
5856
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
5723
5857
|
<xsl:text>— </xsl:text>
|
5724
5858
|
<xsl:apply-templates/>
|
5725
|
-
</xsl:template><xsl:variable name="
|
5859
|
+
</xsl:template><xsl:variable name="bibitems_">
|
5860
|
+
<xsl:for-each select="//*[local-name() = 'bibitem']">
|
5861
|
+
<xsl:copy-of select="."/>
|
5862
|
+
</xsl:for-each>
|
5863
|
+
</xsl:variable><xsl:variable name="bibitems" select="xalan:nodeset($bibitems_)"/><xsl:variable name="bibitems_hidden_">
|
5726
5864
|
<xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
|
5727
5865
|
<xsl:copy-of select="."/>
|
5728
5866
|
</xsl:for-each>
|
5729
|
-
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']
|
5867
|
+
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']">
|
5730
5868
|
<xsl:copy-of select="."/>
|
5731
5869
|
</xsl:for-each>
|
5732
|
-
</xsl:variable><xsl:variable name="
|
5733
|
-
|
5734
|
-
<xsl:variable name="
|
5735
|
-
|
5736
|
-
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
5737
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
5738
|
-
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
5739
|
-
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
5740
|
-
</xsl:choose>
|
5741
|
-
</xsl:variable>
|
5742
|
-
|
5870
|
+
</xsl:variable><xsl:variable name="bibitems_hidden" select="xalan:nodeset($bibitems_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
5871
|
+
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
5872
|
+
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
5873
|
+
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
5743
5874
|
<xsl:choose>
|
5744
|
-
<xsl:when test="
|
5875
|
+
<!-- <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) -->
|
5876
|
+
<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) -->
|
5745
5877
|
<fo:inline xsl:use-attribute-sets="eref-style">
|
5746
5878
|
<xsl:if test="@type = 'footnote'">
|
5747
5879
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
@@ -5755,8 +5887,8 @@
|
|
5755
5887
|
<xsl:variable name="text" select="normalize-space()"/>
|
5756
5888
|
|
5757
5889
|
|
5758
|
-
|
5759
|
-
<fo:basic-link
|
5890
|
+
|
5891
|
+
<fo:basic-link fox:alt-text="{@citeas}">
|
5760
5892
|
<xsl:if test="normalize-space(@citeas) = ''">
|
5761
5893
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
5762
5894
|
</xsl:if>
|
@@ -5769,14 +5901,21 @@
|
|
5769
5901
|
|
5770
5902
|
</xsl:if>
|
5771
5903
|
|
5772
|
-
|
5904
|
+
<xsl:choose>
|
5905
|
+
<xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
|
5906
|
+
<xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
|
5907
|
+
</xsl:when>
|
5908
|
+
<xsl:otherwise>
|
5909
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
|
5910
|
+
</xsl:otherwise>
|
5911
|
+
</xsl:choose>
|
5773
5912
|
|
5774
5913
|
<xsl:apply-templates/>
|
5775
5914
|
</fo:basic-link>
|
5776
|
-
|
5915
|
+
|
5777
5916
|
</fo:inline>
|
5778
5917
|
</xsl:when>
|
5779
|
-
<xsl:otherwise>
|
5918
|
+
<xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
|
5780
5919
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
5781
5920
|
</xsl:otherwise>
|
5782
5921
|
</xsl:choose>
|
@@ -6627,6 +6766,24 @@
|
|
6627
6766
|
<xsl:apply-templates/>
|
6628
6767
|
</fo:inline>
|
6629
6768
|
</xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
|
6769
|
+
|
6770
|
+
<!-- list of footnotes to calculate actual footnotes number -->
|
6771
|
+
<xsl:variable name="p_fn_">
|
6772
|
+
<xsl:call-template name="get_fn_list"/>
|
6773
|
+
</xsl:variable>
|
6774
|
+
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
6775
|
+
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
6776
|
+
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
6777
|
+
<!-- fn sequence number in document -->
|
6778
|
+
<xsl:variable name="current_fn_number">
|
6779
|
+
<xsl:choose>
|
6780
|
+
<xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
|
6781
|
+
<xsl:otherwise>
|
6782
|
+
<!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
|
6783
|
+
<xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
|
6784
|
+
</xsl:otherwise>
|
6785
|
+
</xsl:choose>
|
6786
|
+
</xsl:variable>
|
6630
6787
|
<fo:footnote>
|
6631
6788
|
<xsl:variable name="number">
|
6632
6789
|
|
@@ -6635,22 +6792,26 @@
|
|
6635
6792
|
<xsl:number level="any" count="*[local-name() = 'references'][preceding-sibling::*[local-name() = 'references']]//*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
|
6636
6793
|
</xsl:when>
|
6637
6794
|
<xsl:otherwise>
|
6638
|
-
<xsl:
|
6795
|
+
<xsl:value-of select="$current_fn_number"/>
|
6639
6796
|
</xsl:otherwise>
|
6640
6797
|
</xsl:choose>
|
6641
6798
|
|
6642
6799
|
</xsl:variable>
|
6800
|
+
|
6801
|
+
<xsl:variable name="current_fn_number_text">
|
6802
|
+
<xsl:value-of select="$number"/>
|
6803
|
+
|
6804
|
+
</xsl:variable>
|
6805
|
+
|
6643
6806
|
<fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
|
6644
|
-
<fo:basic-link internal-destination="{
|
6645
|
-
<xsl:value-of select="$
|
6646
|
-
|
6807
|
+
<fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
|
6808
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6647
6809
|
</fo:basic-link>
|
6648
6810
|
</fo:inline>
|
6649
6811
|
<fo:footnote-body>
|
6650
6812
|
<fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
|
6651
|
-
<fo:inline id="{
|
6652
|
-
<xsl:value-of select="$
|
6653
|
-
|
6813
|
+
<fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
|
6814
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
6654
6815
|
</fo:inline>
|
6655
6816
|
<xsl:apply-templates/>
|
6656
6817
|
</fo:block>
|
@@ -6896,6 +7057,78 @@
|
|
6896
7057
|
<xsl:apply-templates/>
|
6897
7058
|
</fo:block>
|
6898
7059
|
|
7060
|
+
</xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
|
7061
|
+
<xsl:copy>
|
7062
|
+
<xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
|
7063
|
+
</xsl:copy>
|
7064
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
|
7065
|
+
<xsl:copy>
|
7066
|
+
<xsl:copy-of select="@*"/>
|
7067
|
+
|
7068
|
+
<xsl:variable name="nodes_preface_">
|
7069
|
+
<xsl:for-each select="*">
|
7070
|
+
<node id="{@id}"/>
|
7071
|
+
</xsl:for-each>
|
7072
|
+
</xsl:variable>
|
7073
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
7074
|
+
|
7075
|
+
<xsl:for-each select="*">
|
7076
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7077
|
+
|
7078
|
+
<!-- process Section's title -->
|
7079
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7080
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7081
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7082
|
+
</xsl:if>
|
7083
|
+
|
7084
|
+
<xsl:choose>
|
7085
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7086
|
+
<xsl:otherwise>
|
7087
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7088
|
+
</xsl:otherwise>
|
7089
|
+
</xsl:choose>
|
7090
|
+
|
7091
|
+
</xsl:for-each>
|
7092
|
+
</xsl:copy>
|
7093
|
+
</xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
|
7094
|
+
<xsl:copy>
|
7095
|
+
<xsl:copy-of select="@*"/>
|
7096
|
+
|
7097
|
+
<xsl:variable name="nodes_sections_">
|
7098
|
+
<xsl:for-each select="*">
|
7099
|
+
<node id="{@id}"/>
|
7100
|
+
</xsl:for-each>
|
7101
|
+
</xsl:variable>
|
7102
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
7103
|
+
|
7104
|
+
<!-- move section 'Normative references' inside 'sections' -->
|
7105
|
+
<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']]">
|
7106
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7107
|
+
|
7108
|
+
<!-- process Section's title -->
|
7109
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7110
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7111
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7112
|
+
</xsl:if>
|
7113
|
+
|
7114
|
+
<xsl:choose>
|
7115
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7116
|
+
<xsl:otherwise>
|
7117
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7118
|
+
</xsl:otherwise>
|
7119
|
+
</xsl:choose>
|
7120
|
+
|
7121
|
+
</xsl:for-each>
|
7122
|
+
</xsl:copy>
|
7123
|
+
</xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
|
7124
|
+
<xsl:copy>
|
7125
|
+
<xsl:copy-of select="@*"/>
|
7126
|
+
<!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
|
7127
|
+
<xsl:for-each select="*[not(@normative='true') and not(*[@normative='true'])]">
|
7128
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7129
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7130
|
+
</xsl:for-each>
|
7131
|
+
</xsl:copy>
|
6899
7132
|
</xsl:template><xsl:template name="convertDate">
|
6900
7133
|
<xsl:param name="date"/>
|
6901
7134
|
<xsl:param name="format" select="'short'"/>
|
@@ -7140,22 +7373,25 @@
|
|
7140
7373
|
<xsl:param name="pText" select="."/>
|
7141
7374
|
<xsl:param name="sep" select="','"/>
|
7142
7375
|
<xsl:param name="normalize-space" select="'true'"/>
|
7376
|
+
<xsl:param name="keep_sep" select="'false'"/>
|
7143
7377
|
<xsl:if test="string-length($pText) >0">
|
7144
|
-
|
7145
|
-
|
7146
|
-
|
7147
|
-
|
7148
|
-
|
7149
|
-
|
7150
|
-
|
7151
|
-
|
7152
|
-
|
7153
|
-
|
7154
|
-
|
7155
|
-
<xsl:
|
7156
|
-
|
7157
|
-
|
7158
|
-
|
7378
|
+
<item>
|
7379
|
+
<xsl:choose>
|
7380
|
+
<xsl:when test="$normalize-space = 'true'">
|
7381
|
+
<xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
|
7382
|
+
</xsl:when>
|
7383
|
+
<xsl:otherwise>
|
7384
|
+
<xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
|
7385
|
+
</xsl:otherwise>
|
7386
|
+
</xsl:choose>
|
7387
|
+
</item>
|
7388
|
+
<xsl:if test="$keep_sep = 'true' and contains($pText, $sep)"><item><xsl:value-of select="$sep"/></item></xsl:if>
|
7389
|
+
<xsl:call-template name="split">
|
7390
|
+
<xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
|
7391
|
+
<xsl:with-param name="sep" select="$sep"/>
|
7392
|
+
<xsl:with-param name="normalize-space" select="$normalize-space"/>
|
7393
|
+
<xsl:with-param name="keep_sep" select="$keep_sep"/>
|
7394
|
+
</xsl:call-template>
|
7159
7395
|
</xsl:if>
|
7160
7396
|
</xsl:template><xsl:template name="getDocumentId">
|
7161
7397
|
<xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
|