metanorma-bipm 1.2.3 → 2.0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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>