metanorma-iso 1.10.4 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +3 -33
  3. data/.github/workflows/ubuntu.yml +1 -1
  4. data/.gitignore +26 -0
  5. data/Makefile +1 -1
  6. data/lib/asciidoctor/iso/base.rb +2 -69
  7. data/lib/asciidoctor/iso/cleanup.rb +2 -175
  8. data/lib/asciidoctor/iso/converter.rb +2 -17
  9. data/lib/asciidoctor/iso/deprecated.rb +5 -0
  10. data/lib/asciidoctor/iso/front.rb +2 -156
  11. data/lib/asciidoctor/iso/front_id.rb +2 -221
  12. data/lib/asciidoctor/iso/section.rb +2 -48
  13. data/lib/asciidoctor/iso/validate.rb +2 -171
  14. data/lib/asciidoctor/iso/validate_image.rb +2 -96
  15. data/lib/asciidoctor/iso/validate_requirements.rb +2 -110
  16. data/lib/asciidoctor/iso/validate_section.rb +2 -246
  17. data/lib/asciidoctor/iso/validate_style.rb +2 -169
  18. data/lib/asciidoctor/iso/validate_title.rb +2 -104
  19. data/lib/isodoc/iso/base_convert.rb +14 -31
  20. data/lib/isodoc/iso/html/style-human.css +37 -22
  21. data/lib/isodoc/iso/html/style-human.scss +17 -10
  22. data/lib/isodoc/iso/html/style-iso.css +34 -20
  23. data/lib/isodoc/iso/html/style-iso.scss +13 -7
  24. data/lib/isodoc/iso/html/wordstyle.css +10 -8
  25. data/lib/isodoc/iso/html/wordstyle.scss +10 -8
  26. data/lib/isodoc/iso/html_convert.rb +6 -4
  27. data/lib/isodoc/iso/index.rb +53 -45
  28. data/lib/isodoc/iso/iso.amendment.xsl +1328 -1225
  29. data/lib/isodoc/iso/iso.international-standard.xsl +1328 -1225
  30. data/lib/isodoc/iso/metadata.rb +27 -22
  31. data/lib/isodoc/iso/presentation_xml_convert.rb +41 -16
  32. data/lib/isodoc/iso/sts_convert.rb +2 -4
  33. data/lib/isodoc/iso/word_convert.rb +2 -0
  34. data/lib/metanorma/iso/base.rb +70 -0
  35. data/lib/{asciidoctor → metanorma}/iso/basicdoc.rng +0 -0
  36. data/lib/{asciidoctor → metanorma}/iso/biblio.rng +0 -0
  37. data/lib/{asciidoctor → metanorma}/iso/boilerplate-fr.xml +0 -0
  38. data/lib/{asciidoctor → metanorma}/iso/boilerplate.xml +0 -0
  39. data/lib/metanorma/iso/cleanup.rb +176 -0
  40. data/lib/metanorma/iso/converter.rb +18 -0
  41. data/lib/metanorma/iso/front.rb +170 -0
  42. data/lib/metanorma/iso/front_id.rb +225 -0
  43. data/lib/{asciidoctor → metanorma}/iso/isodoc.rng +35 -2
  44. data/lib/{asciidoctor → metanorma}/iso/isostandard-amd.rng +0 -0
  45. data/lib/{asciidoctor → metanorma}/iso/isostandard.rnc +0 -0
  46. data/lib/{asciidoctor → metanorma}/iso/isostandard.rng +0 -0
  47. data/lib/{asciidoctor → metanorma}/iso/reqt.rng +0 -0
  48. data/lib/metanorma/iso/section.rb +49 -0
  49. data/lib/metanorma/iso/validate.rb +172 -0
  50. data/lib/metanorma/iso/validate_image.rb +97 -0
  51. data/lib/metanorma/iso/validate_requirements.rb +111 -0
  52. data/lib/metanorma/iso/validate_section.rb +247 -0
  53. data/lib/metanorma/iso/validate_style.rb +170 -0
  54. data/lib/metanorma/iso/validate_title.rb +105 -0
  55. data/lib/metanorma/iso/version.rb +1 -1
  56. data/lib/metanorma-iso.rb +1 -1
  57. data/metanorma-iso.gemspec +2 -2
  58. data/spec/isodoc/amd_spec.rb +261 -250
  59. data/spec/isodoc/inline_spec.rb +238 -212
  60. data/spec/isodoc/iso_spec.rb +3 -1
  61. data/spec/isodoc/ref_spec.rb +4 -2
  62. data/spec/isodoc/section_spec.rb +1 -1
  63. data/spec/isodoc/terms_spec.rb +4 -4
  64. data/spec/{asciidoctor → metanorma}/amd_spec.rb +1 -1
  65. data/spec/metanorma/base_spec.rb +1185 -0
  66. data/spec/{asciidoctor → metanorma}/blank_spec.rb +1 -1
  67. data/spec/{asciidoctor → metanorma}/blocks_spec.rb +1 -1
  68. data/spec/{asciidoctor → metanorma}/cleanup_spec.rb +1 -1
  69. data/spec/{asciidoctor → metanorma}/inline_spec.rb +1 -1
  70. data/spec/{asciidoctor → metanorma}/lists_spec.rb +1 -1
  71. data/spec/metanorma/processor_spec.rb +1 -1
  72. data/spec/{asciidoctor → metanorma}/refs_spec.rb +1 -1
  73. data/spec/{asciidoctor → metanorma}/section_spec.rb +1 -1
  74. data/spec/{asciidoctor → metanorma}/table_spec.rb +1 -1
  75. data/spec/{asciidoctor → metanorma}/validate_spec.rb +1 -1
  76. data/spec/spec_helper.rb +1 -1
  77. data/spec/vcr_cassettes/docrels.yml +34 -424
  78. metadata +39 -26
  79. data/spec/asciidoctor/base_spec.rb +0 -1333
@@ -175,7 +175,7 @@
175
175
 
176
176
  <xsl:template match="/">
177
177
  <xsl:call-template name="namespaceCheck"/>
178
- <fo:root font-family="Cambria, Times New Roman, Cambria Math, Source Han Sans" font-size="11pt" xml:lang="{$lang}"> <!-- -->
178
+ <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}"> <!-- -->
179
179
  <xsl:if test="$lang = 'zh'">
180
180
  <xsl:attribute name="font-family">Source Han Sans, Times New Roman, Cambria Math</xsl:attribute>
181
181
  </xsl:if>
@@ -457,14 +457,6 @@
457
457
  <fo:block-container>
458
458
  <fo:block margin-top="-1mm" font-size="20pt" text-align="right">
459
459
  <xsl:value-of select="$stage-fullname-uppercased"/>
460
- <!-- <xsl:if test="$doctype = 'amendment'">
461
- <xsl:variable name="title-amendment">
462
- <xsl:call-template name="getTitle">
463
- <xsl:with-param name="name" select="'title-amendment'"/>
464
- </xsl:call-template>
465
- </xsl:variable>
466
- <xsl:text> </xsl:text><xsl:value-of select="$title-amendment"/>
467
- </xsl:if> -->
468
460
  </fo:block>
469
461
  <fo:block font-size="20pt" font-weight="bold" text-align="right">
470
462
  <xsl:value-of select="$docidentifierISO"/>
@@ -655,12 +647,8 @@
655
647
  <xsl:if test="$doctype = 'amendment'">
656
648
  <fo:block text-align="right" margin-right="0.5mm">
657
649
  <fo:block font-weight="bold" margin-top="4pt" role="H1">
658
- <xsl:variable name="title-amendment">
659
- <xsl:call-template name="getTitle">
660
- <xsl:with-param name="name" select="'title-amendment'"/>
661
- </xsl:call-template>
662
- </xsl:variable>
663
- <xsl:value-of select="$title-amendment"/><xsl:text> </xsl:text>
650
+ <xsl:value-of select="$doctype_uppercased"/>
651
+ <xsl:text> </xsl:text>
664
652
  <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
665
653
  <xsl:if test="normalize-space($amendment-number) != ''">
666
654
  <xsl:value-of select="$amendment-number"/><xsl:text> </xsl:text>
@@ -1193,8 +1181,13 @@
1193
1181
  <xsl:if test="normalize-space($title-part-doc-lang) != ''">
1194
1182
  <xsl:if test="$part != ''">
1195
1183
  <xsl:text> — </xsl:text>
1196
- <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1197
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang=$lang]),'#',$part)"/>
1184
+ <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1185
+ <xsl:call-template name="getLocalizedString">
1186
+ <xsl:with-param name="key">Part.sg</xsl:with-param>
1187
+ </xsl:call-template>
1188
+ <xsl:text> </xsl:text>
1189
+ <xsl:value-of select="$part"/>
1190
+ <xsl:text>:</xsl:text>
1198
1191
  <!-- <xsl:value-of select="$title-part-en"/>
1199
1192
  <xsl:value-of select="$part"/>
1200
1193
  <xsl:text>:</xsl:text> -->
@@ -1334,12 +1327,7 @@
1334
1327
  <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']"/>
1335
1328
  <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
1336
1329
  <fo:block font-weight="normal" line-height="1.1">
1337
- <xsl:variable name="title-amendment">
1338
- <xsl:call-template name="getTitle">
1339
- <xsl:with-param name="name" select="'title-amendment'"/>
1340
- </xsl:call-template>
1341
- </xsl:variable>
1342
- <xsl:value-of select="$title-amendment"/>
1330
+ <xsl:value-of select="$doctype_uppercased"/>
1343
1331
  <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
1344
1332
  <xsl:if test="normalize-space($amendment-number) != ''">
1345
1333
  <xsl:text> </xsl:text><xsl:value-of select="$amendment-number"/>
@@ -1353,10 +1341,7 @@
1353
1341
  <!-- ============================= -->
1354
1342
  <!-- CONTENTS -->
1355
1343
  <!-- ============================= -->
1356
- <xsl:template match="node()" mode="contents">
1357
- <xsl:apply-templates mode="contents"/>
1358
- </xsl:template>
1359
-
1344
+
1360
1345
  <!-- element with title -->
1361
1346
  <xsl:template match="*[iso:title]" mode="contents">
1362
1347
  <xsl:variable name="level">
@@ -1380,7 +1365,7 @@
1380
1365
  <xsl:choose>
1381
1366
  <xsl:when test="ancestor-or-self::iso:annex and $level &gt;= 2">false</xsl:when>
1382
1367
  <xsl:when test="$section = '' and $type = 'clause'">false</xsl:when>
1383
- <xsl:when test="$level &lt;= 3">true</xsl:when>
1368
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
1384
1369
  <xsl:otherwise>false</xsl:otherwise>
1385
1370
  </xsl:choose>
1386
1371
  </xsl:variable>
@@ -1423,7 +1408,9 @@
1423
1408
 
1424
1409
  <xsl:template name="getListItemFormat">
1425
1410
  <xsl:choose>
1426
- <xsl:when test="local-name(..) = 'ul'">—</xsl:when> <!-- dash -->
1411
+ <xsl:when test="local-name(..) = 'ul'">
1412
+ <xsl:call-template name="setULLabel"/>
1413
+ </xsl:when>
1427
1414
  <xsl:otherwise> <!-- for ordered lists -->
1428
1415
  <xsl:choose>
1429
1416
  <xsl:when test="../@type = 'arabic'">
@@ -1545,7 +1532,7 @@
1545
1532
  </xsl:choose>
1546
1533
  </xsl:template>
1547
1534
 
1548
- <xsl:template match="iso:title">
1535
+ <xsl:template match="iso:title" name="title">
1549
1536
 
1550
1537
  <xsl:variable name="level">
1551
1538
  <xsl:call-template name="getLevel"/>
@@ -1637,7 +1624,7 @@
1637
1624
  <!-- ====== -->
1638
1625
 
1639
1626
 
1640
- <xsl:template match="iso:p">
1627
+ <xsl:template match="iso:p" name="paragraph">
1641
1628
  <xsl:param name="inline" select="'false'"/>
1642
1629
  <xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
1643
1630
  <xsl:variable name="element-name">
@@ -1748,7 +1735,7 @@
1748
1735
  </xsl:variable>
1749
1736
  <fo:block line-height="1.1" role="H{$levelTerm}">
1750
1737
  <fo:block font-weight="bold" keep-with-next="always">
1751
- <xsl:apply-templates select="ancestor::iso:term[1]/iso:name" mode="presentation"/>
1738
+ <xsl:apply-templates select="ancestor::iso:term[1]/iso:name"/>
1752
1739
  </fo:block>
1753
1740
  <fo:block font-weight="bold" keep-with-next="always">
1754
1741
  <xsl:call-template name="setStyle_preferred"/>
@@ -1758,95 +1745,7 @@
1758
1745
  </xsl:template>
1759
1746
 
1760
1747
 
1761
- <xsl:template match="iso:references[@normative='true']">
1762
- <fo:block id="{@id}">
1763
- <xsl:apply-templates/>
1764
- </fo:block>
1765
- </xsl:template>
1766
-
1767
- <!-- <xsl:template match="iso:references[@id = '_bibliography']"> -->
1768
- <xsl:template match="iso:references[not(@normative='true')]">
1769
- <fo:block break-after="page"/>
1770
- <fo:block id="{@id}">
1771
- <xsl:apply-templates/>
1772
- </fo:block>
1773
- </xsl:template>
1774
-
1775
-
1776
- <xsl:template match="iso:bibitem">
1777
- <fo:block id="{@id}" margin-bottom="6pt">
1778
- <xsl:call-template name="processBibitem"/>
1779
- </fo:block>
1780
- </xsl:template>
1781
-
1782
-
1783
- <xsl:template match="iso:bibitem/iso:note" priority="2">
1784
- <fo:footnote>
1785
- <xsl:variable name="number">
1786
- <xsl:number level="any" count="iso:bibitem/iso:note"/>
1787
- </xsl:variable>
1788
- <fo:inline font-size="8pt" keep-with-previous.within-line="always" baseline-shift="30%"> <!--85% vertical-align="super"-->
1789
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
1790
- <xsl:value-of select="$number"/><xsl:text>)</xsl:text>
1791
- </fo:basic-link>
1792
- </fo:inline>
1793
- <fo:footnote-body>
1794
- <fo:block font-size="10pt" margin-bottom="4pt" start-indent="0pt">
1795
- <fo:inline id="{generate-id()}" keep-with-next.within-line="always" alignment-baseline="hanging" padding-right="3mm"><!-- font-size="60%" -->
1796
- <xsl:value-of select="$number"/><xsl:text>)</xsl:text>
1797
- </fo:inline>
1798
- <xsl:apply-templates/>
1799
- </fo:block>
1800
- </fo:footnote-body>
1801
- </fo:footnote>
1802
- </xsl:template>
1803
-
1804
- <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
1805
- <!-- <xsl:template match="iso:references[@id = '_bibliography']/iso:bibitem"> -->
1806
- <xsl:template match="iso:references[not(@normative='true')]/iso:bibitem">
1807
- <fo:list-block margin-bottom="6pt" provisional-distance-between-starts="12mm">
1808
- <fo:list-item>
1809
- <fo:list-item-label end-indent="label-end()">
1810
- <fo:block>
1811
- <fo:inline id="{@id}">
1812
- <xsl:number format="[1]"/>
1813
- </fo:inline>
1814
- </fo:block>
1815
- </fo:list-item-label>
1816
- <fo:list-item-body start-indent="body-start()">
1817
- <fo:block>
1818
- <xsl:call-template name="processBibitem"/>
1819
- </fo:block>
1820
- </fo:list-item-body>
1821
- </fo:list-item>
1822
- </fo:list-block>
1823
- </xsl:template>
1824
-
1825
- <!-- <xsl:template match="iso:references[@id = '_bibliography']/iso:bibitem" mode="contents"/> [not(@normative='true')] -->
1826
- <xsl:template match="iso:references/iso:bibitem" mode="contents"/>
1827
-
1828
- <!-- <xsl:template match="iso:references[@id = '_bibliography']/iso:bibitem/iso:title"> iso:references[not(@normative='true')]/ -->
1829
- <xsl:template match="iso:bibitem/iso:title">
1830
- <fo:inline font-style="italic">
1831
- <xsl:apply-templates/>
1832
- </fo:inline>
1833
- </xsl:template>
1834
-
1835
-
1836
- <xsl:template match="iso:admonition">
1837
- <fo:block margin-bottom="12pt" font-weight="bold"> <!-- text-align="center" -->
1838
- <xsl:variable name="type">
1839
- <xsl:call-template name="getLocalizedString">
1840
- <xsl:with-param name="key">admonition.<xsl:value-of select="@type"/></xsl:with-param>
1841
- </xsl:call-template>
1842
- </xsl:variable>
1843
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($type))"/>
1844
- <xsl:text> — </xsl:text>
1845
- <xsl:apply-templates/>
1846
- </fo:block>
1847
- </xsl:template>
1848
1748
 
1849
-
1850
1749
  <xsl:template match="iso:formula/iso:stem">
1851
1750
  <fo:block margin-top="6pt" margin-bottom="12pt">
1852
1751
  <fo:table table-layout="fixed" width="100%">
@@ -1861,7 +1760,7 @@
1861
1760
  </fo:table-cell>
1862
1761
  <fo:table-cell display-align="center">
1863
1762
  <fo:block text-align="right">
1864
- <xsl:apply-templates select="../iso:name" mode="presentation"/>
1763
+ <xsl:apply-templates select="../iso:name" mode="formula_number"/>
1865
1764
  </fo:block>
1866
1765
  </fo:table-cell>
1867
1766
  </fo:table-row>
@@ -2118,55 +2017,32 @@
2118
2017
  </xsl:template>
2119
2018
 
2120
2019
 
2121
- <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
2122
-
2123
- <title-annex lang="en">Annex </title-annex>
2124
- <title-annex lang="fr">Annexe </title-annex>
2125
-
2126
- <title-annex lang="zh">Annex </title-annex>
2127
-
2128
-
2020
+ <xsl:variable name="titles_">
2129
2021
 
2130
2022
  <title-edition lang="en">
2131
2023
 
2132
- <xsl:text>Edition </xsl:text>
2133
-
2134
-
2024
+ <xsl:text>Edition </xsl:text>
2025
+
2135
2026
  </title-edition>
2136
2027
 
2137
2028
  <title-edition lang="fr">
2138
-
2139
- <xsl:text>Édition </xsl:text>
2140
-
2029
+ <xsl:text>Édition </xsl:text>
2141
2030
  </title-edition>
2142
2031
 
2143
-
2032
+ <!-- These titles of Table of contents renders different than determined in localized-strings -->
2144
2033
  <title-toc lang="en">
2145
2034
 
2146
- <xsl:text>Contents</xsl:text>
2147
-
2148
2035
 
2149
2036
 
2150
2037
  </title-toc>
2151
2038
  <title-toc lang="fr">
2039
+ <xsl:text>Sommaire</xsl:text>
2040
+ </title-toc>
2041
+ <title-toc lang="zh">
2152
2042
 
2153
- <xsl:text>Sommaire</xsl:text>
2154
-
2155
-
2156
- </title-toc>
2157
-
2158
- <title-toc lang="zh">Contents</title-toc>
2159
-
2160
-
2161
-
2162
- <title-page lang="en">Page</title-page>
2163
- <title-page lang="fr">Page</title-page>
2164
-
2165
- <title-key lang="en">Key</title-key>
2166
- <title-key lang="fr">Légende</title-key>
2167
-
2168
- <title-where lang="en">where</title-where>
2169
- <title-where lang="fr">où</title-where>
2043
+ <xsl:text>Contents</xsl:text>
2044
+
2045
+ </title-toc>
2170
2046
 
2171
2047
  <title-descriptors lang="en">Descriptors</title-descriptors>
2172
2048
 
@@ -2186,32 +2062,9 @@
2186
2062
  </title-part>
2187
2063
  <title-part lang="zh">第 # 部分:</title-part>
2188
2064
 
2189
- <title-subpart lang="en">
2190
-
2191
- </title-subpart>
2192
- <title-subpart lang="fr">
2193
-
2194
- </title-subpart>
2195
-
2196
- <title-modified lang="en">modified</title-modified>
2197
- <title-modified lang="fr">modifiée</title-modified>
2198
-
2199
- <title-modified lang="zh">modified</title-modified>
2200
-
2065
+ <title-subpart lang="en">Sub-part #</title-subpart>
2066
+ <title-subpart lang="fr">Partie de sub #</title-subpart>
2201
2067
 
2202
-
2203
- <title-source lang="en">
2204
-
2205
- <xsl:text>SOURCE</xsl:text>
2206
-
2207
-
2208
- </title-source>
2209
-
2210
- <title-keywords lang="en">Keywords</title-keywords>
2211
-
2212
- <title-deprecated lang="en">DEPRECATED</title-deprecated>
2213
- <title-deprecated lang="fr">DEPRECATED</title-deprecated>
2214
-
2215
2068
  <title-list-tables lang="en">List of Tables</title-list-tables>
2216
2069
 
2217
2070
  <title-list-figures lang="en">List of Figures</title-list-figures>
@@ -2220,41 +2073,12 @@
2220
2073
 
2221
2074
  <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
2222
2075
 
2223
- <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
2224
-
2225
- <title-abstract lang="en">Abstract</title-abstract>
2226
-
2227
2076
  <title-summary lang="en">Summary</title-summary>
2228
2077
 
2229
- <title-in lang="en">in </title-in>
2230
-
2231
- <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
2232
- <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
2233
-
2234
- <title-completion-date lang="en">Completion date for this manuscript</title-completion-date>
2235
- <title-completion-date lang="zh">本稿完成日期</title-completion-date>
2236
-
2237
- <title-issuance-date lang="en">Issuance Date: #</title-issuance-date>
2238
- <title-issuance-date lang="zh"># 发布</title-issuance-date>
2239
-
2240
- <title-implementation-date lang="en">Implementation Date: #</title-implementation-date>
2241
- <title-implementation-date lang="zh"># 实施</title-implementation-date>
2242
-
2243
- <title-obligation-normative lang="en">normative</title-obligation-normative>
2244
- <title-obligation-normative lang="zh">规范性附录</title-obligation-normative>
2245
-
2246
- <title-caution lang="en">CAUTION</title-caution>
2247
- <title-caution lang="zh">注意</title-caution>
2248
-
2249
- <title-warning lang="en">WARNING</title-warning>
2250
- <title-warning lang="zh">警告</title-warning>
2251
-
2252
- <title-amendment lang="en">AMENDMENT</title-amendment>
2253
-
2254
2078
  <title-continued lang="en">(continued)</title-continued>
2255
2079
  <title-continued lang="fr">(continué)</title-continued>
2256
2080
 
2257
- </xsl:variable><xsl:variable name="bibdata">
2081
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
2258
2082
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
2259
2083
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
2260
2084
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
@@ -2283,6 +2107,23 @@
2283
2107
  </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
2284
2108
 
2285
2109
 
2110
+
2111
+
2112
+
2113
+
2114
+
2115
+
2116
+ <xsl:attribute name="font-family">Cambria, Times New Roman, Cambria Math, Source Han Sans</xsl:attribute>
2117
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
2118
+
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2286
2127
  </xsl:attribute-set><xsl:attribute-set name="link-style">
2287
2128
 
2288
2129
 
@@ -2292,19 +2133,29 @@
2292
2133
 
2293
2134
 
2294
2135
 
2136
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-container-style">
2137
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2138
+
2295
2139
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
2296
2140
  <xsl:attribute name="white-space">pre</xsl:attribute>
2297
2141
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
2298
2142
  <xsl:attribute name="role">Code</xsl:attribute>
2299
2143
 
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+
2300
2151
  <xsl:attribute name="font-family">Courier New</xsl:attribute>
2301
2152
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2302
2153
 
2303
2154
 
2304
2155
 
2156
+
2305
2157
 
2306
2158
 
2307
-
2308
2159
 
2309
2160
 
2310
2161
 
@@ -2365,16 +2216,18 @@
2365
2216
 
2366
2217
 
2367
2218
 
2219
+
2368
2220
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
2369
2221
 
2370
2222
 
2371
2223
 
2224
+
2372
2225
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
2226
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2373
2227
 
2374
2228
 
2375
2229
 
2376
2230
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
2377
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
2378
2231
 
2379
2232
 
2380
2233
 
@@ -2400,6 +2253,7 @@
2400
2253
 
2401
2254
 
2402
2255
 
2256
+
2403
2257
  <xsl:attribute name="text-align">justify</xsl:attribute>
2404
2258
 
2405
2259
 
@@ -2421,245 +2275,465 @@
2421
2275
 
2422
2276
  </xsl:attribute-set><xsl:variable name="table-border_">
2423
2277
 
2424
- </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-name-style">
2425
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
2426
-
2278
+ </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
2279
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2280
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2427
2281
 
2428
2282
 
2429
2283
 
2430
2284
 
2431
2285
 
2432
- <xsl:attribute name="font-size">11pt</xsl:attribute>
2433
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2434
- <xsl:attribute name="text-align">center</xsl:attribute>
2435
- <!-- <xsl:attribute name="margin-top">12pt</xsl:attribute> -->
2436
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2437
-
2438
2286
 
2439
2287
 
2440
2288
 
2441
-
2442
2289
 
2290
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2291
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2292
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2443
2293
 
2444
2294
 
2445
2295
 
2446
- </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
2447
2296
 
2448
- </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2449
-
2450
- <xsl:attribute name="font-size">12pt</xsl:attribute>
2451
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2452
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2453
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2454
2297
 
2455
2298
 
2456
2299
 
2457
- </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
2458
2300
 
2459
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2460
- <xsl:attribute name="margin-top">8pt</xsl:attribute>
2461
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2462
2301
 
2463
2302
 
2303
+
2464
2304
 
2465
- </xsl:attribute-set><xsl:attribute-set name="xref-style">
2466
2305
 
2306
+ </xsl:attribute-set><xsl:attribute-set name="table-style">
2307
+ <xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
2308
+ <xsl:attribute name="table-layout">fixed</xsl:attribute>
2309
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2310
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2467
2311
 
2468
2312
 
2469
- <xsl:attribute name="color">blue</xsl:attribute>
2470
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
2471
2313
 
2472
2314
 
2473
2315
 
2474
- </xsl:attribute-set><xsl:attribute-set name="eref-style">
2475
2316
 
2476
2317
 
2477
2318
 
2478
2319
 
2320
+ <xsl:attribute name="border">1.5pt solid black</xsl:attribute>
2479
2321
 
2480
2322
 
2481
- </xsl:attribute-set><xsl:attribute-set name="note-style">
2482
2323
 
2483
2324
 
2484
2325
 
2485
2326
 
2486
-
2487
2327
 
2488
2328
 
2489
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2490
- <xsl:attribute name="margin-top">8pt</xsl:attribute>
2491
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2492
- <xsl:attribute name="text-align">justify</xsl:attribute>
2493
2329
 
2494
2330
 
2495
2331
 
2496
2332
 
2333
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
2334
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2335
+
2497
2336
 
2498
2337
 
2499
2338
 
2500
2339
 
2501
2340
 
2341
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
2342
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2343
+ <xsl:attribute name="text-align">center</xsl:attribute>
2344
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2345
+
2502
2346
 
2503
- </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
2504
2347
 
2505
2348
 
2349
+
2506
2350
 
2507
2351
 
2508
2352
 
2509
2353
 
2354
+ </xsl:attribute-set><xsl:attribute-set name="table-row-style">
2355
+ <xsl:attribute name="min-height">4mm</xsl:attribute>
2510
2356
 
2511
- <xsl:attribute name="padding-right">6mm</xsl:attribute>
2512
2357
 
2513
2358
 
2514
2359
 
2360
+ </xsl:attribute-set><xsl:attribute-set name="table-header-row-style" use-attribute-sets="table-row-style">
2361
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2515
2362
 
2516
2363
 
2364
+ <xsl:attribute name="border-top">solid black 1pt</xsl:attribute>
2365
+ <xsl:attribute name="border-bottom">solid black 1pt</xsl:attribute>
2517
2366
 
2518
2367
 
2519
- </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
2520
2368
 
2521
2369
 
2522
2370
 
2523
2371
 
2524
- </xsl:attribute-set><xsl:attribute-set name="note-p-style">
2372
+
2525
2373
 
2374
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-row-style" use-attribute-sets="table-row-style">
2526
2375
 
2527
2376
 
2528
-
2529
2377
 
2530
-
2531
- <xsl:attribute name="margin-top">8pt</xsl:attribute>
2532
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2378
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2379
+ <xsl:attribute name="border-left">solid black 1pt</xsl:attribute>
2380
+ <xsl:attribute name="border-right">solid black 1pt</xsl:attribute>
2533
2381
 
2382
+ </xsl:attribute-set><xsl:attribute-set name="table-body-row-style" use-attribute-sets="table-row-style">
2383
+
2384
+ </xsl:attribute-set><xsl:attribute-set name="table-header-cell-style">
2385
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2386
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2387
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2388
+ <xsl:attribute name="display-align">center</xsl:attribute>
2534
2389
 
2535
2390
 
2536
2391
 
2392
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2537
2393
 
2538
2394
 
2539
2395
 
2540
2396
 
2541
- </xsl:attribute-set><xsl:attribute-set name="termnote-style">
2542
2397
 
2543
2398
 
2544
2399
 
2545
2400
 
2546
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2547
- <xsl:attribute name="margin-top">8pt</xsl:attribute>
2548
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2549
- <xsl:attribute name="text-align">justify</xsl:attribute>
2550
2401
 
2551
2402
 
2552
2403
 
2404
+ </xsl:attribute-set><xsl:attribute-set name="table-cell-style">
2405
+ <xsl:attribute name="display-align">center</xsl:attribute>
2406
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2407
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2553
2408
 
2554
- </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
2555
2409
 
2556
-
2557
2410
 
2558
2411
 
2559
- </xsl:attribute-set><xsl:attribute-set name="quote-style">
2560
- <xsl:attribute name="role">BlockQuote</xsl:attribute>
2412
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
2561
2413
 
2562
2414
 
2563
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2564
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
2565
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
2566
2415
 
2567
2416
 
2568
2417
 
2569
2418
 
2570
2419
 
2571
2420
 
2572
- </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
2573
2421
 
2574
2422
 
2575
- <xsl:attribute name="text-align">right</xsl:attribute>
2576
-
2577
-
2578
- </xsl:attribute-set><xsl:attribute-set name="termsource-style">
2423
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
2424
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2425
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2426
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
2427
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2579
2428
 
2580
2429
 
2581
2430
 
2582
2431
 
2583
2432
 
2584
2433
 
2585
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2434
+ <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
2586
2435
 
2587
2436
 
2588
- </xsl:attribute-set><xsl:attribute-set name="origin-style">
2437
+
2589
2438
 
2590
2439
 
2591
2440
 
2441
+ </xsl:attribute-set><xsl:attribute-set name="table-note-style">
2442
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2443
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2592
2444
 
2593
- </xsl:attribute-set><xsl:attribute-set name="term-style">
2594
2445
 
2595
- <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2596
2446
 
2597
- </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
2598
2447
 
2448
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2449
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2599
2450
 
2600
-
2601
2451
 
2602
2452
 
2603
2453
 
2604
-
2605
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2606
- <xsl:attribute name="text-align">center</xsl:attribute>
2607
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2608
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2609
- <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2610
2454
 
2455
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-style">
2456
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2611
2457
 
2612
2458
 
2613
2459
 
2614
2460
 
2461
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2462
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2615
2463
 
2616
2464
 
2617
2465
 
2466
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
2467
+ <xsl:attribute name="font-size">80%</xsl:attribute>
2468
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
2618
2469
 
2619
-
2620
2470
 
2621
2471
 
2622
2472
 
2623
-
2624
- </xsl:attribute-set><xsl:attribute-set name="formula-style">
2625
2473
 
2626
- </xsl:attribute-set><xsl:attribute-set name="image-style">
2627
- <xsl:attribute name="text-align">center</xsl:attribute>
2474
+ <xsl:attribute name="alignment-baseline">hanging</xsl:attribute>
2628
2475
 
2629
2476
 
2630
2477
 
2631
2478
 
2632
2479
 
2633
2480
 
2634
- </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
2635
2481
 
2636
- </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
2637
2482
 
2483
+ </xsl:attribute-set><xsl:attribute-set name="fn-container-body-style">
2484
+ <xsl:attribute name="text-indent">0</xsl:attribute>
2485
+ <xsl:attribute name="start-indent">0</xsl:attribute>
2638
2486
 
2639
- <xsl:attribute name="width">100%</xsl:attribute>
2640
- <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
2641
- <xsl:attribute name="scaling">uniform</xsl:attribute>
2642
2487
 
2488
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-body-style">
2643
2489
 
2490
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-number-style">
2491
+ <xsl:attribute name="font-size">80%</xsl:attribute>
2492
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
2493
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
2644
2494
 
2645
-
2646
-
2647
- </xsl:attribute-set><xsl:attribute-set name="tt-style">
2495
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-body-style">
2496
+ <xsl:attribute name="text-align">justify</xsl:attribute>
2497
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2648
2498
 
2499
+ </xsl:attribute-set><xsl:attribute-set name="dt-row-style">
2649
2500
 
2650
- <xsl:attribute name="font-family">Courier New</xsl:attribute>
2651
2501
 
2502
+ </xsl:attribute-set><xsl:attribute-set name="dt-style">
2503
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
2652
2504
 
2653
- </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
2654
- <xsl:attribute name="font-size">11pt</xsl:attribute>
2655
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2656
- <xsl:attribute name="text-align">center</xsl:attribute>
2657
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2658
- <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2659
2505
 
2660
- </xsl:attribute-set><xsl:attribute-set name="domain-style">
2661
-
2662
- </xsl:attribute-set><xsl:attribute-set name="admitted-style">
2506
+
2507
+
2508
+
2509
+
2510
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
2511
+
2512
+
2513
+
2514
+
2515
+
2516
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2517
+
2518
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
2519
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2520
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2521
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2522
+
2523
+
2524
+
2525
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
2526
+
2527
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2528
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
2529
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2530
+
2531
+
2532
+
2533
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
2534
+
2535
+
2536
+
2537
+ <xsl:attribute name="color">blue</xsl:attribute>
2538
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
2539
+
2540
+
2541
+
2542
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
2543
+
2544
+
2545
+
2546
+
2547
+
2548
+
2549
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2558
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
2559
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2560
+ <xsl:attribute name="text-align">justify</xsl:attribute>
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+ </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+ <xsl:attribute name="padding-right">6mm</xsl:attribute>
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+ </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
2588
+ <xsl:attribute name="padding-right">2mm</xsl:attribute>
2589
+
2590
+
2591
+
2592
+
2593
+ </xsl:attribute-set><xsl:attribute-set name="note-p-style">
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
2601
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2602
+
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+
2610
+ </xsl:attribute-set><xsl:attribute-set name="termnote-style">
2611
+
2612
+
2613
+
2614
+
2615
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2616
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
2617
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2618
+ <xsl:attribute name="text-align">justify</xsl:attribute>
2619
+
2620
+
2621
+
2622
+
2623
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
2624
+
2625
+
2626
+
2627
+
2628
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
2629
+ <xsl:attribute name="role">BlockQuote</xsl:attribute>
2630
+
2631
+
2632
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2633
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
2634
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+ </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
2642
+
2643
+
2644
+ <xsl:attribute name="text-align">right</xsl:attribute>
2645
+
2646
+
2647
+ </xsl:attribute-set><xsl:attribute-set name="termsource-style">
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2655
+
2656
+
2657
+ </xsl:attribute-set><xsl:attribute-set name="termsource-text-style">
2658
+
2659
+
2660
+ </xsl:attribute-set><xsl:attribute-set name="origin-style">
2661
+
2662
+
2663
+
2664
+
2665
+ </xsl:attribute-set><xsl:attribute-set name="term-style">
2666
+
2667
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2668
+
2669
+ </xsl:attribute-set><xsl:attribute-set name="figure-style">
2670
+
2671
+ </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2680
+ <xsl:attribute name="text-align">center</xsl:attribute>
2681
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2682
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2683
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2684
+
2685
+
2686
+
2687
+
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+
2698
+ </xsl:attribute-set><xsl:attribute-set name="formula-style">
2699
+
2700
+ </xsl:attribute-set><xsl:attribute-set name="image-style">
2701
+ <xsl:attribute name="text-align">center</xsl:attribute>
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+ </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
2709
+
2710
+ </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
2711
+
2712
+
2713
+ <xsl:attribute name="width">100%</xsl:attribute>
2714
+ <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
2715
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
2716
+
2717
+
2718
+
2719
+
2720
+
2721
+ </xsl:attribute-set><xsl:attribute-set name="tt-style">
2722
+
2723
+
2724
+ <xsl:attribute name="font-family">Courier New</xsl:attribute>
2725
+
2726
+
2727
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
2728
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
2729
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2730
+ <xsl:attribute name="text-align">center</xsl:attribute>
2731
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2732
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2733
+
2734
+ </xsl:attribute-set><xsl:attribute-set name="domain-style">
2735
+
2736
+ </xsl:attribute-set><xsl:attribute-set name="admitted-style">
2663
2737
 
2664
2738
 
2665
2739
 
@@ -2696,6 +2770,17 @@
2696
2770
 
2697
2771
  </xsl:attribute-set><xsl:attribute-set name="toc-style">
2698
2772
  <xsl:attribute name="line-height">135%</xsl:attribute>
2773
+ </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
2774
+ <xsl:attribute name="font-size">80%</xsl:attribute>
2775
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2776
+
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2699
2784
  </xsl:attribute-set><xsl:attribute-set name="fn-style">
2700
2785
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2701
2786
  </xsl:attribute-set><xsl:attribute-set name="fn-num-style">
@@ -2766,30 +2851,195 @@
2766
2851
 
2767
2852
 
2768
2853
 
2769
- </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">
2770
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
2771
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
2772
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
2773
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
2774
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
2775
- </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
2854
+ </xsl:attribute-set><xsl:attribute-set name="admonition-style">
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2863
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+ </xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
2873
+
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+ </xsl:attribute-set><xsl:attribute-set name="admonition-name-style">
2884
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2885
+
2886
+
2887
+
2888
+
2889
+
2890
+
2891
+
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+ </xsl:attribute-set><xsl:attribute-set name="admonition-p-style">
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+
2906
+
2907
+
2908
+
2909
+
2910
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-style">
2911
+
2912
+
2913
+
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-style">
2932
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
2933
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2934
+
2935
+
2936
+
2937
+
2938
+
2939
+
2940
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2941
+
2942
+
2943
+
2944
+
2945
+
2946
+
2947
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-style">
2948
+
2949
+
2950
+
2951
+
2952
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-style">
2953
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
2954
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2955
+
2956
+
2957
+
2958
+
2959
+
2960
+
2961
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2962
+
2963
+
2964
+
2965
+
2966
+
2967
+
2968
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-body-style">
2969
+
2970
+
2971
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-body-style">
2972
+
2973
+
2974
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-style">
2975
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2976
+ <xsl:attribute name="font-size">65%</xsl:attribute>
2977
+
2978
+
2979
+
2980
+
2981
+
2982
+
2983
+
2984
+
2985
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2986
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
2987
+
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-number-style">
2997
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
2998
+
2999
+
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+ <xsl:attribute name="alignment-baseline">hanging</xsl:attribute>
3007
+ <xsl:attribute name="padding-right">3mm</xsl:attribute>
3008
+
3009
+
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+
3017
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-body-style">
3018
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3019
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3020
+ <xsl:attribute name="start-indent">0pt</xsl:attribute>
3021
+
3022
+
3023
+
3024
+
3025
+
3026
+
3027
+ <xsl:attribute name="margin-bottom">4pt</xsl:attribute>
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+
3034
+ </xsl:attribute-set><xsl:attribute-set name="references-non-normative-style">
3035
+
3036
+
3037
+
3038
+ </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">
2776
3039
  <xsl:for-each select="/*/*[local-name()='preface']/*">
2777
3040
  <xsl:sort select="@displayorder" data-type="number"/>
2778
3041
  <xsl:apply-templates select="." mode="contents"/>
2779
3042
  </xsl:for-each>
2780
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
2781
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
2782
-
2783
- <!-- Normative references -->
2784
- <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"/>
2785
- <!-- Terms and definitions -->
2786
- <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"/>
2787
- <!-- Another main sections -->
2788
- <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"/>
2789
- <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
2790
- <!-- Bibliography -->
2791
- <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"/>
2792
-
2793
3043
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2794
3044
 
2795
3045
  <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']]">
@@ -2806,29 +3056,11 @@
2806
3056
  <xsl:sort select="@displayorder" data-type="number"/>
2807
3057
  <xsl:apply-templates select="." mode="contents"/>
2808
3058
  </xsl:for-each>
2809
- </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
2810
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
2811
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
2812
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
2813
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
2814
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
2815
3059
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2816
3060
  <xsl:for-each select="/*/*[local-name()='preface']/*">
2817
3061
  <xsl:sort select="@displayorder" data-type="number"/>
2818
3062
  <xsl:apply-templates select="."/>
2819
3063
  </xsl:for-each>
2820
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
2821
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
2822
-
2823
- <!-- Normative references -->
2824
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
2825
- <!-- Terms and definitions -->
2826
- <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']]"/>
2827
- <!-- Another main sections -->
2828
- <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'])]"/>
2829
- <xsl:apply-templates select="/*/*[local-name()='annex']"/>
2830
- <!-- Bibliography -->
2831
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
2832
3064
  </xsl:template><xsl:template name="processMainSectionsDefault">
2833
3065
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
2834
3066
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -2865,10 +3097,6 @@
2865
3097
  <xsl:call-template name="getSimpleTable"/>
2866
3098
  </xsl:variable>
2867
3099
 
2868
- <!-- <xsl:if test="$namespace = 'bipm'">
2869
- <fo:block>&#xA0;</fo:block>
2870
- </xsl:if> -->
2871
-
2872
3100
 
2873
3101
  <!-- Display table's name before table as standalone block -->
2874
3102
  <!-- $namespace = 'iso' or -->
@@ -2876,28 +3104,8 @@
2876
3104
 
2877
3105
 
2878
3106
 
2879
-
2880
-
2881
-
2882
3107
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>
2883
3108
 
2884
- <!-- <xsl:variable name="cols-count">
2885
- <xsl:choose>
2886
- <xsl:when test="*[local-name()='thead']">
2887
- <xsl:call-template name="calculate-columns-numbers">
2888
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2889
- </xsl:call-template>
2890
- </xsl:when>
2891
- <xsl:otherwise>
2892
- <xsl:call-template name="calculate-columns-numbers">
2893
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2894
- </xsl:call-template>
2895
- </xsl:otherwise>
2896
- </xsl:choose>
2897
- </xsl:variable> -->
2898
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2899
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2900
-
2901
3109
  <xsl:variable name="colwidths">
2902
3110
  <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
2903
3111
  <xsl:call-template name="calculate-column-widths">
@@ -2908,17 +3116,8 @@
2908
3116
  </xsl:variable>
2909
3117
  <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2910
3118
 
2911
- <!-- <xsl:variable name="colwidths2">
2912
- <xsl:call-template name="calculate-column-widths">
2913
- <xsl:with-param name="cols-count" select="$cols-count"/>
2914
- </xsl:call-template>
2915
- </xsl:variable> -->
2916
3119
 
2917
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2918
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
2919
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2920
-
2921
- <xsl:variable name="margin-left">
3120
+ <xsl:variable name="margin-side">
2922
3121
  <xsl:choose>
2923
3122
  <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2924
3123
  <xsl:otherwise>0</xsl:otherwise>
@@ -2926,83 +3125,69 @@
2926
3125
  </xsl:variable>
2927
3126
 
2928
3127
 
2929
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2930
-
2931
-
2932
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2933
-
2934
-
2935
-
2936
-
2937
-
2938
-
2939
-
2940
-
3128
+ <fo:block-container xsl:use-attribute-sets="table-container-style">
3129
+
2941
3130
 
3131
+
2942
3132
 
3133
+
2943
3134
 
2944
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2945
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2946
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2947
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
3135
+
2948
3136
 
2949
3137
 
2950
3138
 
3139
+
2951
3140
 
2952
3141
 
2953
3142
 
2954
3143
 
2955
3144
 
3145
+ <!-- end table block-container attributes -->
2956
3146
 
2957
3147
  <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
2958
3148
 
2959
3149
 
3150
+ <xsl:variable name="table_width_default">100%</xsl:variable>
2960
3151
  <xsl:variable name="table_width">
2961
3152
  <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
2962
- 100%
2963
-
2964
-
3153
+ <xsl:value-of select="$table_width_default"/>
2965
3154
  </xsl:variable>
2966
3155
 
3156
+
2967
3157
  <xsl:variable name="table_attributes">
2968
- <attribute name="table-layout">fixed</attribute>
2969
- <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
2970
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2971
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2972
-
2973
-
2974
- <attribute name="border">1.5pt solid black</attribute>
2975
- <xsl:if test="*[local-name()='thead']">
2976
- <attribute name="border-top">1pt solid black</attribute>
2977
- </xsl:if>
2978
-
2979
-
2980
-
2981
- <xsl:if test="ancestor::*[local-name() = 'table']">
2982
- <!-- for internal table in table cell -->
2983
- <attribute name="border">0.5pt solid black</attribute>
2984
- </xsl:if>
2985
-
2986
-
2987
-
2988
-
2989
- <attribute name="margin-left">0mm</attribute>
2990
- <attribute name="margin-right">0mm</attribute>
2991
-
2992
-
2993
-
2994
-
2995
-
2996
-
2997
-
2998
-
3158
+
3159
+ <xsl:element name="table_attributes" use-attribute-sets="table-style">
3160
+ <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+
3167
+
3168
+
3169
+ <xsl:if test="*[local-name()='thead']">
3170
+ <xsl:attribute name="border-top">1pt solid black</xsl:attribute>
3171
+ </xsl:if>
3172
+ <xsl:if test="ancestor::*[local-name() = 'table']">
3173
+ <!-- for internal table in table cell -->
3174
+ <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
3175
+ </xsl:if>
3176
+
3177
+
3178
+
3179
+
3180
+
3181
+
3182
+
3183
+ </xsl:element>
2999
3184
  </xsl:variable>
3000
3185
 
3001
3186
 
3002
- <fo:table id="{@id}" table-omit-footer-at-break="true">
3187
+ <fo:table id="{@id}">
3003
3188
 
3004
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3005
- <xsl:attribute name="{@name}">
3189
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
3190
+ <xsl:attribute name="{local-name()}">
3006
3191
  <xsl:value-of select="."/>
3007
3192
  </xsl:attribute>
3008
3193
  </xsl:for-each>
@@ -3013,7 +3198,6 @@
3013
3198
  </xsl:if>
3014
3199
 
3015
3200
 
3016
-
3017
3201
  <xsl:choose>
3018
3202
  <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
3019
3203
  <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
@@ -3039,7 +3223,7 @@
3039
3223
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
3040
3224
  </xsl:when>
3041
3225
  <xsl:otherwise>
3042
- <xsl:apply-templates/>
3226
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3043
3227
  </xsl:otherwise>
3044
3228
  </xsl:choose>
3045
3229
 
@@ -3054,25 +3238,6 @@
3054
3238
  </xsl:call-template>
3055
3239
  </xsl:for-each>
3056
3240
 
3057
- <!-- insert footer as table -->
3058
- <!-- <fo:table>
3059
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
3060
- <xsl:attribute name="{@name}">
3061
- <xsl:value-of select="."/>
3062
- </xsl:attribute>
3063
- </xsl:for-each>
3064
-
3065
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
3066
- <xsl:choose>
3067
- <xsl:when test=". = 1 or . = 0">
3068
- <fo:table-column column-width="proportional-column-width(2)"/>
3069
- </xsl:when>
3070
- <xsl:otherwise>
3071
- <fo:table-column column-width="proportional-column-width({.})"/>
3072
- </xsl:otherwise>
3073
- </xsl:choose>
3074
- </xsl:for-each>
3075
- </fo:table>-->
3076
3241
 
3077
3242
 
3078
3243
 
@@ -3133,20 +3298,17 @@
3133
3298
  </xsl:otherwise>
3134
3299
  </xsl:choose>
3135
3300
 
3136
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
3301
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
3137
3302
  <xsl:param name="continued"/>
3138
3303
  <xsl:if test="normalize-space() != ''">
3139
3304
  <fo:block xsl:use-attribute-sets="table-name-style">
3140
-
3141
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
3142
-
3305
+
3143
3306
 
3144
3307
 
3145
3308
 
3146
3309
 
3147
3310
  <xsl:choose>
3148
3311
  <xsl:when test="$continued = 'true'">
3149
- <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->
3150
3312
 
3151
3313
  <xsl:apply-templates/>
3152
3314
 
@@ -3211,13 +3373,6 @@
3211
3373
  <xsl:for-each select="xalan:nodeset($table)/*/tr">
3212
3374
  <xsl:variable name="td_text">
3213
3375
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
3214
-
3215
- <!-- <xsl:if test="$namespace = 'bipm'">
3216
- <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
3217
- <word><xsl:value-of select="normalize-space(.)"/></word>
3218
- </xsl:for-each>
3219
- </xsl:if> -->
3220
-
3221
3376
  </xsl:variable>
3222
3377
  <xsl:variable name="words">
3223
3378
  <xsl:variable name="string_with_added_zerospaces">
@@ -3254,7 +3409,6 @@
3254
3409
  </xsl:otherwise>
3255
3410
  </xsl:choose>
3256
3411
  </xsl:variable>
3257
-
3258
3412
 
3259
3413
  <column>
3260
3414
  <xsl:for-each select="xalan:nodeset($widths)//width">
@@ -3290,7 +3444,6 @@
3290
3444
  <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
3291
3445
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
3292
3446
  <xsl:param name="cols-count"/>
3293
- <!-- font-weight="bold" -->
3294
3447
  <fo:table-header>
3295
3448
 
3296
3449
  <xsl:call-template name="table-header-title">
@@ -3306,22 +3459,21 @@
3306
3459
  <fo:table-row>
3307
3460
  <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
3308
3461
 
3309
- <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
3462
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
3310
3463
  <xsl:with-param name="continued">true</xsl:with-param>
3311
3464
  </xsl:apply-templates>
3312
3465
 
3313
3466
 
3314
3467
  <xsl:for-each select="ancestor::*[local-name()='table'][1]">
3315
- <xsl:call-template name="fn_name_display"/>
3468
+ <xsl:call-template name="table_name_fn_display"/>
3316
3469
  </xsl:for-each>
3317
-
3318
-
3319
-
3470
+
3320
3471
  <fo:block text-align="right" font-style="italic">
3321
3472
  <xsl:text> </xsl:text>
3322
3473
  <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
3323
3474
  </fo:block>
3324
3475
 
3476
+
3325
3477
  </fo:table-cell>
3326
3478
  </fo:table-row>
3327
3479
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
@@ -3337,66 +3489,6 @@
3337
3489
  <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3338
3490
  </fo:table-footer>
3339
3491
  </xsl:if>
3340
- </xsl:template><xsl:template name="insertTableFooter2">
3341
- <xsl:param name="cols-count"/>
3342
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3343
- <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
3344
-
3345
- <fo:table-footer>
3346
-
3347
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3348
-
3349
- <!-- if there are note(s) or fn(s) then create footer row -->
3350
- <xsl:if test="$isNoteOrFnExist = 'true'">
3351
-
3352
-
3353
-
3354
- <fo:table-row>
3355
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3356
-
3357
- <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
3358
-
3359
-
3360
-
3361
- <!-- fn will be processed inside 'note' processing -->
3362
-
3363
-
3364
-
3365
-
3366
-
3367
-
3368
- <!-- except gb -->
3369
-
3370
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3371
-
3372
-
3373
- <!-- show Note under table in preface (ex. abstract) sections -->
3374
- <!-- empty, because notes show at page side in main sections -->
3375
- <!-- <xsl:if test="$namespace = 'bipm'">
3376
- <xsl:choose>
3377
- <xsl:when test="ancestor::*[local-name()='preface']">
3378
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3379
- </xsl:when>
3380
- <xsl:otherwise>
3381
- <fo:block/>
3382
- </xsl:otherwise>
3383
- </xsl:choose>
3384
- </xsl:if> -->
3385
-
3386
-
3387
- <!-- horizontal row separator -->
3388
-
3389
-
3390
- <!-- fn processing -->
3391
- <xsl:call-template name="fn_display"/>
3392
-
3393
- </fo:table-cell>
3394
- </fo:table-row>
3395
-
3396
- </xsl:if>
3397
- </fo:table-footer>
3398
-
3399
- </xsl:if>
3400
3492
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
3401
3493
  <xsl:param name="table_attributes"/>
3402
3494
  <xsl:param name="colwidths"/>
@@ -3422,17 +3514,18 @@
3422
3514
  </xsl:variable>
3423
3515
 
3424
3516
  <fo:table keep-with-previous="always">
3425
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3517
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
3518
+ <xsl:variable name="name" select="local-name()"/>
3426
3519
  <xsl:choose>
3427
- <xsl:when test="@name = 'border-top'">
3428
- <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
3520
+ <xsl:when test="$name = 'border-top'">
3521
+ <xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
3429
3522
  </xsl:when>
3430
- <xsl:when test="@name = 'border'">
3431
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3523
+ <xsl:when test="$name = 'border'">
3524
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3432
3525
  <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3433
3526
  </xsl:when>
3434
3527
  <xsl:otherwise>
3435
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3528
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3436
3529
  </xsl:otherwise>
3437
3530
  </xsl:choose>
3438
3531
  </xsl:for-each>
@@ -3461,11 +3554,10 @@
3461
3554
 
3462
3555
  <fo:table-body>
3463
3556
  <fo:table-row>
3464
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3557
+ <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
3465
3558
 
3466
3559
 
3467
- <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
3468
-
3560
+
3469
3561
 
3470
3562
 
3471
3563
  <!-- fn will be processed inside 'note' processing -->
@@ -3475,37 +3567,20 @@
3475
3567
 
3476
3568
 
3477
3569
 
3478
-
3479
-
3480
-
3481
3570
  <!-- for BSI (not PAS) display Notes before footnotes -->
3482
3571
 
3483
3572
 
3484
- <!-- except gb -->
3485
-
3486
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3573
+ <!-- except gb and bsi -->
3487
3574
 
3488
-
3489
- <!-- <xsl:if test="$namespace = 'bipm'">
3490
- <xsl:choose>
3491
- <xsl:when test="ancestor::*[local-name()='preface']">
3492
- show Note under table in preface (ex. abstract) sections
3493
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3494
- </xsl:when>
3495
- <xsl:otherwise>
3496
- empty, because notes show at page side in main sections
3497
- <fo:block/>
3498
- </xsl:otherwise>
3499
- </xsl:choose>
3500
- </xsl:if> -->
3575
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3576
+
3501
3577
 
3502
3578
 
3503
3579
  <!-- horizontal row separator -->
3504
3580
 
3505
3581
 
3506
3582
  <!-- fn processing -->
3507
- <xsl:call-template name="fn_display"/>
3508
-
3583
+ <xsl:call-template name="table_fn_display"/>
3509
3584
 
3510
3585
  <!-- for PAS display Notes after footnotes -->
3511
3586
 
@@ -3592,99 +3667,68 @@
3592
3667
 
3593
3668
 
3594
3669
  <xsl:apply-templates/>
3595
- <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
3596
-
3670
+
3597
3671
  </fo:table-body>
3598
3672
 
3599
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
3600
- <xsl:choose>
3601
- <xsl:when test="substring-after(., '—') != ''">
3602
- <xsl:text>—</xsl:text><xsl:value-of select="substring-after(., '—')"/>
3603
- </xsl:when>
3604
- <xsl:otherwise>
3605
- <xsl:value-of select="."/>
3606
- </xsl:otherwise>
3607
- </xsl:choose>
3608
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="presentation_name">
3609
- <xsl:apply-templates mode="presentation_name"/>
3610
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/node()" mode="presentation_name">
3611
- <xsl:apply-templates select="."/>
3612
- </xsl:template><xsl:template match="*[local-name()='tr']">
3613
- <xsl:variable name="parent-name" select="local-name(..)"/>
3614
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3615
- <fo:table-row min-height="4mm">
3616
- <xsl:if test="$parent-name = 'thead'">
3617
- <xsl:attribute name="font-weight">bold</xsl:attribute>
3618
-
3619
-
3620
-
3621
- <xsl:choose>
3622
- <xsl:when test="position() = 1">
3623
- <xsl:attribute name="border-top">solid black 1.5pt</xsl:attribute>
3624
- <xsl:attribute name="border-bottom">solid black 1pt</xsl:attribute>
3625
- </xsl:when>
3626
- <xsl:when test="position() = last()">
3627
- <xsl:attribute name="border-top">solid black 1pt</xsl:attribute>
3628
- <xsl:attribute name="border-bottom">solid black 1.5pt</xsl:attribute>
3629
- </xsl:when>
3630
- <xsl:otherwise>
3631
- <xsl:attribute name="border-top">solid black 1pt</xsl:attribute>
3632
- <xsl:attribute name="border-bottom">solid black 1pt</xsl:attribute>
3633
- </xsl:otherwise>
3634
- </xsl:choose>
3635
-
3636
-
3637
-
3638
-
3639
-
3640
-
3641
- </xsl:if>
3642
- <xsl:if test="$parent-name = 'tfoot'">
3643
-
3644
-
3645
- <xsl:attribute name="font-size">9pt</xsl:attribute>
3646
- <xsl:attribute name="border-left">solid black 1pt</xsl:attribute>
3647
- <xsl:attribute name="border-right">solid black 1pt</xsl:attribute>
3648
-
3649
-
3650
- </xsl:if>
3651
-
3652
-
3653
-
3654
-
3655
-
3656
-
3657
-
3658
-
3659
-
3660
-
3661
- <!-- <xsl:if test="$namespace = 'bipm'">
3662
- <xsl:attribute name="height">8mm</xsl:attribute>
3663
- </xsl:if> -->
3664
-
3665
- <xsl:apply-templates/>
3666
- </fo:table-row>
3667
- </xsl:template><xsl:template match="*[local-name()='th']">
3668
- <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
3669
- <xsl:attribute name="text-align">
3673
+ </xsl:template><xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
3674
+ <fo:table-row xsl:use-attribute-sets="table-header-row-style">
3675
+
3676
+
3677
+
3678
+
3670
3679
  <xsl:choose>
3671
- <xsl:when test="@align">
3672
- <xsl:call-template name="setAlignment"/>
3673
- <!-- <xsl:value-of select="@align"/> -->
3680
+ <xsl:when test="position() = 1">
3681
+ <xsl:attribute name="border-top">solid black 1.5pt</xsl:attribute>
3682
+ <xsl:attribute name="border-bottom">solid black 1pt</xsl:attribute>
3683
+ </xsl:when>
3684
+ <xsl:when test="position() = last()">
3685
+ <xsl:attribute name="border-top">solid black 1pt</xsl:attribute>
3686
+ <xsl:attribute name="border-bottom">solid black 1.5pt</xsl:attribute>
3674
3687
  </xsl:when>
3675
- <xsl:otherwise>center</xsl:otherwise>
3676
3688
  </xsl:choose>
3677
- </xsl:attribute>
3689
+
3690
+
3678
3691
 
3679
3692
 
3680
- <xsl:attribute name="padding-top">1mm</xsl:attribute>
3693
+ <xsl:call-template name="setTableRowAttributes"/>
3694
+
3695
+ <xsl:apply-templates/>
3696
+ </fo:table-row>
3697
+ </xsl:template><xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
3698
+ <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
3681
3699
 
3700
+ <xsl:call-template name="setTableRowAttributes"/>
3701
+ <xsl:apply-templates/>
3702
+ </fo:table-row>
3703
+ </xsl:template><xsl:template match="*[local-name()='tr']">
3704
+ <fo:table-row xsl:use-attribute-sets="table-body-row-style">
3705
+
3682
3706
 
3707
+
3683
3708
 
3709
+
3710
+ <xsl:call-template name="setTableRowAttributes"/>
3711
+ <xsl:apply-templates/>
3712
+ </fo:table-row>
3713
+ </xsl:template><xsl:template name="setTableRowAttributes">
3714
+
3715
+
3716
+
3717
+
3718
+
3719
+
3720
+
3721
+
3722
+ </xsl:template><xsl:template match="*[local-name()='th']">
3723
+ <fo:table-cell xsl:use-attribute-sets="table-header-cell-style"> <!-- text-align="{@align}" -->
3724
+ <xsl:call-template name="setTextAlignment">
3725
+ <xsl:with-param name="default">center</xsl:with-param>
3726
+ </xsl:call-template>
3684
3727
 
3685
3728
 
3686
3729
 
3687
3730
 
3731
+
3688
3732
 
3689
3733
 
3690
3734
 
@@ -3693,21 +3737,25 @@
3693
3737
  <xsl:if test="$lang = 'ar'">
3694
3738
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
3695
3739
  </xsl:if>
3696
- <xsl:if test="@colspan">
3697
- <xsl:attribute name="number-columns-spanned">
3698
- <xsl:value-of select="@colspan"/>
3699
- </xsl:attribute>
3700
- </xsl:if>
3701
- <xsl:if test="@rowspan">
3702
- <xsl:attribute name="number-rows-spanned">
3703
- <xsl:value-of select="@rowspan"/>
3704
- </xsl:attribute>
3705
- </xsl:if>
3706
- <xsl:call-template name="display-align"/>
3740
+
3741
+ <xsl:call-template name="setTableCellAttributes"/>
3742
+
3707
3743
  <fo:block>
3708
3744
  <xsl:apply-templates/>
3709
3745
  </fo:block>
3710
3746
  </fo:table-cell>
3747
+ </xsl:template><xsl:template name="setTableCellAttributes">
3748
+ <xsl:if test="@colspan">
3749
+ <xsl:attribute name="number-columns-spanned">
3750
+ <xsl:value-of select="@colspan"/>
3751
+ </xsl:attribute>
3752
+ </xsl:if>
3753
+ <xsl:if test="@rowspan">
3754
+ <xsl:attribute name="number-rows-spanned">
3755
+ <xsl:value-of select="@rowspan"/>
3756
+ </xsl:attribute>
3757
+ </xsl:if>
3758
+ <xsl:call-template name="display-align"/>
3711
3759
  </xsl:template><xsl:template name="display-align">
3712
3760
  <xsl:if test="@valign">
3713
3761
  <xsl:attribute name="display-align">
@@ -3720,91 +3768,75 @@
3720
3768
  </xsl:attribute>
3721
3769
  </xsl:if>
3722
3770
  </xsl:template><xsl:template match="*[local-name()='td']">
3723
- <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
3724
- <xsl:attribute name="text-align">
3725
- <xsl:choose>
3726
- <xsl:when test="@align">
3727
- <xsl:call-template name="setAlignment"/>
3728
- <!-- <xsl:value-of select="@align"/> -->
3729
- </xsl:when>
3730
- <xsl:otherwise>left</xsl:otherwise>
3731
- </xsl:choose>
3732
- </xsl:attribute>
3771
+ <fo:table-cell xsl:use-attribute-sets="table-cell-style"> <!-- text-align="{@align}" -->
3772
+ <xsl:call-template name="setTextAlignment">
3773
+ <xsl:with-param name="default">left</xsl:with-param>
3774
+ </xsl:call-template>
3775
+
3733
3776
  <xsl:if test="$lang = 'ar'">
3734
3777
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
3735
3778
  </xsl:if>
3736
- <!-- and ancestor::*[local-name() = 'thead'] -->
3737
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3738
3779
 
3739
3780
 
3740
3781
 
3782
+ <!-- bsi -->
3741
3783
 
3742
3784
 
3743
- <xsl:if test="ancestor::*[local-name() = 'tfoot']">
3744
- <xsl:attribute name="border">solid black 0</xsl:attribute>
3745
- </xsl:if>
3746
3785
 
3747
3786
 
3748
3787
 
3749
3788
 
3789
+ <xsl:if test="ancestor::*[local-name() = 'tfoot']">
3790
+ <xsl:attribute name="border">solid black 0</xsl:attribute>
3791
+ </xsl:if>
3792
+
3750
3793
 
3751
3794
 
3795
+
3752
3796
 
3753
3797
 
3754
3798
 
3755
3799
 
3756
3800
 
3757
3801
 
3758
- <xsl:if test=".//*[local-name() = 'table']">
3802
+ <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
3759
3803
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
3760
3804
  </xsl:if>
3761
- <xsl:if test="@colspan">
3762
- <xsl:attribute name="number-columns-spanned">
3763
- <xsl:value-of select="@colspan"/>
3764
- </xsl:attribute>
3765
- </xsl:if>
3766
- <xsl:if test="@rowspan">
3767
- <xsl:attribute name="number-rows-spanned">
3768
- <xsl:value-of select="@rowspan"/>
3769
- </xsl:attribute>
3770
- </xsl:if>
3771
- <xsl:call-template name="display-align"/>
3805
+
3806
+ <xsl:call-template name="setTableCellAttributes"/>
3807
+
3772
3808
  <fo:block>
3773
-
3809
+
3810
+
3811
+
3774
3812
  <xsl:apply-templates/>
3775
3813
  </fo:block>
3776
3814
  </fo:table-cell>
3777
3815
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
3816
+
3817
+ <fo:block xsl:use-attribute-sets="table-note-style">
3818
+
3819
+
3820
+
3821
+
3778
3822
 
3779
-
3780
- <fo:block font-size="10pt" margin-bottom="12pt">
3781
-
3823
+ <!-- Table's note name (NOTE, for example) -->
3824
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
3782
3825
 
3783
- <xsl:attribute name="font-size">9pt</xsl:attribute>
3784
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3785
3826
 
3786
3827
 
3787
3828
 
3788
3829
 
3789
3830
 
3790
3831
 
3791
-
3792
- <!-- Table's note name (NOTE, for example) -->
3793
-
3794
- <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
3832
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3795
3833
 
3796
-
3797
-
3798
-
3799
-
3800
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3801
-
3802
- </fo:inline>
3803
-
3804
-
3805
-
3806
- <xsl:apply-templates mode="process"/>
3807
- </fo:block>
3834
+ </fo:inline>
3835
+
3836
+
3837
+
3838
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]" mode="process"/>
3839
+ </fo:block>
3808
3840
 
3809
3841
  </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">
3810
3842
  <xsl:apply-templates/>
@@ -3886,8 +3918,7 @@
3886
3918
  <xsl:copy-of select="$footnote_inline"/>
3887
3919
  <fo:footnote-body>
3888
3920
 
3889
- <fo:block-container text-indent="0" start-indent="0">
3890
-
3921
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
3891
3922
 
3892
3923
  <fo:block xsl:use-attribute-sets="fn-body-style">
3893
3924
 
@@ -3906,7 +3937,7 @@
3906
3937
  <xsl:copy-of select="$footnote_inline"/>
3907
3938
  </xsl:otherwise>
3908
3939
  </xsl:choose>
3909
- </xsl:template><xsl:template name="fn_display">
3940
+ </xsl:template><xsl:template name="table_fn_display">
3910
3941
  <xsl:variable name="references">
3911
3942
 
3912
3943
  <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
@@ -3917,36 +3948,26 @@
3917
3948
  <xsl:for-each select="xalan:nodeset($references)//fn">
3918
3949
  <xsl:variable name="reference" select="@reference"/>
3919
3950
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3920
- <fo:block margin-bottom="12pt">
3951
+ <fo:block xsl:use-attribute-sets="table-fn-style">
3921
3952
 
3922
3953
 
3923
3954
 
3924
- <xsl:attribute name="font-size">9pt</xsl:attribute>
3925
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3926
-
3927
-
3928
-
3929
-
3930
-
3931
- <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3955
+ <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
3932
3956
 
3933
3957
 
3934
- <xsl:attribute name="alignment-baseline">hanging</xsl:attribute>
3935
3958
 
3936
3959
 
3937
3960
 
3961
+ <xsl:value-of select="@reference"/>
3938
3962
 
3939
3963
 
3940
3964
 
3941
3965
 
3942
- <xsl:value-of select="@reference"/>
3943
3966
 
3944
3967
 
3945
3968
 
3946
3969
  </fo:inline>
3947
- <fo:inline>
3948
-
3949
- <!-- <xsl:apply-templates /> -->
3970
+ <fo:inline xsl:use-attribute-sets="table-fn-body-style">
3950
3971
  <xsl:copy-of select="./node()"/>
3951
3972
  </fo:inline>
3952
3973
  </fo:block>
@@ -3958,15 +3979,7 @@
3958
3979
 
3959
3980
  <xsl:apply-templates/>
3960
3981
  </fn>
3961
- </xsl:template><xsl:template name="fn_name_display">
3962
- <!-- <xsl:variable name="references">
3963
- <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3964
- <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3965
- <xsl:apply-templates />
3966
- </fn>
3967
- </xsl:for-each>
3968
- </xsl:variable>
3969
- $references=<xsl:copy-of select="$references"/> -->
3982
+ </xsl:template><xsl:template name="table_name_fn_display">
3970
3983
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3971
3984
  <xsl:variable name="reference" select="@reference"/>
3972
3985
  <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
@@ -3975,9 +3988,7 @@
3975
3988
  </fo:block>
3976
3989
  </xsl:for-each>
3977
3990
  </xsl:template><xsl:template name="fn_display_figure">
3978
- <xsl:variable name="key_iso">
3979
- true <!-- and (not(@class) or @class !='pseudocode') -->
3980
- </xsl:variable>
3991
+
3981
3992
  <xsl:variable name="references">
3982
3993
  <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
3983
3994
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -3985,50 +3996,52 @@
3985
3996
  </fn>
3986
3997
  </xsl:for-each>
3987
3998
  </xsl:variable>
3999
+
4000
+ <xsl:if test="xalan:nodeset($references)//fn">
3988
4001
 
3989
- <!-- current hierarchy is 'figure' element -->
3990
- <xsl:variable name="following_dl_colwidths">
3991
- <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
3992
- <xsl:variable name="html-table">
3993
- <xsl:variable name="doc_ns">
3994
-
3995
- </xsl:variable>
3996
- <xsl:variable name="ns">
3997
- <xsl:choose>
3998
- <xsl:when test="normalize-space($doc_ns) != ''">
3999
- <xsl:value-of select="normalize-space($doc_ns)"/>
4000
- </xsl:when>
4001
- <xsl:otherwise>
4002
- <xsl:value-of select="substring-before(name(/*), '-')"/>
4003
- </xsl:otherwise>
4004
- </xsl:choose>
4005
- </xsl:variable>
4006
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
4007
- <!-- <xsl:element name="{$ns}:table"> -->
4002
+ <xsl:variable name="key_iso">
4003
+ true
4004
+ </xsl:variable>
4005
+
4006
+ <!-- current hierarchy is 'figure' element -->
4007
+ <xsl:variable name="following_dl_colwidths">
4008
+ <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
4009
+ <xsl:variable name="html-table">
4010
+ <xsl:variable name="doc_ns">
4011
+
4012
+ </xsl:variable>
4013
+ <xsl:variable name="ns">
4014
+ <xsl:choose>
4015
+ <xsl:when test="normalize-space($doc_ns) != ''">
4016
+ <xsl:value-of select="normalize-space($doc_ns)"/>
4017
+ </xsl:when>
4018
+ <xsl:otherwise>
4019
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
4020
+ </xsl:otherwise>
4021
+ </xsl:choose>
4022
+ </xsl:variable>
4023
+
4008
4024
  <xsl:for-each select="*[local-name() = 'dl'][1]">
4009
4025
  <tbody>
4010
4026
  <xsl:apply-templates mode="dl"/>
4011
4027
  </tbody>
4012
4028
  </xsl:for-each>
4013
- <!-- </xsl:element> -->
4014
- </xsl:variable>
4015
-
4016
- <xsl:call-template name="calculate-column-widths">
4017
- <xsl:with-param name="cols-count" select="2"/>
4018
- <xsl:with-param name="table" select="$html-table"/>
4019
- </xsl:call-template>
4020
-
4021
- </xsl:if>
4022
- </xsl:variable>
4023
-
4024
-
4025
- <xsl:variable name="maxlength_dt">
4026
- <xsl:for-each select="*[local-name() = 'dl'][1]">
4027
- <xsl:call-template name="getMaxLength_dt"/>
4028
- </xsl:for-each>
4029
- </xsl:variable>
4030
-
4031
- <xsl:if test="xalan:nodeset($references)//fn">
4029
+ </xsl:variable>
4030
+
4031
+ <xsl:call-template name="calculate-column-widths">
4032
+ <xsl:with-param name="cols-count" select="2"/>
4033
+ <xsl:with-param name="table" select="$html-table"/>
4034
+ </xsl:call-template>
4035
+
4036
+ </xsl:if>
4037
+ </xsl:variable>
4038
+
4039
+ <xsl:variable name="maxlength_dt">
4040
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
4041
+ <xsl:call-template name="getMaxLength_dt"/>
4042
+ </xsl:for-each>
4043
+ </xsl:variable>
4044
+
4032
4045
  <fo:block>
4033
4046
  <fo:table width="95%" table-layout="fixed">
4034
4047
  <xsl:if test="normalize-space($key_iso) = 'true'">
@@ -4055,20 +4068,18 @@
4055
4068
  <fo:table-row>
4056
4069
  <fo:table-cell>
4057
4070
  <fo:block>
4058
- <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
4059
-
4071
+ <fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
4060
4072
  <xsl:value-of select="@reference"/>
4061
4073
  </fo:inline>
4062
4074
  </fo:block>
4063
4075
  </fo:table-cell>
4064
4076
  <fo:table-cell>
4065
- <fo:block text-align="justify" margin-bottom="12pt">
4066
-
4077
+ <fo:block xsl:use-attribute-sets="figure-fn-body-style">
4067
4078
  <xsl:if test="normalize-space($key_iso) = 'true'">
4068
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
4079
+
4080
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
4081
+
4069
4082
  </xsl:if>
4070
-
4071
- <!-- <xsl:apply-templates /> -->
4072
4083
  <xsl:copy-of select="./node()"/>
4073
4084
  </fo:block>
4074
4085
  </fo:table-cell>
@@ -4081,24 +4092,17 @@
4081
4092
  </xsl:if>
4082
4093
 
4083
4094
  </xsl:template><xsl:template match="*[local-name()='fn']">
4084
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
4085
- <fo:inline font-size="80%" keep-with-previous.within-line="always">
4095
+ <fo:inline xsl:use-attribute-sets="fn-reference-style">
4096
+
4086
4097
 
4087
4098
 
4088
4099
 
4089
4100
  <xsl:if test="ancestor::*[local-name()='table']">
4090
4101
  <xsl:attribute name="font-weight">normal</xsl:attribute>
4091
- <!-- <xsl:attribute name="alignment-baseline">hanging</xsl:attribute> -->
4092
4102
  <xsl:attribute name="baseline-shift">15%</xsl:attribute>
4093
4103
  </xsl:if>
4094
4104
 
4095
4105
 
4096
-
4097
-
4098
-
4099
-
4100
-
4101
-
4102
4106
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
4103
4107
 
4104
4108
 
@@ -4118,10 +4122,10 @@
4118
4122
  <xsl:variable name="isDeleted" select="@deleted"/>
4119
4123
  <fo:block-container>
4120
4124
 
4121
- <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
4122
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
4123
- </xsl:if>
4124
-
4125
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
4126
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
4127
+ </xsl:if>
4128
+
4125
4129
 
4126
4130
  <xsl:if test="parent::*[local-name() = 'note']">
4127
4131
  <xsl:attribute name="margin-left">
@@ -4138,11 +4142,11 @@
4138
4142
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
4139
4143
  </xsl:call-template>
4140
4144
 
4141
- <fo:block-container>
4142
-
4143
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
4144
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
4145
+ <fo:block-container margin-left="0mm">
4146
+
4145
4147
 
4148
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
4149
+
4146
4150
 
4147
4151
  <xsl:variable name="parent" select="local-name(..)"/>
4148
4152
 
@@ -4155,25 +4159,21 @@
4155
4159
  <xsl:choose>
4156
4160
  <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
4157
4161
 
4158
-
4159
- <fo:block margin-bottom="12pt" text-align="left">
4160
-
4161
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
4162
-
4163
- <xsl:variable name="title-where">
4162
+ <fo:block margin-bottom="12pt" text-align="left">
4164
4163
 
4164
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
4165
+
4166
+ <xsl:variable name="title-where">
4165
4167
  <xsl:call-template name="getLocalizedString">
4166
4168
  <xsl:with-param name="key">where</xsl:with-param>
4167
4169
  </xsl:call-template>
4168
-
4169
-
4170
- </xsl:variable>
4171
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
4172
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
4173
- <xsl:text/>
4174
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
4175
- </fo:block>
4176
-
4170
+ </xsl:variable>
4171
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
4172
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
4173
+ <xsl:text/>
4174
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
4175
+ </fo:block>
4176
+
4177
4177
  </xsl:when>
4178
4178
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
4179
4179
  <fo:block margin-bottom="12pt" text-align="left">
@@ -4184,12 +4184,9 @@
4184
4184
 
4185
4185
 
4186
4186
  <xsl:variable name="title-where">
4187
-
4188
- <xsl:call-template name="getLocalizedString">
4189
- <xsl:with-param name="key">where</xsl:with-param>
4190
- </xsl:call-template>
4191
-
4192
-
4187
+ <xsl:call-template name="getLocalizedString">
4188
+ <xsl:with-param name="key">where</xsl:with-param>
4189
+ </xsl:call-template>
4193
4190
  </xsl:variable>
4194
4191
  <xsl:value-of select="$title-where"/>
4195
4192
  </fo:block>
@@ -4204,12 +4201,9 @@
4204
4201
 
4205
4202
 
4206
4203
  <xsl:variable name="title-key">
4207
-
4208
- <xsl:call-template name="getLocalizedString">
4209
- <xsl:with-param name="key">key</xsl:with-param>
4210
- </xsl:call-template>
4211
-
4212
-
4204
+ <xsl:call-template name="getLocalizedString">
4205
+ <xsl:with-param name="key">key</xsl:with-param>
4206
+ </xsl:call-template>
4213
4207
  </xsl:variable>
4214
4208
  <xsl:value-of select="$title-key"/>
4215
4209
  </fo:block>
@@ -4236,9 +4230,7 @@
4236
4230
  <fo:table width="95%" table-layout="fixed">
4237
4231
 
4238
4232
  <xsl:choose>
4239
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
4240
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
4241
- </xsl:when>
4233
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
4242
4234
  <xsl:when test="normalize-space($key_iso) = 'true'">
4243
4235
  <xsl:attribute name="font-size">10pt</xsl:attribute>
4244
4236
 
@@ -4259,12 +4251,9 @@
4259
4251
  </xsl:otherwise>
4260
4252
  </xsl:choose>
4261
4253
  </xsl:variable>
4262
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
4263
- <!-- <xsl:element name="{$ns}:table"> -->
4264
- <tbody>
4265
- <xsl:apply-templates mode="dl"/>
4266
- </tbody>
4267
- <!-- </xsl:element> -->
4254
+ <tbody>
4255
+ <xsl:apply-templates mode="dl"/>
4256
+ </tbody>
4268
4257
  </xsl:variable>
4269
4258
  <!-- html-table<xsl:copy-of select="$html-table"/> -->
4270
4259
  <xsl:variable name="colwidths">
@@ -4344,8 +4333,6 @@
4344
4333
  </xsl:for-each>
4345
4334
  </xsl:otherwise>
4346
4335
  </xsl:choose>
4347
- <!-- <fo:table-column column-width="15%"/>
4348
- <fo:table-column column-width="85%"/> -->
4349
4336
  </xsl:otherwise>
4350
4337
  </xsl:choose>
4351
4338
  </xsl:template><xsl:template name="getMaxLength_dt">
@@ -4360,12 +4347,6 @@
4360
4347
  </xsl:for-each>
4361
4348
  </xsl:variable>
4362
4349
  <xsl:variable name="maxLength">
4363
- <!-- <xsl:for-each select="*[local-name()='dt']">
4364
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
4365
- <xsl:if test="position() = 1">
4366
- <xsl:value-of select="string-length(normalize-space(.))"/>
4367
- </xsl:if>
4368
- </xsl:for-each> -->
4369
4350
  <xsl:for-each select="xalan:nodeset($lengths)/length">
4370
4351
  <xsl:sort select="." data-type="number" order="descending"/>
4371
4352
  <xsl:if test="position() = 1">
@@ -4391,12 +4372,12 @@
4391
4372
  <xsl:if test="normalize-space($key_iso) = 'true'">
4392
4373
  <xsl:attribute name="margin-top">0</xsl:attribute>
4393
4374
  </xsl:if>
4394
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4375
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4395
4376
  </fo:block>
4396
4377
  </fo:table-cell>
4397
4378
  <fo:table-cell>
4398
4379
  <fo:block>
4399
- <xsl:apply-templates/>
4380
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4400
4381
  </fo:block>
4401
4382
  </fo:table-cell>
4402
4383
  </fo:table-row>
@@ -4407,81 +4388,41 @@
4407
4388
  </td>
4408
4389
  <td>
4409
4390
 
4410
-
4411
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4412
-
4391
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4392
+
4413
4393
  </td>
4414
4394
  </tr>
4415
4395
 
4416
4396
  </xsl:template><xsl:template match="*[local-name()='dt']">
4417
4397
  <xsl:param name="key_iso"/>
4418
4398
 
4419
- <fo:table-row>
4420
-
4421
-
4399
+ <fo:table-row xsl:use-attribute-sets="dt-row-style">
4422
4400
  <fo:table-cell>
4423
4401
 
4424
- <fo:block margin-top="6pt">
4402
+ <fo:block xsl:use-attribute-sets="dt-style">
4425
4403
  <xsl:copy-of select="@id"/>
4426
4404
 
4427
- <xsl:attribute name="margin-top">0pt</xsl:attribute>
4428
-
4429
-
4430
4405
  <xsl:if test="normalize-space($key_iso) = 'true'">
4431
4406
  <xsl:attribute name="margin-top">0</xsl:attribute>
4432
-
4433
4407
  </xsl:if>
4434
4408
 
4435
4409
 
4436
4410
 
4437
-
4438
-
4439
-
4440
-
4441
4411
  <xsl:apply-templates/>
4442
- <!-- <xsl:if test="$namespace = 'gb'">
4443
- <xsl:if test="ancestor::*[local-name()='formula']">
4444
- <xsl:text>—</xsl:text>
4445
- </xsl:if>
4446
- </xsl:if> -->
4447
4412
  </fo:block>
4448
4413
  </fo:table-cell>
4449
4414
  <fo:table-cell>
4450
4415
  <fo:block>
4451
4416
 
4452
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
4453
- <xsl:if test="local-name(*[1]) != 'stem'">
4454
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4455
- </xsl:if>
4456
- </xsl:if> -->
4457
-
4458
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4459
-
4417
+
4418
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4460
4419
  </fo:block>
4461
4420
  </fo:table-cell>
4462
4421
  </fo:table-row>
4463
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
4464
- <xsl:if test="local-name(*[1]) = 'stem'">
4465
- <fo:table-row>
4466
- <fo:table-cell>
4467
- <fo:block margin-top="6pt">
4468
- <xsl:if test="normalize-space($key_iso) = 'true'">
4469
- <xsl:attribute name="margin-top">0</xsl:attribute>
4470
- </xsl:if>
4471
- <xsl:text>&#xA0;</xsl:text>
4472
- </fo:block>
4473
- </fo:table-cell>
4474
- <fo:table-cell>
4475
- <fo:block>
4476
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4477
- </fo:block>
4478
- </fo:table-cell>
4479
- </fo:table-row>
4480
- </xsl:if>
4481
- </xsl:if> -->
4482
4422
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
4483
4423
  <xsl:apply-templates/>
4484
4424
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
4425
+ <xsl:apply-templates select="@language"/>
4485
4426
  <xsl:apply-templates/>
4486
4427
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
4487
4428
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
@@ -4506,6 +4447,7 @@
4506
4447
  </fo:inline>
4507
4448
  </xsl:template><xsl:template match="*[local-name()='tt']">
4508
4449
  <fo:inline xsl:use-attribute-sets="tt-style">
4450
+
4509
4451
  <xsl:variable name="_font-size">
4510
4452
 
4511
4453
 
@@ -4542,7 +4484,22 @@
4542
4484
  <xsl:apply-templates/>
4543
4485
  </fo:inline>
4544
4486
  </xsl:template><xsl:template match="*[local-name()='add']">
4487
+ <xsl:param name="skip">true</xsl:param>
4545
4488
  <xsl:choose>
4489
+ <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
4490
+ <xsl:choose>
4491
+ <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab'])) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
4492
+ <xsl:otherwise>
4493
+ <fo:inline>
4494
+ <xsl:call-template name="insertTag">
4495
+ <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
4496
+ <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
4497
+ <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
4498
+ </xsl:call-template>
4499
+ </fo:inline>
4500
+ </xsl:otherwise>
4501
+ </xsl:choose>
4502
+ </xsl:when>
4546
4503
  <xsl:when test="@amendment">
4547
4504
  <fo:inline>
4548
4505
  <xsl:call-template name="insertTag">
@@ -4577,7 +4534,6 @@
4577
4534
  </fo:inline>
4578
4535
  </xsl:otherwise>
4579
4536
  </xsl:choose>
4580
-
4581
4537
  </xsl:template><xsl:template name="insertTag">
4582
4538
  <xsl:param name="type"/>
4583
4539
  <xsl:param name="kind"/>
@@ -4585,22 +4541,20 @@
4585
4541
  <xsl:variable name="add_width" select="string-length($value) * 20"/>
4586
4542
  <xsl:variable name="maxwidth" select="60 + $add_width"/>
4587
4543
  <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
4588
- <!-- <xsl:attribute name="width">7mm</xsl:attribute>
4589
- <xsl:attribute name="content-height">100%</xsl:attribute> -->
4590
4544
  <xsl:attribute name="height">5mm</xsl:attribute>
4591
4545
  <xsl:attribute name="content-width">100%</xsl:attribute>
4592
4546
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
4593
4547
  <xsl:attribute name="scaling">uniform</xsl:attribute>
4594
4548
  <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
4595
4549
  <g>
4596
- <xsl:if test="$type = 'closing'">
4550
+ <xsl:if test="$type = 'closing' or $type = 'end'">
4597
4551
  <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
4598
4552
  </xsl:if>
4599
4553
  <polyline points="0,0 {$maxwidth},0 {$maxwidth + 30},40 {$maxwidth},80 0,80 " stroke="black" stroke-width="5" fill="white"/>
4600
4554
  <line x1="0" y1="0" x2="0" y2="80" stroke="black" stroke-width="20"/>
4601
4555
  </g>
4602
4556
  <text font-family="Arial" x="15" y="57" font-size="40pt">
4603
- <xsl:if test="$type = 'closing'">
4557
+ <xsl:if test="$type = 'closing' or $type = 'end'">
4604
4558
  <xsl:attribute name="x">25</xsl:attribute>
4605
4559
  </xsl:if>
4606
4560
  <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
@@ -4804,14 +4758,6 @@
4804
4758
 
4805
4759
  <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
4806
4760
 
4807
- <!-- <xsl:choose>
4808
- <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
4809
-
4810
- </xsl:when>
4811
- <xsl:otherwise>
4812
- <xsl:copy-of select="current()"/>
4813
- </xsl:otherwise>
4814
- </xsl:choose> -->
4815
4761
  </xsl:variable>
4816
4762
  <xsl:copy-of select="$simple-table"/>
4817
4763
  </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
@@ -4930,8 +4876,6 @@
4930
4876
  <xsl:choose>
4931
4877
  <xsl:when test="contains($str2, ' ')">
4932
4878
  <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
4933
- <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
4934
- <xsl:value-of select="substring($substr, 2)"/> -->
4935
4879
  <xsl:call-template name="capitalize">
4936
4880
  <xsl:with-param name="str" select="$substr"/>
4937
4881
  </xsl:call-template>
@@ -4941,8 +4885,6 @@
4941
4885
  </xsl:call-template>
4942
4886
  </xsl:when>
4943
4887
  <xsl:otherwise>
4944
- <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
4945
- <xsl:value-of select="substring($str2, 2)"/> -->
4946
4888
  <xsl:call-template name="capitalize">
4947
4889
  <xsl:with-param name="str" select="$str2"/>
4948
4890
  </xsl:call-template>
@@ -4970,6 +4912,7 @@
4970
4912
  <xsl:apply-templates select="." mode="mathml"/>
4971
4913
  </xsl:variable>
4972
4914
  <fo:instream-foreign-object fox:alt-text="Math">
4915
+
4973
4916
 
4974
4917
 
4975
4918
  <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
@@ -5008,7 +4951,7 @@
5008
4951
  <xsl:attribute name="scaling">uniform</xsl:attribute>
5009
4952
  </xsl:if>
5010
4953
 
5011
- <!-- <xsl:copy-of select="."/> -->
4954
+
5012
4955
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
5013
4956
  </fo:instream-foreign-object>
5014
4957
  </fo:inline>
@@ -5067,6 +5010,10 @@
5067
5010
 
5068
5011
 
5069
5012
 
5013
+
5014
+
5015
+
5016
+
5070
5017
  <xsl:choose>
5071
5018
  <xsl:when test="$target_text = ''">
5072
5019
  <xsl:apply-templates/>
@@ -5100,9 +5047,9 @@
5100
5047
  <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
5101
5048
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
5102
5049
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
5103
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
5050
+ <xsl:apply-templates select="*[local-name()='name']"/>
5104
5051
  </fo:block>
5105
- <xsl:apply-templates/>
5052
+ <xsl:apply-templates select="node()[not(local-name()='name')]"/>
5106
5053
  </xsl:template><xsl:template match="*[local-name() = 'callout']">
5107
5054
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
5108
5055
  </xsl:template><xsl:template match="*[local-name() = 'annotation']">
@@ -5124,7 +5071,6 @@
5124
5071
  </fo:inline>
5125
5072
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
5126
5073
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
5127
-
5128
5074
  <xsl:apply-templates/>
5129
5075
  </fo:basic-link>
5130
5076
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -5152,49 +5098,64 @@
5152
5098
  <fo:inline>
5153
5099
  <xsl:apply-templates/>
5154
5100
  </fo:inline>
5155
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
5101
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="formula_number"> <!-- show by demand -->
5156
5102
  <xsl:if test="normalize-space() != ''">
5157
5103
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
5158
5104
  </xsl:if>
5159
5105
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
5160
5106
 
5161
5107
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
5108
+
5109
+
5162
5110
 
5163
5111
 
5164
5112
 
5165
5113
 
5166
5114
 
5115
+
5116
+
5117
+
5118
+
5167
5119
  <fo:block-container margin-left="0mm">
5120
+
5168
5121
 
5169
5122
 
5170
5123
 
5124
+
5171
5125
 
5172
-
5173
-
5174
-
5175
-
5176
- <fo:block>
5177
-
5178
-
5179
-
5180
-
5181
-
5126
+ <fo:block>
5127
+
5128
+
5182
5129
 
5183
- <fo:inline xsl:use-attribute-sets="note-name-style">
5184
5130
 
5185
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5186
- </fo:inline>
5187
- <xsl:apply-templates/>
5188
- </fo:block>
5189
-
5190
-
5131
+
5132
+
5133
+
5134
+ <fo:inline xsl:use-attribute-sets="note-name-style">
5135
+
5136
+
5137
+
5138
+ <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
5139
+ <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
5140
+ <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
5141
+ <xsl:with-param name="skip">false</xsl:with-param>
5142
+ </xsl:apply-templates>
5143
+ </xsl:if>
5144
+
5145
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5146
+
5147
+ </fo:inline>
5148
+
5149
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5150
+ </fo:block>
5151
+
5191
5152
  </fo:block-container>
5192
5153
  </fo:block-container>
5193
5154
 
5194
5155
  </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
5195
5156
  <xsl:variable name="num"><xsl:number/></xsl:variable>
5196
5157
  <xsl:choose>
5197
- <xsl:when test="$num = 1">
5158
+ <xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
5198
5159
  <fo:inline xsl:use-attribute-sets="note-p-style">
5199
5160
  <xsl:apply-templates/>
5200
5161
  </fo:inline>
@@ -5209,12 +5170,16 @@
5209
5170
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
5210
5171
 
5211
5172
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
5173
+
5174
+
5175
+
5176
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5212
5177
 
5213
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5214
5178
  </fo:inline>
5215
- <xsl:apply-templates/>
5179
+
5180
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5216
5181
  </fo:block>
5217
- </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name'] | *[local-name() = 'termnote']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']" mode="presentation">
5182
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']">
5218
5183
  <xsl:param name="sfx"/>
5219
5184
  <xsl:variable name="suffix">
5220
5185
  <xsl:choose>
@@ -5231,7 +5196,7 @@
5231
5196
  <xsl:apply-templates/>
5232
5197
  <xsl:value-of select="$suffix"/>
5233
5198
  </xsl:if>
5234
- </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
5199
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']">
5235
5200
  <xsl:param name="sfx"/>
5236
5201
  <xsl:variable name="suffix">
5237
5202
  <xsl:choose>
@@ -5258,27 +5223,25 @@
5258
5223
  <xsl:apply-templates/>
5259
5224
  </fo:block>
5260
5225
  </xsl:template><xsl:template match="*[local-name() = 'term']">
5261
- <!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
5262
5226
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
5263
5227
 
5264
5228
 
5229
+
5230
+
5265
5231
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])">
5266
5232
 
5267
5233
  <xsl:attribute name="space-before">12pt</xsl:attribute>
5268
5234
 
5269
5235
  </xsl:if>
5270
- <xsl:apply-templates/>
5236
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5271
5237
  </fo:block>
5272
- </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
5238
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
5273
5239
  <xsl:if test="normalize-space() != ''">
5274
5240
  <xsl:variable name="level">
5275
5241
  <xsl:call-template name="getLevelTermName"/>
5276
5242
  </xsl:variable>
5277
5243
  <fo:inline role="H{$level}">
5278
5244
  <xsl:apply-templates/>
5279
- <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
5280
- <xsl:text>.</xsl:text>
5281
- </xsl:if> -->
5282
5245
  </fo:inline>
5283
5246
  </xsl:if>
5284
5247
  </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
@@ -5291,9 +5254,10 @@
5291
5254
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
5292
5255
  </xsl:call-template>
5293
5256
 
5294
- <fo:block>
5295
-
5296
- <xsl:apply-templates/>
5257
+
5258
+
5259
+ <fo:block xsl:use-attribute-sets="figure-style">
5260
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5297
5261
  </fo:block>
5298
5262
  <xsl:call-template name="fn_display_figure"/>
5299
5263
  <xsl:for-each select="*[local-name() = 'note']">
@@ -5301,14 +5265,15 @@
5301
5265
  </xsl:for-each>
5302
5266
 
5303
5267
 
5304
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5268
+ <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
5269
+
5305
5270
 
5306
5271
  </fo:block-container>
5307
5272
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
5308
5273
  <fo:block id="{@id}">
5309
- <xsl:apply-templates/>
5274
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5310
5275
  </fo:block>
5311
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5276
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5312
5277
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
5313
5278
  <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
5314
5279
  <xsl:apply-templates/>
@@ -5415,9 +5380,7 @@
5415
5380
  <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
5416
5381
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
5417
5382
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
5418
- <!-- width=<xsl:value-of select="$width"/> -->
5419
5383
  <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
5420
- <!-- height=<xsl:value-of select="$height"/> -->
5421
5384
  <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">
5422
5385
  <image xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
5423
5386
  <xsl:call-template name="svg_cross">
@@ -5687,7 +5650,7 @@
5687
5650
  </fo:basic-link>
5688
5651
  </fo:block>
5689
5652
  </fo:block-container>
5690
- </xsl:template><xsl:template match="*[local-name() = 'emf']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
5653
+ </xsl:template><xsl:template match="*[local-name() = 'emf']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
5691
5654
  <xsl:apply-templates mode="contents"/>
5692
5655
  <xsl:text> </xsl:text>
5693
5656
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name'] | *[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="bookmarks">
@@ -5699,11 +5662,58 @@
5699
5662
  <xsl:value-of select="."/>
5700
5663
  </xsl:template><xsl:template match="node()" mode="contents">
5701
5664
  <xsl:apply-templates mode="contents"/>
5665
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="2" mode="contents">
5666
+ <xsl:variable name="level">
5667
+ <xsl:call-template name="getLevel">
5668
+ <xsl:with-param name="depth" select="@depth"/>
5669
+ </xsl:call-template>
5670
+ </xsl:variable>
5671
+
5672
+ <xsl:variable name="section">
5673
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
5674
+ </xsl:variable>
5675
+
5676
+ <xsl:variable name="type">floating-title</xsl:variable>
5677
+
5678
+ <xsl:variable name="display">
5679
+ <xsl:choose>
5680
+ <xsl:when test="normalize-space(@id) = ''">false</xsl:when>
5681
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
5682
+ <xsl:otherwise>false</xsl:otherwise>
5683
+ </xsl:choose>
5684
+ </xsl:variable>
5685
+
5686
+ <xsl:variable name="skip">false</xsl:variable>
5687
+
5688
+ <xsl:if test="$skip = 'false'">
5689
+
5690
+ <xsl:variable name="title">
5691
+ <xsl:choose>
5692
+ <xsl:when test="*[local-name() = 'tab']">
5693
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
5694
+ </xsl:when>
5695
+ <xsl:otherwise>
5696
+ <xsl:copy-of select="node()"/>
5697
+ </xsl:otherwise>
5698
+ </xsl:choose>
5699
+ </xsl:variable>
5700
+
5701
+ <xsl:variable name="root">
5702
+ <xsl:if test="ancestor-or-self::*[local-name() = 'preface']">preface</xsl:if>
5703
+ <xsl:if test="ancestor-or-self::*[local-name() = 'annex']">annex</xsl:if>
5704
+ </xsl:variable>
5705
+
5706
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
5707
+ <title>
5708
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
5709
+ </title>
5710
+ </item>
5711
+ </xsl:if>
5702
5712
  </xsl:template><xsl:template match="node()" mode="bookmarks">
5703
5713
  <xsl:apply-templates mode="bookmarks"/>
5704
5714
  </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
5705
5715
  <xsl:apply-templates select="."/>
5706
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
5716
+ </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">
5707
5717
  <xsl:apply-templates mode="bookmarks"/>
5708
5718
  </xsl:template><xsl:template name="addBookmarks">
5709
5719
  <xsl:param name="contents"/>
@@ -5793,8 +5803,6 @@
5793
5803
 
5794
5804
 
5795
5805
 
5796
-
5797
-
5798
5806
  </fo:bookmark-tree>
5799
5807
  </xsl:if>
5800
5808
  </xsl:template><xsl:template name="insertFigureBookmarks">
@@ -5865,7 +5873,7 @@
5865
5873
  <xsl:apply-templates mode="bookmark"/>
5866
5874
  </xsl:otherwise>
5867
5875
  </xsl:choose>
5868
- </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
5876
+ </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']">
5869
5877
  <xsl:if test="normalize-space() != ''">
5870
5878
  <fo:block xsl:use-attribute-sets="figure-name-style">
5871
5879
 
@@ -5874,16 +5882,13 @@
5874
5882
  </fo:block>
5875
5883
  </xsl:if>
5876
5884
  </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">
5877
- <xsl:apply-templates mode="contents_item"/>
5885
+ <xsl:param name="mode">bookmarks</xsl:param>
5886
+ <xsl:apply-templates mode="contents_item">
5887
+ <xsl:with-param name="mode" select="$mode"/>
5888
+ </xsl:apply-templates>
5878
5889
  <!-- <xsl:text> </xsl:text> -->
5879
5890
  </xsl:template><xsl:template name="getSection">
5880
5891
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
5881
- <!--
5882
- <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
5883
- <xsl:value-of select="."/>
5884
- </xsl:for-each>
5885
- -->
5886
-
5887
5892
  </xsl:template><xsl:template name="getName">
5888
5893
  <xsl:choose>
5889
5894
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -5947,9 +5952,26 @@
5947
5952
  <xsl:copy-of select="."/>
5948
5953
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
5949
5954
  <xsl:text> </xsl:text>
5955
+ </xsl:template><xsl:template match="*[local-name() = 'name']" mode="contents_item">
5956
+ <xsl:param name="mode">bookmarks</xsl:param>
5957
+ <xsl:apply-templates mode="contents_item">
5958
+ <xsl:with-param name="mode" select="$mode"/>
5959
+ </xsl:apply-templates>
5960
+ </xsl:template><xsl:template match="*[local-name() = 'add']" mode="contents_item">
5961
+ <xsl:param name="mode">bookmarks</xsl:param>
5962
+ <xsl:choose>
5963
+ <xsl:when test="starts-with(text(), $ace_tag)">
5964
+ <xsl:if test="$mode = 'contents'">
5965
+ <xsl:copy>
5966
+ <xsl:apply-templates mode="contents_item"/>
5967
+ </xsl:copy>
5968
+ </xsl:if>
5969
+ </xsl:when>
5970
+ <xsl:otherwise><xsl:apply-templates mode="contents_item"/></xsl:otherwise>
5971
+ </xsl:choose>
5950
5972
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
5951
5973
 
5952
- <fo:block-container margin-left="0mm">
5974
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
5953
5975
  <xsl:copy-of select="@id"/>
5954
5976
 
5955
5977
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -5986,6 +6008,7 @@
5986
6008
 
5987
6009
 
5988
6010
  </xsl:variable>
6011
+
5989
6012
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
5990
6013
  <xsl:if test="$font-size != ''">
5991
6014
  <xsl:attribute name="font-size">
@@ -6002,11 +6025,11 @@
6002
6025
 
6003
6026
 
6004
6027
 
6005
- <xsl:apply-templates/>
6028
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6006
6029
  </fo:block>
6007
6030
 
6008
6031
 
6009
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6032
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
6010
6033
 
6011
6034
 
6012
6035
 
@@ -6020,7 +6043,7 @@
6020
6043
  <xsl:call-template name="add-zero-spaces-java">
6021
6044
  <xsl:with-param name="text" select="$text"/>
6022
6045
  </xsl:call-template>
6023
- </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
6046
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
6024
6047
  <xsl:if test="normalize-space() != ''">
6025
6048
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
6026
6049
  <xsl:apply-templates/>
@@ -6028,10 +6051,10 @@
6028
6051
  </xsl:if>
6029
6052
  </xsl:template><xsl:template match="*[local-name() = 'permission']">
6030
6053
  <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
6031
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6032
- <xsl:apply-templates/>
6054
+ <xsl:apply-templates select="*[local-name()='name']"/>
6055
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6033
6056
  </fo:block>
6034
- </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
6057
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']">
6035
6058
  <xsl:if test="normalize-space() != ''">
6036
6059
  <fo:block xsl:use-attribute-sets="permission-name-style">
6037
6060
  <xsl:apply-templates/>
@@ -6044,13 +6067,13 @@
6044
6067
  </fo:block>
6045
6068
  </xsl:template><xsl:template match="*[local-name() = 'requirement']">
6046
6069
  <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
6047
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6048
- <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
6049
- <xsl:apply-templates select="@obligation" mode="presentation"/>
6050
- <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
6051
- <xsl:apply-templates/>
6070
+ <xsl:apply-templates select="*[local-name()='name']"/>
6071
+ <xsl:apply-templates select="*[local-name()='label']"/>
6072
+ <xsl:apply-templates select="@obligation"/>
6073
+ <xsl:apply-templates select="*[local-name()='subject']"/>
6074
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'label') and not(local-name() = 'subject')]"/>
6052
6075
  </fo:block>
6053
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
6076
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']">
6054
6077
  <xsl:if test="normalize-space() != ''">
6055
6078
  <fo:block xsl:use-attribute-sets="requirement-name-style">
6056
6079
 
@@ -6058,20 +6081,24 @@
6058
6081
 
6059
6082
  </fo:block>
6060
6083
  </xsl:if>
6061
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
6084
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']">
6062
6085
  <fo:block xsl:use-attribute-sets="requirement-label-style">
6063
6086
  <xsl:apply-templates/>
6064
6087
  </fo:block>
6065
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
6088
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation">
6066
6089
  <fo:block>
6067
6090
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
6068
6091
  </fo:block>
6092
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2">
6093
+ <fo:block xsl:use-attribute-sets="subject-style">
6094
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
6095
+ </fo:block>
6069
6096
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
6070
6097
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
6071
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6072
- <xsl:apply-templates/>
6098
+ <xsl:apply-templates select="*[local-name()='name']"/>
6099
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6073
6100
  </fo:block>
6074
- </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
6101
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']">
6075
6102
  <xsl:if test="normalize-space() != ''">
6076
6103
  <fo:block xsl:use-attribute-sets="recommendation-name-style">
6077
6104
  <xsl:apply-templates/>
@@ -6082,10 +6109,6 @@
6082
6109
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
6083
6110
  <xsl:apply-templates/>
6084
6111
  </fo:block>
6085
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
6086
- <fo:block xsl:use-attribute-sets="subject-style">
6087
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
6088
- </fo:block>
6089
6112
  </xsl:template><xsl:template match="*[local-name() = 'subject']">
6090
6113
  <fo:block xsl:use-attribute-sets="subject-style">
6091
6114
  <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
@@ -6129,8 +6152,6 @@
6129
6152
  </xsl:variable>
6130
6153
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
6131
6154
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
6132
- <!-- <fo:table-column column-width="35mm"/>
6133
- <fo:table-column column-width="115mm"/> -->
6134
6155
  <fo:table-column column-width="30%"/>
6135
6156
  <fo:table-column column-width="70%"/>
6136
6157
  </xsl:if>
@@ -6140,7 +6161,7 @@
6140
6161
  <xsl:if test=".//*[local-name() = 'fn']">
6141
6162
  <xsl:for-each select="*[local-name() = 'tbody']">
6142
6163
  <fo:block font-size="90%" border-bottom="1pt solid black">
6143
- <xsl:call-template name="fn_display"/>
6164
+ <xsl:call-template name="table_fn_display"/>
6144
6165
  </fo:block>
6145
6166
  </xsl:for-each>
6146
6167
  </xsl:if>
@@ -6157,7 +6178,6 @@
6157
6178
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
6158
6179
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
6159
6180
  <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
6160
- <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
6161
6181
  <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
6162
6182
  </xsl:if>
6163
6183
  <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
@@ -6166,38 +6186,15 @@
6166
6186
  <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
6167
6187
  <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
6168
6188
  </xsl:if>
6169
- <xsl:apply-templates mode="requirement"/>
6170
- </fo:table-row>
6171
- </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
6172
- <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
6173
- <xsl:attribute name="text-align">
6174
- <xsl:choose>
6175
- <xsl:when test="@align">
6176
- <xsl:value-of select="@align"/>
6177
- </xsl:when>
6178
- <xsl:otherwise>left</xsl:otherwise>
6179
- </xsl:choose>
6180
- </xsl:attribute>
6181
- <xsl:if test="@colspan">
6182
- <xsl:attribute name="number-columns-spanned">
6183
- <xsl:value-of select="@colspan"/>
6184
- </xsl:attribute>
6185
- </xsl:if>
6186
- <xsl:if test="@rowspan">
6187
- <xsl:attribute name="number-rows-spanned">
6188
- <xsl:value-of select="@rowspan"/>
6189
- </xsl:attribute>
6190
- </xsl:if>
6191
- <xsl:call-template name="display-align"/>
6189
+ <xsl:apply-templates mode="requirement"/>
6190
+ </fo:table-row>
6191
+ </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
6192
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
6193
+ <xsl:call-template name="setTextAlignment">
6194
+ <xsl:with-param name="default">left</xsl:with-param>
6195
+ </xsl:call-template>
6192
6196
 
6193
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
6194
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6195
- <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
6196
- </xsl:if>
6197
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
6198
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6199
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
6200
- </xsl:if> -->
6197
+ <xsl:call-template name="setTableCellAttributes"/>
6201
6198
 
6202
6199
  <fo:block>
6203
6200
  <xsl:apply-templates/>
@@ -6209,37 +6206,15 @@
6209
6206
  <xsl:attribute name="padding">0mm</xsl:attribute>
6210
6207
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
6211
6208
  </xsl:if>
6212
- <xsl:attribute name="text-align">
6213
- <xsl:choose>
6214
- <xsl:when test="@align">
6215
- <xsl:value-of select="@align"/>
6216
- </xsl:when>
6217
- <xsl:otherwise>left</xsl:otherwise>
6218
- </xsl:choose>
6219
- </xsl:attribute>
6209
+ <xsl:call-template name="setTextAlignment">
6210
+ <xsl:with-param name="default">left</xsl:with-param>
6211
+ </xsl:call-template>
6212
+
6220
6213
  <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
6221
6214
  <xsl:attribute name="font-weight">bold</xsl:attribute>
6222
6215
  </xsl:if>
6223
- <xsl:if test="@colspan">
6224
- <xsl:attribute name="number-columns-spanned">
6225
- <xsl:value-of select="@colspan"/>
6226
- </xsl:attribute>
6227
- </xsl:if>
6228
- <xsl:if test="@rowspan">
6229
- <xsl:attribute name="number-rows-spanned">
6230
- <xsl:value-of select="@rowspan"/>
6231
- </xsl:attribute>
6232
- </xsl:if>
6233
- <xsl:call-template name="display-align"/>
6234
6216
 
6235
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
6236
- <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
6237
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6238
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
6239
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
6240
- </xsl:if>
6241
- </xsl:if> -->
6242
- <!-- 2nd line and below -->
6217
+ <xsl:call-template name="setTableCellAttributes"/>
6243
6218
 
6244
6219
  <fo:block>
6245
6220
  <xsl:apply-templates/>
@@ -6251,15 +6226,15 @@
6251
6226
  <xsl:apply-templates/>
6252
6227
  </fo:block>
6253
6228
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
6254
- <fo:block> <!-- margin-bottom="10pt" -->
6229
+ <fo:block>
6255
6230
  <xsl:apply-templates/>
6256
6231
  </fo:block>
6257
6232
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
6258
6233
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
6259
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6260
- <xsl:apply-templates/>
6234
+ <xsl:apply-templates select="*[local-name()='name']"/>
6235
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6261
6236
  </fo:block>
6262
- </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
6237
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
6263
6238
  <xsl:if test="normalize-space() != ''">
6264
6239
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
6265
6240
  <xsl:apply-templates/>
@@ -6283,42 +6258,46 @@
6283
6258
  <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
6284
6259
 
6285
6260
 
6286
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6287
-
6288
- <xsl:variable name="element">
6289
-
6261
+ <xsl:variable name="fo_element">
6262
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl']">block</xsl:if>
6290
6263
  inline
6291
- <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
6292
6264
  </xsl:variable>
6293
6265
 
6266
+ <!-- display 'EXAMPLE' -->
6267
+ <xsl:apply-templates select="*[local-name()='name']">
6268
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6269
+ </xsl:apply-templates>
6270
+
6294
6271
  <xsl:choose>
6295
- <xsl:when test="contains(normalize-space($element), 'block')">
6296
- <fo:block xsl:use-attribute-sets="example-body-style">
6297
- <xsl:apply-templates/>
6298
- </fo:block>
6272
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
6273
+ <fo:block-container xsl:use-attribute-sets="example-body-style">
6274
+ <fo:block-container margin-left="0mm" margin-right="0mm">
6275
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
6276
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6277
+ </xsl:apply-templates>
6278
+ </fo:block-container>
6279
+ </fo:block-container>
6299
6280
  </xsl:when>
6300
6281
  <xsl:otherwise>
6301
6282
  <fo:inline>
6302
- <xsl:apply-templates/>
6283
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
6284
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6285
+ </xsl:apply-templates>
6303
6286
  </fo:inline>
6304
6287
  </xsl:otherwise>
6305
6288
  </xsl:choose>
6306
6289
 
6307
6290
  </fo:block>
6308
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
6309
-
6310
- <xsl:variable name="element">
6311
-
6312
- inline
6313
- <xsl:if test="following-sibling::*[1][local-name() = 'table']">block</xsl:if>
6314
- </xsl:variable>
6291
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
6292
+ <xsl:param name="fo_element">block</xsl:param>
6293
+
6315
6294
  <xsl:choose>
6316
6295
  <xsl:when test="ancestor::*[local-name() = 'appendix']">
6317
6296
  <fo:inline>
6318
6297
  <xsl:apply-templates/>
6319
6298
  </fo:inline>
6320
6299
  </xsl:when>
6321
- <xsl:when test="contains(normalize-space($element), 'block')">
6300
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
6322
6301
  <fo:block xsl:use-attribute-sets="example-name-style">
6323
6302
  <xsl:apply-templates/>
6324
6303
  </fo:block>
@@ -6331,19 +6310,20 @@
6331
6310
  </xsl:choose>
6332
6311
 
6333
6312
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
6313
+ <xsl:param name="fo_element">block</xsl:param>
6314
+
6334
6315
  <xsl:variable name="num"><xsl:number/></xsl:variable>
6335
6316
  <xsl:variable name="element">
6336
6317
 
6337
-
6338
6318
  <xsl:choose>
6339
6319
  <xsl:when test="$num = 1">inline</xsl:when>
6340
6320
  <xsl:otherwise>block</xsl:otherwise>
6341
6321
  </xsl:choose>
6342
6322
 
6343
-
6323
+ <xsl:value-of select="$fo_element"/>
6344
6324
  </xsl:variable>
6345
6325
  <xsl:choose>
6346
- <xsl:when test="normalize-space($element) = 'block'">
6326
+ <xsl:when test="starts-with(normalize-space($element), 'block')">
6347
6327
  <fo:block xsl:use-attribute-sets="example-p-style">
6348
6328
 
6349
6329
  <xsl:apply-templates/>
@@ -6358,6 +6338,8 @@
6358
6338
  </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
6359
6339
  <fo:block xsl:use-attribute-sets="termsource-style">
6360
6340
 
6341
+
6342
+
6361
6343
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
6362
6344
  <xsl:variable name="termsource_text">
6363
6345
  <xsl:apply-templates/>
@@ -6395,9 +6377,7 @@
6395
6377
  <xsl:value-of select="."/>
6396
6378
  </xsl:if>
6397
6379
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/*[local-name() = 'strong'][1][following-sibling::*[1][local-name() = 'origin']]/text()">
6398
- <fo:inline>
6399
-
6400
-
6380
+ <fo:inline xsl:use-attribute-sets="termsource-text-style">
6401
6381
  <xsl:value-of select="."/>
6402
6382
  </fo:inline>
6403
6383
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
@@ -6411,12 +6391,9 @@
6411
6391
  </fo:basic-link>
6412
6392
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
6413
6393
  <xsl:variable name="title-modified">
6414
-
6415
- <xsl:call-template name="getLocalizedString">
6416
- <xsl:with-param name="key">modified</xsl:with-param>
6417
- </xsl:call-template>
6418
-
6419
-
6394
+ <xsl:call-template name="getLocalizedString">
6395
+ <xsl:with-param name="key">modified</xsl:with-param>
6396
+ </xsl:call-template>
6420
6397
  </xsl:variable>
6421
6398
 
6422
6399
  <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
@@ -6443,7 +6420,6 @@
6443
6420
  <fo:block-container margin-left="0mm">
6444
6421
 
6445
6422
  <fo:block xsl:use-attribute-sets="quote-style">
6446
- <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
6447
6423
 
6448
6424
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
6449
6425
  </fo:block>
@@ -6486,15 +6462,13 @@
6486
6462
  </xsl:variable>
6487
6463
 
6488
6464
  <xsl:choose>
6489
- <xsl:when test="normalize-space($bibitemid) != ''">
6465
+ <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
6490
6466
  <fo:inline xsl:use-attribute-sets="eref-style">
6491
6467
  <xsl:if test="@type = 'footnote'">
6492
-
6493
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6494
- <xsl:attribute name="font-size">80%</xsl:attribute>
6495
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
6496
- <xsl:attribute name="vertical-align">super</xsl:attribute>
6497
-
6468
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6469
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
6470
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
6471
+ <xsl:attribute name="font-size">80%</xsl:attribute>
6498
6472
 
6499
6473
  </xsl:if>
6500
6474
 
@@ -6511,7 +6485,6 @@
6511
6485
 
6512
6486
 
6513
6487
 
6514
-
6515
6488
  </xsl:if>
6516
6489
 
6517
6490
 
@@ -6569,8 +6542,6 @@
6569
6542
  </xsl:choose>
6570
6543
  </xsl:variable>
6571
6544
 
6572
- <!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
6573
-
6574
6545
  <xsl:choose>
6575
6546
  <xsl:when test="$lang = 'zh'">
6576
6547
  <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
@@ -6605,12 +6576,9 @@
6605
6576
  </fo:block>
6606
6577
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
6607
6578
  <xsl:variable name="title-deprecated">
6608
-
6609
- <xsl:call-template name="getLocalizedString">
6610
- <xsl:with-param name="key">deprecated</xsl:with-param>
6611
- </xsl:call-template>
6612
-
6613
-
6579
+ <xsl:call-template name="getLocalizedString">
6580
+ <xsl:with-param name="key">deprecated</xsl:with-param>
6581
+ </xsl:call-template>
6614
6582
  </xsl:variable>
6615
6583
  <fo:block xsl:use-attribute-sets="deprecates-style">
6616
6584
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -6619,6 +6587,8 @@
6619
6587
  <xsl:if test="*[local-name() = 'strong']">
6620
6588
  <xsl:attribute name="font-weight">normal</xsl:attribute>
6621
6589
  </xsl:if>
6590
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']/text()[contains(., ';')] | *[local-name() = 'preferred']/*[local-name() = 'strong']/text()[contains(., ';')]">
6591
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), ';', $linebreak)"/>
6622
6592
  </xsl:template><xsl:template match="*[local-name() = 'definition']">
6623
6593
  <fo:block xsl:use-attribute-sets="definition-style">
6624
6594
  <xsl:apply-templates/>
@@ -6627,7 +6597,6 @@
6627
6597
  <xsl:apply-templates/>
6628
6598
  </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p'][1]">
6629
6599
  <fo:inline> <xsl:apply-templates/></fo:inline>
6630
- <!-- <fo:block>&#xA0;</fo:block> -->
6631
6600
  <fo:block/>
6632
6601
  </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
6633
6602
 
@@ -6668,11 +6637,6 @@
6668
6637
  <xsl:apply-templates/>
6669
6638
  </fo:block>
6670
6639
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
6671
- <fo:block id="{@id}">
6672
- <xsl:apply-templates/>
6673
- </fo:block>
6674
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
6675
-
6676
6640
  <fo:block id="{@id}">
6677
6641
  <xsl:apply-templates/>
6678
6642
  </fo:block>
@@ -6689,6 +6653,51 @@
6689
6653
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
6690
6654
  <!-- 0xA0 to space replacement -->
6691
6655
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
6656
+ </xsl:template><xsl:variable name="ul_labels_">
6657
+
6658
+
6659
+
6660
+
6661
+
6662
+
6663
+
6664
+ <label>—</label> <!-- em dash -->
6665
+
6666
+
6667
+
6668
+
6669
+
6670
+
6671
+
6672
+
6673
+
6674
+
6675
+
6676
+ </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
6677
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
6678
+ <xsl:variable name="list_level">
6679
+ <xsl:choose>
6680
+ <xsl:when test="$list_level_ &lt;= 3"><xsl:value-of select="$list_level_"/></xsl:when>
6681
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 3"/></xsl:otherwise>
6682
+ </xsl:choose>
6683
+ </xsl:variable>
6684
+ <xsl:choose>
6685
+ <xsl:when test="$ul_labels/label[not(@level)]"> <!-- one label for all levels -->
6686
+ <xsl:apply-templates select="$ul_labels/label[not(@level)]" mode="ul_labels"/>
6687
+ </xsl:when>
6688
+ <xsl:when test="$list_level mod 3 = 0">
6689
+ <xsl:apply-templates select="$ul_labels/label[@level = 3]" mode="ul_labels"/>
6690
+ </xsl:when>
6691
+ <xsl:when test="$list_level mod 2 = 0">
6692
+ <xsl:apply-templates select="$ul_labels/label[@level = 2]" mode="ul_labels"/>
6693
+ </xsl:when>
6694
+ <xsl:otherwise>
6695
+ <xsl:apply-templates select="$ul_labels/label[@level = 1]" mode="ul_labels"/>
6696
+ </xsl:otherwise>
6697
+ </xsl:choose>
6698
+ </xsl:template><xsl:template match="label" mode="ul_labels">
6699
+ <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
6700
+ <xsl:value-of select="."/>
6692
6701
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
6693
6702
  <xsl:choose>
6694
6703
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -6895,46 +6904,102 @@
6895
6904
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
6896
6905
  <fo:block><xsl:apply-templates/></fo:block>
6897
6906
  </fo:table-cell>
6898
- </xsl:template><xsl:template name="processBibitem">
6907
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][starts-with(@id, 'hidden_bibitem_')]" priority="3"/><xsl:template match="*[local-name() = 'references'][@normative='true']" priority="2">
6908
+
6909
+
6910
+
6911
+ <fo:block id="{@id}">
6912
+ <xsl:apply-templates/>
6913
+ </fo:block>
6914
+ </xsl:template><xsl:template match="*[local-name() = 'references']">
6915
+ <xsl:if test="not(ancestor::*[local-name() = 'annex'])">
6916
+
6917
+ <fo:block break-after="page"/>
6918
+
6919
+ </xsl:if>
6899
6920
 
6921
+ <!-- <xsl:if test="ancestor::*[local-name() = 'annex']">
6922
+ <xsl:if test="$namespace = 'csa' or $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'itu'">
6923
+ <fo:block break-after="page"/>
6924
+ </xsl:if>
6925
+ </xsl:if> -->
6900
6926
 
6927
+ <fo:block id="{@id}" xsl:use-attribute-sets="references-non-normative-style">
6928
+ <xsl:apply-templates/>
6929
+ </fo:block>
6901
6930
 
6902
-
6903
6931
 
6904
6932
 
6905
-
6906
6933
 
6934
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']">
6935
+ <xsl:call-template name="bibitem"/>
6936
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
6907
6937
 
6908
- <!-- start ISO bibtem processing -->
6909
- <xsl:variable name="docidentifier">
6910
- <xsl:if test="*[local-name() = 'docidentifier']">
6911
- <xsl:choose>
6912
- <xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
6913
- <xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier']"/></xsl:otherwise>
6914
- </xsl:choose>
6915
- </xsl:if>
6916
- </xsl:variable>
6917
- <xsl:value-of select="$docidentifier"/>
6918
- <xsl:apply-templates select="*[local-name() = 'note']"/>
6919
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
6920
- <xsl:choose>
6921
- <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $lang]">
6922
- <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $lang]"/>
6923
- </xsl:when>
6924
- <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
6925
- <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
6926
- </xsl:when>
6927
- <xsl:otherwise>
6928
- <xsl:apply-templates select="*[local-name() = 'title']"/>
6929
- </xsl:otherwise>
6930
- </xsl:choose>
6931
- <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
6932
- <!-- end ISO bibitem processing -->
6938
+ <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
6939
+ <xsl:call-template name="processBibitem"/>
6940
+ </fo:block>
6941
+
6942
+
6943
+ </xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" priority="2">
6944
+
6945
+ <!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
6946
+ $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
6947
+ <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
6948
+ <fo:list-block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-style">
6949
+ <fo:list-item>
6950
+ <fo:list-item-label end-indent="label-end()">
6951
+ <fo:block>
6952
+ <fo:inline>
6953
+
6954
+ <xsl:value-of select="*[local-name()='docidentifier'][@type = 'metanorma-ordinal']"/>
6955
+ <xsl:if test="not(*[local-name()='docidentifier'][@type = 'metanorma-ordinal'])">
6956
+ <xsl:number format="[1]"/>
6957
+ </xsl:if>
6958
+
6959
+ </fo:inline>
6960
+ </fo:block>
6961
+ </fo:list-item-label>
6962
+ <fo:list-item-body start-indent="body-start()">
6963
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style">
6964
+ <xsl:call-template name="processBibitem"/>
6965
+ </fo:block>
6966
+ </fo:list-item-body>
6967
+ </fo:list-item>
6968
+ </fo:list-block>
6969
+
6933
6970
 
6971
+ </xsl:template><xsl:template name="processBibitem">
6934
6972
 
6935
6973
 
6974
+ <!-- start bibitem processing -->
6975
+ <xsl:if test=".//*[local-name() = 'fn']">
6976
+ <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
6977
+ </xsl:if>
6978
+ <xsl:variable name="docidentifier">
6979
+ <xsl:choose>
6980
+ <xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
6981
+ <xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma-ordinal')]"/></xsl:otherwise>
6982
+ </xsl:choose>
6983
+ </xsl:variable>
6984
+ <fo:inline><xsl:value-of select="$docidentifier"/></fo:inline>
6985
+ <xsl:apply-templates select="*[local-name() = 'note']"/>
6986
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
6987
+ <xsl:choose>
6988
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $lang]">
6989
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $lang]"/>
6990
+ </xsl:when>
6991
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
6992
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
6993
+ </xsl:when>
6994
+ <xsl:otherwise>
6995
+ <xsl:apply-templates select="*[local-name() = 'title']"/>
6996
+ </xsl:otherwise>
6997
+ </xsl:choose>
6998
+ <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
6999
+ <!-- end bibitem processing -->
7000
+
6936
7001
  </xsl:template><xsl:template name="processBibitemDocId">
6937
- <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')]"/>
7002
+ <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')]"/>
6938
7003
  <xsl:choose>
6939
7004
  <xsl:when test="normalize-space($_doc_ident) != ''">
6940
7005
  <!-- <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"/>
@@ -6948,7 +7013,7 @@
6948
7013
  <xsl:if test="$type != ''">
6949
7014
  <xsl:value-of select="$type"/><xsl:text> </xsl:text>
6950
7015
  </xsl:if> -->
6951
- <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
7016
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma') and not(@type = 'metanorma-ordinal')]"/>
6952
7017
  </xsl:otherwise>
6953
7018
  </xsl:choose>
6954
7019
  </xsl:template><xsl:template name="processPersonalAuthor">
@@ -6989,6 +7054,52 @@
6989
7054
  <xsl:value-of select="substring(.,1,1)"/>
6990
7055
  </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
6991
7056
  <fo:inline><xsl:apply-templates/></fo:inline>
7057
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'title']" priority="2">
7058
+ <!-- <fo:inline><xsl:apply-templates /></fo:inline> -->
7059
+ <fo:inline font-style="italic"> <!-- BIPM BSI CSD CSA GB IEC IHO ISO ITU JCGM -->
7060
+ <xsl:apply-templates/>
7061
+ </fo:inline>
7062
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
7063
+ <fo:footnote>
7064
+ <xsl:variable name="number">
7065
+
7066
+ <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
7067
+
7068
+ </xsl:variable>
7069
+ <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
7070
+ <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
7071
+ <xsl:value-of select="$number"/>
7072
+
7073
+ <xsl:text>)</xsl:text>
7074
+
7075
+ </fo:basic-link>
7076
+ </fo:inline>
7077
+ <fo:footnote-body>
7078
+ <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
7079
+ <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
7080
+ <xsl:value-of select="$number"/>
7081
+
7082
+ <xsl:text>)</xsl:text>
7083
+
7084
+ </fo:inline>
7085
+ <xsl:apply-templates/>
7086
+ </fo:block>
7087
+ </fo:footnote-body>
7088
+ </fo:footnote>
7089
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'edition']"> <!-- for iho -->
7090
+ <xsl:text> edition </xsl:text>
7091
+ <xsl:value-of select="."/>
7092
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'uri']"> <!-- for iho -->
7093
+ <xsl:text> (</xsl:text>
7094
+ <fo:inline xsl:use-attribute-sets="link-style">
7095
+ <fo:basic-link external-destination="." fox:alt-text=".">
7096
+ <xsl:value-of select="."/>
7097
+ </fo:basic-link>
7098
+ </fo:inline>
7099
+ <xsl:text>)</xsl:text>
7100
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'docidentifier']"/><xsl:template match="*[local-name() = 'formattedref']">
7101
+
7102
+ <xsl:apply-templates/>
6992
7103
  </xsl:template><xsl:template match="*[local-name() = 'form']">
6993
7104
  <fo:block>
6994
7105
  <xsl:apply-templates/>
@@ -7054,27 +7165,14 @@
7054
7165
  <fo:block> </fo:block>
7055
7166
  </fo:block-container>
7056
7167
  </xsl:template><xsl:variable name="toc_level">
7168
+ <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
7169
+ <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:-->
7170
+ <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 -->
7057
7171
  <xsl:choose>
7058
- <xsl:when test="1 = 2"/> <!-- to do https://github.com/metanorma/mn-native-pdf/issues/337: if there is value in xml -->
7172
+ <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
7173
+ <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
7059
7174
  <xsl:otherwise><!-- default value -->
7060
-
7061
-
7062
-
7063
-
7064
-
7065
-
7066
-
7067
-
7068
-
7069
-
7070
-
7071
-
7072
-
7073
-
7074
-
7075
-
7076
-
7077
-
7175
+ 3
7078
7176
  </xsl:otherwise>
7079
7177
  </xsl:choose>
7080
7178
  </xsl:variable><xsl:template match="*[local-name() = 'toc']">
@@ -7157,7 +7255,7 @@
7157
7255
  </td>
7158
7256
  </xsl:for-each>
7159
7257
  <td>333</td> <!-- page number, just for fill -->
7160
- </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
7258
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
7161
7259
  <fo:inline padding-right="5mm"> </fo:inline>
7162
7260
  <fo:inline><xsl:apply-templates/></fo:inline>
7163
7261
  </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
@@ -7168,6 +7266,55 @@
7168
7266
  </svg>
7169
7267
  </fo:instream-foreign-object>
7170
7268
  </fo:inline>
7269
+ </xsl:template><xsl:template match="@language">
7270
+ <xsl:copy-of select="."/>
7271
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
7272
+ <xsl:call-template name="title"/>
7273
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']">
7274
+
7275
+
7276
+
7277
+
7278
+
7279
+
7280
+ <fo:block xsl:use-attribute-sets="admonition-style">
7281
+
7282
+
7283
+
7284
+
7285
+
7286
+
7287
+ <xsl:call-template name="displayAdmonitionName"/>
7288
+ <xsl:text> — </xsl:text>
7289
+
7290
+
7291
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
7292
+ </fo:block>
7293
+
7294
+ </xsl:template><xsl:template name="displayAdmonitionName">
7295
+
7296
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
7297
+ <xsl:if test="not(*[local-name() = 'name'])">
7298
+ <xsl:apply-templates select="@type"/>
7299
+ </xsl:if>
7300
+
7301
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'name']">
7302
+ <xsl:apply-templates/>
7303
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/@type">
7304
+ <xsl:variable name="admonition_type_">
7305
+ <xsl:call-template name="getLocalizedString">
7306
+ <xsl:with-param name="key">admonition.<xsl:value-of select="."/></xsl:with-param>
7307
+ </xsl:call-template>
7308
+ </xsl:variable>
7309
+ <xsl:variable name="admonition_type" select="normalize-space(java:toUpperCase(java:java.lang.String.new($admonition_type_)))"/>
7310
+ <xsl:value-of select="$admonition_type"/>
7311
+ <xsl:if test="$admonition_type = ''">
7312
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
7313
+ </xsl:if>
7314
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'p']">
7315
+ <!-- processing for admonition/p found in the template for 'p' -->
7316
+ <xsl:call-template name="paragraph"/>
7317
+
7171
7318
  </xsl:template><xsl:template name="convertDate">
7172
7319
  <xsl:param name="date"/>
7173
7320
  <xsl:param name="format" select="'short'"/>
@@ -7176,78 +7323,39 @@
7176
7323
  <xsl:variable name="day" select="substring($date, 9, 2)"/>
7177
7324
  <xsl:variable name="monthStr">
7178
7325
  <xsl:choose>
7179
- <xsl:when test="$month = '01'">January</xsl:when>
7180
- <xsl:when test="$month = '02'">February</xsl:when>
7181
- <xsl:when test="$month = '03'">March</xsl:when>
7182
- <xsl:when test="$month = '04'">April</xsl:when>
7183
- <xsl:when test="$month = '05'">May</xsl:when>
7184
- <xsl:when test="$month = '06'">June</xsl:when>
7185
- <xsl:when test="$month = '07'">July</xsl:when>
7186
- <xsl:when test="$month = '08'">August</xsl:when>
7187
- <xsl:when test="$month = '09'">September</xsl:when>
7188
- <xsl:when test="$month = '10'">October</xsl:when>
7189
- <xsl:when test="$month = '11'">November</xsl:when>
7190
- <xsl:when test="$month = '12'">December</xsl:when>
7191
- </xsl:choose>
7192
- </xsl:variable>
7193
- <xsl:variable name="result">
7194
- <xsl:choose>
7195
- <xsl:when test="$format = 'ddMMyyyy'">
7196
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7197
- <xsl:text> </xsl:text>
7198
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7199
- </xsl:when>
7200
- <xsl:when test="$format = 'ddMM'">
7201
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7202
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7203
- </xsl:when>
7204
- <xsl:when test="$format = 'short' or $day = ''">
7205
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
7206
- </xsl:when>
7207
- <xsl:otherwise>
7208
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
7209
- </xsl:otherwise>
7326
+ <xsl:when test="$month = '01'">january</xsl:when>
7327
+ <xsl:when test="$month = '02'">february</xsl:when>
7328
+ <xsl:when test="$month = '03'">march</xsl:when>
7329
+ <xsl:when test="$month = '04'">april</xsl:when>
7330
+ <xsl:when test="$month = '05'">may</xsl:when>
7331
+ <xsl:when test="$month = '06'">june</xsl:when>
7332
+ <xsl:when test="$month = '07'">july</xsl:when>
7333
+ <xsl:when test="$month = '08'">august</xsl:when>
7334
+ <xsl:when test="$month = '09'">september</xsl:when>
7335
+ <xsl:when test="$month = '10'">october</xsl:when>
7336
+ <xsl:when test="$month = '11'">november</xsl:when>
7337
+ <xsl:when test="$month = '12'">december</xsl:when>
7210
7338
  </xsl:choose>
7211
7339
  </xsl:variable>
7212
- <xsl:value-of select="$result"/>
7213
- </xsl:template><xsl:template name="convertDateLocalized">
7214
- <xsl:param name="date"/>
7215
- <xsl:param name="format" select="'short'"/>
7216
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
7217
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
7218
- <xsl:variable name="day" select="substring($date, 9, 2)"/>
7219
- <xsl:variable name="monthStr">
7220
- <xsl:choose>
7221
- <xsl:when test="$month = '01'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_january</xsl:with-param></xsl:call-template></xsl:when>
7222
- <xsl:when test="$month = '02'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_february</xsl:with-param></xsl:call-template></xsl:when>
7223
- <xsl:when test="$month = '03'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_march</xsl:with-param></xsl:call-template></xsl:when>
7224
- <xsl:when test="$month = '04'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_april</xsl:with-param></xsl:call-template></xsl:when>
7225
- <xsl:when test="$month = '05'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_may</xsl:with-param></xsl:call-template></xsl:when>
7226
- <xsl:when test="$month = '06'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_june</xsl:with-param></xsl:call-template></xsl:when>
7227
- <xsl:when test="$month = '07'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_july</xsl:with-param></xsl:call-template></xsl:when>
7228
- <xsl:when test="$month = '08'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_august</xsl:with-param></xsl:call-template></xsl:when>
7229
- <xsl:when test="$month = '09'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_september</xsl:with-param></xsl:call-template></xsl:when>
7230
- <xsl:when test="$month = '10'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_october</xsl:with-param></xsl:call-template></xsl:when>
7231
- <xsl:when test="$month = '11'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_november</xsl:with-param></xsl:call-template></xsl:when>
7232
- <xsl:when test="$month = '12'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_december</xsl:with-param></xsl:call-template></xsl:when>
7233
- </xsl:choose>
7340
+ <xsl:variable name="monthStr_localized">
7341
+ <xsl:if test="normalize-space($monthStr) != ''"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_<xsl:value-of select="$monthStr"/></xsl:with-param></xsl:call-template></xsl:if>
7234
7342
  </xsl:variable>
7235
7343
  <xsl:variable name="result">
7236
7344
  <xsl:choose>
7237
7345
  <xsl:when test="$format = 'ddMMyyyy'">
7238
7346
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7239
7347
  <xsl:text> </xsl:text>
7240
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7348
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ' , $year))"/>
7241
7349
  </xsl:when>
7242
7350
  <xsl:when test="$format = 'ddMM'">
7243
7351
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7244
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7352
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr_localized"/>
7245
7353
  </xsl:when>
7246
7354
  <xsl:when test="$format = 'short' or $day = ''">
7247
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
7355
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $year))"/>
7248
7356
  </xsl:when>
7249
7357
  <xsl:otherwise>
7250
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
7358
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $day, ', ' , $year))"/>
7251
7359
  </xsl:otherwise>
7252
7360
  </xsl:choose>
7253
7361
  </xsl:variable>
@@ -7300,13 +7408,8 @@
7300
7408
  <xsl:variable name="title">
7301
7409
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7302
7410
 
7303
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
7304
-
7305
-
7306
-
7307
-
7308
-
7309
-
7411
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
7412
+
7310
7413
  </xsl:for-each>
7311
7414
  </xsl:variable>
7312
7415
  <xsl:choose>
@@ -7321,21 +7424,18 @@
7321
7424
  <dc:creator>
7322
7425
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7323
7426
 
7324
- <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
7325
- <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
7326
- <xsl:if test="position() != last()">; </xsl:if>
7327
- </xsl:for-each>
7328
-
7329
-
7330
-
7427
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
7428
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
7429
+ <xsl:if test="position() != last()">; </xsl:if>
7430
+ </xsl:for-each>
7431
+
7331
7432
  </xsl:for-each>
7332
7433
  </dc:creator>
7333
7434
  <dc:description>
7334
7435
  <xsl:variable name="abstract">
7335
7436
 
7336
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
7337
-
7338
-
7437
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
7438
+
7339
7439
  </xsl:variable>
7340
7440
  <xsl:value-of select="normalize-space($abstract)"/>
7341
7441
  </dc:description>
@@ -7355,7 +7455,6 @@
7355
7455
  <xsl:value-of select="../@id"/>
7356
7456
  </xsl:when>
7357
7457
  <xsl:otherwise>
7358
- <!-- <xsl:value-of select="concat(local-name(..), '_', text())"/> -->
7359
7458
  <xsl:value-of select="concat(generate-id(..), '_', text())"/>
7360
7459
  </xsl:otherwise>
7361
7460
  </xsl:choose>
@@ -7381,9 +7480,6 @@
7381
7480
  <xsl:when test="ancestor::*[local-name() = 'preface']">
7382
7481
  <xsl:value-of select="$level_total - 2"/>
7383
7482
  </xsl:when>
7384
- <!-- <xsl:when test="parent::*[local-name() = 'sections']">
7385
- <xsl:value-of select="$level_total - 1"/>
7386
- </xsl:when> -->
7387
7483
  <xsl:when test="ancestor::*[local-name() = 'sections']">
7388
7484
  <xsl:value-of select="$level_total - 1"/>
7389
7485
  </xsl:when>
@@ -7525,9 +7621,15 @@
7525
7621
  </xsl:template><xsl:template name="getLocalizedString">
7526
7622
  <xsl:param name="key"/>
7527
7623
  <xsl:param name="formatted">false</xsl:param>
7624
+ <xsl:param name="lang"/>
7528
7625
 
7529
7626
  <xsl:variable name="curr_lang">
7530
- <xsl:call-template name="getLang"/>
7627
+ <xsl:choose>
7628
+ <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
7629
+ <xsl:otherwise>
7630
+ <xsl:call-template name="getLang"/>
7631
+ </xsl:otherwise>
7632
+ </xsl:choose>
7531
7633
  </xsl:variable>
7532
7634
 
7533
7635
  <xsl:variable name="data_value">
@@ -7567,7 +7669,6 @@
7567
7669
  <xsl:value-of select="$key_"/>
7568
7670
  </xsl:otherwise>
7569
7671
  </xsl:choose>
7570
-
7571
7672
  </xsl:template><xsl:template name="setTrackChangesStyles">
7572
7673
  <xsl:param name="isAdded"/>
7573
7674
  <xsl:param name="isDeleted"/>
@@ -7590,7 +7691,6 @@
7590
7691
  <xsl:if test="local-name() = 'table'">
7591
7692
  <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
7592
7693
  </xsl:if>
7593
- <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
7594
7694
  <xsl:attribute name="padding">2mm</xsl:attribute>
7595
7695
  </xsl:if>
7596
7696
  </xsl:otherwise>
@@ -7610,15 +7710,18 @@
7610
7710
  </xsl:choose>
7611
7711
  </xsl:template><xsl:template name="setTextAlignment">
7612
7712
  <xsl:param name="default">left</xsl:param>
7713
+ <xsl:variable name="align" select="normalize-space(@align)"/>
7613
7714
  <xsl:attribute name="text-align">
7614
7715
  <xsl:choose>
7615
- <xsl:when test="@align and not(@align = 'indent')"><xsl:value-of select="@align"/></xsl:when>
7716
+ <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
7717
+ <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
7718
+ <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
7616
7719
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
7617
7720
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
7618
7721
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
7619
7722
  </xsl:choose>
7620
7723
  </xsl:attribute>
7621
- <xsl:if test="@align = 'indent'">
7724
+ <xsl:if test="$align = 'indent'">
7622
7725
  <xsl:attribute name="margin-left">7mm</xsl:attribute>
7623
7726
  </xsl:if>
7624
7727
  </xsl:template><xsl:template name="number-to-words">