metanorma-bipm 1.2.3 → 2.0.0.1

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.
@@ -14,7 +14,7 @@
14
14
 
15
15
 
16
16
 
17
- <xsl:key name="kfn" match="*[local-name()='p']/*[local-name()='fn']" use="@reference"/>
17
+ <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
18
18
 
19
19
 
20
20
 
@@ -586,7 +586,7 @@
586
586
  <xsl:choose>
587
587
  <xsl:when test="ancestor-or-self::*[local-name()='annex'] and $level &gt;= 2">false</xsl:when>
588
588
  <xsl:when test="$section = '' and $type = 'clause'">false</xsl:when>
589
- <xsl:when test="$level &lt;= 3">true</xsl:when>
589
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
590
590
  <xsl:otherwise>false</xsl:otherwise>
591
591
  </xsl:choose>
592
592
  </xsl:variable>
@@ -629,8 +629,9 @@
629
629
 
630
630
  <xsl:template name="getListItemFormat">
631
631
  <xsl:choose>
632
- <xsl:when test="local-name(..) = 'ul' and ../ancestor::jcgm:ul">−</xsl:when> <!-- &#x2212; - minus sign. &#x2014; - dash -->
633
- <xsl:when test="local-name(..) = 'ul'">—</xsl:when> <!-- &#x2014; dash -->
632
+ <xsl:when test="local-name(..) = 'ul'">
633
+ <xsl:call-template name="setULLabel"/>
634
+ </xsl:when>
634
635
  <xsl:otherwise> <!-- for ordered lists -->
635
636
  <xsl:variable name="start_value">
636
637
  <xsl:choose>
@@ -719,101 +720,15 @@
719
720
  </xsl:if>
720
721
  </xsl:template>
721
722
 
722
-
723
- <!--
724
- <fn reference="1">
725
- <p id="_8e5cf917-f75a-4a49-b0aa-1714cb6cf954">Formerly denoted as 15 % (m/m).</p>
726
- </fn>
727
- -->
728
-
729
- <xsl:variable name="p_fn">
730
- <xsl:for-each select="//*[local-name()='p']/*[local-name()='fn'][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
731
- <!-- copy unique fn -->
732
- <fn gen_id="{generate-id(.)}">
733
- <xsl:copy-of select="@*"/>
734
- <xsl:copy-of select="node()"/>
735
- </fn>
736
- </xsl:for-each>
737
- </xsl:variable>
738
-
739
- <xsl:template match="*[local-name()='p']/*[local-name()='fn']" priority="2">
740
- <xsl:variable name="gen_id" select="generate-id(.)"/>
741
- <xsl:variable name="reference" select="@reference"/>
742
- <xsl:variable name="number">
743
- <xsl:value-of select="count(xalan:nodeset($p_fn)//fn[@reference = $reference]/preceding-sibling::fn) + 1"/>
744
- </xsl:variable>
745
- <xsl:choose>
746
- <xsl:when test="xalan:nodeset($p_fn)//fn[@gen_id = $gen_id]">
747
- <fo:footnote>
748
- <fo:inline font-size="80%" keep-with-previous.within-line="always" vertical-align="super">
749
- <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
750
- <!-- <xsl:value-of select="@reference"/> -->
751
- <xsl:value-of select="$number + count(//*[local-name()='bibitem'][ancestor::*[local-name()='references'][@normative='true']]/*[local-name()='note'])"/><xsl:text>)</xsl:text>
752
- </fo:basic-link>
753
- </fo:inline>
754
- <fo:footnote-body>
755
- <fo:block font-size="10pt" margin-bottom="12pt">
756
- <fo:inline id="footnote_{@reference}_{$number}" keep-with-next.within-line="always" padding-right="3mm"> <!-- font-size="60%" alignment-baseline="hanging" -->
757
- <xsl:value-of select="$number + count(//*[local-name()='bibitem'][ancestor::*[local-name()='references'][@normative='true']]/*[local-name()='note'])"/><xsl:text>)</xsl:text>
758
- </fo:inline>
759
- <xsl:for-each select="*[local-name()='p']">
760
- <xsl:apply-templates/>
761
- </xsl:for-each>
762
- </fo:block>
763
- </fo:footnote-body>
764
- </fo:footnote>
765
- </xsl:when>
766
- <xsl:otherwise>
767
- <fo:inline font-size="60%" keep-with-previous.within-line="always" vertical-align="super">
768
- <fo:basic-link internal-destination="footnote_{@reference}_{$number}" fox:alt-text="footnote {@reference} {$number}">
769
- <xsl:value-of select="$number + count(//*[local-name()='bibitem']/*[local-name()='note'])"/>
770
- </fo:basic-link>
771
- </fo:inline>
772
- </xsl:otherwise>
773
- </xsl:choose>
774
- </xsl:template>
775
723
 
776
724
  <xsl:template match="*[local-name()='p']/*[local-name()='fn']/*[local-name()='p']">
777
725
  <xsl:apply-templates/>
778
726
  </xsl:template>
779
727
 
780
-
781
-
728
+
782
729
  <xsl:template match="*[local-name()='bibitem']">
783
- <fo:block id="{@id}" margin-bottom="6pt"> <!-- 12 pt -->
784
- <xsl:variable name="docidentifier">
785
- <xsl:if test="*[local-name()='docidentifier']">
786
- <xsl:choose>
787
- <xsl:when test="*[local-name()='docidentifier']/@type = 'metanorma'"/>
788
- <xsl:otherwise><xsl:value-of select="*[local-name()='docidentifier']"/></xsl:otherwise>
789
- </xsl:choose>
790
- </xsl:if>
791
- </xsl:variable>
792
- <xsl:value-of select="$docidentifier"/>
793
-
794
- <xsl:choose>
795
- <xsl:when test="*[local-name()='formattedref']">
796
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
797
- <xsl:apply-templates select="*[local-name()='formattedref']"/>
798
- </xsl:when>
799
- <xsl:otherwise>
800
- <xsl:apply-templates select="*[local-name()='note']"/>
801
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
802
- <fo:inline font-style="italic">
803
- <xsl:choose>
804
- <xsl:when test="*[local-name()='title'][@type = 'main' and @language = $lang]">
805
- <xsl:value-of select="*[local-name()='title'][@type = 'main' and @language = $lang]"/>
806
- </xsl:when>
807
- <xsl:when test="*[local-name()='title'][@type = 'main' and @language = 'en']">
808
- <xsl:value-of select="*[local-name()='title'][@type = 'main' and @language = 'en']"/>
809
- </xsl:when>
810
- <xsl:otherwise>
811
- <xsl:value-of select="*[local-name()='title']"/>
812
- </xsl:otherwise>
813
- </xsl:choose>
814
- </fo:inline>
815
- </xsl:otherwise>
816
- </xsl:choose>
730
+ <fo:block id="{@id}" margin-bottom="6pt">
731
+ <xsl:call-template name="processBibitem"/>
817
732
  </fo:block>
818
733
  </xsl:template>
819
734
 
@@ -839,37 +754,7 @@
839
754
  </fo:footnote>
840
755
  </xsl:template>
841
756
 
842
-
843
- <!--
844
- <fn reference="1">
845
- <p id="_8e5cf917-f75a-4a49-b0aa-1714cb6cf954">Formerly denoted as 15 % (m/m).</p>
846
- </fn>
847
- -->
848
- <xsl:template match="jcgm:title//jcgm:fn | jcgm:name//jcgm:fn | jcgm:p/jcgm:fn[not(ancestor::jcgm:table)] | jcgm:p/*/jcgm:fn[not(ancestor::jcgm:table)] | jcgm:sourcecode/jcgm:fn[not(ancestor::jcgm:table)]" priority="2" name="fn">
849
- <fo:footnote keep-with-previous.within-line="always">
850
- <xsl:variable name="number">
851
- <xsl:number count="jcgm:fn[not(ancestor::jcgm:table)]" level="any"/>
852
- </xsl:variable>
853
- <xsl:variable name="gen_id" select="generate-id()"/>
854
- <xsl:variable name="lang" select="ancestor::jcgm:bipm-standard/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
855
- <fo:inline font-size="65%" keep-with-previous.within-line="always" vertical-align="super">
856
- <fo:basic-link internal-destination="{$lang}_footnote_{@reference}_{$number}_{$gen_id}" fox:alt-text="footnote {@reference}">
857
- <xsl:value-of select="$number"/>
858
- </fo:basic-link>
859
- </fo:inline>
860
- <fo:footnote-body>
861
- <fo:block font-size="9pt" margin-bottom="12pt" font-weight="normal" text-indent="0" start-indent="0" line-height="124%" text-align="justify">
862
- <fo:inline id="{$lang}_footnote_{@reference}_{$number}_{$gen_id}" keep-with-next.within-line="always" font-size="60%" vertical-align="super" padding-right="1mm"> <!-- baseline-shift="30%" padding-right="3mm" font-size="60%" alignment-baseline="hanging" -->
863
- <xsl:value-of select="$number "/>
864
- </fo:inline>
865
- <xsl:for-each select="jcgm:p">
866
- <xsl:apply-templates/>
867
- </xsl:for-each>
868
- </fo:block>
869
- </fo:footnote-body>
870
- </fo:footnote>
871
- </xsl:template>
872
-
757
+
873
758
  <xsl:template match="jcgm:fn/jcgm:p">
874
759
  <fo:block>
875
760
  <xsl:apply-templates/>
@@ -1008,44 +893,24 @@
1008
893
  <fo:list-item-label end-indent="label-end()">
1009
894
  <fo:block>
1010
895
  <fo:inline id="{@id}">
1011
- <xsl:number format="[1]"/>
896
+ <xsl:value-of select="*[local-name()='docidentifier'][@type = 'metanorma-ordinal']"/>
897
+ <xsl:if test="not(*[local-name()='docidentifier'][@type = 'metanorma-ordinal'])">
898
+ <xsl:number format="[1]"/>
899
+ </xsl:if>
1012
900
  </fo:inline>
1013
901
  </fo:block>
1014
902
  </fo:list-item-label>
1015
903
  <fo:list-item-body start-indent="body-start()">
1016
904
  <fo:block>
1017
- <xsl:variable name="docidentifier">
1018
- <xsl:if test="*[local-name()='docidentifier']">
1019
- <xsl:choose>
1020
- <xsl:when test="*[local-name()='docidentifier']/@type = 'metanorma'"/>
1021
- <xsl:otherwise><xsl:value-of select="*[local-name()='docidentifier']"/></xsl:otherwise>
1022
- </xsl:choose>
1023
- </xsl:if>
1024
- </xsl:variable>
1025
- <xsl:value-of select="$docidentifier"/>
1026
- <xsl:apply-templates select="*[local-name()='note']"/>
1027
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
1028
- <xsl:choose>
1029
- <xsl:when test="*[local-name()='title'][@type = 'main' and @language = $lang]">
1030
- <xsl:apply-templates select="*[local-name()='title'][@type = 'main' and @language = $lang]"/>
1031
- </xsl:when>
1032
- <xsl:when test="*[local-name()='title'][@type = 'main' and @language = 'en']">
1033
- <xsl:apply-templates select="*[local-name()='title'][@type = 'main' and @language = 'en']"/>
1034
- </xsl:when>
1035
- <xsl:otherwise>
1036
- <xsl:apply-templates select="*[local-name()='title']"/>
1037
- </xsl:otherwise>
1038
- </xsl:choose>
1039
- <xsl:apply-templates select="*[local-name()='formattedref']"/>
905
+ <xsl:call-template name="processBibitem"/>
1040
906
  </fo:block>
1041
907
  </fo:list-item-body>
1042
908
  </fo:list-item>
1043
909
  </fo:list-block>
1044
910
  </xsl:template>
1045
911
 
1046
- <xsl:template match="*[local-name()='references']/*[local-name()='bibitem']" mode="contents"/>
1047
912
 
1048
- <xsl:template match="*[local-name()='references'][not(@normative='true')]/*[local-name()='bibitem']/*[local-name()='title']">
913
+ <xsl:template match="*[local-name()='references']/*[local-name()='bibitem']/*[local-name()='title']">
1049
914
  <fo:inline font-style="italic">
1050
915
  <xsl:apply-templates/>
1051
916
  </fo:inline>
@@ -1368,7 +1233,7 @@
1368
1233
  </xsl:if>
1369
1234
  </xsl:template>
1370
1235
 
1371
- <xsl:template match="jcgm:title">
1236
+ <xsl:template match="jcgm:title" name="title">
1372
1237
 
1373
1238
  <xsl:variable name="level">
1374
1239
  <xsl:call-template name="getLevel"/>
@@ -2095,47 +1960,32 @@
2095
1960
  </fo:block-container>
2096
1961
  </xsl:template>
2097
1962
 
2098
- <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
2099
-
2100
- <title-annex lang="en">Annex </title-annex>
2101
- <title-annex lang="fr">Annexe </title-annex>
2102
-
2103
-
1963
+ <xsl:variable name="titles_">
2104
1964
 
2105
1965
  <title-edition lang="en">
2106
1966
 
2107
- <xsl:text>Edition </xsl:text>
2108
-
2109
-
1967
+ <xsl:text>Edition </xsl:text>
1968
+
2110
1969
  </title-edition>
2111
1970
 
2112
1971
  <title-edition lang="fr">
2113
-
2114
- <xsl:text>Édition </xsl:text>
2115
-
1972
+ <xsl:text>Édition </xsl:text>
2116
1973
  </title-edition>
2117
1974
 
2118
-
1975
+ <!-- These titles of Table of contents renders different than determined in localized-strings -->
2119
1976
  <title-toc lang="en">
2120
1977
 
2121
1978
 
2122
1979
 
2123
1980
  </title-toc>
2124
1981
  <title-toc lang="fr">
1982
+ <xsl:text>Sommaire</xsl:text>
1983
+ </title-toc>
1984
+ <title-toc lang="zh">
2125
1985
 
2126
-
2127
- </title-toc>
2128
-
2129
-
2130
-
2131
- <title-page lang="en">Page</title-page>
2132
- <title-page lang="fr">Page</title-page>
2133
-
2134
- <title-key lang="en">Key</title-key>
2135
- <title-key lang="fr">Légende</title-key>
2136
-
2137
- <title-where lang="en">where</title-where>
2138
- <title-where lang="fr">où</title-where>
1986
+ <xsl:text>Contents</xsl:text>
1987
+
1988
+ </title-toc>
2139
1989
 
2140
1990
  <title-descriptors lang="en">Descriptors</title-descriptors>
2141
1991
 
@@ -2151,28 +2001,9 @@
2151
2001
  </title-part>
2152
2002
  <title-part lang="zh">第 # 部分:</title-part>
2153
2003
 
2154
- <title-subpart lang="en">
2155
-
2156
- </title-subpart>
2157
- <title-subpart lang="fr">
2158
-
2159
- </title-subpart>
2160
-
2161
- <title-modified lang="en">modified</title-modified>
2162
- <title-modified lang="fr">modifiée</title-modified>
2163
-
2164
-
2165
-
2166
- <title-source lang="en">
2167
-
2168
-
2169
- </title-source>
2170
-
2171
- <title-keywords lang="en">Keywords</title-keywords>
2004
+ <title-subpart lang="en">Sub-part #</title-subpart>
2005
+ <title-subpart lang="fr">Partie de sub #</title-subpart>
2172
2006
 
2173
- <title-deprecated lang="en">DEPRECATED</title-deprecated>
2174
- <title-deprecated lang="fr">DEPRECATED</title-deprecated>
2175
-
2176
2007
  <title-list-tables lang="en">List of Tables</title-list-tables>
2177
2008
 
2178
2009
  <title-list-figures lang="en">List of Figures</title-list-figures>
@@ -2181,41 +2012,12 @@
2181
2012
 
2182
2013
  <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
2183
2014
 
2184
- <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
2185
-
2186
- <title-abstract lang="en">Abstract</title-abstract>
2187
-
2188
2015
  <title-summary lang="en">Summary</title-summary>
2189
2016
 
2190
- <title-in lang="en">in </title-in>
2191
-
2192
- <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
2193
- <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
2194
-
2195
- <title-completion-date lang="en">Completion date for this manuscript</title-completion-date>
2196
- <title-completion-date lang="zh">本稿完成日期</title-completion-date>
2197
-
2198
- <title-issuance-date lang="en">Issuance Date: #</title-issuance-date>
2199
- <title-issuance-date lang="zh"># 发布</title-issuance-date>
2200
-
2201
- <title-implementation-date lang="en">Implementation Date: #</title-implementation-date>
2202
- <title-implementation-date lang="zh"># 实施</title-implementation-date>
2203
-
2204
- <title-obligation-normative lang="en">normative</title-obligation-normative>
2205
- <title-obligation-normative lang="zh">规范性附录</title-obligation-normative>
2206
-
2207
- <title-caution lang="en">CAUTION</title-caution>
2208
- <title-caution lang="zh">注意</title-caution>
2209
-
2210
- <title-warning lang="en">WARNING</title-warning>
2211
- <title-warning lang="zh">警告</title-warning>
2212
-
2213
- <title-amendment lang="en">AMENDMENT</title-amendment>
2214
-
2215
2017
  <title-continued lang="en">(continued)</title-continued>
2216
2018
  <title-continued lang="fr">(continué)</title-continued>
2217
2019
 
2218
- </xsl:variable><xsl:variable name="bibdata">
2020
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
2219
2021
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
2220
2022
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
2221
2023
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
@@ -2329,16 +2131,18 @@
2329
2131
 
2330
2132
 
2331
2133
 
2134
+
2332
2135
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
2333
2136
 
2334
2137
 
2335
2138
 
2139
+
2336
2140
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
2141
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2337
2142
 
2338
2143
 
2339
2144
 
2340
2145
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
2341
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
2342
2146
 
2343
2147
 
2344
2148
 
@@ -2373,6 +2177,7 @@
2373
2177
 
2374
2178
 
2375
2179
 
2180
+
2376
2181
  </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
2377
2182
 
2378
2183
 
@@ -2660,30 +2465,85 @@
2660
2465
 
2661
2466
  </xsl:attribute-set><xsl:attribute-set name="toc-style">
2662
2467
  <xsl:attribute name="line-height">135%</xsl:attribute>
2663
- </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="OLD_processPrefaceSectionsDefault_Contents">
2664
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
2665
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
2666
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
2667
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
2668
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
2669
- </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
2468
+ </xsl:attribute-set><xsl:attribute-set name="fn-style">
2469
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2470
+ </xsl:attribute-set><xsl:attribute-set name="fn-num-style">
2471
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2472
+
2473
+ <xsl:attribute name="font-size">65%</xsl:attribute>
2474
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
2475
+
2476
+
2477
+
2478
+
2479
+
2480
+
2481
+
2482
+
2483
+
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+ </xsl:attribute-set><xsl:attribute-set name="fn-body-style">
2492
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
2493
+ <xsl:attribute name="font-style">normal</xsl:attribute>
2494
+ <xsl:attribute name="text-indent">0</xsl:attribute>
2495
+ <xsl:attribute name="start-indent">0</xsl:attribute>
2496
+
2497
+
2498
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2499
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2500
+ <xsl:attribute name="line-height">124%</xsl:attribute>
2501
+ <xsl:attribute name="text-align">justify</xsl:attribute>
2502
+
2503
+
2504
+
2505
+
2506
+
2507
+
2508
+
2509
+
2510
+
2511
+
2512
+
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+ </xsl:attribute-set><xsl:attribute-set name="fn-body-num-style">
2520
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
2521
+
2522
+ <xsl:attribute name="font-size">60%</xsl:attribute>
2523
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
2524
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+ </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
2670
2543
  <xsl:for-each select="/*/*[local-name()='preface']/*">
2671
2544
  <xsl:sort select="@displayorder" data-type="number"/>
2672
2545
  <xsl:apply-templates select="." mode="contents"/>
2673
2546
  </xsl:for-each>
2674
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
2675
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
2676
-
2677
- <!-- Normative references -->
2678
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]" mode="contents"/>
2679
- <!-- Terms and definitions -->
2680
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
2681
- <!-- Another main sections -->
2682
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
2683
- <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
2684
- <!-- Bibliography -->
2685
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
2686
-
2687
2547
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2688
2548
 
2689
2549
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
@@ -2700,29 +2560,11 @@
2700
2560
  <xsl:sort select="@displayorder" data-type="number"/>
2701
2561
  <xsl:apply-templates select="." mode="contents"/>
2702
2562
  </xsl:for-each>
2703
- </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
2704
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
2705
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
2706
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
2707
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
2708
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
2709
2563
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2710
2564
  <xsl:for-each select="/*/*[local-name()='preface']/*">
2711
2565
  <xsl:sort select="@displayorder" data-type="number"/>
2712
2566
  <xsl:apply-templates select="."/>
2713
2567
  </xsl:for-each>
2714
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
2715
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
2716
-
2717
- <!-- Normative references -->
2718
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
2719
- <!-- Terms and definitions -->
2720
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
2721
- <!-- Another main sections -->
2722
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
2723
- <xsl:apply-templates select="/*/*[local-name()='annex']"/>
2724
- <!-- Bibliography -->
2725
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
2726
2568
  </xsl:template><xsl:template name="processMainSectionsDefault">
2727
2569
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
2728
2570
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -2770,28 +2612,8 @@
2770
2612
 
2771
2613
 
2772
2614
 
2773
-
2774
-
2775
-
2776
2615
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>
2777
2616
 
2778
- <!-- <xsl:variable name="cols-count">
2779
- <xsl:choose>
2780
- <xsl:when test="*[local-name()='thead']">
2781
- <xsl:call-template name="calculate-columns-numbers">
2782
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2783
- </xsl:call-template>
2784
- </xsl:when>
2785
- <xsl:otherwise>
2786
- <xsl:call-template name="calculate-columns-numbers">
2787
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2788
- </xsl:call-template>
2789
- </xsl:otherwise>
2790
- </xsl:choose>
2791
- </xsl:variable> -->
2792
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2793
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2794
-
2795
2617
  <xsl:variable name="colwidths">
2796
2618
  <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
2797
2619
  <xsl:call-template name="calculate-column-widths">
@@ -2802,15 +2624,6 @@
2802
2624
  </xsl:variable>
2803
2625
  <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2804
2626
 
2805
- <!-- <xsl:variable name="colwidths2">
2806
- <xsl:call-template name="calculate-column-widths">
2807
- <xsl:with-param name="cols-count" select="$cols-count"/>
2808
- </xsl:call-template>
2809
- </xsl:variable> -->
2810
-
2811
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2812
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
2813
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2814
2627
 
2815
2628
  <xsl:variable name="margin-left">
2816
2629
  <xsl:choose>
@@ -2943,25 +2756,6 @@
2943
2756
  </xsl:call-template>
2944
2757
  </xsl:for-each>
2945
2758
 
2946
- <!-- insert footer as table -->
2947
- <!-- <fo:table>
2948
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2949
- <xsl:attribute name="{@name}">
2950
- <xsl:value-of select="."/>
2951
- </xsl:attribute>
2952
- </xsl:for-each>
2953
-
2954
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
2955
- <xsl:choose>
2956
- <xsl:when test=". = 1 or . = 0">
2957
- <fo:table-column column-width="proportional-column-width(2)"/>
2958
- </xsl:when>
2959
- <xsl:otherwise>
2960
- <fo:table-column column-width="proportional-column-width({.})"/>
2961
- </xsl:otherwise>
2962
- </xsl:choose>
2963
- </xsl:for-each>
2964
- </fo:table>-->
2965
2759
 
2966
2760
 
2967
2761
 
@@ -3035,7 +2829,6 @@
3035
2829
 
3036
2830
  <xsl:choose>
3037
2831
  <xsl:when test="$continued = 'true'">
3038
- <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->
3039
2832
 
3040
2833
  <xsl:apply-templates/>
3041
2834
 
@@ -3100,13 +2893,6 @@
3100
2893
  <xsl:for-each select="xalan:nodeset($table)/*/tr">
3101
2894
  <xsl:variable name="td_text">
3102
2895
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
3103
-
3104
- <!-- <xsl:if test="$namespace = 'bipm'">
3105
- <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
3106
- <word><xsl:value-of select="normalize-space(.)"/></word>
3107
- </xsl:for-each>
3108
- </xsl:if> -->
3109
-
3110
2896
  </xsl:variable>
3111
2897
  <xsl:variable name="words">
3112
2898
  <xsl:variable name="string_with_added_zerospaces">
@@ -3203,14 +2989,13 @@
3203
2989
  <xsl:for-each select="ancestor::*[local-name()='table'][1]">
3204
2990
  <xsl:call-template name="fn_name_display"/>
3205
2991
  </xsl:for-each>
3206
-
3207
-
3208
-
2992
+
3209
2993
  <fo:block text-align="right" font-style="italic">
3210
2994
  <xsl:text> </xsl:text>
3211
2995
  <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
3212
2996
  </fo:block>
3213
2997
 
2998
+
3214
2999
  </fo:table-cell>
3215
3000
  </fo:table-row>
3216
3001
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
@@ -3226,66 +3011,6 @@
3226
3011
  <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3227
3012
  </fo:table-footer>
3228
3013
  </xsl:if>
3229
- </xsl:template><xsl:template name="insertTableFooter2">
3230
- <xsl:param name="cols-count"/>
3231
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3232
- <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
3233
-
3234
- <fo:table-footer>
3235
-
3236
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3237
-
3238
- <!-- if there are note(s) or fn(s) then create footer row -->
3239
- <xsl:if test="$isNoteOrFnExist = 'true'">
3240
-
3241
-
3242
-
3243
- <fo:table-row>
3244
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3245
-
3246
- <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
3247
-
3248
-
3249
-
3250
- <!-- fn will be processed inside 'note' processing -->
3251
-
3252
-
3253
-
3254
-
3255
-
3256
-
3257
- <!-- except gb -->
3258
-
3259
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3260
-
3261
-
3262
- <!-- show Note under table in preface (ex. abstract) sections -->
3263
- <!-- empty, because notes show at page side in main sections -->
3264
- <!-- <xsl:if test="$namespace = 'bipm'">
3265
- <xsl:choose>
3266
- <xsl:when test="ancestor::*[local-name()='preface']">
3267
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3268
- </xsl:when>
3269
- <xsl:otherwise>
3270
- <fo:block/>
3271
- </xsl:otherwise>
3272
- </xsl:choose>
3273
- </xsl:if> -->
3274
-
3275
-
3276
- <!-- horizontal row separator -->
3277
-
3278
-
3279
- <!-- fn processing -->
3280
- <xsl:call-template name="fn_display"/>
3281
-
3282
- </fo:table-cell>
3283
- </fo:table-row>
3284
-
3285
- </xsl:if>
3286
- </fo:table-footer>
3287
-
3288
- </xsl:if>
3289
3014
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
3290
3015
  <xsl:param name="table_attributes"/>
3291
3016
  <xsl:param name="colwidths"/>
@@ -3370,23 +3095,10 @@
3370
3095
  <!-- for BSI (not PAS) display Notes before footnotes -->
3371
3096
 
3372
3097
 
3373
- <!-- except gb -->
3098
+ <!-- except gb and bsi -->
3374
3099
 
3375
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3376
-
3377
-
3378
- <!-- <xsl:if test="$namespace = 'bipm'">
3379
- <xsl:choose>
3380
- <xsl:when test="ancestor::*[local-name()='preface']">
3381
- show Note under table in preface (ex. abstract) sections
3382
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3383
- </xsl:when>
3384
- <xsl:otherwise>
3385
- empty, because notes show at page side in main sections
3386
- <fo:block/>
3387
- </xsl:otherwise>
3388
- </xsl:choose>
3389
- </xsl:if> -->
3100
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3101
+
3390
3102
 
3391
3103
 
3392
3104
  <!-- horizontal row separator -->
@@ -3395,7 +3107,6 @@
3395
3107
  <!-- fn processing -->
3396
3108
  <xsl:call-template name="fn_display"/>
3397
3109
 
3398
-
3399
3110
  <!-- for PAS display Notes after footnotes -->
3400
3111
 
3401
3112
 
@@ -3481,8 +3192,7 @@
3481
3192
 
3482
3193
 
3483
3194
  <xsl:apply-templates/>
3484
- <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
3485
-
3195
+
3486
3196
  </fo:table-body>
3487
3197
 
3488
3198
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
@@ -3500,7 +3210,7 @@
3500
3210
  <xsl:apply-templates select="."/>
3501
3211
  </xsl:template><xsl:template match="*[local-name()='tr']">
3502
3212
  <xsl:variable name="parent-name" select="local-name(..)"/>
3503
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3213
+
3504
3214
  <fo:table-row min-height="4mm">
3505
3215
  <xsl:if test="$parent-name = 'thead'">
3506
3216
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -3547,10 +3257,6 @@
3547
3257
 
3548
3258
 
3549
3259
 
3550
- <!-- <xsl:if test="$namespace = 'bipm'">
3551
- <xsl:attribute name="height">8mm</xsl:attribute>
3552
- </xsl:if> -->
3553
-
3554
3260
  <xsl:apply-templates/>
3555
3261
  </fo:table-row>
3556
3262
  </xsl:template><xsl:template match="*[local-name()='th']">
@@ -3559,7 +3265,6 @@
3559
3265
  <xsl:choose>
3560
3266
  <xsl:when test="@align">
3561
3267
  <xsl:call-template name="setAlignment"/>
3562
- <!-- <xsl:value-of select="@align"/> -->
3563
3268
  </xsl:when>
3564
3269
  <xsl:otherwise>center</xsl:otherwise>
3565
3270
  </xsl:choose>
@@ -3614,7 +3319,6 @@
3614
3319
  <xsl:choose>
3615
3320
  <xsl:when test="@align">
3616
3321
  <xsl:call-template name="setAlignment"/>
3617
- <!-- <xsl:value-of select="@align"/> -->
3618
3322
  </xsl:when>
3619
3323
  <xsl:otherwise>left</xsl:otherwise>
3620
3324
  </xsl:choose>
@@ -3701,6 +3405,102 @@
3701
3405
 
3702
3406
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='name']" mode="process"/><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
3703
3407
  <xsl:apply-templates/>
3408
+ </xsl:template><xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" priority="2" name="fn">
3409
+
3410
+ <!-- list of footnotes to calculate actual footnotes number -->
3411
+ <xsl:variable name="p_fn_">
3412
+ <xsl:choose>
3413
+ <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
3414
+ <fn gen_id="{generate-id(.)}">
3415
+ <xsl:copy-of select="@*"/>
3416
+ <xsl:copy-of select="node()"/>
3417
+ </fn>
3418
+ </xsl:when>
3419
+ <xsl:otherwise>
3420
+ <!-- itetation for:
3421
+ footnotes in bibdata/title
3422
+ footnotes in bibliography
3423
+ footnotes in document's body (except table's head/body/foot and figure text)
3424
+ -->
3425
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
3426
+ <fn gen_id="{generate-id(.)}">
3427
+ <xsl:copy-of select="@*"/>
3428
+ <xsl:copy-of select="node()"/>
3429
+ </fn>
3430
+ </xsl:for-each>
3431
+ <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']/*">
3432
+ <xsl:sort select="@displayorder" data-type="number"/>
3433
+ <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])]">
3434
+ <!-- copy unique fn -->
3435
+ <fn gen_id="{generate-id(.)}">
3436
+ <xsl:copy-of select="@*"/>
3437
+ <xsl:copy-of select="node()"/>
3438
+ </fn>
3439
+ </xsl:for-each>
3440
+ </xsl:for-each>
3441
+ </xsl:otherwise>
3442
+ </xsl:choose>
3443
+ </xsl:variable>
3444
+ <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
3445
+
3446
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
3447
+ <xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
3448
+ <xsl:variable name="reference" select="@reference"/>
3449
+ <!-- fn sequence number in document -->
3450
+ <xsl:variable name="current_fn_number">
3451
+ <xsl:choose>
3452
+ <xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
3453
+ <xsl:otherwise>
3454
+ <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1"/>
3455
+ </xsl:otherwise>
3456
+ </xsl:choose>
3457
+ </xsl:variable>
3458
+ <xsl:variable name="current_fn_number_text">
3459
+ <xsl:value-of select="$current_fn_number"/>
3460
+
3461
+
3462
+ </xsl:variable>
3463
+
3464
+ <xsl:variable name="ref_id" select="concat('footnote_', $lang, '_', $reference, '_', $current_fn_number)"/>
3465
+ <xsl:variable name="footnote_inline">
3466
+ <fo:inline xsl:use-attribute-sets="fn-num-style">
3467
+
3468
+ <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
3469
+ <xsl:value-of select="$current_fn_number_text"/>
3470
+ </fo:basic-link>
3471
+ </fo:inline>
3472
+ </xsl:variable>
3473
+ <!-- DEBUG: p_fn=<xsl:copy-of select="$p_fn"/>
3474
+ gen_id=<xsl:value-of select="$gen_id"/> -->
3475
+ <xsl:choose>
3476
+ <xsl:when test="normalize-space(@skip_footnote_body) = 'true'">
3477
+ <xsl:copy-of select="$footnote_inline"/>
3478
+ </xsl:when>
3479
+ <xsl:when test="$p_fn//fn[@gen_id = $gen_id] or normalize-space(@skip_footnote_body) = 'false'">
3480
+ <fo:footnote xsl:use-attribute-sets="fn-style">
3481
+ <xsl:copy-of select="$footnote_inline"/>
3482
+ <fo:footnote-body>
3483
+
3484
+ <fo:block-container text-indent="0" start-indent="0">
3485
+
3486
+
3487
+ <fo:block xsl:use-attribute-sets="fn-body-style">
3488
+
3489
+
3490
+ <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
3491
+
3492
+ <xsl:value-of select="$current_fn_number_text"/>
3493
+ </fo:inline>
3494
+ <xsl:apply-templates/>
3495
+ </fo:block>
3496
+ </fo:block-container>
3497
+ </fo:footnote-body>
3498
+ </fo:footnote>
3499
+ </xsl:when>
3500
+ <xsl:otherwise>
3501
+ <xsl:copy-of select="$footnote_inline"/>
3502
+ </xsl:otherwise>
3503
+ </xsl:choose>
3704
3504
  </xsl:template><xsl:template name="fn_display">
3705
3505
  <xsl:variable name="references">
3706
3506
 
@@ -3741,7 +3541,6 @@
3741
3541
  </fo:inline>
3742
3542
  <fo:inline>
3743
3543
 
3744
- <!-- <xsl:apply-templates /> -->
3745
3544
  <xsl:copy-of select="./node()"/>
3746
3545
  </fo:inline>
3747
3546
  </fo:block>
@@ -3754,14 +3553,6 @@
3754
3553
  <xsl:apply-templates/>
3755
3554
  </fn>
3756
3555
  </xsl:template><xsl:template name="fn_name_display">
3757
- <!-- <xsl:variable name="references">
3758
- <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3759
- <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3760
- <xsl:apply-templates />
3761
- </fn>
3762
- </xsl:for-each>
3763
- </xsl:variable>
3764
- $references=<xsl:copy-of select="$references"/> -->
3765
3556
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3766
3557
  <xsl:variable name="reference" select="@reference"/>
3767
3558
  <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
@@ -3798,14 +3589,12 @@
3798
3589
  </xsl:otherwise>
3799
3590
  </xsl:choose>
3800
3591
  </xsl:variable>
3801
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
3802
- <!-- <xsl:element name="{$ns}:table"> -->
3803
- <xsl:for-each select="*[local-name() = 'dl'][1]">
3804
- <tbody>
3805
- <xsl:apply-templates mode="dl"/>
3806
- </tbody>
3807
- </xsl:for-each>
3808
- <!-- </xsl:element> -->
3592
+
3593
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
3594
+ <tbody>
3595
+ <xsl:apply-templates mode="dl"/>
3596
+ </tbody>
3597
+ </xsl:for-each>
3809
3598
  </xsl:variable>
3810
3599
 
3811
3600
  <xsl:call-template name="calculate-column-widths">
@@ -3876,14 +3665,12 @@
3876
3665
  </xsl:if>
3877
3666
 
3878
3667
  </xsl:template><xsl:template match="*[local-name()='fn']">
3879
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3880
3668
  <fo:inline font-size="80%" keep-with-previous.within-line="always">
3881
3669
 
3882
3670
 
3883
3671
 
3884
3672
  <xsl:if test="ancestor::*[local-name()='table']">
3885
3673
  <xsl:attribute name="font-weight">normal</xsl:attribute>
3886
- <!-- <xsl:attribute name="alignment-baseline">hanging</xsl:attribute> -->
3887
3674
  <xsl:attribute name="baseline-shift">15%</xsl:attribute>
3888
3675
  </xsl:if>
3889
3676
 
@@ -3902,6 +3689,8 @@
3902
3689
 
3903
3690
  </fo:basic-link>
3904
3691
  </fo:inline>
3692
+ </xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
3693
+ <fo:inline><xsl:value-of select="."/></fo:inline>
3905
3694
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
3906
3695
  <fo:inline>
3907
3696
  <xsl:apply-templates/>
@@ -3911,10 +3700,10 @@
3911
3700
  <xsl:variable name="isDeleted" select="@deleted"/>
3912
3701
  <fo:block-container>
3913
3702
 
3914
- <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
3915
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
3916
- </xsl:if>
3917
-
3703
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
3704
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3705
+ </xsl:if>
3706
+
3918
3707
 
3919
3708
  <xsl:if test="parent::*[local-name() = 'note']">
3920
3709
  <xsl:attribute name="margin-left">
@@ -3933,9 +3722,9 @@
3933
3722
 
3934
3723
  <fo:block-container>
3935
3724
 
3936
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
3937
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
3938
-
3725
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3726
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
3727
+
3939
3728
 
3940
3729
  <xsl:variable name="parent" select="local-name(..)"/>
3941
3730
 
@@ -3948,25 +3737,21 @@
3948
3737
  <xsl:choose>
3949
3738
  <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
3950
3739
 
3951
-
3952
- <fo:block margin-bottom="12pt" text-align="left">
3953
-
3954
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
3955
-
3956
- <xsl:variable name="title-where">
3740
+ <fo:block margin-bottom="12pt" text-align="left">
3957
3741
 
3742
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
3743
+
3744
+ <xsl:variable name="title-where">
3958
3745
  <xsl:call-template name="getLocalizedString">
3959
3746
  <xsl:with-param name="key">where</xsl:with-param>
3960
3747
  </xsl:call-template>
3961
-
3962
-
3963
- </xsl:variable>
3964
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
3965
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
3966
- <xsl:text/>
3967
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3968
- </fo:block>
3969
-
3748
+ </xsl:variable>
3749
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
3750
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
3751
+ <xsl:text/>
3752
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
3753
+ </fo:block>
3754
+
3970
3755
  </xsl:when>
3971
3756
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
3972
3757
  <fo:block margin-bottom="12pt" text-align="left">
@@ -3977,12 +3762,9 @@
3977
3762
 
3978
3763
 
3979
3764
  <xsl:variable name="title-where">
3980
-
3981
- <xsl:call-template name="getLocalizedString">
3982
- <xsl:with-param name="key">where</xsl:with-param>
3983
- </xsl:call-template>
3984
-
3985
-
3765
+ <xsl:call-template name="getLocalizedString">
3766
+ <xsl:with-param name="key">where</xsl:with-param>
3767
+ </xsl:call-template>
3986
3768
  </xsl:variable>
3987
3769
  <xsl:value-of select="$title-where"/>
3988
3770
  </fo:block>
@@ -3997,12 +3779,9 @@
3997
3779
 
3998
3780
 
3999
3781
  <xsl:variable name="title-key">
4000
-
4001
- <xsl:call-template name="getLocalizedString">
4002
- <xsl:with-param name="key">key</xsl:with-param>
4003
- </xsl:call-template>
4004
-
4005
-
3782
+ <xsl:call-template name="getLocalizedString">
3783
+ <xsl:with-param name="key">key</xsl:with-param>
3784
+ </xsl:call-template>
4006
3785
  </xsl:variable>
4007
3786
  <xsl:value-of select="$title-key"/>
4008
3787
  </fo:block>
@@ -4029,9 +3808,7 @@
4029
3808
  <fo:table width="95%" table-layout="fixed">
4030
3809
 
4031
3810
  <xsl:choose>
4032
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
4033
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
4034
- </xsl:when>
3811
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
4035
3812
  <xsl:when test="normalize-space($key_iso) = 'true'">
4036
3813
  <xsl:attribute name="font-size">10pt</xsl:attribute>
4037
3814
 
@@ -4052,12 +3829,9 @@
4052
3829
  </xsl:otherwise>
4053
3830
  </xsl:choose>
4054
3831
  </xsl:variable>
4055
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
4056
- <!-- <xsl:element name="{$ns}:table"> -->
4057
- <tbody>
4058
- <xsl:apply-templates mode="dl"/>
4059
- </tbody>
4060
- <!-- </xsl:element> -->
3832
+ <tbody>
3833
+ <xsl:apply-templates mode="dl"/>
3834
+ </tbody>
4061
3835
  </xsl:variable>
4062
3836
  <!-- html-table<xsl:copy-of select="$html-table"/> -->
4063
3837
  <xsl:variable name="colwidths">
@@ -4137,8 +3911,6 @@
4137
3911
  </xsl:for-each>
4138
3912
  </xsl:otherwise>
4139
3913
  </xsl:choose>
4140
- <!-- <fo:table-column column-width="15%"/>
4141
- <fo:table-column column-width="85%"/> -->
4142
3914
  </xsl:otherwise>
4143
3915
  </xsl:choose>
4144
3916
  </xsl:template><xsl:template name="getMaxLength_dt">
@@ -4153,12 +3925,6 @@
4153
3925
  </xsl:for-each>
4154
3926
  </xsl:variable>
4155
3927
  <xsl:variable name="maxLength">
4156
- <!-- <xsl:for-each select="*[local-name()='dt']">
4157
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
4158
- <xsl:if test="position() = 1">
4159
- <xsl:value-of select="string-length(normalize-space(.))"/>
4160
- </xsl:if>
4161
- </xsl:for-each> -->
4162
3928
  <xsl:for-each select="xalan:nodeset($lengths)/length">
4163
3929
  <xsl:sort select="." data-type="number" order="descending"/>
4164
3930
  <xsl:if test="position() = 1">
@@ -4200,9 +3966,8 @@
4200
3966
  </td>
4201
3967
  <td>
4202
3968
 
4203
-
4204
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4205
-
3969
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
3970
+
4206
3971
  </td>
4207
3972
  </tr>
4208
3973
 
@@ -4232,49 +3997,20 @@
4232
3997
 
4233
3998
 
4234
3999
  <xsl:apply-templates/>
4235
- <!-- <xsl:if test="$namespace = 'gb'">
4236
- <xsl:if test="ancestor::*[local-name()='formula']">
4237
- <xsl:text>—</xsl:text>
4238
- </xsl:if>
4239
- </xsl:if> -->
4240
4000
  </fo:block>
4241
4001
  </fo:table-cell>
4242
4002
  <fo:table-cell>
4243
4003
  <fo:block>
4244
4004
 
4245
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
4246
- <xsl:if test="local-name(*[1]) != 'stem'">
4247
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4248
- </xsl:if>
4249
- </xsl:if> -->
4250
-
4251
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4252
-
4005
+
4006
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4253
4007
  </fo:block>
4254
4008
  </fo:table-cell>
4255
4009
  </fo:table-row>
4256
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
4257
- <xsl:if test="local-name(*[1]) = 'stem'">
4258
- <fo:table-row>
4259
- <fo:table-cell>
4260
- <fo:block margin-top="6pt">
4261
- <xsl:if test="normalize-space($key_iso) = 'true'">
4262
- <xsl:attribute name="margin-top">0</xsl:attribute>
4263
- </xsl:if>
4264
- <xsl:text>&#xA0;</xsl:text>
4265
- </fo:block>
4266
- </fo:table-cell>
4267
- <fo:table-cell>
4268
- <fo:block>
4269
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4270
- </fo:block>
4271
- </fo:table-cell>
4272
- </fo:table-row>
4273
- </xsl:if>
4274
- </xsl:if> -->
4275
4010
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
4276
4011
  <xsl:apply-templates/>
4277
4012
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
4013
+ <xsl:apply-templates select="@language"/>
4278
4014
  <xsl:apply-templates/>
4279
4015
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
4280
4016
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
@@ -4336,6 +4072,15 @@
4336
4072
  </fo:inline>
4337
4073
  </xsl:template><xsl:template match="*[local-name()='add']">
4338
4074
  <xsl:choose>
4075
+ <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
4076
+ <fo:inline>
4077
+ <xsl:call-template name="insertTag">
4078
+ <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
4079
+ <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
4080
+ <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
4081
+ </xsl:call-template>
4082
+ </fo:inline>
4083
+ </xsl:when>
4339
4084
  <xsl:when test="@amendment">
4340
4085
  <fo:inline>
4341
4086
  <xsl:call-template name="insertTag">
@@ -4370,7 +4115,6 @@
4370
4115
  </fo:inline>
4371
4116
  </xsl:otherwise>
4372
4117
  </xsl:choose>
4373
-
4374
4118
  </xsl:template><xsl:template name="insertTag">
4375
4119
  <xsl:param name="type"/>
4376
4120
  <xsl:param name="kind"/>
@@ -4378,22 +4122,20 @@
4378
4122
  <xsl:variable name="add_width" select="string-length($value) * 20"/>
4379
4123
  <xsl:variable name="maxwidth" select="60 + $add_width"/>
4380
4124
  <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
4381
- <!-- <xsl:attribute name="width">7mm</xsl:attribute>
4382
- <xsl:attribute name="content-height">100%</xsl:attribute> -->
4383
4125
  <xsl:attribute name="height">5mm</xsl:attribute>
4384
4126
  <xsl:attribute name="content-width">100%</xsl:attribute>
4385
4127
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
4386
4128
  <xsl:attribute name="scaling">uniform</xsl:attribute>
4387
4129
  <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
4388
4130
  <g>
4389
- <xsl:if test="$type = 'closing'">
4131
+ <xsl:if test="$type = 'closing' or $type = 'end'">
4390
4132
  <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
4391
4133
  </xsl:if>
4392
4134
  <polyline points="0,0 {$maxwidth},0 {$maxwidth + 30},40 {$maxwidth},80 0,80 " stroke="black" stroke-width="5" fill="white"/>
4393
4135
  <line x1="0" y1="0" x2="0" y2="80" stroke="black" stroke-width="20"/>
4394
4136
  </g>
4395
4137
  <text font-family="Arial" x="15" y="57" font-size="40pt">
4396
- <xsl:if test="$type = 'closing'">
4138
+ <xsl:if test="$type = 'closing' or $type = 'end'">
4397
4139
  <xsl:attribute name="x">25</xsl:attribute>
4398
4140
  </xsl:if>
4399
4141
  <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
@@ -4597,14 +4339,6 @@
4597
4339
 
4598
4340
  <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
4599
4341
 
4600
- <!-- <xsl:choose>
4601
- <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
4602
-
4603
- </xsl:when>
4604
- <xsl:otherwise>
4605
- <xsl:copy-of select="current()"/>
4606
- </xsl:otherwise>
4607
- </xsl:choose> -->
4608
4342
  </xsl:variable>
4609
4343
  <xsl:copy-of select="$simple-table"/>
4610
4344
  </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
@@ -4723,8 +4457,6 @@
4723
4457
  <xsl:choose>
4724
4458
  <xsl:when test="contains($str2, ' ')">
4725
4459
  <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
4726
- <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
4727
- <xsl:value-of select="substring($substr, 2)"/> -->
4728
4460
  <xsl:call-template name="capitalize">
4729
4461
  <xsl:with-param name="str" select="$substr"/>
4730
4462
  </xsl:call-template>
@@ -4734,8 +4466,6 @@
4734
4466
  </xsl:call-template>
4735
4467
  </xsl:when>
4736
4468
  <xsl:otherwise>
4737
- <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
4738
- <xsl:value-of select="substring($str2, 2)"/> -->
4739
4469
  <xsl:call-template name="capitalize">
4740
4470
  <xsl:with-param name="str" select="$str2"/>
4741
4471
  </xsl:call-template>
@@ -4794,7 +4524,6 @@
4794
4524
  </xsl:attribute>
4795
4525
 
4796
4526
 
4797
- <!-- <xsl:copy-of select="."/> -->
4798
4527
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
4799
4528
  </fo:instream-foreign-object>
4800
4529
  </fo:inline>
@@ -4886,9 +4615,9 @@
4886
4615
  <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
4887
4616
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
4888
4617
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
4889
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4618
+ <xsl:apply-templates select="*[local-name()='name']"/>
4890
4619
  </fo:block>
4891
- <xsl:apply-templates/>
4620
+ <xsl:apply-templates select="node()[not(local-name()='name')]"/>
4892
4621
  </xsl:template><xsl:template match="*[local-name() = 'callout']">
4893
4622
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
4894
4623
  </xsl:template><xsl:template match="*[local-name() = 'annotation']">
@@ -4908,22 +4637,6 @@
4908
4637
  <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
4909
4638
  <xsl:apply-templates/>
4910
4639
  </fo:inline>
4911
- </xsl:template><xsl:template match="*[local-name() = 'modification']">
4912
- <xsl:variable name="title-modified">
4913
-
4914
- <xsl:call-template name="getLocalizedString">
4915
- <xsl:with-param name="key">modified</xsl:with-param>
4916
- </xsl:call-template>
4917
-
4918
-
4919
- </xsl:variable>
4920
-
4921
- <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
4922
- <xsl:choose>
4923
- <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text>—</xsl:text></xsl:if></xsl:when>
4924
- <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text> — </xsl:text></xsl:if></xsl:otherwise>
4925
- </xsl:choose>
4926
- <xsl:apply-templates/>
4927
4640
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
4928
4641
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
4929
4642
 
@@ -4965,31 +4678,28 @@
4965
4678
 
4966
4679
 
4967
4680
 
4968
-
4969
- <fo:block-container margin-left="0mm">
4970
-
4971
-
4972
-
4973
-
4974
-
4975
-
4976
-
4977
-
4978
- <fo:block>
4979
-
4980
-
4981
-
4982
-
4983
-
4984
-
4985
- <fo:inline xsl:use-attribute-sets="note-name-style">
4986
-
4987
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4988
- </fo:inline>
4989
- <xsl:apply-templates/>
4990
- </fo:block>
4681
+
4682
+ <fo:block-container margin-left="0mm">
4683
+
4684
+
4991
4685
 
4992
4686
 
4687
+
4688
+
4689
+ <fo:block>
4690
+
4691
+
4692
+
4693
+
4694
+
4695
+
4696
+ <fo:inline xsl:use-attribute-sets="note-name-style">
4697
+
4698
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4699
+ </fo:inline>
4700
+ <xsl:apply-templates/>
4701
+ </fo:block>
4702
+
4993
4703
  </fo:block-container>
4994
4704
  </fo:block-container>
4995
4705
 
@@ -5060,7 +4770,6 @@
5060
4770
  <xsl:apply-templates/>
5061
4771
  </fo:block>
5062
4772
  </xsl:template><xsl:template match="*[local-name() = 'term']">
5063
- <!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
5064
4773
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
5065
4774
 
5066
4775
 
@@ -5076,9 +4785,6 @@
5076
4785
  </xsl:variable>
5077
4786
  <fo:inline role="H{$level}">
5078
4787
  <xsl:apply-templates/>
5079
- <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
5080
- <xsl:text>.</xsl:text>
5081
- </xsl:if> -->
5082
4788
  </fo:inline>
5083
4789
  </xsl:if>
5084
4790
  </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
@@ -5101,7 +4807,8 @@
5101
4807
  </xsl:for-each>
5102
4808
 
5103
4809
 
5104
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4810
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4811
+
5105
4812
 
5106
4813
  </fo:block-container>
5107
4814
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
@@ -5215,9 +4922,7 @@
5215
4922
  <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
5216
4923
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
5217
4924
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
5218
- <!-- width=<xsl:value-of select="$width"/> -->
5219
4925
  <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
5220
- <!-- height=<xsl:value-of select="$height"/> -->
5221
4926
  <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
5222
4927
  <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
5223
4928
  <xsl:call-template name="svg_cross">
@@ -5499,11 +5204,58 @@
5499
5204
  <xsl:value-of select="."/>
5500
5205
  </xsl:template><xsl:template match="node()" mode="contents">
5501
5206
  <xsl:apply-templates mode="contents"/>
5207
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="2" mode="contents">
5208
+ <xsl:variable name="level">
5209
+ <xsl:call-template name="getLevel">
5210
+ <xsl:with-param name="depth" select="@depth"/>
5211
+ </xsl:call-template>
5212
+ </xsl:variable>
5213
+
5214
+ <xsl:variable name="section">
5215
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
5216
+ </xsl:variable>
5217
+
5218
+ <xsl:variable name="type">floating-title</xsl:variable>
5219
+
5220
+ <xsl:variable name="display">
5221
+ <xsl:choose>
5222
+ <xsl:when test="normalize-space(@id) = ''">false</xsl:when>
5223
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
5224
+ <xsl:otherwise>false</xsl:otherwise>
5225
+ </xsl:choose>
5226
+ </xsl:variable>
5227
+
5228
+ <xsl:variable name="skip">false</xsl:variable>
5229
+
5230
+ <xsl:if test="$skip = 'false'">
5231
+
5232
+ <xsl:variable name="title">
5233
+ <xsl:choose>
5234
+ <xsl:when test="*[local-name() = 'tab']">
5235
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
5236
+ </xsl:when>
5237
+ <xsl:otherwise>
5238
+ <xsl:copy-of select="node()"/>
5239
+ </xsl:otherwise>
5240
+ </xsl:choose>
5241
+ </xsl:variable>
5242
+
5243
+ <xsl:variable name="root">
5244
+ <xsl:if test="ancestor-or-self::*[local-name() = 'preface']">preface</xsl:if>
5245
+ <xsl:if test="ancestor-or-self::*[local-name() = 'annex']">annex</xsl:if>
5246
+ </xsl:variable>
5247
+
5248
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
5249
+ <title>
5250
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
5251
+ </title>
5252
+ </item>
5253
+ </xsl:if>
5502
5254
  </xsl:template><xsl:template match="node()" mode="bookmarks">
5503
5255
  <xsl:apply-templates mode="bookmarks"/>
5504
5256
  </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
5505
5257
  <xsl:apply-templates select="."/>
5506
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
5258
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'references']/*[local-name() = 'bibitem']" mode="contents"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
5507
5259
  <xsl:apply-templates mode="bookmarks"/>
5508
5260
  </xsl:template><xsl:template name="addBookmarks">
5509
5261
  <xsl:param name="contents"/>
@@ -5593,8 +5345,6 @@
5593
5345
 
5594
5346
 
5595
5347
 
5596
-
5597
-
5598
5348
  </fo:bookmark-tree>
5599
5349
  </xsl:if>
5600
5350
  </xsl:template><xsl:template name="insertFigureBookmarks">
@@ -5674,16 +5424,13 @@
5674
5424
  </fo:block>
5675
5425
  </xsl:if>
5676
5426
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fn']" priority="2"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'note']"/><xsl:template match="*[local-name() = 'title']" mode="contents_item">
5677
- <xsl:apply-templates mode="contents_item"/>
5427
+ <xsl:param name="mode">bookmarks</xsl:param>
5428
+ <xsl:apply-templates mode="contents_item">
5429
+ <xsl:with-param name="mode" select="$mode"/>
5430
+ </xsl:apply-templates>
5678
5431
  <!-- <xsl:text> </xsl:text> -->
5679
5432
  </xsl:template><xsl:template name="getSection">
5680
5433
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
5681
- <!--
5682
- <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
5683
- <xsl:value-of select="."/>
5684
- </xsl:for-each>
5685
- -->
5686
-
5687
5434
  </xsl:template><xsl:template name="getName">
5688
5435
  <xsl:choose>
5689
5436
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -5747,6 +5494,18 @@
5747
5494
  <xsl:copy-of select="."/>
5748
5495
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
5749
5496
  <xsl:text> </xsl:text>
5497
+ </xsl:template><xsl:template match="*[local-name() = 'name']" mode="contents_item">
5498
+ <xsl:param name="mode">bookmarks</xsl:param>
5499
+ <xsl:apply-templates mode="contents_item">
5500
+ <xsl:with-param name="mode" select="$mode"/>
5501
+ </xsl:apply-templates>
5502
+ </xsl:template><xsl:template match="*[local-name() = 'add'][starts-with(text(), $ace_tag)]" mode="contents_item">
5503
+ <xsl:param name="mode">bookmarks</xsl:param>
5504
+ <xsl:if test="$mode = 'contents'">
5505
+ <xsl:copy>
5506
+ <xsl:apply-templates mode="contents_item"/>
5507
+ </xsl:copy>
5508
+ </xsl:if>
5750
5509
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
5751
5510
 
5752
5511
  <fo:block-container margin-left="0mm">
@@ -5806,7 +5565,7 @@
5806
5565
  </fo:block>
5807
5566
 
5808
5567
 
5809
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
5568
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
5810
5569
 
5811
5570
 
5812
5571
 
@@ -5929,8 +5688,6 @@
5929
5688
  </xsl:variable>
5930
5689
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
5931
5690
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
5932
- <!-- <fo:table-column column-width="35mm"/>
5933
- <fo:table-column column-width="115mm"/> -->
5934
5691
  <fo:table-column column-width="30%"/>
5935
5692
  <fo:table-column column-width="70%"/>
5936
5693
  </xsl:if>
@@ -5957,7 +5714,6 @@
5957
5714
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
5958
5715
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
5959
5716
  <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
5960
- <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
5961
5717
  <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
5962
5718
  </xsl:if>
5963
5719
  <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
@@ -5990,15 +5746,6 @@
5990
5746
  </xsl:if>
5991
5747
  <xsl:call-template name="display-align"/>
5992
5748
 
5993
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
5994
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
5995
- <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
5996
- </xsl:if>
5997
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
5998
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
5999
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
6000
- </xsl:if> -->
6001
-
6002
5749
  <fo:block>
6003
5750
  <xsl:apply-templates/>
6004
5751
  </fo:block>
@@ -6032,15 +5779,6 @@
6032
5779
  </xsl:if>
6033
5780
  <xsl:call-template name="display-align"/>
6034
5781
 
6035
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
6036
- <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
6037
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6038
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
6039
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
6040
- </xsl:if>
6041
- </xsl:if> -->
6042
- <!-- 2nd line and below -->
6043
-
6044
5782
  <fo:block>
6045
5783
  <xsl:apply-templates/>
6046
5784
  </fo:block>
@@ -6051,7 +5789,7 @@
6051
5789
  <xsl:apply-templates/>
6052
5790
  </fo:block>
6053
5791
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
6054
- <fo:block> <!-- margin-bottom="10pt" -->
5792
+ <fo:block>
6055
5793
  <xsl:apply-templates/>
6056
5794
  </fo:block>
6057
5795
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
@@ -6083,42 +5821,48 @@
6083
5821
  <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
6084
5822
 
6085
5823
 
6086
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6087
-
6088
- <xsl:variable name="element">
5824
+ <xsl:variable name="fo_element">
5825
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl']">block</xsl:if>
6089
5826
 
6090
5827
  inline
6091
- <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
5828
+
6092
5829
  </xsl:variable>
6093
5830
 
5831
+ <!-- display 'EXAMPLE' -->
5832
+ <xsl:apply-templates select="*[local-name()='name']">
5833
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5834
+ </xsl:apply-templates>
5835
+
6094
5836
  <xsl:choose>
6095
- <xsl:when test="contains(normalize-space($element), 'block')">
6096
- <fo:block xsl:use-attribute-sets="example-body-style">
6097
- <xsl:apply-templates/>
6098
- </fo:block>
5837
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
5838
+ <fo:block-container xsl:use-attribute-sets="example-body-style">
5839
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5840
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5841
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5842
+ </xsl:apply-templates>
5843
+ </fo:block-container>
5844
+ </fo:block-container>
6099
5845
  </xsl:when>
6100
5846
  <xsl:otherwise>
6101
5847
  <fo:inline>
6102
- <xsl:apply-templates/>
5848
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5849
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5850
+ </xsl:apply-templates>
6103
5851
  </fo:inline>
6104
5852
  </xsl:otherwise>
6105
5853
  </xsl:choose>
6106
5854
 
6107
5855
  </fo:block>
6108
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
6109
-
6110
- <xsl:variable name="element">
6111
-
6112
- inline
6113
- <xsl:if test="following-sibling::*[1][local-name() = 'table']">block</xsl:if>
6114
- </xsl:variable>
5856
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
5857
+ <xsl:param name="fo_element">block</xsl:param>
5858
+
6115
5859
  <xsl:choose>
6116
5860
  <xsl:when test="ancestor::*[local-name() = 'appendix']">
6117
5861
  <fo:inline>
6118
5862
  <xsl:apply-templates/>
6119
5863
  </fo:inline>
6120
5864
  </xsl:when>
6121
- <xsl:when test="contains(normalize-space($element), 'block')">
5865
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
6122
5866
  <fo:block xsl:use-attribute-sets="example-name-style">
6123
5867
  <xsl:apply-templates/>
6124
5868
  </fo:block>
@@ -6131,19 +5875,20 @@
6131
5875
  </xsl:choose>
6132
5876
 
6133
5877
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
5878
+ <xsl:param name="fo_element">block</xsl:param>
5879
+
6134
5880
  <xsl:variable name="num"><xsl:number/></xsl:variable>
6135
5881
  <xsl:variable name="element">
6136
5882
 
6137
-
6138
5883
  <xsl:choose>
6139
5884
  <xsl:when test="$num = 1">inline</xsl:when>
6140
5885
  <xsl:otherwise>block</xsl:otherwise>
6141
5886
  </xsl:choose>
6142
5887
 
6143
-
5888
+ <xsl:value-of select="$fo_element"/>
6144
5889
  </xsl:variable>
6145
5890
  <xsl:choose>
6146
- <xsl:when test="normalize-space($element) = 'block'">
5891
+ <xsl:when test="starts-with(normalize-space($element), 'block')">
6147
5892
  <fo:block xsl:use-attribute-sets="example-p-style">
6148
5893
 
6149
5894
  <xsl:apply-templates/>
@@ -6162,60 +5907,66 @@
6162
5907
  <xsl:variable name="termsource_text">
6163
5908
  <xsl:apply-templates/>
6164
5909
  </xsl:variable>
6165
-
6166
- <xsl:choose>
5910
+ <xsl:copy-of select="$termsource_text"/>
5911
+ <!-- <xsl:choose>
6167
5912
  <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
6168
- <!-- <xsl:apply-templates /> -->
6169
5913
  <xsl:copy-of select="$termsource_text"/>
6170
5914
  </xsl:when>
6171
5915
  <xsl:otherwise>
6172
-
6173
-
5916
+ <xsl:if test="$namespace = 'bsi'">
5917
+ <xsl:choose>
5918
+ <xsl:when test="$document_type = 'PAS' and starts-with(*[local-name() = 'origin']/@citeas, '[')"><xsl:text>{</xsl:text></xsl:when>
5919
+ <xsl:otherwise><xsl:text>[</xsl:text></xsl:otherwise>
5920
+ </xsl:choose>
5921
+ </xsl:if>
5922
+ <xsl:if test="$namespace = 'gb' or $namespace = 'iso' or $namespace = 'iec' or $namespace = 'itu' or $namespace = 'unece' or $namespace = 'unece-rec' or $namespace = 'nist-cswp' or $namespace = 'nist-sp' or $namespace = 'ogc-white-paper' or $namespace = 'csa' or $namespace = 'csd' or $namespace = 'm3d' or $namespace = 'iho' or $namespace = 'bipm' or $namespace = 'jcgm'">
6174
5923
  <xsl:text>[</xsl:text>
6175
-
6176
- <!-- <xsl:apply-templates /> -->
5924
+ </xsl:if>
6177
5925
  <xsl:copy-of select="$termsource_text"/>
6178
-
6179
-
5926
+ <xsl:if test="$namespace = 'bsi'">
5927
+ <xsl:choose>
5928
+ <xsl:when test="$document_type = 'PAS' and starts-with(*[local-name() = 'origin']/@citeas, '[')"><xsl:text>}</xsl:text></xsl:when>
5929
+ <xsl:otherwise><xsl:text>]</xsl:text></xsl:otherwise>
5930
+ </xsl:choose>
5931
+ </xsl:if>
5932
+ <xsl:if test="$namespace = 'gb' or $namespace = 'iso' or $namespace = 'iec' or $namespace = 'itu' or $namespace = 'unece' or $namespace = 'unece-rec' or $namespace = 'nist-cswp' or $namespace = 'nist-sp' or $namespace = 'ogc-white-paper' or $namespace = 'csa' or $namespace = 'csd' or $namespace = 'm3d' or $namespace = 'iho' or $namespace = 'bipm' or $namespace = 'jcgm'">
6180
5933
  <xsl:text>]</xsl:text>
6181
-
5934
+ </xsl:if>
6182
5935
  </xsl:otherwise>
6183
- </xsl:choose>
5936
+ </xsl:choose> -->
6184
5937
  </fo:block>
6185
5938
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
6186
5939
  <xsl:if test="normalize-space() != ''">
6187
5940
  <xsl:value-of select="."/>
6188
5941
  </xsl:if>
6189
- </xsl:template><xsl:variable name="localized.source">
6190
- <xsl:call-template name="getLocalizedString">
6191
- <xsl:with-param name="key">source</xsl:with-param>
6192
- </xsl:call-template>
6193
- </xsl:variable><xsl:template match="*[local-name() = 'origin']">
5942
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/*[local-name() = 'strong'][1][following-sibling::*[1][local-name() = 'origin']]/text()">
5943
+ <fo:inline>
5944
+
5945
+
5946
+ <xsl:value-of select="."/>
5947
+ </fo:inline>
5948
+ </xsl:template><xsl:template match="*[local-name() = 'origin']">
6194
5949
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
6195
5950
  <xsl:if test="normalize-space(@citeas) = ''">
6196
5951
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="@bibitemid"/></xsl:attribute>
6197
5952
  </xsl:if>
6198
-
6199
-
6200
- <fo:inline>
6201
-
6202
-
6203
-
6204
-
6205
-
6206
-
6207
- <xsl:value-of select="$localized.source"/>
6208
- <xsl:text> </xsl:text>
6209
-
6210
-
6211
-
6212
- </fo:inline>
6213
-
6214
5953
  <fo:inline xsl:use-attribute-sets="origin-style">
6215
5954
  <xsl:apply-templates/>
6216
5955
  </fo:inline>
6217
-
6218
- </fo:basic-link>
5956
+ </fo:basic-link>
5957
+ </xsl:template><xsl:template match="*[local-name() = 'modification']">
5958
+ <xsl:variable name="title-modified">
5959
+ <xsl:call-template name="getLocalizedString">
5960
+ <xsl:with-param name="key">modified</xsl:with-param>
5961
+ </xsl:call-template>
5962
+ </xsl:variable>
5963
+
5964
+ <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
5965
+ <xsl:choose>
5966
+ <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text>—</xsl:text></xsl:if></xsl:when>
5967
+ <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text> — </xsl:text></xsl:if></xsl:otherwise>
5968
+ </xsl:choose>
5969
+ <xsl:apply-templates/>
6219
5970
  </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
6220
5971
  <fo:inline><xsl:apply-templates/></fo:inline>
6221
5972
  </xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
@@ -6238,7 +5989,6 @@
6238
5989
  <fo:block-container margin-left="0mm">
6239
5990
 
6240
5991
  <fo:block xsl:use-attribute-sets="quote-style">
6241
- <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
6242
5992
 
6243
5993
  <xsl:if test="ancestor::*[local-name() = 'boilerplate']">
6244
5994
  <xsl:attribute name="margin-left">7mm</xsl:attribute>
@@ -6290,12 +6040,10 @@
6290
6040
  <xsl:when test="normalize-space($bibitemid) != ''">
6291
6041
  <fo:inline xsl:use-attribute-sets="eref-style">
6292
6042
  <xsl:if test="@type = 'footnote'">
6293
-
6294
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6295
- <xsl:attribute name="font-size">80%</xsl:attribute>
6296
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
6297
- <xsl:attribute name="vertical-align">super</xsl:attribute>
6298
-
6043
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6044
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
6045
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
6046
+ <xsl:attribute name="font-size">80%</xsl:attribute>
6299
6047
 
6300
6048
  </xsl:if>
6301
6049
 
@@ -6370,7 +6118,6 @@
6370
6118
  </xsl:choose>
6371
6119
  </xsl:variable>
6372
6120
 
6373
- <!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
6374
6121
 
6375
6122
  <xsl:choose>
6376
6123
  <xsl:when test="$lang = 'zh'">
@@ -6406,12 +6153,9 @@
6406
6153
  </fo:block>
6407
6154
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
6408
6155
  <xsl:variable name="title-deprecated">
6409
-
6410
- <xsl:call-template name="getLocalizedString">
6411
- <xsl:with-param name="key">deprecated</xsl:with-param>
6412
- </xsl:call-template>
6413
-
6414
-
6156
+ <xsl:call-template name="getLocalizedString">
6157
+ <xsl:with-param name="key">deprecated</xsl:with-param>
6158
+ </xsl:call-template>
6415
6159
  </xsl:variable>
6416
6160
  <fo:block xsl:use-attribute-sets="deprecates-style">
6417
6161
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -6420,6 +6164,8 @@
6420
6164
  <xsl:if test="*[local-name() = 'strong']">
6421
6165
  <xsl:attribute name="font-weight">normal</xsl:attribute>
6422
6166
  </xsl:if>
6167
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']/text()[contains(., ';')] | *[local-name() = 'preferred']/*[local-name() = 'strong']/text()[contains(., ';')]">
6168
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), ';', $linebreak)"/>
6423
6169
  </xsl:template><xsl:template match="*[local-name() = 'definition']">
6424
6170
  <fo:block xsl:use-attribute-sets="definition-style">
6425
6171
  <xsl:apply-templates/>
@@ -6428,7 +6174,6 @@
6428
6174
  <xsl:apply-templates/>
6429
6175
  </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p'][1]">
6430
6176
  <fo:inline> <xsl:apply-templates/></fo:inline>
6431
- <!-- <fo:block>&#xA0;</fo:block> -->
6432
6177
  <fo:block/>
6433
6178
  </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
6434
6179
 
@@ -6494,6 +6239,53 @@
6494
6239
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
6495
6240
  <!-- 0xA0 to space replacement -->
6496
6241
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
6242
+ </xsl:template><xsl:variable name="ul_labels_">
6243
+
6244
+
6245
+
6246
+
6247
+
6248
+
6249
+
6250
+
6251
+ <label level="1">—</label> <!-- em dash -->
6252
+ <label level="2">−</label><!-- minus sign -->
6253
+ <label level="3" font-size="75%">o</label> <!-- white circle -->
6254
+
6255
+
6256
+
6257
+
6258
+
6259
+
6260
+
6261
+
6262
+
6263
+
6264
+ </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
6265
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
6266
+ <xsl:variable name="list_level">
6267
+ <xsl:choose>
6268
+ <xsl:when test="$list_level_ &lt;= 3"><xsl:value-of select="$list_level_"/></xsl:when>
6269
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 3"/></xsl:otherwise>
6270
+ </xsl:choose>
6271
+ </xsl:variable>
6272
+ <xsl:choose>
6273
+ <xsl:when test="$ul_labels/label[not(@level)]"> <!-- one label for all levels -->
6274
+ <xsl:apply-templates select="$ul_labels/label[not(@level)]" mode="ul_labels"/>
6275
+ </xsl:when>
6276
+ <xsl:when test="$list_level mod 3 = 0">
6277
+ <xsl:apply-templates select="$ul_labels/label[@level = 3]" mode="ul_labels"/>
6278
+ </xsl:when>
6279
+ <xsl:when test="$list_level mod 2 = 0">
6280
+ <xsl:apply-templates select="$ul_labels/label[@level = 2]" mode="ul_labels"/>
6281
+ </xsl:when>
6282
+ <xsl:otherwise>
6283
+ <xsl:apply-templates select="$ul_labels/label[@level = 1]" mode="ul_labels"/>
6284
+ </xsl:otherwise>
6285
+ </xsl:choose>
6286
+ </xsl:template><xsl:template match="label" mode="ul_labels">
6287
+ <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
6288
+ <xsl:value-of select="."/>
6497
6289
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
6498
6290
  <xsl:choose>
6499
6291
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -6704,16 +6496,62 @@
6704
6496
 
6705
6497
 
6706
6498
 
6707
-
6499
+
6500
+
6501
+
6502
+
6503
+
6504
+
6708
6505
 
6709
6506
 
6710
6507
 
6711
6508
 
6712
6509
 
6510
+
6511
+
6512
+ <!-- start JCGM bibitem processing -->
6513
+ <xsl:variable name="docidentifier">
6514
+ <xsl:if test="*[local-name()='docidentifier']">
6515
+ <xsl:choose>
6516
+ <xsl:when test="*[local-name()='docidentifier']/@type = 'metanorma'"/>
6517
+ <xsl:otherwise><xsl:value-of select="*[local-name()='docidentifier'][not(@type = 'metanorma-ordinal')]"/></xsl:otherwise>
6518
+ </xsl:choose>
6519
+ </xsl:if>
6520
+ </xsl:variable>
6521
+ <xsl:value-of select="$docidentifier"/>
6522
+
6523
+ <xsl:choose>
6524
+ <xsl:when test="*[local-name()='formattedref']">
6525
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
6526
+ <xsl:apply-templates select="*[local-name()='formattedref']"/>
6527
+ </xsl:when>
6528
+ <xsl:otherwise>
6529
+ <xsl:apply-templates select="*[local-name()='note']"/>
6530
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
6531
+ <xsl:choose>
6532
+ <xsl:when test="*[local-name()='title'][@type = 'main' and @language = $lang]">
6533
+ <xsl:apply-templates select="*[local-name()='title'][@type = 'main' and @language = $lang]"/>
6534
+ </xsl:when>
6535
+ <xsl:when test="*[local-name()='title'][@type = 'main' and @language = 'en']">
6536
+ <xsl:apply-templates select="*[local-name()='title'][@type = 'main' and @language = 'en']"/>
6537
+ </xsl:when>
6538
+ <xsl:otherwise>
6539
+ <xsl:apply-templates select="*[local-name()='title']"/>
6540
+ </xsl:otherwise>
6541
+ </xsl:choose>
6542
+ </xsl:otherwise>
6543
+ </xsl:choose>
6544
+ <!-- end JCGM bibitem processing -->
6545
+
6546
+
6547
+
6548
+
6549
+
6713
6550
 
6551
+
6714
6552
 
6715
6553
  </xsl:template><xsl:template name="processBibitemDocId">
6716
- <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
6554
+ <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'metanorma-ordinal' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
6717
6555
  <xsl:choose>
6718
6556
  <xsl:when test="normalize-space($_doc_ident) != ''">
6719
6557
  <!-- <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]/@type"/>
@@ -6727,7 +6565,7 @@
6727
6565
  <xsl:if test="$type != ''">
6728
6566
  <xsl:value-of select="$type"/><xsl:text> </xsl:text>
6729
6567
  </xsl:if> -->
6730
- <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
6568
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma') and not(@type = 'metanorma-ordinal')]"/>
6731
6569
  </xsl:otherwise>
6732
6570
  </xsl:choose>
6733
6571
  </xsl:template><xsl:template name="processPersonalAuthor">
@@ -6832,7 +6670,18 @@
6832
6670
  <fo:block-container border="1pt solid black" width="50%">
6833
6671
  <fo:block> </fo:block>
6834
6672
  </fo:block-container>
6835
- </xsl:template><xsl:template match="*[local-name() = 'toc']">
6673
+ </xsl:template><xsl:variable name="toc_level">
6674
+ <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
6675
+ <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
6676
+ <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
6677
+ <xsl:choose>
6678
+ <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
6679
+ <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
6680
+ <xsl:otherwise><!-- default value -->
6681
+ 3
6682
+ </xsl:otherwise>
6683
+ </xsl:choose>
6684
+ </xsl:variable><xsl:template match="*[local-name() = 'toc']">
6836
6685
  <xsl:param name="colwidths"/>
6837
6686
  <xsl:variable name="colwidths_">
6838
6687
  <xsl:choose>
@@ -6912,7 +6761,7 @@
6912
6761
  </td>
6913
6762
  </xsl:for-each>
6914
6763
  <td>333</td> <!-- page number, just for fill -->
6915
- </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
6764
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
6916
6765
  <fo:inline padding-right="5mm"> </fo:inline>
6917
6766
  <fo:inline><xsl:apply-templates/></fo:inline>
6918
6767
  </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
@@ -6923,6 +6772,10 @@
6923
6772
  </svg>
6924
6773
  </fo:instream-foreign-object>
6925
6774
  </fo:inline>
6775
+ </xsl:template><xsl:template match="@language">
6776
+ <xsl:copy-of select="."/>
6777
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
6778
+ <xsl:call-template name="title"/>
6926
6779
  </xsl:template><xsl:template name="convertDate">
6927
6780
  <xsl:param name="date"/>
6928
6781
  <xsl:param name="format" select="'short'"/>
@@ -7055,13 +6908,8 @@
7055
6908
  <xsl:variable name="title">
7056
6909
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7057
6910
 
7058
-
7059
-
7060
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'part']"/>
7061
-
7062
-
7063
-
7064
-
6911
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'part']"/>
6912
+
7065
6913
  </xsl:for-each>
7066
6914
  </xsl:variable>
7067
6915
  <xsl:choose>
@@ -7076,18 +6924,15 @@
7076
6924
  <dc:creator>
7077
6925
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7078
6926
 
7079
-
7080
- <xsl:value-of select="normalize-space(*[local-name() = 'ext']/*[local-name() = 'editorialgroup']/*[local-name() = 'committee'])"/>
7081
-
7082
-
6927
+ <xsl:value-of select="normalize-space(*[local-name() = 'ext']/*[local-name() = 'editorialgroup']/*[local-name() = 'committee'])"/>
6928
+
7083
6929
  </xsl:for-each>
7084
6930
  </dc:creator>
7085
6931
  <dc:description>
7086
6932
  <xsl:variable name="abstract">
7087
6933
 
7088
-
7089
- <xsl:value-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
7090
-
6934
+ <xsl:value-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
6935
+
7091
6936
  </xsl:variable>
7092
6937
  <xsl:value-of select="normalize-space($abstract)"/>
7093
6938
  </dc:description>
@@ -7107,7 +6952,6 @@
7107
6952
  <xsl:value-of select="../@id"/>
7108
6953
  </xsl:when>
7109
6954
  <xsl:otherwise>
7110
- <!-- <xsl:value-of select="concat(local-name(..), '_', text())"/> -->
7111
6955
  <xsl:value-of select="concat(generate-id(..), '_', text())"/>
7112
6956
  </xsl:otherwise>
7113
6957
  </xsl:choose>
@@ -7133,9 +6977,6 @@
7133
6977
  <xsl:when test="ancestor::*[local-name() = 'preface']">
7134
6978
  <xsl:value-of select="$level_total - 2"/>
7135
6979
  </xsl:when>
7136
- <!-- <xsl:when test="parent::*[local-name() = 'sections']">
7137
- <xsl:value-of select="$level_total - 1"/>
7138
- </xsl:when> -->
7139
6980
  <xsl:when test="ancestor::*[local-name() = 'sections']">
7140
6981
  <xsl:value-of select="$level_total - 1"/>
7141
6982
  </xsl:when>
@@ -7277,9 +7118,15 @@
7277
7118
  </xsl:template><xsl:template name="getLocalizedString">
7278
7119
  <xsl:param name="key"/>
7279
7120
  <xsl:param name="formatted">false</xsl:param>
7121
+ <xsl:param name="lang"/>
7280
7122
 
7281
7123
  <xsl:variable name="curr_lang">
7282
- <xsl:call-template name="getLang"/>
7124
+ <xsl:choose>
7125
+ <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
7126
+ <xsl:otherwise>
7127
+ <xsl:call-template name="getLang"/>
7128
+ </xsl:otherwise>
7129
+ </xsl:choose>
7283
7130
  </xsl:variable>
7284
7131
 
7285
7132
  <xsl:variable name="data_value">
@@ -7342,7 +7189,6 @@
7342
7189
  <xsl:if test="local-name() = 'table'">
7343
7190
  <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
7344
7191
  </xsl:if>
7345
- <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
7346
7192
  <xsl:attribute name="padding">2mm</xsl:attribute>
7347
7193
  </xsl:if>
7348
7194
  </xsl:otherwise>
@@ -7469,4 +7315,14 @@
7469
7315
  </xsl:otherwise>
7470
7316
  </xsl:choose>
7471
7317
  </xsl:if>
7318
+ </xsl:template><xsl:template name="setAltText">
7319
+ <xsl:param name="value"/>
7320
+ <xsl:attribute name="fox:alt-text">
7321
+ <xsl:choose>
7322
+ <xsl:when test="normalize-space($value) != ''">
7323
+ <xsl:value-of select="$value"/>
7324
+ </xsl:when>
7325
+ <xsl:otherwise>_</xsl:otherwise>
7326
+ </xsl:choose>
7327
+ </xsl:attribute>
7472
7328
  </xsl:template></xsl:stylesheet>