metanorma-iso 1.10.5 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +3 -33
  3. data/.gitignore +26 -0
  4. data/Makefile +1 -1
  5. data/lib/asciidoctor/iso/base.rb +2 -69
  6. data/lib/asciidoctor/iso/cleanup.rb +2 -175
  7. data/lib/asciidoctor/iso/converter.rb +2 -17
  8. data/lib/asciidoctor/iso/deprecated.rb +5 -0
  9. data/lib/asciidoctor/iso/front.rb +2 -169
  10. data/lib/asciidoctor/iso/front_id.rb +2 -224
  11. data/lib/asciidoctor/iso/section.rb +2 -48
  12. data/lib/asciidoctor/iso/validate.rb +2 -171
  13. data/lib/asciidoctor/iso/validate_image.rb +2 -96
  14. data/lib/asciidoctor/iso/validate_requirements.rb +2 -110
  15. data/lib/asciidoctor/iso/validate_section.rb +2 -246
  16. data/lib/asciidoctor/iso/validate_style.rb +2 -169
  17. data/lib/asciidoctor/iso/validate_title.rb +2 -104
  18. data/lib/isodoc/iso/html/style-human.css +19 -14
  19. data/lib/isodoc/iso/html/style-human.scss +8 -2
  20. data/lib/isodoc/iso/html/style-iso.css +21 -15
  21. data/lib/isodoc/iso/html/style-iso.scss +9 -2
  22. data/lib/isodoc/iso/html_convert.rb +6 -4
  23. data/lib/isodoc/iso/iso.amendment.xsl +1449 -1222
  24. data/lib/isodoc/iso/iso.international-standard.xsl +1449 -1222
  25. data/lib/isodoc/iso/word_convert.rb +2 -0
  26. data/lib/metanorma/iso/base.rb +70 -0
  27. data/lib/{asciidoctor → metanorma}/iso/basicdoc.rng +0 -0
  28. data/lib/{asciidoctor → metanorma}/iso/biblio.rng +2 -2
  29. data/lib/{asciidoctor → metanorma}/iso/boilerplate-fr.xml +0 -0
  30. data/lib/{asciidoctor → metanorma}/iso/boilerplate.xml +0 -0
  31. data/lib/metanorma/iso/cleanup.rb +176 -0
  32. data/lib/metanorma/iso/converter.rb +18 -0
  33. data/lib/metanorma/iso/front.rb +170 -0
  34. data/lib/metanorma/iso/front_id.rb +225 -0
  35. data/lib/{asciidoctor → metanorma}/iso/isodoc.rng +98 -1
  36. data/lib/{asciidoctor → metanorma}/iso/isostandard-amd.rng +0 -0
  37. data/lib/{asciidoctor → metanorma}/iso/isostandard.rnc +0 -0
  38. data/lib/{asciidoctor → metanorma}/iso/isostandard.rng +0 -0
  39. data/lib/{asciidoctor → metanorma}/iso/reqt.rng +0 -0
  40. data/lib/metanorma/iso/section.rb +49 -0
  41. data/lib/metanorma/iso/validate.rb +172 -0
  42. data/lib/metanorma/iso/validate_image.rb +97 -0
  43. data/lib/metanorma/iso/validate_requirements.rb +111 -0
  44. data/lib/metanorma/iso/validate_section.rb +247 -0
  45. data/lib/metanorma/iso/validate_style.rb +170 -0
  46. data/lib/metanorma/iso/validate_title.rb +105 -0
  47. data/lib/metanorma/iso/version.rb +1 -1
  48. data/lib/metanorma-iso.rb +1 -1
  49. data/metanorma-iso.gemspec +2 -2
  50. data/spec/isodoc/ref_spec.rb +4 -2
  51. data/spec/isodoc/section_spec.rb +1 -1
  52. data/spec/{asciidoctor → metanorma}/amd_spec.rb +1 -1
  53. data/spec/{asciidoctor → metanorma}/base_spec.rb +141 -130
  54. data/spec/{asciidoctor → metanorma}/blank_spec.rb +1 -1
  55. data/spec/{asciidoctor → metanorma}/blocks_spec.rb +1 -1
  56. data/spec/{asciidoctor → metanorma}/cleanup_spec.rb +1 -1
  57. data/spec/{asciidoctor → metanorma}/inline_spec.rb +1 -1
  58. data/spec/{asciidoctor → metanorma}/lists_spec.rb +1 -1
  59. data/spec/metanorma/processor_spec.rb +1 -1
  60. data/spec/{asciidoctor → metanorma}/refs_spec.rb +1 -1
  61. data/spec/{asciidoctor → metanorma}/section_spec.rb +1 -1
  62. data/spec/{asciidoctor → metanorma}/table_spec.rb +1 -1
  63. data/spec/{asciidoctor → metanorma}/validate_spec.rb +1 -1
  64. data/spec/spec_helper.rb +1 -1
  65. data/spec/vcr_cassettes/docrels.yml +21 -216
  66. metadata +39 -26
@@ -16,8 +16,7 @@
16
16
 
17
17
 
18
18
  <xsl:variable name="debug">false</xsl:variable>
19
- <xsl:variable name="pageWidth" select="210"/>
20
- <xsl:variable name="pageHeight" select="297"/>
19
+
21
20
  <xsl:variable name="marginLeftRight1" select="25"/>
22
21
  <xsl:variable name="marginLeftRight2" select="12.5"/>
23
22
  <xsl:variable name="marginTop" select="27.4"/>
@@ -175,7 +174,7 @@
175
174
 
176
175
  <xsl:template match="/">
177
176
  <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}"> <!-- -->
177
+ <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}"> <!-- -->
179
178
  <xsl:if test="$lang = 'zh'">
180
179
  <xsl:attribute name="font-family">Source Han Sans, Times New Roman, Cambria Math</xsl:attribute>
181
180
  </xsl:if>
@@ -457,14 +456,6 @@
457
456
  <fo:block-container>
458
457
  <fo:block margin-top="-1mm" font-size="20pt" text-align="right">
459
458
  <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
459
  </fo:block>
469
460
  <fo:block font-size="20pt" font-weight="bold" text-align="right">
470
461
  <xsl:value-of select="$docidentifierISO"/>
@@ -655,12 +646,8 @@
655
646
  <xsl:if test="$doctype = 'amendment'">
656
647
  <fo:block text-align="right" margin-right="0.5mm">
657
648
  <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>
649
+ <xsl:value-of select="$doctype_uppercased"/>
650
+ <xsl:text> </xsl:text>
664
651
  <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
665
652
  <xsl:if test="normalize-space($amendment-number) != ''">
666
653
  <xsl:value-of select="$amendment-number"/><xsl:text> </xsl:text>
@@ -1193,8 +1180,13 @@
1193
1180
  <xsl:if test="normalize-space($title-part-doc-lang) != ''">
1194
1181
  <xsl:if test="$part != ''">
1195
1182
  <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)"/>
1183
+ <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1184
+ <xsl:call-template name="getLocalizedString">
1185
+ <xsl:with-param name="key">Part.sg</xsl:with-param>
1186
+ </xsl:call-template>
1187
+ <xsl:text> </xsl:text>
1188
+ <xsl:value-of select="$part"/>
1189
+ <xsl:text>:</xsl:text>
1198
1190
  <!-- <xsl:value-of select="$title-part-en"/>
1199
1191
  <xsl:value-of select="$part"/>
1200
1192
  <xsl:text>:</xsl:text> -->
@@ -1334,12 +1326,7 @@
1334
1326
  <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']"/>
1335
1327
  <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
1336
1328
  <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"/>
1329
+ <xsl:value-of select="$doctype_uppercased"/>
1343
1330
  <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
1344
1331
  <xsl:if test="normalize-space($amendment-number) != ''">
1345
1332
  <xsl:text> </xsl:text><xsl:value-of select="$amendment-number"/>
@@ -1353,10 +1340,7 @@
1353
1340
  <!-- ============================= -->
1354
1341
  <!-- CONTENTS -->
1355
1342
  <!-- ============================= -->
1356
- <xsl:template match="node()" mode="contents">
1357
- <xsl:apply-templates mode="contents"/>
1358
- </xsl:template>
1359
-
1343
+
1360
1344
  <!-- element with title -->
1361
1345
  <xsl:template match="*[iso:title]" mode="contents">
1362
1346
  <xsl:variable name="level">
@@ -1380,7 +1364,7 @@
1380
1364
  <xsl:choose>
1381
1365
  <xsl:when test="ancestor-or-self::iso:annex and $level &gt;= 2">false</xsl:when>
1382
1366
  <xsl:when test="$section = '' and $type = 'clause'">false</xsl:when>
1383
- <xsl:when test="$level &lt;= 3">true</xsl:when>
1367
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
1384
1368
  <xsl:otherwise>false</xsl:otherwise>
1385
1369
  </xsl:choose>
1386
1370
  </xsl:variable>
@@ -1454,26 +1438,7 @@
1454
1438
 
1455
1439
  <!-- ============================= -->
1456
1440
  <!-- ============================= -->
1457
-
1458
-
1459
- <xsl:template match="iso:license-statement//iso:title">
1460
- <xsl:variable name="level">
1461
- <xsl:call-template name="getLevel"/>
1462
- </xsl:variable>
1463
- <fo:block text-align="center" font-weight="bold" role="H{$level}">
1464
- <xsl:apply-templates/>
1465
- </fo:block>
1466
- </xsl:template>
1467
-
1468
- <xsl:template match="iso:license-statement//iso:p">
1469
- <fo:block margin-left="1.5mm" margin-right="1.5mm">
1470
- <xsl:if test="following-sibling::iso:p">
1471
- <xsl:attribute name="margin-top">6pt</xsl:attribute>
1472
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1473
- </xsl:if>
1474
- <xsl:apply-templates/>
1475
- </fo:block>
1476
- </xsl:template>
1441
+
1477
1442
 
1478
1443
  <!-- <fo:block margin-bottom="12pt">© ISO 2019, Published in Switzerland.</fo:block>
1479
1444
  <fo:block font-size="10pt" margin-bottom="12pt">All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester.</fo:block>
@@ -1487,7 +1452,7 @@
1487
1452
  <fo:block>www.iso.org</fo:block>
1488
1453
  </fo:block> -->
1489
1454
 
1490
- <xsl:template match="iso:copyright-statement/iso:clause[1]/iso:title">
1455
+ <xsl:template match="iso:copyright-statement/iso:clause[1]/iso:title" priority="2">
1491
1456
  <fo:block margin-bottom="3mm" role="H1">
1492
1457
  <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="14mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
1493
1458
  <!-- <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold">COPYRIGHT PROTECTED DOCUMENT</fo:inline> -->
@@ -1495,17 +1460,12 @@
1495
1460
  </fo:block>
1496
1461
  </xsl:template>
1497
1462
 
1498
- <xsl:template match="iso:copyright-statement//iso:p">
1463
+ <xsl:template match="iso:copyright-statement//iso:p" priority="2">
1499
1464
  <fo:block>
1500
- <xsl:if test="preceding-sibling::iso:p">
1501
- <!-- <xsl:attribute name="font-size">10pt</xsl:attribute> -->
1502
- </xsl:if>
1503
1465
  <xsl:if test="following-sibling::iso:p">
1504
- <!-- <xsl:attribute name="margin-bottom">12pt</xsl:attribute> -->
1505
1466
  <xsl:attribute name="margin-bottom">3pt</xsl:attribute>
1506
1467
  </xsl:if>
1507
- <xsl:if test="contains(@id, 'address')"> <!-- not(following-sibling::iso:p) -->
1508
- <!-- <xsl:attribute name="margin-left">7.1mm</xsl:attribute> -->
1468
+ <xsl:if test="contains(@id, 'address')">
1509
1469
  <xsl:attribute name="margin-left">4mm</xsl:attribute>
1510
1470
  </xsl:if>
1511
1471
  <xsl:apply-templates/>
@@ -1639,7 +1599,7 @@
1639
1599
  <!-- ====== -->
1640
1600
 
1641
1601
 
1642
- <xsl:template match="iso:p">
1602
+ <xsl:template match="iso:p" name="paragraph">
1643
1603
  <xsl:param name="inline" select="'false'"/>
1644
1604
  <xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
1645
1605
  <xsl:variable name="element-name">
@@ -1708,15 +1668,13 @@
1708
1668
 
1709
1669
  <xsl:template match="iso:ul | iso:ol" mode="ul_ol">
1710
1670
  <fo:list-block provisional-distance-between-starts="7mm" margin-top="8pt"> <!-- margin-bottom="8pt" -->
1711
- <xsl:apply-templates/>
1671
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
1712
1672
  </fo:list-block>
1713
1673
  <xsl:for-each select="./iso:note">
1714
1674
  <xsl:call-template name="note"/>
1715
1675
  </xsl:for-each>
1716
1676
  </xsl:template>
1717
1677
 
1718
- <xsl:template match="iso:ul/iso:note | iso:ol/iso:note | iso:ul/iso:li/iso:note | iso:ol/iso:li/iso:note" priority="2"/>
1719
-
1720
1678
  <xsl:template match="iso:li">
1721
1679
  <fo:list-item id="{@id}">
1722
1680
  <fo:list-item-label end-indent="label-end()">
@@ -1726,8 +1684,8 @@
1726
1684
  </fo:list-item-label>
1727
1685
  <fo:list-item-body start-indent="body-start()">
1728
1686
  <fo:block>
1729
- <xsl:apply-templates/>
1730
- <!-- <xsl:apply-templates select=".//iso:note" mode="process"/> -->
1687
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
1688
+
1731
1689
  <xsl:for-each select="./iso:note">
1732
1690
  <xsl:call-template name="note"/>
1733
1691
  </xsl:for-each>
@@ -1736,13 +1694,6 @@
1736
1694
  </fo:list-item>
1737
1695
  </xsl:template>
1738
1696
 
1739
- <xsl:template match="iso:note" mode="process">
1740
- <xsl:call-template name="note"/>
1741
- </xsl:template>
1742
-
1743
- <xsl:template match="*" mode="process">
1744
- <xsl:apply-templates select="."/>
1745
- </xsl:template>
1746
1697
 
1747
1698
  <xsl:template match="iso:preferred">
1748
1699
  <xsl:variable name="levelTerm">
@@ -1750,7 +1701,7 @@
1750
1701
  </xsl:variable>
1751
1702
  <fo:block line-height="1.1" role="H{$levelTerm}">
1752
1703
  <fo:block font-weight="bold" keep-with-next="always">
1753
- <xsl:apply-templates select="ancestor::iso:term[1]/iso:name" mode="presentation"/>
1704
+ <xsl:apply-templates select="ancestor::iso:term[1]/iso:name"/>
1754
1705
  </fo:block>
1755
1706
  <fo:block font-weight="bold" keep-with-next="always">
1756
1707
  <xsl:call-template name="setStyle_preferred"/>
@@ -1760,95 +1711,7 @@
1760
1711
  </xsl:template>
1761
1712
 
1762
1713
 
1763
- <xsl:template match="iso:references[@normative='true']">
1764
- <fo:block id="{@id}">
1765
- <xsl:apply-templates/>
1766
- </fo:block>
1767
- </xsl:template>
1768
-
1769
- <!-- <xsl:template match="iso:references[@id = '_bibliography']"> -->
1770
- <xsl:template match="iso:references[not(@normative='true')]">
1771
- <fo:block break-after="page"/>
1772
- <fo:block id="{@id}">
1773
- <xsl:apply-templates/>
1774
- </fo:block>
1775
- </xsl:template>
1776
-
1777
-
1778
- <xsl:template match="iso:bibitem">
1779
- <fo:block id="{@id}" margin-bottom="6pt">
1780
- <xsl:call-template name="processBibitem"/>
1781
- </fo:block>
1782
- </xsl:template>
1783
-
1784
-
1785
- <xsl:template match="iso:bibitem/iso:note" priority="2">
1786
- <fo:footnote>
1787
- <xsl:variable name="number">
1788
- <xsl:number level="any" count="iso:bibitem/iso:note"/>
1789
- </xsl:variable>
1790
- <fo:inline font-size="8pt" keep-with-previous.within-line="always" baseline-shift="30%"> <!--85% vertical-align="super"-->
1791
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
1792
- <xsl:value-of select="$number"/><xsl:text>)</xsl:text>
1793
- </fo:basic-link>
1794
- </fo:inline>
1795
- <fo:footnote-body>
1796
- <fo:block font-size="10pt" margin-bottom="4pt" start-indent="0pt">
1797
- <fo:inline id="{generate-id()}" keep-with-next.within-line="always" alignment-baseline="hanging" padding-right="3mm"><!-- font-size="60%" -->
1798
- <xsl:value-of select="$number"/><xsl:text>)</xsl:text>
1799
- </fo:inline>
1800
- <xsl:apply-templates/>
1801
- </fo:block>
1802
- </fo:footnote-body>
1803
- </fo:footnote>
1804
- </xsl:template>
1805
-
1806
- <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
1807
- <!-- <xsl:template match="iso:references[@id = '_bibliography']/iso:bibitem"> -->
1808
- <xsl:template match="iso:references[not(@normative='true')]/iso:bibitem">
1809
- <fo:list-block margin-bottom="6pt" provisional-distance-between-starts="12mm">
1810
- <fo:list-item>
1811
- <fo:list-item-label end-indent="label-end()">
1812
- <fo:block>
1813
- <fo:inline id="{@id}">
1814
- <xsl:number format="[1]"/>
1815
- </fo:inline>
1816
- </fo:block>
1817
- </fo:list-item-label>
1818
- <fo:list-item-body start-indent="body-start()">
1819
- <fo:block>
1820
- <xsl:call-template name="processBibitem"/>
1821
- </fo:block>
1822
- </fo:list-item-body>
1823
- </fo:list-item>
1824
- </fo:list-block>
1825
- </xsl:template>
1826
-
1827
- <!-- <xsl:template match="iso:references[@id = '_bibliography']/iso:bibitem" mode="contents"/> [not(@normative='true')] -->
1828
- <xsl:template match="iso:references/iso:bibitem" mode="contents"/>
1829
-
1830
- <!-- <xsl:template match="iso:references[@id = '_bibliography']/iso:bibitem/iso:title"> iso:references[not(@normative='true')]/ -->
1831
- <xsl:template match="iso:bibitem/iso:title">
1832
- <fo:inline font-style="italic">
1833
- <xsl:apply-templates/>
1834
- </fo:inline>
1835
- </xsl:template>
1836
-
1837
-
1838
- <xsl:template match="iso:admonition">
1839
- <fo:block margin-bottom="12pt" font-weight="bold"> <!-- text-align="center" -->
1840
- <xsl:variable name="type">
1841
- <xsl:call-template name="getLocalizedString">
1842
- <xsl:with-param name="key">admonition.<xsl:value-of select="@type"/></xsl:with-param>
1843
- </xsl:call-template>
1844
- </xsl:variable>
1845
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($type))"/>
1846
- <xsl:text> — </xsl:text>
1847
- <xsl:apply-templates/>
1848
- </fo:block>
1849
- </xsl:template>
1850
1714
 
1851
-
1852
1715
  <xsl:template match="iso:formula/iso:stem">
1853
1716
  <fo:block margin-top="6pt" margin-bottom="12pt">
1854
1717
  <fo:table table-layout="fixed" width="100%">
@@ -1863,7 +1726,7 @@
1863
1726
  </fo:table-cell>
1864
1727
  <fo:table-cell display-align="center">
1865
1728
  <fo:block text-align="right">
1866
- <xsl:apply-templates select="../iso:name" mode="presentation"/>
1729
+ <xsl:apply-templates select="../iso:name" mode="formula_number"/>
1867
1730
  </fo:block>
1868
1731
  </fo:table-cell>
1869
1732
  </fo:table-row>
@@ -2120,55 +1983,36 @@
2120
1983
  </xsl:template>
2121
1984
 
2122
1985
 
2123
- <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
2124
-
2125
- <title-annex lang="en">Annex </title-annex>
2126
- <title-annex lang="fr">Annexe </title-annex>
2127
-
2128
- <title-annex lang="zh">Annex </title-annex>
2129
-
2130
-
1986
+ <xsl:variable name="pageWidth_">
1987
+ 210
1988
+ </xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
1989
+ 297
1990
+ </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="titles_">
2131
1991
 
2132
1992
  <title-edition lang="en">
2133
1993
 
2134
- <xsl:text>Edition </xsl:text>
2135
-
2136
-
1994
+ <xsl:text>Edition </xsl:text>
1995
+
2137
1996
  </title-edition>
2138
1997
 
2139
1998
  <title-edition lang="fr">
2140
-
2141
- <xsl:text>Édition </xsl:text>
2142
-
1999
+ <xsl:text>Édition </xsl:text>
2143
2000
  </title-edition>
2144
2001
 
2145
-
2002
+ <!-- These titles of Table of contents renders different than determined in localized-strings -->
2146
2003
  <title-toc lang="en">
2147
2004
 
2148
- <xsl:text>Contents</xsl:text>
2149
-
2150
2005
 
2151
2006
 
2152
2007
  </title-toc>
2153
2008
  <title-toc lang="fr">
2009
+ <xsl:text>Sommaire</xsl:text>
2010
+ </title-toc>
2011
+ <title-toc lang="zh">
2154
2012
 
2155
- <xsl:text>Sommaire</xsl:text>
2156
-
2157
-
2158
- </title-toc>
2159
-
2160
- <title-toc lang="zh">Contents</title-toc>
2161
-
2162
-
2163
-
2164
- <title-page lang="en">Page</title-page>
2165
- <title-page lang="fr">Page</title-page>
2166
-
2167
- <title-key lang="en">Key</title-key>
2168
- <title-key lang="fr">Légende</title-key>
2169
-
2170
- <title-where lang="en">where</title-where>
2171
- <title-where lang="fr">où</title-where>
2013
+ <xsl:text>Contents</xsl:text>
2014
+
2015
+ </title-toc>
2172
2016
 
2173
2017
  <title-descriptors lang="en">Descriptors</title-descriptors>
2174
2018
 
@@ -2188,32 +2032,9 @@
2188
2032
  </title-part>
2189
2033
  <title-part lang="zh">第 # 部分:</title-part>
2190
2034
 
2191
- <title-subpart lang="en">
2192
-
2193
- </title-subpart>
2194
- <title-subpart lang="fr">
2195
-
2196
- </title-subpart>
2197
-
2198
- <title-modified lang="en">modified</title-modified>
2199
- <title-modified lang="fr">modifiée</title-modified>
2200
-
2201
- <title-modified lang="zh">modified</title-modified>
2202
-
2035
+ <title-subpart lang="en">Sub-part #</title-subpart>
2036
+ <title-subpart lang="fr">Partie de sub #</title-subpart>
2203
2037
 
2204
-
2205
- <title-source lang="en">
2206
-
2207
- <xsl:text>SOURCE</xsl:text>
2208
-
2209
-
2210
- </title-source>
2211
-
2212
- <title-keywords lang="en">Keywords</title-keywords>
2213
-
2214
- <title-deprecated lang="en">DEPRECATED</title-deprecated>
2215
- <title-deprecated lang="fr">DEPRECATED</title-deprecated>
2216
-
2217
2038
  <title-list-tables lang="en">List of Tables</title-list-tables>
2218
2039
 
2219
2040
  <title-list-figures lang="en">List of Figures</title-list-figures>
@@ -2222,41 +2043,12 @@
2222
2043
 
2223
2044
  <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
2224
2045
 
2225
- <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
2226
-
2227
- <title-abstract lang="en">Abstract</title-abstract>
2228
-
2229
2046
  <title-summary lang="en">Summary</title-summary>
2230
2047
 
2231
- <title-in lang="en">in </title-in>
2232
-
2233
- <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
2234
- <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
2235
-
2236
- <title-completion-date lang="en">Completion date for this manuscript</title-completion-date>
2237
- <title-completion-date lang="zh">本稿完成日期</title-completion-date>
2238
-
2239
- <title-issuance-date lang="en">Issuance Date: #</title-issuance-date>
2240
- <title-issuance-date lang="zh"># 发布</title-issuance-date>
2241
-
2242
- <title-implementation-date lang="en">Implementation Date: #</title-implementation-date>
2243
- <title-implementation-date lang="zh"># 实施</title-implementation-date>
2244
-
2245
- <title-obligation-normative lang="en">normative</title-obligation-normative>
2246
- <title-obligation-normative lang="zh">规范性附录</title-obligation-normative>
2247
-
2248
- <title-caution lang="en">CAUTION</title-caution>
2249
- <title-caution lang="zh">注意</title-caution>
2250
-
2251
- <title-warning lang="en">WARNING</title-warning>
2252
- <title-warning lang="zh">警告</title-warning>
2253
-
2254
- <title-amendment lang="en">AMENDMENT</title-amendment>
2255
-
2256
2048
  <title-continued lang="en">(continued)</title-continued>
2257
2049
  <title-continued lang="fr">(continué)</title-continued>
2258
2050
 
2259
- </xsl:variable><xsl:variable name="bibdata">
2051
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
2260
2052
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
2261
2053
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
2262
2054
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
@@ -2285,6 +2077,75 @@
2285
2077
  </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">
2286
2078
 
2287
2079
 
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+ <xsl:attribute name="font-family">Cambria, Times New Roman, Cambria Math, Source Han Sans</xsl:attribute>
2087
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
2088
+
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+
2097
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-style">
2098
+
2099
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-title-style">
2100
+
2101
+
2102
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-p-style">
2103
+
2104
+
2105
+
2106
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-style">
2107
+
2108
+
2109
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-title-style">
2110
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2111
+
2112
+
2113
+ <xsl:attribute name="text-align">center</xsl:attribute>
2114
+
2115
+
2116
+
2117
+
2118
+
2119
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-p-style">
2120
+
2121
+
2122
+ <xsl:attribute name="margin-left">1.5mm</xsl:attribute>
2123
+ <xsl:attribute name="margin-right">1.5mm</xsl:attribute>
2124
+
2125
+
2126
+
2127
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-style">
2128
+
2129
+
2130
+
2131
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-title-style">
2132
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-p-style">
2139
+
2140
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-style">
2141
+
2142
+
2143
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-title-style">
2144
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2145
+
2146
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-p-style">
2147
+
2148
+
2288
2149
  </xsl:attribute-set><xsl:attribute-set name="link-style">
2289
2150
 
2290
2151
 
@@ -2294,19 +2155,29 @@
2294
2155
 
2295
2156
 
2296
2157
 
2158
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-container-style">
2159
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2160
+
2297
2161
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
2298
2162
  <xsl:attribute name="white-space">pre</xsl:attribute>
2299
2163
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
2300
2164
  <xsl:attribute name="role">Code</xsl:attribute>
2301
2165
 
2166
+
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+
2302
2173
  <xsl:attribute name="font-family">Courier New</xsl:attribute>
2303
2174
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2304
2175
 
2305
2176
 
2306
2177
 
2178
+
2307
2179
 
2308
2180
 
2309
-
2310
2181
 
2311
2182
 
2312
2183
 
@@ -2367,16 +2238,18 @@
2367
2238
 
2368
2239
 
2369
2240
 
2241
+
2370
2242
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
2371
2243
 
2372
2244
 
2373
2245
 
2246
+
2374
2247
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
2248
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2375
2249
 
2376
2250
 
2377
2251
 
2378
2252
  <xsl:attribute name="padding-right">5mm</xsl:attribute>
2379
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
2380
2253
 
2381
2254
 
2382
2255
 
@@ -2402,6 +2275,7 @@
2402
2275
 
2403
2276
 
2404
2277
 
2278
+
2405
2279
  <xsl:attribute name="text-align">justify</xsl:attribute>
2406
2280
 
2407
2281
 
@@ -2423,115 +2297,330 @@
2423
2297
 
2424
2298
  </xsl:attribute-set><xsl:variable name="table-border_">
2425
2299
 
2426
- </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-name-style">
2427
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
2428
-
2300
+ </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
2301
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2302
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2429
2303
 
2430
2304
 
2431
2305
 
2432
2306
 
2433
2307
 
2434
- <xsl:attribute name="font-size">11pt</xsl:attribute>
2435
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2436
- <xsl:attribute name="text-align">center</xsl:attribute>
2437
- <!-- <xsl:attribute name="margin-top">12pt</xsl:attribute> -->
2438
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2439
-
2440
2308
 
2441
2309
 
2442
2310
 
2443
-
2444
2311
 
2312
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2313
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2314
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2445
2315
 
2446
2316
 
2447
2317
 
2448
- </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
2449
2318
 
2450
- </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2451
-
2452
- <xsl:attribute name="font-size">12pt</xsl:attribute>
2453
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2454
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2455
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2456
2319
 
2457
2320
 
2458
2321
 
2459
- </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
2460
2322
 
2461
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2462
- <xsl:attribute name="margin-top">8pt</xsl:attribute>
2463
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2464
2323
 
2465
2324
 
2325
+
2466
2326
 
2467
- </xsl:attribute-set><xsl:attribute-set name="xref-style">
2468
2327
 
2328
+ </xsl:attribute-set><xsl:attribute-set name="table-style">
2329
+ <xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
2330
+ <xsl:attribute name="table-layout">fixed</xsl:attribute>
2331
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2332
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2469
2333
 
2470
2334
 
2471
- <xsl:attribute name="color">blue</xsl:attribute>
2472
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
2473
2335
 
2474
2336
 
2475
2337
 
2476
- </xsl:attribute-set><xsl:attribute-set name="eref-style">
2477
2338
 
2478
2339
 
2479
2340
 
2480
2341
 
2342
+ <xsl:attribute name="border">1.5pt solid black</xsl:attribute>
2481
2343
 
2482
2344
 
2483
- </xsl:attribute-set><xsl:attribute-set name="note-style">
2484
2345
 
2485
2346
 
2486
2347
 
2487
2348
 
2488
-
2489
2349
 
2490
2350
 
2491
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2492
- <xsl:attribute name="margin-top">8pt</xsl:attribute>
2493
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2494
- <xsl:attribute name="text-align">justify</xsl:attribute>
2495
2351
 
2496
2352
 
2497
2353
 
2498
2354
 
2355
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
2356
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2357
+
2499
2358
 
2500
2359
 
2501
2360
 
2502
2361
 
2503
2362
 
2363
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
2364
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2365
+ <xsl:attribute name="text-align">center</xsl:attribute>
2366
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2367
+
2504
2368
 
2505
- </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">
2506
2369
 
2507
2370
 
2371
+
2508
2372
 
2509
2373
 
2510
2374
 
2511
2375
 
2376
+ </xsl:attribute-set><xsl:attribute-set name="table-row-style">
2377
+ <xsl:attribute name="min-height">4mm</xsl:attribute>
2512
2378
 
2513
- <xsl:attribute name="padding-right">6mm</xsl:attribute>
2514
2379
 
2515
2380
 
2516
2381
 
2382
+ </xsl:attribute-set><xsl:attribute-set name="table-header-row-style" use-attribute-sets="table-row-style">
2383
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2517
2384
 
2518
2385
 
2386
+ <xsl:attribute name="border-top">solid black 1pt</xsl:attribute>
2387
+ <xsl:attribute name="border-bottom">solid black 1pt</xsl:attribute>
2519
2388
 
2520
2389
 
2521
- </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
2522
2390
 
2523
2391
 
2524
2392
 
2525
2393
 
2526
- </xsl:attribute-set><xsl:attribute-set name="note-p-style">
2394
+
2527
2395
 
2396
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-row-style" use-attribute-sets="table-row-style">
2528
2397
 
2529
2398
 
2530
-
2531
2399
 
2532
-
2533
- <xsl:attribute name="margin-top">8pt</xsl:attribute>
2534
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2400
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2401
+ <xsl:attribute name="border-left">solid black 1pt</xsl:attribute>
2402
+ <xsl:attribute name="border-right">solid black 1pt</xsl:attribute>
2403
+
2404
+ </xsl:attribute-set><xsl:attribute-set name="table-body-row-style" use-attribute-sets="table-row-style">
2405
+
2406
+ </xsl:attribute-set><xsl:attribute-set name="table-header-cell-style">
2407
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2408
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2409
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2410
+ <xsl:attribute name="display-align">center</xsl:attribute>
2411
+
2412
+
2413
+
2414
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2415
+
2416
+
2417
+
2418
+
2419
+
2420
+
2421
+
2422
+
2423
+
2424
+
2425
+
2426
+ </xsl:attribute-set><xsl:attribute-set name="table-cell-style">
2427
+ <xsl:attribute name="display-align">center</xsl:attribute>
2428
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2429
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2430
+
2431
+
2432
+
2433
+
2434
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
2435
+
2436
+
2437
+
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
2446
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2447
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2448
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
2449
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2450
+
2451
+
2452
+
2453
+
2454
+
2455
+
2456
+ <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+ </xsl:attribute-set><xsl:attribute-set name="table-note-style">
2464
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2465
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2466
+
2467
+
2468
+
2469
+
2470
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2471
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-style">
2478
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2479
+
2480
+
2481
+
2482
+
2483
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2484
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2485
+
2486
+
2487
+
2488
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
2489
+ <xsl:attribute name="font-size">80%</xsl:attribute>
2490
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
2491
+
2492
+
2493
+
2494
+
2495
+
2496
+ <xsl:attribute name="alignment-baseline">hanging</xsl:attribute>
2497
+
2498
+
2499
+
2500
+
2501
+
2502
+
2503
+
2504
+
2505
+ </xsl:attribute-set><xsl:attribute-set name="fn-container-body-style">
2506
+ <xsl:attribute name="text-indent">0</xsl:attribute>
2507
+ <xsl:attribute name="start-indent">0</xsl:attribute>
2508
+
2509
+
2510
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-body-style">
2511
+
2512
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-number-style">
2513
+ <xsl:attribute name="font-size">80%</xsl:attribute>
2514
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
2515
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
2516
+
2517
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-body-style">
2518
+ <xsl:attribute name="text-align">justify</xsl:attribute>
2519
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2520
+
2521
+ </xsl:attribute-set><xsl:attribute-set name="dt-row-style">
2522
+
2523
+
2524
+ </xsl:attribute-set><xsl:attribute-set name="dt-style">
2525
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2539
+
2540
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
2541
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2542
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
2543
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2544
+
2545
+
2546
+
2547
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
2548
+
2549
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2550
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
2551
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2552
+
2553
+
2554
+
2555
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
2556
+
2557
+
2558
+
2559
+ <xsl:attribute name="color">blue</xsl:attribute>
2560
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
2561
+
2562
+
2563
+
2564
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2580
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
2581
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2582
+ <xsl:attribute name="text-align">justify</xsl:attribute>
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+ </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">
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+ <xsl:attribute name="padding-right">6mm</xsl:attribute>
2602
+
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+ </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
2610
+ <xsl:attribute name="padding-right">2mm</xsl:attribute>
2611
+
2612
+
2613
+
2614
+
2615
+ </xsl:attribute-set><xsl:attribute-set name="note-p-style">
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
2623
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2535
2624
 
2536
2625
 
2537
2626
 
@@ -2587,6 +2676,9 @@
2587
2676
  <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2588
2677
 
2589
2678
 
2679
+ </xsl:attribute-set><xsl:attribute-set name="termsource-text-style">
2680
+
2681
+
2590
2682
  </xsl:attribute-set><xsl:attribute-set name="origin-style">
2591
2683
 
2592
2684
 
@@ -2596,6 +2688,8 @@
2596
2688
 
2597
2689
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2598
2690
 
2691
+ </xsl:attribute-set><xsl:attribute-set name="figure-style">
2692
+
2599
2693
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
2600
2694
 
2601
2695
 
@@ -2698,6 +2792,17 @@
2698
2792
 
2699
2793
  </xsl:attribute-set><xsl:attribute-set name="toc-style">
2700
2794
  <xsl:attribute name="line-height">135%</xsl:attribute>
2795
+ </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
2796
+ <xsl:attribute name="font-size">80%</xsl:attribute>
2797
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2798
+
2799
+
2800
+
2801
+
2802
+
2803
+
2804
+
2805
+
2701
2806
  </xsl:attribute-set><xsl:attribute-set name="fn-style">
2702
2807
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2703
2808
  </xsl:attribute-set><xsl:attribute-set name="fn-num-style">
@@ -2768,30 +2873,196 @@
2768
2873
 
2769
2874
 
2770
2875
 
2771
- </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">
2772
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
2773
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
2774
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
2775
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
2776
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
2777
- </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
2876
+ </xsl:attribute-set><xsl:attribute-set name="admonition-style">
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2885
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2886
+
2887
+
2888
+
2889
+
2890
+
2891
+
2892
+
2893
+
2894
+ </xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+ </xsl:attribute-set><xsl:attribute-set name="admonition-name-style">
2906
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2907
+
2908
+
2909
+
2910
+
2911
+
2912
+
2913
+
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+
2920
+ </xsl:attribute-set><xsl:attribute-set name="admonition-p-style">
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-style">
2933
+
2934
+
2935
+
2936
+
2937
+
2938
+
2939
+
2940
+
2941
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2942
+
2943
+
2944
+
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+
2951
+
2952
+
2953
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-style">
2954
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
2955
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2956
+
2957
+
2958
+
2959
+
2960
+
2961
+
2962
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2963
+
2964
+
2965
+
2966
+
2967
+
2968
+
2969
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-style">
2970
+
2971
+
2972
+
2973
+
2974
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-style">
2975
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
2976
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2977
+
2978
+
2979
+
2980
+
2981
+
2982
+
2983
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2984
+
2985
+
2986
+
2987
+
2988
+
2989
+
2990
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-body-style">
2991
+
2992
+
2993
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-body-style">
2994
+
2995
+
2996
+
2997
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-style">
2998
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2999
+ <xsl:attribute name="font-size">65%</xsl:attribute>
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
3009
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+
3017
+
3018
+
3019
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-number-style">
3020
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
3021
+
3022
+
3023
+
3024
+
3025
+
3026
+
3027
+
3028
+
3029
+ <xsl:attribute name="alignment-baseline">hanging</xsl:attribute>
3030
+ <xsl:attribute name="padding-right">3mm</xsl:attribute>
3031
+
3032
+
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-body-style">
3041
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3042
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3043
+ <xsl:attribute name="start-indent">0pt</xsl:attribute>
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+ <xsl:attribute name="margin-bottom">4pt</xsl:attribute>
3051
+
3052
+
3053
+
3054
+
3055
+
3056
+
3057
+ </xsl:attribute-set><xsl:attribute-set name="references-non-normative-style">
3058
+
3059
+
3060
+
3061
+ </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">
2778
3062
  <xsl:for-each select="/*/*[local-name()='preface']/*">
2779
3063
  <xsl:sort select="@displayorder" data-type="number"/>
2780
3064
  <xsl:apply-templates select="." mode="contents"/>
2781
3065
  </xsl:for-each>
2782
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
2783
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
2784
-
2785
- <!-- Normative references -->
2786
- <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"/>
2787
- <!-- Terms and definitions -->
2788
- <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"/>
2789
- <!-- Another main sections -->
2790
- <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"/>
2791
- <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
2792
- <!-- Bibliography -->
2793
- <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"/>
2794
-
2795
3066
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
2796
3067
 
2797
3068
  <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']]">
@@ -2808,29 +3079,11 @@
2808
3079
  <xsl:sort select="@displayorder" data-type="number"/>
2809
3080
  <xsl:apply-templates select="." mode="contents"/>
2810
3081
  </xsl:for-each>
2811
- </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
2812
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
2813
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
2814
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
2815
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
2816
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
2817
3082
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
2818
3083
  <xsl:for-each select="/*/*[local-name()='preface']/*">
2819
3084
  <xsl:sort select="@displayorder" data-type="number"/>
2820
3085
  <xsl:apply-templates select="."/>
2821
3086
  </xsl:for-each>
2822
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
2823
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
2824
-
2825
- <!-- Normative references -->
2826
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
2827
- <!-- Terms and definitions -->
2828
- <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']]"/>
2829
- <!-- Another main sections -->
2830
- <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'])]"/>
2831
- <xsl:apply-templates select="/*/*[local-name()='annex']"/>
2832
- <!-- Bibliography -->
2833
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
2834
3087
  </xsl:template><xsl:template name="processMainSectionsDefault">
2835
3088
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
2836
3089
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -2851,6 +3104,79 @@
2851
3104
  <xsl:value-of select="."/>
2852
3105
  </xsl:template><xsl:template match="*[local-name()='br']">
2853
3106
  <xsl:value-of select="$linebreak"/>
3107
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']">
3108
+ <fo:block xsl:use-attribute-sets="copyright-statement-style">
3109
+ <xsl:apply-templates/>
3110
+ </fo:block>
3111
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']//*[local-name()='title']">
3112
+
3113
+ <!-- process in the template 'title' -->
3114
+ <xsl:call-template name="title"/>
3115
+
3116
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']//*[local-name()='p']">
3117
+
3118
+
3119
+ <!-- process in the template 'paragraph' -->
3120
+ <xsl:call-template name="paragraph"/>
3121
+
3122
+ </xsl:template><xsl:template match="*[local-name()='license-statement']">
3123
+ <fo:block xsl:use-attribute-sets="license-statement-style">
3124
+ <xsl:apply-templates/>
3125
+ </fo:block>
3126
+ </xsl:template><xsl:template match="*[local-name()='license-statement']//*[local-name()='title']">
3127
+
3128
+ <xsl:variable name="level">
3129
+ <xsl:call-template name="getLevel"/>
3130
+ </xsl:variable>
3131
+ <fo:block role="H{$level}" xsl:use-attribute-sets="license-statement-title-style">
3132
+ <xsl:apply-templates/>
3133
+ </fo:block>
3134
+
3135
+ </xsl:template><xsl:template match="*[local-name()='license-statement']//*[local-name()='p']">
3136
+
3137
+ <fo:block xsl:use-attribute-sets="license-statement-p-style">
3138
+
3139
+
3140
+ <xsl:if test="following-sibling::*[local-name() = 'p']">
3141
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
3142
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3143
+ </xsl:if>
3144
+
3145
+
3146
+
3147
+
3148
+ <xsl:apply-templates/>
3149
+ </fo:block>
3150
+
3151
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']">
3152
+ <fo:block xsl:use-attribute-sets="legal-statement-style">
3153
+ <xsl:apply-templates/>
3154
+ </fo:block>
3155
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='title']">
3156
+
3157
+ <!-- process in the template 'title' -->
3158
+ <xsl:call-template name="title"/>
3159
+
3160
+
3161
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='p']">
3162
+
3163
+ <!-- process in the template 'paragraph' -->
3164
+ <xsl:call-template name="paragraph"/>
3165
+
3166
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']">
3167
+ <fo:block xsl:use-attribute-sets="feedback-statement-style">
3168
+ <xsl:apply-templates/>
3169
+ </fo:block>
3170
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='title']">
3171
+
3172
+ <!-- process in the template 'title' -->
3173
+ <xsl:call-template name="title"/>
3174
+
3175
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='p']">
3176
+
3177
+ <!-- process in the template 'paragraph' -->
3178
+ <xsl:call-template name="paragraph"/>
3179
+
2854
3180
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
2855
3181
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
2856
3182
  <xsl:call-template name="add-zero-spaces-java"/>
@@ -2867,10 +3193,6 @@
2867
3193
  <xsl:call-template name="getSimpleTable"/>
2868
3194
  </xsl:variable>
2869
3195
 
2870
- <!-- <xsl:if test="$namespace = 'bipm'">
2871
- <fo:block>&#xA0;</fo:block>
2872
- </xsl:if> -->
2873
-
2874
3196
 
2875
3197
  <!-- Display table's name before table as standalone block -->
2876
3198
  <!-- $namespace = 'iso' or -->
@@ -2878,28 +3200,8 @@
2878
3200
 
2879
3201
 
2880
3202
 
2881
-
2882
-
2883
-
2884
3203
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>
2885
3204
 
2886
- <!-- <xsl:variable name="cols-count">
2887
- <xsl:choose>
2888
- <xsl:when test="*[local-name()='thead']">
2889
- <xsl:call-template name="calculate-columns-numbers">
2890
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
2891
- </xsl:call-template>
2892
- </xsl:when>
2893
- <xsl:otherwise>
2894
- <xsl:call-template name="calculate-columns-numbers">
2895
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
2896
- </xsl:call-template>
2897
- </xsl:otherwise>
2898
- </xsl:choose>
2899
- </xsl:variable> -->
2900
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
2901
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
2902
-
2903
3205
  <xsl:variable name="colwidths">
2904
3206
  <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
2905
3207
  <xsl:call-template name="calculate-column-widths">
@@ -2910,17 +3212,8 @@
2910
3212
  </xsl:variable>
2911
3213
  <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2912
3214
 
2913
- <!-- <xsl:variable name="colwidths2">
2914
- <xsl:call-template name="calculate-column-widths">
2915
- <xsl:with-param name="cols-count" select="$cols-count"/>
2916
- </xsl:call-template>
2917
- </xsl:variable> -->
2918
3215
 
2919
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
2920
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
2921
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
2922
-
2923
- <xsl:variable name="margin-left">
3216
+ <xsl:variable name="margin-side">
2924
3217
  <xsl:choose>
2925
3218
  <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
2926
3219
  <xsl:otherwise>0</xsl:otherwise>
@@ -2928,83 +3221,69 @@
2928
3221
  </xsl:variable>
2929
3222
 
2930
3223
 
2931
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2932
-
2933
-
2934
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2935
-
2936
-
2937
-
2938
-
2939
-
2940
-
2941
-
2942
-
3224
+ <fo:block-container xsl:use-attribute-sets="table-container-style">
3225
+
2943
3226
 
3227
+
2944
3228
 
3229
+
2945
3230
 
2946
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2947
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2948
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2949
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
3231
+
2950
3232
 
2951
3233
 
2952
3234
 
3235
+
2953
3236
 
2954
3237
 
2955
3238
 
2956
3239
 
2957
3240
 
3241
+ <!-- end table block-container attributes -->
2958
3242
 
2959
3243
  <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
2960
3244
 
2961
3245
 
3246
+ <xsl:variable name="table_width_default">100%</xsl:variable>
2962
3247
  <xsl:variable name="table_width">
2963
3248
  <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
2964
- 100%
2965
-
2966
-
3249
+ <xsl:value-of select="$table_width_default"/>
2967
3250
  </xsl:variable>
2968
-
2969
- <xsl:variable name="table_attributes">
2970
- <attribute name="table-layout">fixed</attribute>
2971
- <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
2972
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2973
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2974
-
2975
-
2976
- <attribute name="border">1.5pt solid black</attribute>
2977
- <xsl:if test="*[local-name()='thead']">
2978
- <attribute name="border-top">1pt solid black</attribute>
2979
- </xsl:if>
2980
-
2981
-
2982
-
2983
- <xsl:if test="ancestor::*[local-name() = 'table']">
2984
- <!-- for internal table in table cell -->
2985
- <attribute name="border">0.5pt solid black</attribute>
2986
- </xsl:if>
2987
-
2988
-
2989
-
2990
-
2991
- <attribute name="margin-left">0mm</attribute>
2992
- <attribute name="margin-right">0mm</attribute>
2993
-
2994
-
2995
-
2996
-
2997
-
2998
-
2999
-
3000
-
3251
+
3252
+
3253
+ <xsl:variable name="table_attributes">
3254
+
3255
+ <xsl:element name="table_attributes" use-attribute-sets="table-style">
3256
+ <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
3257
+
3258
+
3259
+
3260
+
3261
+
3262
+
3263
+
3264
+
3265
+ <xsl:if test="*[local-name()='thead']">
3266
+ <xsl:attribute name="border-top">1pt solid black</xsl:attribute>
3267
+ </xsl:if>
3268
+ <xsl:if test="ancestor::*[local-name() = 'table']">
3269
+ <!-- for internal table in table cell -->
3270
+ <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
3271
+ </xsl:if>
3272
+
3273
+
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+ </xsl:element>
3001
3280
  </xsl:variable>
3002
3281
 
3003
3282
 
3004
- <fo:table id="{@id}" table-omit-footer-at-break="true">
3283
+ <fo:table id="{@id}">
3005
3284
 
3006
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3007
- <xsl:attribute name="{@name}">
3285
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
3286
+ <xsl:attribute name="{local-name()}">
3008
3287
  <xsl:value-of select="."/>
3009
3288
  </xsl:attribute>
3010
3289
  </xsl:for-each>
@@ -3015,7 +3294,6 @@
3015
3294
  </xsl:if>
3016
3295
 
3017
3296
 
3018
-
3019
3297
  <xsl:choose>
3020
3298
  <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
3021
3299
  <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
@@ -3041,7 +3319,7 @@
3041
3319
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
3042
3320
  </xsl:when>
3043
3321
  <xsl:otherwise>
3044
- <xsl:apply-templates/>
3322
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer and note that renders separaterely -->
3045
3323
  </xsl:otherwise>
3046
3324
  </xsl:choose>
3047
3325
 
@@ -3056,25 +3334,6 @@
3056
3334
  </xsl:call-template>
3057
3335
  </xsl:for-each>
3058
3336
 
3059
- <!-- insert footer as table -->
3060
- <!-- <fo:table>
3061
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
3062
- <xsl:attribute name="{@name}">
3063
- <xsl:value-of select="."/>
3064
- </xsl:attribute>
3065
- </xsl:for-each>
3066
-
3067
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
3068
- <xsl:choose>
3069
- <xsl:when test=". = 1 or . = 0">
3070
- <fo:table-column column-width="proportional-column-width(2)"/>
3071
- </xsl:when>
3072
- <xsl:otherwise>
3073
- <fo:table-column column-width="proportional-column-width({.})"/>
3074
- </xsl:otherwise>
3075
- </xsl:choose>
3076
- </xsl:for-each>
3077
- </fo:table>-->
3078
3337
 
3079
3338
 
3080
3339
 
@@ -3135,20 +3394,17 @@
3135
3394
  </xsl:otherwise>
3136
3395
  </xsl:choose>
3137
3396
 
3138
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
3397
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
3139
3398
  <xsl:param name="continued"/>
3140
3399
  <xsl:if test="normalize-space() != ''">
3141
3400
  <fo:block xsl:use-attribute-sets="table-name-style">
3142
-
3143
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
3144
-
3401
+
3145
3402
 
3146
3403
 
3147
3404
 
3148
3405
 
3149
3406
  <xsl:choose>
3150
3407
  <xsl:when test="$continued = 'true'">
3151
- <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->
3152
3408
 
3153
3409
  <xsl:apply-templates/>
3154
3410
 
@@ -3213,13 +3469,6 @@
3213
3469
  <xsl:for-each select="xalan:nodeset($table)/*/tr">
3214
3470
  <xsl:variable name="td_text">
3215
3471
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
3216
-
3217
- <!-- <xsl:if test="$namespace = 'bipm'">
3218
- <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
3219
- <word><xsl:value-of select="normalize-space(.)"/></word>
3220
- </xsl:for-each>
3221
- </xsl:if> -->
3222
-
3223
3472
  </xsl:variable>
3224
3473
  <xsl:variable name="words">
3225
3474
  <xsl:variable name="string_with_added_zerospaces">
@@ -3256,7 +3505,6 @@
3256
3505
  </xsl:otherwise>
3257
3506
  </xsl:choose>
3258
3507
  </xsl:variable>
3259
-
3260
3508
 
3261
3509
  <column>
3262
3510
  <xsl:for-each select="xalan:nodeset($widths)//width">
@@ -3290,9 +3538,8 @@
3290
3538
 
3291
3539
  <xsl:variable name="math_text" select="normalize-space(xalan:nodeset($mathml))"/>
3292
3540
  <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
3293
- </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
3541
+ </xsl:template><xsl:template match="*[local-name()='thead']">
3294
3542
  <xsl:param name="cols-count"/>
3295
- <!-- font-weight="bold" -->
3296
3543
  <fo:table-header>
3297
3544
 
3298
3545
  <xsl:call-template name="table-header-title">
@@ -3308,96 +3555,35 @@
3308
3555
  <fo:table-row>
3309
3556
  <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">
3310
3557
 
3311
- <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
3558
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
3312
3559
  <xsl:with-param name="continued">true</xsl:with-param>
3313
3560
  </xsl:apply-templates>
3314
3561
 
3315
3562
 
3316
3563
  <xsl:for-each select="ancestor::*[local-name()='table'][1]">
3317
- <xsl:call-template name="fn_name_display"/>
3564
+ <xsl:call-template name="table_name_fn_display"/>
3318
3565
  </xsl:for-each>
3319
-
3320
-
3321
-
3566
+
3322
3567
  <fo:block text-align="right" font-style="italic">
3323
3568
  <xsl:text> </xsl:text>
3324
3569
  <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
3325
3570
  </fo:block>
3326
3571
 
3572
+
3327
3573
  </fo:table-cell>
3328
3574
  </fo:table-row>
3329
3575
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
3330
3576
  <fo:table-body>
3331
3577
  <xsl:apply-templates/>
3332
3578
  </fo:table-body>
3333
- </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
3579
+ </xsl:template><xsl:template match="*[local-name()='tfoot']">
3334
3580
  <xsl:apply-templates/>
3335
3581
  </xsl:template><xsl:template name="insertTableFooter">
3336
3582
  <xsl:param name="cols-count"/>
3337
3583
  <xsl:if test="../*[local-name()='tfoot']">
3338
3584
  <fo:table-footer>
3339
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3340
- </fo:table-footer>
3341
- </xsl:if>
3342
- </xsl:template><xsl:template name="insertTableFooter2">
3343
- <xsl:param name="cols-count"/>
3344
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3345
- <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
3346
-
3347
- <fo:table-footer>
3348
-
3349
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3350
-
3351
- <!-- if there are note(s) or fn(s) then create footer row -->
3352
- <xsl:if test="$isNoteOrFnExist = 'true'">
3353
-
3354
-
3355
-
3356
- <fo:table-row>
3357
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3358
-
3359
- <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
3360
-
3361
-
3362
-
3363
- <!-- fn will be processed inside 'note' processing -->
3364
-
3365
-
3366
-
3367
-
3368
-
3369
-
3370
- <!-- except gb -->
3371
-
3372
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3373
-
3374
-
3375
- <!-- show Note under table in preface (ex. abstract) sections -->
3376
- <!-- empty, because notes show at page side in main sections -->
3377
- <!-- <xsl:if test="$namespace = 'bipm'">
3378
- <xsl:choose>
3379
- <xsl:when test="ancestor::*[local-name()='preface']">
3380
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3381
- </xsl:when>
3382
- <xsl:otherwise>
3383
- <fo:block/>
3384
- </xsl:otherwise>
3385
- </xsl:choose>
3386
- </xsl:if> -->
3387
-
3388
-
3389
- <!-- horizontal row separator -->
3390
-
3391
-
3392
- <!-- fn processing -->
3393
- <xsl:call-template name="fn_display"/>
3394
-
3395
- </fo:table-cell>
3396
- </fo:table-row>
3397
-
3398
- </xsl:if>
3585
+ <xsl:apply-templates select="../*[local-name()='tfoot']"/>
3399
3586
  </fo:table-footer>
3400
-
3401
3587
  </xsl:if>
3402
3588
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
3403
3589
  <xsl:param name="table_attributes"/>
@@ -3424,17 +3610,18 @@
3424
3610
  </xsl:variable>
3425
3611
 
3426
3612
  <fo:table keep-with-previous="always">
3427
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3613
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
3614
+ <xsl:variable name="name" select="local-name()"/>
3428
3615
  <xsl:choose>
3429
- <xsl:when test="@name = 'border-top'">
3430
- <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
3616
+ <xsl:when test="$name = 'border-top'">
3617
+ <xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
3431
3618
  </xsl:when>
3432
- <xsl:when test="@name = 'border'">
3433
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3619
+ <xsl:when test="$name = 'border'">
3620
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3434
3621
  <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3435
3622
  </xsl:when>
3436
3623
  <xsl:otherwise>
3437
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3624
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3438
3625
  </xsl:otherwise>
3439
3626
  </xsl:choose>
3440
3627
  </xsl:for-each>
@@ -3463,11 +3650,10 @@
3463
3650
 
3464
3651
  <fo:table-body>
3465
3652
  <fo:table-row>
3466
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3467
-
3653
+ <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
3468
3654
 
3469
- <xsl:attribute name="border-top">solid black 0pt</xsl:attribute>
3470
3655
 
3656
+
3471
3657
 
3472
3658
 
3473
3659
  <!-- fn will be processed inside 'note' processing -->
@@ -3477,37 +3663,20 @@
3477
3663
 
3478
3664
 
3479
3665
 
3480
-
3481
-
3482
-
3483
3666
  <!-- for BSI (not PAS) display Notes before footnotes -->
3484
3667
 
3485
3668
 
3486
- <!-- except gb -->
3669
+ <!-- except gb and bsi -->
3487
3670
 
3488
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3489
-
3490
-
3491
- <!-- <xsl:if test="$namespace = 'bipm'">
3492
- <xsl:choose>
3493
- <xsl:when test="ancestor::*[local-name()='preface']">
3494
- show Note under table in preface (ex. abstract) sections
3495
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3496
- </xsl:when>
3497
- <xsl:otherwise>
3498
- empty, because notes show at page side in main sections
3499
- <fo:block/>
3500
- </xsl:otherwise>
3501
- </xsl:choose>
3502
- </xsl:if> -->
3671
+ <xsl:apply-templates select="../*[local-name()='note']"/>
3672
+
3503
3673
 
3504
3674
 
3505
3675
  <!-- horizontal row separator -->
3506
3676
 
3507
3677
 
3508
3678
  <!-- fn processing -->
3509
- <xsl:call-template name="fn_display"/>
3510
-
3679
+ <xsl:call-template name="table_fn_display"/>
3511
3680
 
3512
3681
  <!-- for PAS display Notes after footnotes -->
3513
3682
 
@@ -3546,7 +3715,7 @@
3546
3715
  </xsl:if>
3547
3716
 
3548
3717
 
3549
- <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
3718
+ <xsl:apply-templates select="../*[local-name()='thead']">
3550
3719
  <xsl:with-param name="cols-count" select="$cols-count"/>
3551
3720
  </xsl:apply-templates>
3552
3721
 
@@ -3594,99 +3763,68 @@
3594
3763
 
3595
3764
 
3596
3765
  <xsl:apply-templates/>
3597
- <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
3598
-
3766
+
3599
3767
  </fo:table-body>
3600
3768
 
3601
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
3602
- <xsl:choose>
3603
- <xsl:when test="substring-after(., '—') != ''">
3604
- <xsl:text>—</xsl:text><xsl:value-of select="substring-after(., '—')"/>
3605
- </xsl:when>
3606
- <xsl:otherwise>
3607
- <xsl:value-of select="."/>
3608
- </xsl:otherwise>
3609
- </xsl:choose>
3610
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="presentation_name">
3611
- <xsl:apply-templates mode="presentation_name"/>
3612
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/node()" mode="presentation_name">
3613
- <xsl:apply-templates select="."/>
3614
- </xsl:template><xsl:template match="*[local-name()='tr']">
3615
- <xsl:variable name="parent-name" select="local-name(..)"/>
3616
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3617
- <fo:table-row min-height="4mm">
3618
- <xsl:if test="$parent-name = 'thead'">
3619
- <xsl:attribute name="font-weight">bold</xsl:attribute>
3620
-
3621
-
3622
-
3623
- <xsl:choose>
3624
- <xsl:when test="position() = 1">
3625
- <xsl:attribute name="border-top">solid black 1.5pt</xsl:attribute>
3626
- <xsl:attribute name="border-bottom">solid black 1pt</xsl:attribute>
3627
- </xsl:when>
3628
- <xsl:when test="position() = last()">
3629
- <xsl:attribute name="border-top">solid black 1pt</xsl:attribute>
3630
- <xsl:attribute name="border-bottom">solid black 1.5pt</xsl:attribute>
3631
- </xsl:when>
3632
- <xsl:otherwise>
3633
- <xsl:attribute name="border-top">solid black 1pt</xsl:attribute>
3634
- <xsl:attribute name="border-bottom">solid black 1pt</xsl:attribute>
3635
- </xsl:otherwise>
3636
- </xsl:choose>
3637
-
3638
-
3639
-
3640
-
3641
-
3642
-
3643
- </xsl:if>
3644
- <xsl:if test="$parent-name = 'tfoot'">
3645
-
3646
-
3647
- <xsl:attribute name="font-size">9pt</xsl:attribute>
3648
- <xsl:attribute name="border-left">solid black 1pt</xsl:attribute>
3649
- <xsl:attribute name="border-right">solid black 1pt</xsl:attribute>
3650
-
3651
-
3652
- </xsl:if>
3653
-
3654
-
3655
-
3656
-
3657
-
3658
-
3659
-
3660
-
3661
-
3662
-
3663
- <!-- <xsl:if test="$namespace = 'bipm'">
3664
- <xsl:attribute name="height">8mm</xsl:attribute>
3665
- </xsl:if> -->
3666
-
3667
- <xsl:apply-templates/>
3668
- </fo:table-row>
3669
- </xsl:template><xsl:template match="*[local-name()='th']">
3670
- <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
3671
- <xsl:attribute name="text-align">
3769
+ </xsl:template><xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
3770
+ <fo:table-row xsl:use-attribute-sets="table-header-row-style">
3771
+
3772
+
3773
+
3774
+
3672
3775
  <xsl:choose>
3673
- <xsl:when test="@align">
3674
- <xsl:call-template name="setAlignment"/>
3675
- <!-- <xsl:value-of select="@align"/> -->
3776
+ <xsl:when test="position() = 1">
3777
+ <xsl:attribute name="border-top">solid black 1.5pt</xsl:attribute>
3778
+ <xsl:attribute name="border-bottom">solid black 1pt</xsl:attribute>
3779
+ </xsl:when>
3780
+ <xsl:when test="position() = last()">
3781
+ <xsl:attribute name="border-top">solid black 1pt</xsl:attribute>
3782
+ <xsl:attribute name="border-bottom">solid black 1.5pt</xsl:attribute>
3676
3783
  </xsl:when>
3677
- <xsl:otherwise>center</xsl:otherwise>
3678
3784
  </xsl:choose>
3679
- </xsl:attribute>
3680
3785
 
3786
+
3787
+
3788
+
3789
+ <xsl:call-template name="setTableRowAttributes"/>
3681
3790
 
3682
- <xsl:attribute name="padding-top">1mm</xsl:attribute>
3791
+ <xsl:apply-templates/>
3792
+ </fo:table-row>
3793
+ </xsl:template><xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
3794
+ <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
3683
3795
 
3796
+ <xsl:call-template name="setTableRowAttributes"/>
3797
+ <xsl:apply-templates/>
3798
+ </fo:table-row>
3799
+ </xsl:template><xsl:template match="*[local-name()='tr']">
3800
+ <fo:table-row xsl:use-attribute-sets="table-body-row-style">
3801
+
3684
3802
 
3803
+
3685
3804
 
3805
+
3806
+ <xsl:call-template name="setTableRowAttributes"/>
3807
+ <xsl:apply-templates/>
3808
+ </fo:table-row>
3809
+ </xsl:template><xsl:template name="setTableRowAttributes">
3810
+
3811
+
3812
+
3813
+
3814
+
3815
+
3816
+
3817
+
3818
+ </xsl:template><xsl:template match="*[local-name()='th']">
3819
+ <fo:table-cell xsl:use-attribute-sets="table-header-cell-style"> <!-- text-align="{@align}" -->
3820
+ <xsl:call-template name="setTextAlignment">
3821
+ <xsl:with-param name="default">center</xsl:with-param>
3822
+ </xsl:call-template>
3686
3823
 
3687
3824
 
3688
3825
 
3689
3826
 
3827
+
3690
3828
 
3691
3829
 
3692
3830
 
@@ -3695,21 +3833,25 @@
3695
3833
  <xsl:if test="$lang = 'ar'">
3696
3834
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
3697
3835
  </xsl:if>
3698
- <xsl:if test="@colspan">
3699
- <xsl:attribute name="number-columns-spanned">
3700
- <xsl:value-of select="@colspan"/>
3701
- </xsl:attribute>
3702
- </xsl:if>
3703
- <xsl:if test="@rowspan">
3704
- <xsl:attribute name="number-rows-spanned">
3705
- <xsl:value-of select="@rowspan"/>
3706
- </xsl:attribute>
3707
- </xsl:if>
3708
- <xsl:call-template name="display-align"/>
3836
+
3837
+ <xsl:call-template name="setTableCellAttributes"/>
3838
+
3709
3839
  <fo:block>
3710
3840
  <xsl:apply-templates/>
3711
3841
  </fo:block>
3712
3842
  </fo:table-cell>
3843
+ </xsl:template><xsl:template name="setTableCellAttributes">
3844
+ <xsl:if test="@colspan">
3845
+ <xsl:attribute name="number-columns-spanned">
3846
+ <xsl:value-of select="@colspan"/>
3847
+ </xsl:attribute>
3848
+ </xsl:if>
3849
+ <xsl:if test="@rowspan">
3850
+ <xsl:attribute name="number-rows-spanned">
3851
+ <xsl:value-of select="@rowspan"/>
3852
+ </xsl:attribute>
3853
+ </xsl:if>
3854
+ <xsl:call-template name="display-align"/>
3713
3855
  </xsl:template><xsl:template name="display-align">
3714
3856
  <xsl:if test="@valign">
3715
3857
  <xsl:attribute name="display-align">
@@ -3722,93 +3864,77 @@
3722
3864
  </xsl:attribute>
3723
3865
  </xsl:if>
3724
3866
  </xsl:template><xsl:template match="*[local-name()='td']">
3725
- <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
3726
- <xsl:attribute name="text-align">
3727
- <xsl:choose>
3728
- <xsl:when test="@align">
3729
- <xsl:call-template name="setAlignment"/>
3730
- <!-- <xsl:value-of select="@align"/> -->
3731
- </xsl:when>
3732
- <xsl:otherwise>left</xsl:otherwise>
3733
- </xsl:choose>
3734
- </xsl:attribute>
3867
+ <fo:table-cell xsl:use-attribute-sets="table-cell-style"> <!-- text-align="{@align}" -->
3868
+ <xsl:call-template name="setTextAlignment">
3869
+ <xsl:with-param name="default">left</xsl:with-param>
3870
+ </xsl:call-template>
3871
+
3735
3872
  <xsl:if test="$lang = 'ar'">
3736
3873
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
3737
3874
  </xsl:if>
3738
- <!-- and ancestor::*[local-name() = 'thead'] -->
3739
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3740
3875
 
3741
3876
 
3742
3877
 
3878
+ <!-- bsi -->
3879
+
3743
3880
 
3744
3881
 
3745
- <xsl:if test="ancestor::*[local-name() = 'tfoot']">
3746
- <xsl:attribute name="border">solid black 0</xsl:attribute>
3747
- </xsl:if>
3748
3882
 
3749
3883
 
3750
3884
 
3885
+ <xsl:if test="ancestor::*[local-name() = 'tfoot']">
3886
+ <xsl:attribute name="border">solid black 0</xsl:attribute>
3887
+ </xsl:if>
3751
3888
 
3752
3889
 
3753
3890
 
3891
+
3754
3892
 
3755
3893
 
3756
3894
 
3757
3895
 
3758
3896
 
3759
3897
 
3760
- <xsl:if test=".//*[local-name() = 'table']">
3898
+ <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
3761
3899
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
3762
3900
  </xsl:if>
3763
- <xsl:if test="@colspan">
3764
- <xsl:attribute name="number-columns-spanned">
3765
- <xsl:value-of select="@colspan"/>
3766
- </xsl:attribute>
3767
- </xsl:if>
3768
- <xsl:if test="@rowspan">
3769
- <xsl:attribute name="number-rows-spanned">
3770
- <xsl:value-of select="@rowspan"/>
3771
- </xsl:attribute>
3772
- </xsl:if>
3773
- <xsl:call-template name="display-align"/>
3901
+
3902
+ <xsl:call-template name="setTableCellAttributes"/>
3903
+
3774
3904
  <fo:block>
3775
-
3905
+
3906
+
3907
+
3776
3908
  <xsl:apply-templates/>
3777
3909
  </fo:block>
3778
3910
  </fo:table-cell>
3779
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
3780
-
3911
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
3912
+
3913
+ <fo:block xsl:use-attribute-sets="table-note-style">
3914
+
3915
+
3916
+
3917
+
3781
3918
 
3782
- <fo:block font-size="10pt" margin-bottom="12pt">
3919
+ <!-- Table's note name (NOTE, for example) -->
3920
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
3783
3921
 
3784
3922
 
3785
- <xsl:attribute name="font-size">9pt</xsl:attribute>
3786
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3787
3923
 
3788
3924
 
3789
3925
 
3790
3926
 
3791
3927
 
3792
-
3793
-
3794
- <!-- Table's note name (NOTE, for example) -->
3795
-
3796
- <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
3797
-
3928
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3798
3929
 
3799
-
3800
-
3801
-
3802
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3803
-
3804
- </fo:inline>
3805
-
3806
-
3807
-
3808
- <xsl:apply-templates mode="process"/>
3809
- </fo:block>
3930
+ </fo:inline>
3931
+
3932
+
3933
+
3934
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3935
+ </fo:block>
3810
3936
 
3811
- </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">
3937
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" priority="2">
3812
3938
  <xsl:apply-templates/>
3813
3939
  </xsl:template><xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" priority="2" name="fn">
3814
3940
 
@@ -3888,8 +4014,7 @@
3888
4014
  <xsl:copy-of select="$footnote_inline"/>
3889
4015
  <fo:footnote-body>
3890
4016
 
3891
- <fo:block-container text-indent="0" start-indent="0">
3892
-
4017
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
3893
4018
 
3894
4019
  <fo:block xsl:use-attribute-sets="fn-body-style">
3895
4020
 
@@ -3908,7 +4033,7 @@
3908
4033
  <xsl:copy-of select="$footnote_inline"/>
3909
4034
  </xsl:otherwise>
3910
4035
  </xsl:choose>
3911
- </xsl:template><xsl:template name="fn_display">
4036
+ </xsl:template><xsl:template name="table_fn_display">
3912
4037
  <xsl:variable name="references">
3913
4038
 
3914
4039
  <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
@@ -3919,36 +4044,26 @@
3919
4044
  <xsl:for-each select="xalan:nodeset($references)//fn">
3920
4045
  <xsl:variable name="reference" select="@reference"/>
3921
4046
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
3922
- <fo:block margin-bottom="12pt">
4047
+ <fo:block xsl:use-attribute-sets="table-fn-style">
3923
4048
 
3924
4049
 
3925
4050
 
3926
- <xsl:attribute name="font-size">9pt</xsl:attribute>
3927
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3928
-
3929
-
3930
-
3931
-
3932
-
3933
- <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
4051
+ <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
3934
4052
 
3935
4053
 
3936
- <xsl:attribute name="alignment-baseline">hanging</xsl:attribute>
3937
4054
 
3938
4055
 
3939
4056
 
4057
+ <xsl:value-of select="@reference"/>
3940
4058
 
3941
4059
 
3942
4060
 
3943
4061
 
3944
- <xsl:value-of select="@reference"/>
3945
4062
 
3946
4063
 
3947
4064
 
3948
4065
  </fo:inline>
3949
- <fo:inline>
3950
-
3951
- <!-- <xsl:apply-templates /> -->
4066
+ <fo:inline xsl:use-attribute-sets="table-fn-body-style">
3952
4067
  <xsl:copy-of select="./node()"/>
3953
4068
  </fo:inline>
3954
4069
  </fo:block>
@@ -3960,15 +4075,7 @@
3960
4075
 
3961
4076
  <xsl:apply-templates/>
3962
4077
  </fn>
3963
- </xsl:template><xsl:template name="fn_name_display">
3964
- <!-- <xsl:variable name="references">
3965
- <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3966
- <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
3967
- <xsl:apply-templates />
3968
- </fn>
3969
- </xsl:for-each>
3970
- </xsl:variable>
3971
- $references=<xsl:copy-of select="$references"/> -->
4078
+ </xsl:template><xsl:template name="table_name_fn_display">
3972
4079
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3973
4080
  <xsl:variable name="reference" select="@reference"/>
3974
4081
  <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
@@ -3977,9 +4084,7 @@
3977
4084
  </fo:block>
3978
4085
  </xsl:for-each>
3979
4086
  </xsl:template><xsl:template name="fn_display_figure">
3980
- <xsl:variable name="key_iso">
3981
- true <!-- and (not(@class) or @class !='pseudocode') -->
3982
- </xsl:variable>
4087
+
3983
4088
  <xsl:variable name="references">
3984
4089
  <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
3985
4090
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -3987,50 +4092,52 @@
3987
4092
  </fn>
3988
4093
  </xsl:for-each>
3989
4094
  </xsl:variable>
4095
+
4096
+ <xsl:if test="xalan:nodeset($references)//fn">
3990
4097
 
3991
- <!-- current hierarchy is 'figure' element -->
3992
- <xsl:variable name="following_dl_colwidths">
3993
- <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
3994
- <xsl:variable name="html-table">
3995
- <xsl:variable name="doc_ns">
4098
+ <xsl:variable name="key_iso">
4099
+ true
4100
+ </xsl:variable>
4101
+
4102
+ <!-- current hierarchy is 'figure' element -->
4103
+ <xsl:variable name="following_dl_colwidths">
4104
+ <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
4105
+ <xsl:variable name="html-table">
4106
+ <xsl:variable name="doc_ns">
4107
+
4108
+ </xsl:variable>
4109
+ <xsl:variable name="ns">
4110
+ <xsl:choose>
4111
+ <xsl:when test="normalize-space($doc_ns) != ''">
4112
+ <xsl:value-of select="normalize-space($doc_ns)"/>
4113
+ </xsl:when>
4114
+ <xsl:otherwise>
4115
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
4116
+ </xsl:otherwise>
4117
+ </xsl:choose>
4118
+ </xsl:variable>
3996
4119
 
3997
- </xsl:variable>
3998
- <xsl:variable name="ns">
3999
- <xsl:choose>
4000
- <xsl:when test="normalize-space($doc_ns) != ''">
4001
- <xsl:value-of select="normalize-space($doc_ns)"/>
4002
- </xsl:when>
4003
- <xsl:otherwise>
4004
- <xsl:value-of select="substring-before(name(/*), '-')"/>
4005
- </xsl:otherwise>
4006
- </xsl:choose>
4007
- </xsl:variable>
4008
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
4009
- <!-- <xsl:element name="{$ns}:table"> -->
4010
4120
  <xsl:for-each select="*[local-name() = 'dl'][1]">
4011
4121
  <tbody>
4012
4122
  <xsl:apply-templates mode="dl"/>
4013
4123
  </tbody>
4014
4124
  </xsl:for-each>
4015
- <!-- </xsl:element> -->
4016
- </xsl:variable>
4017
-
4018
- <xsl:call-template name="calculate-column-widths">
4019
- <xsl:with-param name="cols-count" select="2"/>
4020
- <xsl:with-param name="table" select="$html-table"/>
4021
- </xsl:call-template>
4022
-
4023
- </xsl:if>
4024
- </xsl:variable>
4025
-
4026
-
4027
- <xsl:variable name="maxlength_dt">
4028
- <xsl:for-each select="*[local-name() = 'dl'][1]">
4029
- <xsl:call-template name="getMaxLength_dt"/>
4030
- </xsl:for-each>
4031
- </xsl:variable>
4032
-
4033
- <xsl:if test="xalan:nodeset($references)//fn">
4125
+ </xsl:variable>
4126
+
4127
+ <xsl:call-template name="calculate-column-widths">
4128
+ <xsl:with-param name="cols-count" select="2"/>
4129
+ <xsl:with-param name="table" select="$html-table"/>
4130
+ </xsl:call-template>
4131
+
4132
+ </xsl:if>
4133
+ </xsl:variable>
4134
+
4135
+ <xsl:variable name="maxlength_dt">
4136
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
4137
+ <xsl:call-template name="getMaxLength_dt"/>
4138
+ </xsl:for-each>
4139
+ </xsl:variable>
4140
+
4034
4141
  <fo:block>
4035
4142
  <fo:table width="95%" table-layout="fixed">
4036
4143
  <xsl:if test="normalize-space($key_iso) = 'true'">
@@ -4057,20 +4164,18 @@
4057
4164
  <fo:table-row>
4058
4165
  <fo:table-cell>
4059
4166
  <fo:block>
4060
- <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
4061
-
4167
+ <fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
4062
4168
  <xsl:value-of select="@reference"/>
4063
4169
  </fo:inline>
4064
4170
  </fo:block>
4065
4171
  </fo:table-cell>
4066
4172
  <fo:table-cell>
4067
- <fo:block text-align="justify" margin-bottom="12pt">
4068
-
4173
+ <fo:block xsl:use-attribute-sets="figure-fn-body-style">
4069
4174
  <xsl:if test="normalize-space($key_iso) = 'true'">
4070
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
4175
+
4176
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
4177
+
4071
4178
  </xsl:if>
4072
-
4073
- <!-- <xsl:apply-templates /> -->
4074
4179
  <xsl:copy-of select="./node()"/>
4075
4180
  </fo:block>
4076
4181
  </fo:table-cell>
@@ -4083,24 +4188,17 @@
4083
4188
  </xsl:if>
4084
4189
 
4085
4190
  </xsl:template><xsl:template match="*[local-name()='fn']">
4086
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
4087
- <fo:inline font-size="80%" keep-with-previous.within-line="always">
4191
+ <fo:inline xsl:use-attribute-sets="fn-reference-style">
4192
+
4088
4193
 
4089
4194
 
4090
4195
 
4091
4196
  <xsl:if test="ancestor::*[local-name()='table']">
4092
4197
  <xsl:attribute name="font-weight">normal</xsl:attribute>
4093
- <!-- <xsl:attribute name="alignment-baseline">hanging</xsl:attribute> -->
4094
4198
  <xsl:attribute name="baseline-shift">15%</xsl:attribute>
4095
4199
  </xsl:if>
4096
4200
 
4097
4201
 
4098
-
4099
-
4100
-
4101
-
4102
-
4103
-
4104
4202
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
4105
4203
 
4106
4204
 
@@ -4120,10 +4218,10 @@
4120
4218
  <xsl:variable name="isDeleted" select="@deleted"/>
4121
4219
  <fo:block-container>
4122
4220
 
4123
- <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
4124
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
4125
- </xsl:if>
4126
-
4221
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
4222
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
4223
+ </xsl:if>
4224
+
4127
4225
 
4128
4226
  <xsl:if test="parent::*[local-name() = 'note']">
4129
4227
  <xsl:attribute name="margin-left">
@@ -4140,11 +4238,11 @@
4140
4238
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
4141
4239
  </xsl:call-template>
4142
4240
 
4143
- <fo:block-container>
4144
-
4145
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
4146
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
4241
+ <fo:block-container margin-left="0mm">
4242
+
4147
4243
 
4244
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
4245
+
4148
4246
 
4149
4247
  <xsl:variable name="parent" select="local-name(..)"/>
4150
4248
 
@@ -4157,25 +4255,21 @@
4157
4255
  <xsl:choose>
4158
4256
  <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
4159
4257
 
4160
-
4161
- <fo:block margin-bottom="12pt" text-align="left">
4162
-
4163
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
4164
-
4165
- <xsl:variable name="title-where">
4258
+ <fo:block margin-bottom="12pt" text-align="left">
4259
+
4260
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
4166
4261
 
4262
+ <xsl:variable name="title-where">
4167
4263
  <xsl:call-template name="getLocalizedString">
4168
4264
  <xsl:with-param name="key">where</xsl:with-param>
4169
4265
  </xsl:call-template>
4170
-
4171
-
4172
- </xsl:variable>
4173
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
4174
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
4175
- <xsl:text/>
4176
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
4177
- </fo:block>
4178
-
4266
+ </xsl:variable>
4267
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
4268
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
4269
+ <xsl:text/>
4270
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
4271
+ </fo:block>
4272
+
4179
4273
  </xsl:when>
4180
4274
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
4181
4275
  <fo:block margin-bottom="12pt" text-align="left">
@@ -4186,12 +4280,9 @@
4186
4280
 
4187
4281
 
4188
4282
  <xsl:variable name="title-where">
4189
-
4190
- <xsl:call-template name="getLocalizedString">
4191
- <xsl:with-param name="key">where</xsl:with-param>
4192
- </xsl:call-template>
4193
-
4194
-
4283
+ <xsl:call-template name="getLocalizedString">
4284
+ <xsl:with-param name="key">where</xsl:with-param>
4285
+ </xsl:call-template>
4195
4286
  </xsl:variable>
4196
4287
  <xsl:value-of select="$title-where"/>
4197
4288
  </fo:block>
@@ -4206,12 +4297,9 @@
4206
4297
 
4207
4298
 
4208
4299
  <xsl:variable name="title-key">
4209
-
4210
- <xsl:call-template name="getLocalizedString">
4211
- <xsl:with-param name="key">key</xsl:with-param>
4212
- </xsl:call-template>
4213
-
4214
-
4300
+ <xsl:call-template name="getLocalizedString">
4301
+ <xsl:with-param name="key">key</xsl:with-param>
4302
+ </xsl:call-template>
4215
4303
  </xsl:variable>
4216
4304
  <xsl:value-of select="$title-key"/>
4217
4305
  </fo:block>
@@ -4238,9 +4326,7 @@
4238
4326
  <fo:table width="95%" table-layout="fixed">
4239
4327
 
4240
4328
  <xsl:choose>
4241
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
4242
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
4243
- </xsl:when>
4329
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
4244
4330
  <xsl:when test="normalize-space($key_iso) = 'true'">
4245
4331
  <xsl:attribute name="font-size">10pt</xsl:attribute>
4246
4332
 
@@ -4261,12 +4347,9 @@
4261
4347
  </xsl:otherwise>
4262
4348
  </xsl:choose>
4263
4349
  </xsl:variable>
4264
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
4265
- <!-- <xsl:element name="{$ns}:table"> -->
4266
- <tbody>
4267
- <xsl:apply-templates mode="dl"/>
4268
- </tbody>
4269
- <!-- </xsl:element> -->
4350
+ <tbody>
4351
+ <xsl:apply-templates mode="dl"/>
4352
+ </tbody>
4270
4353
  </xsl:variable>
4271
4354
  <!-- html-table<xsl:copy-of select="$html-table"/> -->
4272
4355
  <xsl:variable name="colwidths">
@@ -4346,8 +4429,6 @@
4346
4429
  </xsl:for-each>
4347
4430
  </xsl:otherwise>
4348
4431
  </xsl:choose>
4349
- <!-- <fo:table-column column-width="15%"/>
4350
- <fo:table-column column-width="85%"/> -->
4351
4432
  </xsl:otherwise>
4352
4433
  </xsl:choose>
4353
4434
  </xsl:template><xsl:template name="getMaxLength_dt">
@@ -4362,12 +4443,6 @@
4362
4443
  </xsl:for-each>
4363
4444
  </xsl:variable>
4364
4445
  <xsl:variable name="maxLength">
4365
- <!-- <xsl:for-each select="*[local-name()='dt']">
4366
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
4367
- <xsl:if test="position() = 1">
4368
- <xsl:value-of select="string-length(normalize-space(.))"/>
4369
- </xsl:if>
4370
- </xsl:for-each> -->
4371
4446
  <xsl:for-each select="xalan:nodeset($lengths)/length">
4372
4447
  <xsl:sort select="." data-type="number" order="descending"/>
4373
4448
  <xsl:if test="position() = 1">
@@ -4393,12 +4468,12 @@
4393
4468
  <xsl:if test="normalize-space($key_iso) = 'true'">
4394
4469
  <xsl:attribute name="margin-top">0</xsl:attribute>
4395
4470
  </xsl:if>
4396
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4471
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4397
4472
  </fo:block>
4398
4473
  </fo:table-cell>
4399
4474
  <fo:table-cell>
4400
4475
  <fo:block>
4401
- <xsl:apply-templates/>
4476
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4402
4477
  </fo:block>
4403
4478
  </fo:table-cell>
4404
4479
  </fo:table-row>
@@ -4409,83 +4484,49 @@
4409
4484
  </td>
4410
4485
  <td>
4411
4486
 
4412
-
4413
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4414
-
4487
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
4488
+ <xsl:with-param name="process">true</xsl:with-param>
4489
+ </xsl:apply-templates>
4490
+
4415
4491
  </td>
4416
4492
  </tr>
4417
4493
 
4418
4494
  </xsl:template><xsl:template match="*[local-name()='dt']">
4419
4495
  <xsl:param name="key_iso"/>
4420
4496
 
4421
- <fo:table-row>
4422
-
4423
-
4497
+ <fo:table-row xsl:use-attribute-sets="dt-row-style">
4424
4498
  <fo:table-cell>
4425
4499
 
4426
- <fo:block margin-top="6pt">
4500
+ <fo:block xsl:use-attribute-sets="dt-style">
4427
4501
  <xsl:copy-of select="@id"/>
4428
4502
 
4429
- <xsl:attribute name="margin-top">0pt</xsl:attribute>
4430
-
4431
-
4432
4503
  <xsl:if test="normalize-space($key_iso) = 'true'">
4433
4504
  <xsl:attribute name="margin-top">0</xsl:attribute>
4434
-
4435
4505
  </xsl:if>
4436
4506
 
4437
4507
 
4438
4508
 
4439
-
4440
-
4441
-
4442
-
4443
4509
  <xsl:apply-templates/>
4444
- <!-- <xsl:if test="$namespace = 'gb'">
4445
- <xsl:if test="ancestor::*[local-name()='formula']">
4446
- <xsl:text>—</xsl:text>
4447
- </xsl:if>
4448
- </xsl:if> -->
4449
4510
  </fo:block>
4450
4511
  </fo:table-cell>
4451
4512
  <fo:table-cell>
4452
4513
  <fo:block>
4453
4514
 
4454
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
4455
- <xsl:if test="local-name(*[1]) != 'stem'">
4456
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4457
- </xsl:if>
4458
- </xsl:if> -->
4459
-
4460
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4461
-
4515
+
4516
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
4517
+ <xsl:with-param name="process">true</xsl:with-param>
4518
+ </xsl:apply-templates>
4462
4519
  </fo:block>
4463
4520
  </fo:table-cell>
4464
4521
  </fo:table-row>
4465
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
4466
- <xsl:if test="local-name(*[1]) = 'stem'">
4467
- <fo:table-row>
4468
- <fo:table-cell>
4469
- <fo:block margin-top="6pt">
4470
- <xsl:if test="normalize-space($key_iso) = 'true'">
4471
- <xsl:attribute name="margin-top">0</xsl:attribute>
4472
- </xsl:if>
4473
- <xsl:text>&#xA0;</xsl:text>
4474
- </fo:block>
4475
- </fo:table-cell>
4476
- <fo:table-cell>
4477
- <fo:block>
4478
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4479
- </fo:block>
4480
- </fo:table-cell>
4481
- </fo:table-row>
4482
- </xsl:if>
4483
- </xsl:if> -->
4484
4522
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
4485
4523
  <xsl:apply-templates/>
4486
- </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
4487
- <xsl:apply-templates select="@language"/>
4488
- <xsl:apply-templates/>
4524
+ </xsl:template><xsl:template match="*[local-name()='dd']">
4525
+ <xsl:param name="process">false</xsl:param>
4526
+ <xsl:if test="$process = 'true'">
4527
+ <xsl:apply-templates select="@language"/>
4528
+ <xsl:apply-templates/>
4529
+ </xsl:if>
4489
4530
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
4490
4531
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
4491
4532
  </xsl:template><xsl:template match="*[local-name()='em']">
@@ -4509,6 +4550,7 @@
4509
4550
  </fo:inline>
4510
4551
  </xsl:template><xsl:template match="*[local-name()='tt']">
4511
4552
  <fo:inline xsl:use-attribute-sets="tt-style">
4553
+
4512
4554
  <xsl:variable name="_font-size">
4513
4555
 
4514
4556
 
@@ -4545,7 +4587,22 @@
4545
4587
  <xsl:apply-templates/>
4546
4588
  </fo:inline>
4547
4589
  </xsl:template><xsl:template match="*[local-name()='add']">
4590
+ <xsl:param name="skip">true</xsl:param>
4548
4591
  <xsl:choose>
4592
+ <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
4593
+ <xsl:choose>
4594
+ <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>
4595
+ <xsl:otherwise>
4596
+ <fo:inline>
4597
+ <xsl:call-template name="insertTag">
4598
+ <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
4599
+ <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
4600
+ <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
4601
+ </xsl:call-template>
4602
+ </fo:inline>
4603
+ </xsl:otherwise>
4604
+ </xsl:choose>
4605
+ </xsl:when>
4549
4606
  <xsl:when test="@amendment">
4550
4607
  <fo:inline>
4551
4608
  <xsl:call-template name="insertTag">
@@ -4580,7 +4637,6 @@
4580
4637
  </fo:inline>
4581
4638
  </xsl:otherwise>
4582
4639
  </xsl:choose>
4583
-
4584
4640
  </xsl:template><xsl:template name="insertTag">
4585
4641
  <xsl:param name="type"/>
4586
4642
  <xsl:param name="kind"/>
@@ -4588,22 +4644,20 @@
4588
4644
  <xsl:variable name="add_width" select="string-length($value) * 20"/>
4589
4645
  <xsl:variable name="maxwidth" select="60 + $add_width"/>
4590
4646
  <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
4591
- <!-- <xsl:attribute name="width">7mm</xsl:attribute>
4592
- <xsl:attribute name="content-height">100%</xsl:attribute> -->
4593
4647
  <xsl:attribute name="height">5mm</xsl:attribute>
4594
4648
  <xsl:attribute name="content-width">100%</xsl:attribute>
4595
4649
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
4596
4650
  <xsl:attribute name="scaling">uniform</xsl:attribute>
4597
4651
  <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
4598
4652
  <g>
4599
- <xsl:if test="$type = 'closing'">
4653
+ <xsl:if test="$type = 'closing' or $type = 'end'">
4600
4654
  <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
4601
4655
  </xsl:if>
4602
4656
  <polyline points="0,0 {$maxwidth},0 {$maxwidth + 30},40 {$maxwidth},80 0,80 " stroke="black" stroke-width="5" fill="white"/>
4603
4657
  <line x1="0" y1="0" x2="0" y2="80" stroke="black" stroke-width="20"/>
4604
4658
  </g>
4605
4659
  <text font-family="Arial" x="15" y="57" font-size="40pt">
4606
- <xsl:if test="$type = 'closing'">
4660
+ <xsl:if test="$type = 'closing' or $type = 'end'">
4607
4661
  <xsl:attribute name="x">25</xsl:attribute>
4608
4662
  </xsl:if>
4609
4663
  <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
@@ -4647,7 +4701,11 @@
4647
4701
  <xsl:with-param name="text" select="substring($text,2)"/>
4648
4702
  </xsl:call-template>
4649
4703
  </xsl:if>
4650
- </xsl:template><xsl:template name="tokenize">
4704
+ </xsl:template><xsl:template match="*[local-name() = 'pagebreak']">
4705
+ <fo:block break-after="page"/>
4706
+ <fo:block> </fo:block>
4707
+ <fo:block break-after="page"/>
4708
+ </xsl:template><xsl:template name="tokenize">
4651
4709
  <xsl:param name="text"/>
4652
4710
  <xsl:param name="separator" select="' '"/>
4653
4711
  <xsl:choose>
@@ -4807,14 +4865,6 @@
4807
4865
 
4808
4866
  <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
4809
4867
 
4810
- <!-- <xsl:choose>
4811
- <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
4812
-
4813
- </xsl:when>
4814
- <xsl:otherwise>
4815
- <xsl:copy-of select="current()"/>
4816
- </xsl:otherwise>
4817
- </xsl:choose> -->
4818
4868
  </xsl:variable>
4819
4869
  <xsl:copy-of select="$simple-table"/>
4820
4870
  </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
@@ -4933,8 +4983,6 @@
4933
4983
  <xsl:choose>
4934
4984
  <xsl:when test="contains($str2, ' ')">
4935
4985
  <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
4936
- <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
4937
- <xsl:value-of select="substring($substr, 2)"/> -->
4938
4986
  <xsl:call-template name="capitalize">
4939
4987
  <xsl:with-param name="str" select="$substr"/>
4940
4988
  </xsl:call-template>
@@ -4944,8 +4992,6 @@
4944
4992
  </xsl:call-template>
4945
4993
  </xsl:when>
4946
4994
  <xsl:otherwise>
4947
- <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
4948
- <xsl:value-of select="substring($str2, 2)"/> -->
4949
4995
  <xsl:call-template name="capitalize">
4950
4996
  <xsl:with-param name="str" select="$str2"/>
4951
4997
  </xsl:call-template>
@@ -4973,6 +5019,7 @@
4973
5019
  <xsl:apply-templates select="." mode="mathml"/>
4974
5020
  </xsl:variable>
4975
5021
  <fo:instream-foreign-object fox:alt-text="Math">
5022
+
4976
5023
 
4977
5024
 
4978
5025
  <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
@@ -5011,7 +5058,7 @@
5011
5058
  <xsl:attribute name="scaling">uniform</xsl:attribute>
5012
5059
  </xsl:if>
5013
5060
 
5014
- <!-- <xsl:copy-of select="."/> -->
5061
+
5015
5062
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
5016
5063
  </fo:instream-foreign-object>
5017
5064
  </fo:inline>
@@ -5070,6 +5117,10 @@
5070
5117
 
5071
5118
 
5072
5119
 
5120
+
5121
+
5122
+
5123
+
5073
5124
  <xsl:choose>
5074
5125
  <xsl:when test="$target_text = ''">
5075
5126
  <xsl:apply-templates/>
@@ -5093,19 +5144,19 @@
5093
5144
  </fo:inline>
5094
5145
  </xsl:template><xsl:template match="*[local-name()='appendix']">
5095
5146
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
5096
- <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
5147
+ <xsl:apply-templates select="*[local-name()='title']"/>
5097
5148
  </fo:block>
5098
- <xsl:apply-templates/>
5099
- </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
5149
+ <xsl:apply-templates select="node()[not(local-name()='title')]"/>
5150
+ </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" priority="2">
5100
5151
  <xsl:variable name="level">
5101
5152
  <xsl:call-template name="getLevel"/>
5102
5153
  </xsl:variable>
5103
5154
  <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
5104
5155
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
5105
5156
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
5106
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
5157
+ <xsl:apply-templates select="*[local-name()='name']"/>
5107
5158
  </fo:block>
5108
- <xsl:apply-templates/>
5159
+ <xsl:apply-templates select="node()[not(local-name()='name')]"/>
5109
5160
  </xsl:template><xsl:template match="*[local-name() = 'callout']">
5110
5161
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
5111
5162
  </xsl:template><xsl:template match="*[local-name() = 'annotation']">
@@ -5127,7 +5178,6 @@
5127
5178
  </fo:inline>
5128
5179
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
5129
5180
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
5130
-
5131
5181
  <xsl:apply-templates/>
5132
5182
  </fo:basic-link>
5133
5183
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -5155,49 +5205,64 @@
5155
5205
  <fo:inline>
5156
5206
  <xsl:apply-templates/>
5157
5207
  </fo:inline>
5158
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
5208
+ </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 -->
5159
5209
  <xsl:if test="normalize-space() != ''">
5160
5210
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
5161
5211
  </xsl:if>
5162
5212
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
5163
5213
 
5164
5214
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
5215
+
5216
+
5217
+
5165
5218
 
5166
5219
 
5167
5220
 
5168
5221
 
5169
5222
 
5223
+
5224
+
5225
+
5170
5226
  <fo:block-container margin-left="0mm">
5227
+
5171
5228
 
5172
5229
 
5173
5230
 
5231
+
5174
5232
 
5175
-
5176
-
5177
-
5178
-
5179
- <fo:block>
5180
-
5181
-
5182
-
5183
-
5184
-
5233
+ <fo:block>
5234
+
5235
+
5185
5236
 
5186
- <fo:inline xsl:use-attribute-sets="note-name-style">
5187
5237
 
5188
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5189
- </fo:inline>
5190
- <xsl:apply-templates/>
5191
- </fo:block>
5192
-
5193
-
5238
+
5239
+
5240
+
5241
+ <fo:inline xsl:use-attribute-sets="note-name-style">
5242
+
5243
+
5244
+
5245
+ <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
5246
+ <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
5247
+ <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
5248
+ <xsl:with-param name="skip">false</xsl:with-param>
5249
+ </xsl:apply-templates>
5250
+ </xsl:if>
5251
+
5252
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5253
+
5254
+ </fo:inline>
5255
+
5256
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5257
+ </fo:block>
5258
+
5194
5259
  </fo:block-container>
5195
5260
  </fo:block-container>
5196
5261
 
5197
5262
  </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
5198
5263
  <xsl:variable name="num"><xsl:number/></xsl:variable>
5199
5264
  <xsl:choose>
5200
- <xsl:when test="$num = 1">
5265
+ <xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
5201
5266
  <fo:inline xsl:use-attribute-sets="note-p-style">
5202
5267
  <xsl:apply-templates/>
5203
5268
  </fo:inline>
@@ -5212,12 +5277,16 @@
5212
5277
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
5213
5278
 
5214
5279
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
5280
+
5281
+
5282
+
5283
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5215
5284
 
5216
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5217
5285
  </fo:inline>
5218
- <xsl:apply-templates/>
5286
+
5287
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5219
5288
  </fo:block>
5220
- </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">
5289
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']">
5221
5290
  <xsl:param name="sfx"/>
5222
5291
  <xsl:variable name="suffix">
5223
5292
  <xsl:choose>
@@ -5234,7 +5303,7 @@
5234
5303
  <xsl:apply-templates/>
5235
5304
  <xsl:value-of select="$suffix"/>
5236
5305
  </xsl:if>
5237
- </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
5306
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']">
5238
5307
  <xsl:param name="sfx"/>
5239
5308
  <xsl:variable name="suffix">
5240
5309
  <xsl:choose>
@@ -5261,27 +5330,25 @@
5261
5330
  <xsl:apply-templates/>
5262
5331
  </fo:block>
5263
5332
  </xsl:template><xsl:template match="*[local-name() = 'term']">
5264
- <!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
5265
5333
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
5266
5334
 
5267
5335
 
5336
+
5337
+
5268
5338
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])">
5269
5339
 
5270
5340
  <xsl:attribute name="space-before">12pt</xsl:attribute>
5271
5341
 
5272
5342
  </xsl:if>
5273
- <xsl:apply-templates/>
5343
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5274
5344
  </fo:block>
5275
- </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
5345
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
5276
5346
  <xsl:if test="normalize-space() != ''">
5277
5347
  <xsl:variable name="level">
5278
5348
  <xsl:call-template name="getLevelTermName"/>
5279
5349
  </xsl:variable>
5280
5350
  <fo:inline role="H{$level}">
5281
5351
  <xsl:apply-templates/>
5282
- <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
5283
- <xsl:text>.</xsl:text>
5284
- </xsl:if> -->
5285
5352
  </fo:inline>
5286
5353
  </xsl:if>
5287
5354
  </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
@@ -5294,9 +5361,10 @@
5294
5361
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
5295
5362
  </xsl:call-template>
5296
5363
 
5297
- <fo:block>
5298
-
5299
- <xsl:apply-templates/>
5364
+
5365
+
5366
+ <fo:block xsl:use-attribute-sets="figure-style">
5367
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5300
5368
  </fo:block>
5301
5369
  <xsl:call-template name="fn_display_figure"/>
5302
5370
  <xsl:for-each select="*[local-name() = 'note']">
@@ -5304,14 +5372,15 @@
5304
5372
  </xsl:for-each>
5305
5373
 
5306
5374
 
5307
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5375
+ <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
5376
+
5308
5377
 
5309
5378
  </fo:block-container>
5310
5379
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
5311
5380
  <fo:block id="{@id}">
5312
- <xsl:apply-templates/>
5381
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5313
5382
  </fo:block>
5314
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5383
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5315
5384
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
5316
5385
  <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
5317
5386
  <xsl:apply-templates/>
@@ -5418,9 +5487,7 @@
5418
5487
  <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
5419
5488
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
5420
5489
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
5421
- <!-- width=<xsl:value-of select="$width"/> -->
5422
5490
  <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
5423
- <!-- height=<xsl:value-of select="$height"/> -->
5424
5491
  <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">
5425
5492
  <image xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
5426
5493
  <xsl:call-template name="svg_cross">
@@ -5690,7 +5757,7 @@
5690
5757
  </fo:basic-link>
5691
5758
  </fo:block>
5692
5759
  </fo:block-container>
5693
- </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">
5760
+ </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">
5694
5761
  <xsl:apply-templates mode="contents"/>
5695
5762
  <xsl:text> </xsl:text>
5696
5763
  </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">
@@ -5702,11 +5769,72 @@
5702
5769
  <xsl:value-of select="."/>
5703
5770
  </xsl:template><xsl:template match="node()" mode="contents">
5704
5771
  <xsl:apply-templates mode="contents"/>
5772
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" mode="contents">
5773
+ <xsl:variable name="level">
5774
+ <xsl:call-template name="getLevel">
5775
+ <xsl:with-param name="depth" select="@depth"/>
5776
+ </xsl:call-template>
5777
+ </xsl:variable>
5778
+
5779
+ <xsl:variable name="section">
5780
+ <xsl:choose>
5781
+ <xsl:when test="@type = 'section-title'"/>
5782
+ <xsl:otherwise>
5783
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
5784
+ </xsl:otherwise>
5785
+ </xsl:choose>
5786
+ </xsl:variable>
5787
+
5788
+ <xsl:variable name="type"><xsl:value-of select="@type"/></xsl:variable>
5789
+
5790
+ <xsl:variable name="display">
5791
+ <xsl:choose>
5792
+ <xsl:when test="normalize-space(@id) = ''">false</xsl:when>
5793
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
5794
+ <xsl:otherwise>false</xsl:otherwise>
5795
+ </xsl:choose>
5796
+ </xsl:variable>
5797
+
5798
+ <xsl:variable name="skip">false</xsl:variable>
5799
+
5800
+ <xsl:if test="$skip = 'false'">
5801
+
5802
+ <xsl:variable name="title">
5803
+ <xsl:choose>
5804
+ <xsl:when test="*[local-name() = 'tab']">
5805
+ <xsl:choose>
5806
+ <xsl:when test="@type = 'section-title'">
5807
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
5808
+ <xsl:text>: </xsl:text>
5809
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
5810
+ </xsl:when>
5811
+ <xsl:otherwise>
5812
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
5813
+ </xsl:otherwise>
5814
+ </xsl:choose>
5815
+ </xsl:when>
5816
+ <xsl:otherwise>
5817
+ <xsl:copy-of select="node()"/>
5818
+ </xsl:otherwise>
5819
+ </xsl:choose>
5820
+ </xsl:variable>
5821
+
5822
+ <xsl:variable name="root">
5823
+ <xsl:if test="ancestor-or-self::*[local-name() = 'preface']">preface</xsl:if>
5824
+ <xsl:if test="ancestor-or-self::*[local-name() = 'annex']">annex</xsl:if>
5825
+ </xsl:variable>
5826
+
5827
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
5828
+ <title>
5829
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
5830
+ </title>
5831
+ </item>
5832
+ </xsl:if>
5705
5833
  </xsl:template><xsl:template match="node()" mode="bookmarks">
5706
5834
  <xsl:apply-templates mode="bookmarks"/>
5707
5835
  </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
5708
5836
  <xsl:apply-templates select="."/>
5709
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
5837
+ </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">
5710
5838
  <xsl:apply-templates mode="bookmarks"/>
5711
5839
  </xsl:template><xsl:template name="addBookmarks">
5712
5840
  <xsl:param name="contents"/>
@@ -5796,8 +5924,6 @@
5796
5924
 
5797
5925
 
5798
5926
 
5799
-
5800
-
5801
5927
  </fo:bookmark-tree>
5802
5928
  </xsl:if>
5803
5929
  </xsl:template><xsl:template name="insertFigureBookmarks">
@@ -5868,7 +5994,7 @@
5868
5994
  <xsl:apply-templates mode="bookmark"/>
5869
5995
  </xsl:otherwise>
5870
5996
  </xsl:choose>
5871
- </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">
5997
+ </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']">
5872
5998
  <xsl:if test="normalize-space() != ''">
5873
5999
  <fo:block xsl:use-attribute-sets="figure-name-style">
5874
6000
 
@@ -5877,16 +6003,13 @@
5877
6003
  </fo:block>
5878
6004
  </xsl:if>
5879
6005
  </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">
5880
- <xsl:apply-templates mode="contents_item"/>
6006
+ <xsl:param name="mode">bookmarks</xsl:param>
6007
+ <xsl:apply-templates mode="contents_item">
6008
+ <xsl:with-param name="mode" select="$mode"/>
6009
+ </xsl:apply-templates>
5881
6010
  <!-- <xsl:text> </xsl:text> -->
5882
6011
  </xsl:template><xsl:template name="getSection">
5883
6012
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
5884
- <!--
5885
- <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
5886
- <xsl:value-of select="."/>
5887
- </xsl:for-each>
5888
- -->
5889
-
5890
6013
  </xsl:template><xsl:template name="getName">
5891
6014
  <xsl:choose>
5892
6015
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -5950,9 +6073,26 @@
5950
6073
  <xsl:copy-of select="."/>
5951
6074
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
5952
6075
  <xsl:text> </xsl:text>
6076
+ </xsl:template><xsl:template match="*[local-name() = 'name']" mode="contents_item">
6077
+ <xsl:param name="mode">bookmarks</xsl:param>
6078
+ <xsl:apply-templates mode="contents_item">
6079
+ <xsl:with-param name="mode" select="$mode"/>
6080
+ </xsl:apply-templates>
6081
+ </xsl:template><xsl:template match="*[local-name() = 'add']" mode="contents_item">
6082
+ <xsl:param name="mode">bookmarks</xsl:param>
6083
+ <xsl:choose>
6084
+ <xsl:when test="starts-with(text(), $ace_tag)">
6085
+ <xsl:if test="$mode = 'contents'">
6086
+ <xsl:copy>
6087
+ <xsl:apply-templates mode="contents_item"/>
6088
+ </xsl:copy>
6089
+ </xsl:if>
6090
+ </xsl:when>
6091
+ <xsl:otherwise><xsl:apply-templates mode="contents_item"/></xsl:otherwise>
6092
+ </xsl:choose>
5953
6093
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
5954
6094
 
5955
- <fo:block-container margin-left="0mm">
6095
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
5956
6096
  <xsl:copy-of select="@id"/>
5957
6097
 
5958
6098
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -5989,6 +6129,7 @@
5989
6129
 
5990
6130
 
5991
6131
  </xsl:variable>
6132
+
5992
6133
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
5993
6134
  <xsl:if test="$font-size != ''">
5994
6135
  <xsl:attribute name="font-size">
@@ -6005,11 +6146,11 @@
6005
6146
 
6006
6147
 
6007
6148
 
6008
- <xsl:apply-templates/>
6149
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6009
6150
  </fo:block>
6010
6151
 
6011
6152
 
6012
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6153
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
6013
6154
 
6014
6155
 
6015
6156
 
@@ -6023,7 +6164,7 @@
6023
6164
  <xsl:call-template name="add-zero-spaces-java">
6024
6165
  <xsl:with-param name="text" select="$text"/>
6025
6166
  </xsl:call-template>
6026
- </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
6167
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
6027
6168
  <xsl:if test="normalize-space() != ''">
6028
6169
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
6029
6170
  <xsl:apply-templates/>
@@ -6031,10 +6172,10 @@
6031
6172
  </xsl:if>
6032
6173
  </xsl:template><xsl:template match="*[local-name() = 'permission']">
6033
6174
  <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
6034
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6035
- <xsl:apply-templates/>
6175
+ <xsl:apply-templates select="*[local-name()='name']"/>
6176
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6036
6177
  </fo:block>
6037
- </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
6178
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']">
6038
6179
  <xsl:if test="normalize-space() != ''">
6039
6180
  <fo:block xsl:use-attribute-sets="permission-name-style">
6040
6181
  <xsl:apply-templates/>
@@ -6047,13 +6188,13 @@
6047
6188
  </fo:block>
6048
6189
  </xsl:template><xsl:template match="*[local-name() = 'requirement']">
6049
6190
  <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
6050
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6051
- <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
6052
- <xsl:apply-templates select="@obligation" mode="presentation"/>
6053
- <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
6054
- <xsl:apply-templates/>
6191
+ <xsl:apply-templates select="*[local-name()='name']"/>
6192
+ <xsl:apply-templates select="*[local-name()='label']"/>
6193
+ <xsl:apply-templates select="@obligation"/>
6194
+ <xsl:apply-templates select="*[local-name()='subject']"/>
6195
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'label') and not(local-name() = 'subject')]"/>
6055
6196
  </fo:block>
6056
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
6197
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']">
6057
6198
  <xsl:if test="normalize-space() != ''">
6058
6199
  <fo:block xsl:use-attribute-sets="requirement-name-style">
6059
6200
 
@@ -6061,20 +6202,24 @@
6061
6202
 
6062
6203
  </fo:block>
6063
6204
  </xsl:if>
6064
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
6205
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']">
6065
6206
  <fo:block xsl:use-attribute-sets="requirement-label-style">
6066
6207
  <xsl:apply-templates/>
6067
6208
  </fo:block>
6068
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
6209
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation">
6069
6210
  <fo:block>
6070
6211
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
6071
6212
  </fo:block>
6213
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2">
6214
+ <fo:block xsl:use-attribute-sets="subject-style">
6215
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
6216
+ </fo:block>
6072
6217
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
6073
6218
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
6074
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6075
- <xsl:apply-templates/>
6219
+ <xsl:apply-templates select="*[local-name()='name']"/>
6220
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6076
6221
  </fo:block>
6077
- </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
6222
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']">
6078
6223
  <xsl:if test="normalize-space() != ''">
6079
6224
  <fo:block xsl:use-attribute-sets="recommendation-name-style">
6080
6225
  <xsl:apply-templates/>
@@ -6085,10 +6230,6 @@
6085
6230
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
6086
6231
  <xsl:apply-templates/>
6087
6232
  </fo:block>
6088
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
6089
- <fo:block xsl:use-attribute-sets="subject-style">
6090
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
6091
- </fo:block>
6092
6233
  </xsl:template><xsl:template match="*[local-name() = 'subject']">
6093
6234
  <fo:block xsl:use-attribute-sets="subject-style">
6094
6235
  <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
@@ -6132,8 +6273,6 @@
6132
6273
  </xsl:variable>
6133
6274
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
6134
6275
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
6135
- <!-- <fo:table-column column-width="35mm"/>
6136
- <fo:table-column column-width="115mm"/> -->
6137
6276
  <fo:table-column column-width="30%"/>
6138
6277
  <fo:table-column column-width="70%"/>
6139
6278
  </xsl:if>
@@ -6143,7 +6282,7 @@
6143
6282
  <xsl:if test=".//*[local-name() = 'fn']">
6144
6283
  <xsl:for-each select="*[local-name() = 'tbody']">
6145
6284
  <fo:block font-size="90%" border-bottom="1pt solid black">
6146
- <xsl:call-template name="fn_display"/>
6285
+ <xsl:call-template name="table_fn_display"/>
6147
6286
  </fo:block>
6148
6287
  </xsl:for-each>
6149
6288
  </xsl:if>
@@ -6160,7 +6299,6 @@
6160
6299
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
6161
6300
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
6162
6301
  <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
6163
- <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
6164
6302
  <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
6165
6303
  </xsl:if>
6166
6304
  <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
@@ -6173,34 +6311,11 @@
6173
6311
  </fo:table-row>
6174
6312
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
6175
6313
  <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
6176
- <xsl:attribute name="text-align">
6177
- <xsl:choose>
6178
- <xsl:when test="@align">
6179
- <xsl:value-of select="@align"/>
6180
- </xsl:when>
6181
- <xsl:otherwise>left</xsl:otherwise>
6182
- </xsl:choose>
6183
- </xsl:attribute>
6184
- <xsl:if test="@colspan">
6185
- <xsl:attribute name="number-columns-spanned">
6186
- <xsl:value-of select="@colspan"/>
6187
- </xsl:attribute>
6188
- </xsl:if>
6189
- <xsl:if test="@rowspan">
6190
- <xsl:attribute name="number-rows-spanned">
6191
- <xsl:value-of select="@rowspan"/>
6192
- </xsl:attribute>
6193
- </xsl:if>
6194
- <xsl:call-template name="display-align"/>
6314
+ <xsl:call-template name="setTextAlignment">
6315
+ <xsl:with-param name="default">left</xsl:with-param>
6316
+ </xsl:call-template>
6195
6317
 
6196
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
6197
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6198
- <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
6199
- </xsl:if>
6200
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
6201
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6202
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
6203
- </xsl:if> -->
6318
+ <xsl:call-template name="setTableCellAttributes"/>
6204
6319
 
6205
6320
  <fo:block>
6206
6321
  <xsl:apply-templates/>
@@ -6212,37 +6327,15 @@
6212
6327
  <xsl:attribute name="padding">0mm</xsl:attribute>
6213
6328
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
6214
6329
  </xsl:if>
6215
- <xsl:attribute name="text-align">
6216
- <xsl:choose>
6217
- <xsl:when test="@align">
6218
- <xsl:value-of select="@align"/>
6219
- </xsl:when>
6220
- <xsl:otherwise>left</xsl:otherwise>
6221
- </xsl:choose>
6222
- </xsl:attribute>
6330
+ <xsl:call-template name="setTextAlignment">
6331
+ <xsl:with-param name="default">left</xsl:with-param>
6332
+ </xsl:call-template>
6333
+
6223
6334
  <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
6224
6335
  <xsl:attribute name="font-weight">bold</xsl:attribute>
6225
6336
  </xsl:if>
6226
- <xsl:if test="@colspan">
6227
- <xsl:attribute name="number-columns-spanned">
6228
- <xsl:value-of select="@colspan"/>
6229
- </xsl:attribute>
6230
- </xsl:if>
6231
- <xsl:if test="@rowspan">
6232
- <xsl:attribute name="number-rows-spanned">
6233
- <xsl:value-of select="@rowspan"/>
6234
- </xsl:attribute>
6235
- </xsl:if>
6236
- <xsl:call-template name="display-align"/>
6237
6337
 
6238
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
6239
- <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
6240
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6241
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
6242
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
6243
- </xsl:if>
6244
- </xsl:if> -->
6245
- <!-- 2nd line and below -->
6338
+ <xsl:call-template name="setTableCellAttributes"/>
6246
6339
 
6247
6340
  <fo:block>
6248
6341
  <xsl:apply-templates/>
@@ -6254,15 +6347,15 @@
6254
6347
  <xsl:apply-templates/>
6255
6348
  </fo:block>
6256
6349
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
6257
- <fo:block> <!-- margin-bottom="10pt" -->
6350
+ <fo:block>
6258
6351
  <xsl:apply-templates/>
6259
6352
  </fo:block>
6260
6353
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
6261
6354
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
6262
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6263
- <xsl:apply-templates/>
6355
+ <xsl:apply-templates select="*[local-name()='name']"/>
6356
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6264
6357
  </fo:block>
6265
- </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
6358
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
6266
6359
  <xsl:if test="normalize-space() != ''">
6267
6360
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
6268
6361
  <xsl:apply-templates/>
@@ -6286,42 +6379,46 @@
6286
6379
  <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
6287
6380
 
6288
6381
 
6289
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6290
-
6291
- <xsl:variable name="element">
6292
-
6382
+ <xsl:variable name="fo_element">
6383
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl']">block</xsl:if>
6293
6384
  inline
6294
- <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
6295
6385
  </xsl:variable>
6296
6386
 
6387
+ <!-- display 'EXAMPLE' -->
6388
+ <xsl:apply-templates select="*[local-name()='name']">
6389
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6390
+ </xsl:apply-templates>
6391
+
6297
6392
  <xsl:choose>
6298
- <xsl:when test="contains(normalize-space($element), 'block')">
6299
- <fo:block xsl:use-attribute-sets="example-body-style">
6300
- <xsl:apply-templates/>
6301
- </fo:block>
6393
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
6394
+ <fo:block-container xsl:use-attribute-sets="example-body-style">
6395
+ <fo:block-container margin-left="0mm" margin-right="0mm">
6396
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
6397
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6398
+ </xsl:apply-templates>
6399
+ </fo:block-container>
6400
+ </fo:block-container>
6302
6401
  </xsl:when>
6303
6402
  <xsl:otherwise>
6304
6403
  <fo:inline>
6305
- <xsl:apply-templates/>
6404
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
6405
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6406
+ </xsl:apply-templates>
6306
6407
  </fo:inline>
6307
6408
  </xsl:otherwise>
6308
6409
  </xsl:choose>
6309
6410
 
6310
6411
  </fo:block>
6311
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
6312
-
6313
- <xsl:variable name="element">
6314
-
6315
- inline
6316
- <xsl:if test="following-sibling::*[1][local-name() = 'table']">block</xsl:if>
6317
- </xsl:variable>
6412
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
6413
+ <xsl:param name="fo_element">block</xsl:param>
6414
+
6318
6415
  <xsl:choose>
6319
6416
  <xsl:when test="ancestor::*[local-name() = 'appendix']">
6320
6417
  <fo:inline>
6321
6418
  <xsl:apply-templates/>
6322
6419
  </fo:inline>
6323
6420
  </xsl:when>
6324
- <xsl:when test="contains(normalize-space($element), 'block')">
6421
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
6325
6422
  <fo:block xsl:use-attribute-sets="example-name-style">
6326
6423
  <xsl:apply-templates/>
6327
6424
  </fo:block>
@@ -6334,19 +6431,20 @@
6334
6431
  </xsl:choose>
6335
6432
 
6336
6433
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
6434
+ <xsl:param name="fo_element">block</xsl:param>
6435
+
6337
6436
  <xsl:variable name="num"><xsl:number/></xsl:variable>
6338
6437
  <xsl:variable name="element">
6339
6438
 
6340
-
6341
6439
  <xsl:choose>
6342
6440
  <xsl:when test="$num = 1">inline</xsl:when>
6343
6441
  <xsl:otherwise>block</xsl:otherwise>
6344
6442
  </xsl:choose>
6345
6443
 
6346
-
6444
+ <xsl:value-of select="$fo_element"/>
6347
6445
  </xsl:variable>
6348
6446
  <xsl:choose>
6349
- <xsl:when test="normalize-space($element) = 'block'">
6447
+ <xsl:when test="starts-with(normalize-space($element), 'block')">
6350
6448
  <fo:block xsl:use-attribute-sets="example-p-style">
6351
6449
 
6352
6450
  <xsl:apply-templates/>
@@ -6361,6 +6459,8 @@
6361
6459
  </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
6362
6460
  <fo:block xsl:use-attribute-sets="termsource-style">
6363
6461
 
6462
+
6463
+
6364
6464
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
6365
6465
  <xsl:variable name="termsource_text">
6366
6466
  <xsl:apply-templates/>
@@ -6398,9 +6498,7 @@
6398
6498
  <xsl:value-of select="."/>
6399
6499
  </xsl:if>
6400
6500
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/*[local-name() = 'strong'][1][following-sibling::*[1][local-name() = 'origin']]/text()">
6401
- <fo:inline>
6402
-
6403
-
6501
+ <fo:inline xsl:use-attribute-sets="termsource-text-style">
6404
6502
  <xsl:value-of select="."/>
6405
6503
  </fo:inline>
6406
6504
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
@@ -6414,12 +6512,9 @@
6414
6512
  </fo:basic-link>
6415
6513
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
6416
6514
  <xsl:variable name="title-modified">
6417
-
6418
- <xsl:call-template name="getLocalizedString">
6419
- <xsl:with-param name="key">modified</xsl:with-param>
6420
- </xsl:call-template>
6421
-
6422
-
6515
+ <xsl:call-template name="getLocalizedString">
6516
+ <xsl:with-param name="key">modified</xsl:with-param>
6517
+ </xsl:call-template>
6423
6518
  </xsl:variable>
6424
6519
 
6425
6520
  <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
@@ -6446,7 +6541,6 @@
6446
6541
  <fo:block-container margin-left="0mm">
6447
6542
 
6448
6543
  <fo:block xsl:use-attribute-sets="quote-style">
6449
- <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
6450
6544
 
6451
6545
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
6452
6546
  </fo:block>
@@ -6489,15 +6583,13 @@
6489
6583
  </xsl:variable>
6490
6584
 
6491
6585
  <xsl:choose>
6492
- <xsl:when test="normalize-space($bibitemid) != ''">
6586
+ <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
6493
6587
  <fo:inline xsl:use-attribute-sets="eref-style">
6494
6588
  <xsl:if test="@type = 'footnote'">
6495
-
6496
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6497
- <xsl:attribute name="font-size">80%</xsl:attribute>
6498
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
6499
- <xsl:attribute name="vertical-align">super</xsl:attribute>
6500
-
6589
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6590
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
6591
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
6592
+ <xsl:attribute name="font-size">80%</xsl:attribute>
6501
6593
 
6502
6594
  </xsl:if>
6503
6595
 
@@ -6514,7 +6606,6 @@
6514
6606
 
6515
6607
 
6516
6608
 
6517
-
6518
6609
  </xsl:if>
6519
6610
 
6520
6611
 
@@ -6572,8 +6663,6 @@
6572
6663
  </xsl:choose>
6573
6664
  </xsl:variable>
6574
6665
 
6575
- <!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
6576
-
6577
6666
  <xsl:choose>
6578
6667
  <xsl:when test="$lang = 'zh'">
6579
6668
  <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
@@ -6608,12 +6697,9 @@
6608
6697
  </fo:block>
6609
6698
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
6610
6699
  <xsl:variable name="title-deprecated">
6611
-
6612
- <xsl:call-template name="getLocalizedString">
6613
- <xsl:with-param name="key">deprecated</xsl:with-param>
6614
- </xsl:call-template>
6615
-
6616
-
6700
+ <xsl:call-template name="getLocalizedString">
6701
+ <xsl:with-param name="key">deprecated</xsl:with-param>
6702
+ </xsl:call-template>
6617
6703
  </xsl:variable>
6618
6704
  <fo:block xsl:use-attribute-sets="deprecates-style">
6619
6705
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -6622,6 +6708,8 @@
6622
6708
  <xsl:if test="*[local-name() = 'strong']">
6623
6709
  <xsl:attribute name="font-weight">normal</xsl:attribute>
6624
6710
  </xsl:if>
6711
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']/text()[contains(., ';')] | *[local-name() = 'preferred']/*[local-name() = 'strong']/text()[contains(., ';')]">
6712
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), ';', $linebreak)"/>
6625
6713
  </xsl:template><xsl:template match="*[local-name() = 'definition']">
6626
6714
  <fo:block xsl:use-attribute-sets="definition-style">
6627
6715
  <xsl:apply-templates/>
@@ -6630,7 +6718,6 @@
6630
6718
  <xsl:apply-templates/>
6631
6719
  </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p'][1]">
6632
6720
  <fo:inline> <xsl:apply-templates/></fo:inline>
6633
- <!-- <fo:block>&#xA0;</fo:block> -->
6634
6721
  <fo:block/>
6635
6722
  </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
6636
6723
 
@@ -6671,11 +6758,6 @@
6671
6758
  <xsl:apply-templates/>
6672
6759
  </fo:block>
6673
6760
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
6674
- <fo:block id="{@id}">
6675
- <xsl:apply-templates/>
6676
- </fo:block>
6677
- </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']">
6678
-
6679
6761
  <fo:block id="{@id}">
6680
6762
  <xsl:apply-templates/>
6681
6763
  </fo:block>
@@ -6943,46 +7025,102 @@
6943
7025
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
6944
7026
  <fo:block><xsl:apply-templates/></fo:block>
6945
7027
  </fo:table-cell>
6946
- </xsl:template><xsl:template name="processBibitem">
7028
+ </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">
6947
7029
 
6948
7030
 
6949
7031
 
6950
-
7032
+ <fo:block id="{@id}">
7033
+ <xsl:apply-templates/>
7034
+ </fo:block>
7035
+ </xsl:template><xsl:template match="*[local-name() = 'references']">
7036
+ <xsl:if test="not(ancestor::*[local-name() = 'annex'])">
7037
+
7038
+ <fo:block break-after="page"/>
7039
+
7040
+ </xsl:if>
6951
7041
 
7042
+ <!-- <xsl:if test="ancestor::*[local-name() = 'annex']">
7043
+ <xsl:if test="$namespace = 'csa' or $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'itu'">
7044
+ <fo:block break-after="page"/>
7045
+ </xsl:if>
7046
+ </xsl:if> -->
6952
7047
 
6953
-
7048
+ <fo:block id="{@id}" xsl:use-attribute-sets="references-non-normative-style">
7049
+ <xsl:apply-templates/>
7050
+ </fo:block>
6954
7051
 
6955
7052
 
6956
- <!-- start ISO bibtem processing -->
6957
- <xsl:variable name="docidentifier">
6958
- <xsl:if test="*[local-name() = 'docidentifier']">
6959
- <xsl:choose>
6960
- <xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
6961
- <xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier']"/></xsl:otherwise>
6962
- </xsl:choose>
6963
- </xsl:if>
6964
- </xsl:variable>
6965
- <xsl:value-of select="$docidentifier"/>
6966
- <xsl:apply-templates select="*[local-name() = 'note']"/>
6967
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
6968
- <xsl:choose>
6969
- <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $lang]">
6970
- <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $lang]"/>
6971
- </xsl:when>
6972
- <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
6973
- <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
6974
- </xsl:when>
6975
- <xsl:otherwise>
6976
- <xsl:apply-templates select="*[local-name() = 'title']"/>
6977
- </xsl:otherwise>
6978
- </xsl:choose>
6979
- <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
6980
- <!-- end ISO bibitem processing -->
6981
7053
 
6982
7054
 
7055
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']">
7056
+ <xsl:call-template name="bibitem"/>
7057
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
7058
+
7059
+ <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
7060
+ <xsl:call-template name="processBibitem"/>
7061
+ </fo:block>
7062
+
7063
+
7064
+ </xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" priority="2">
7065
+
7066
+ <!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
7067
+ $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
7068
+ <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
7069
+ <fo:list-block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-style">
7070
+ <fo:list-item>
7071
+ <fo:list-item-label end-indent="label-end()">
7072
+ <fo:block>
7073
+ <fo:inline>
7074
+
7075
+ <xsl:value-of select="*[local-name()='docidentifier'][@type = 'metanorma-ordinal']"/>
7076
+ <xsl:if test="not(*[local-name()='docidentifier'][@type = 'metanorma-ordinal'])">
7077
+ <xsl:number format="[1]"/>
7078
+ </xsl:if>
7079
+
7080
+ </fo:inline>
7081
+ </fo:block>
7082
+ </fo:list-item-label>
7083
+ <fo:list-item-body start-indent="body-start()">
7084
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style">
7085
+ <xsl:call-template name="processBibitem"/>
7086
+ </fo:block>
7087
+ </fo:list-item-body>
7088
+ </fo:list-item>
7089
+ </fo:list-block>
7090
+
7091
+
7092
+ </xsl:template><xsl:template name="processBibitem">
7093
+
6983
7094
 
7095
+ <!-- start bibitem processing -->
7096
+ <xsl:if test=".//*[local-name() = 'fn']">
7097
+ <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
7098
+ </xsl:if>
7099
+ <xsl:variable name="docidentifier">
7100
+ <xsl:choose>
7101
+ <xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
7102
+ <xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma-ordinal')]"/></xsl:otherwise>
7103
+ </xsl:choose>
7104
+ </xsl:variable>
7105
+ <fo:inline><xsl:value-of select="$docidentifier"/></fo:inline>
7106
+ <xsl:apply-templates select="*[local-name() = 'note']"/>
7107
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
7108
+ <xsl:choose>
7109
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $lang]">
7110
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $lang]"/>
7111
+ </xsl:when>
7112
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
7113
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
7114
+ </xsl:when>
7115
+ <xsl:otherwise>
7116
+ <xsl:apply-templates select="*[local-name() = 'title']"/>
7117
+ </xsl:otherwise>
7118
+ </xsl:choose>
7119
+ <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
7120
+ <!-- end bibitem processing -->
7121
+
6984
7122
  </xsl:template><xsl:template name="processBibitemDocId">
6985
- <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')]"/>
7123
+ <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')]"/>
6986
7124
  <xsl:choose>
6987
7125
  <xsl:when test="normalize-space($_doc_ident) != ''">
6988
7126
  <!-- <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"/>
@@ -6996,7 +7134,7 @@
6996
7134
  <xsl:if test="$type != ''">
6997
7135
  <xsl:value-of select="$type"/><xsl:text> </xsl:text>
6998
7136
  </xsl:if> -->
6999
- <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
7137
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma') and not(@type = 'metanorma-ordinal')]"/>
7000
7138
  </xsl:otherwise>
7001
7139
  </xsl:choose>
7002
7140
  </xsl:template><xsl:template name="processPersonalAuthor">
@@ -7037,6 +7175,52 @@
7037
7175
  <xsl:value-of select="substring(.,1,1)"/>
7038
7176
  </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
7039
7177
  <fo:inline><xsl:apply-templates/></fo:inline>
7178
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'title']" priority="2">
7179
+ <!-- <fo:inline><xsl:apply-templates /></fo:inline> -->
7180
+ <fo:inline font-style="italic"> <!-- BIPM BSI CSD CSA GB IEC IHO ISO ITU JCGM -->
7181
+ <xsl:apply-templates/>
7182
+ </fo:inline>
7183
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
7184
+ <fo:footnote>
7185
+ <xsl:variable name="number">
7186
+
7187
+ <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
7188
+
7189
+ </xsl:variable>
7190
+ <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
7191
+ <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
7192
+ <xsl:value-of select="$number"/>
7193
+
7194
+ <xsl:text>)</xsl:text>
7195
+
7196
+ </fo:basic-link>
7197
+ </fo:inline>
7198
+ <fo:footnote-body>
7199
+ <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
7200
+ <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
7201
+ <xsl:value-of select="$number"/>
7202
+
7203
+ <xsl:text>)</xsl:text>
7204
+
7205
+ </fo:inline>
7206
+ <xsl:apply-templates/>
7207
+ </fo:block>
7208
+ </fo:footnote-body>
7209
+ </fo:footnote>
7210
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'edition']"> <!-- for iho -->
7211
+ <xsl:text> edition </xsl:text>
7212
+ <xsl:value-of select="."/>
7213
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'uri']"> <!-- for iho -->
7214
+ <xsl:text> (</xsl:text>
7215
+ <fo:inline xsl:use-attribute-sets="link-style">
7216
+ <fo:basic-link external-destination="." fox:alt-text=".">
7217
+ <xsl:value-of select="."/>
7218
+ </fo:basic-link>
7219
+ </fo:inline>
7220
+ <xsl:text>)</xsl:text>
7221
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'docidentifier']"/><xsl:template match="*[local-name() = 'formattedref']">
7222
+
7223
+ <xsl:apply-templates/>
7040
7224
  </xsl:template><xsl:template match="*[local-name() = 'form']">
7041
7225
  <fo:block>
7042
7226
  <xsl:apply-templates/>
@@ -7102,27 +7286,14 @@
7102
7286
  <fo:block> </fo:block>
7103
7287
  </fo:block-container>
7104
7288
  </xsl:template><xsl:variable name="toc_level">
7289
+ <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
7290
+ <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:-->
7291
+ <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 -->
7105
7292
  <xsl:choose>
7106
- <xsl:when test="1 = 2"/> <!-- to do https://github.com/metanorma/mn-native-pdf/issues/337: if there is value in xml -->
7293
+ <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
7294
+ <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
7107
7295
  <xsl:otherwise><!-- default value -->
7108
-
7109
-
7110
-
7111
-
7112
-
7113
-
7114
-
7115
-
7116
-
7117
-
7118
-
7119
-
7120
-
7121
-
7122
-
7123
-
7124
-
7125
-
7296
+ 3
7126
7297
  </xsl:otherwise>
7127
7298
  </xsl:choose>
7128
7299
  </xsl:variable><xsl:template match="*[local-name() = 'toc']">
@@ -7205,7 +7376,7 @@
7205
7376
  </td>
7206
7377
  </xsl:for-each>
7207
7378
  <td>333</td> <!-- page number, just for fill -->
7208
- </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
7379
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
7209
7380
  <fo:inline padding-right="5mm"> </fo:inline>
7210
7381
  <fo:inline><xsl:apply-templates/></fo:inline>
7211
7382
  </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
@@ -7218,8 +7389,53 @@
7218
7389
  </fo:inline>
7219
7390
  </xsl:template><xsl:template match="@language">
7220
7391
  <xsl:copy-of select="."/>
7221
- </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
7392
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="4">
7222
7393
  <xsl:call-template name="title"/>
7394
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']">
7395
+
7396
+
7397
+
7398
+
7399
+
7400
+
7401
+ <fo:block xsl:use-attribute-sets="admonition-style">
7402
+
7403
+
7404
+
7405
+
7406
+
7407
+
7408
+ <xsl:call-template name="displayAdmonitionName"/>
7409
+ <xsl:text> — </xsl:text>
7410
+
7411
+
7412
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
7413
+ </fo:block>
7414
+
7415
+ </xsl:template><xsl:template name="displayAdmonitionName">
7416
+
7417
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
7418
+ <xsl:if test="not(*[local-name() = 'name'])">
7419
+ <xsl:apply-templates select="@type"/>
7420
+ </xsl:if>
7421
+
7422
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'name']">
7423
+ <xsl:apply-templates/>
7424
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/@type">
7425
+ <xsl:variable name="admonition_type_">
7426
+ <xsl:call-template name="getLocalizedString">
7427
+ <xsl:with-param name="key">admonition.<xsl:value-of select="."/></xsl:with-param>
7428
+ </xsl:call-template>
7429
+ </xsl:variable>
7430
+ <xsl:variable name="admonition_type" select="normalize-space(java:toUpperCase(java:java.lang.String.new($admonition_type_)))"/>
7431
+ <xsl:value-of select="$admonition_type"/>
7432
+ <xsl:if test="$admonition_type = ''">
7433
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
7434
+ </xsl:if>
7435
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'p']">
7436
+ <!-- processing for admonition/p found in the template for 'p' -->
7437
+ <xsl:call-template name="paragraph"/>
7438
+
7223
7439
  </xsl:template><xsl:template name="convertDate">
7224
7440
  <xsl:param name="date"/>
7225
7441
  <xsl:param name="format" select="'short'"/>
@@ -7227,83 +7443,80 @@
7227
7443
  <xsl:variable name="month" select="substring($date, 6, 2)"/>
7228
7444
  <xsl:variable name="day" select="substring($date, 9, 2)"/>
7229
7445
  <xsl:variable name="monthStr">
7230
- <xsl:choose>
7231
- <xsl:when test="$month = '01'">January</xsl:when>
7232
- <xsl:when test="$month = '02'">February</xsl:when>
7233
- <xsl:when test="$month = '03'">March</xsl:when>
7234
- <xsl:when test="$month = '04'">April</xsl:when>
7235
- <xsl:when test="$month = '05'">May</xsl:when>
7236
- <xsl:when test="$month = '06'">June</xsl:when>
7237
- <xsl:when test="$month = '07'">July</xsl:when>
7238
- <xsl:when test="$month = '08'">August</xsl:when>
7239
- <xsl:when test="$month = '09'">September</xsl:when>
7240
- <xsl:when test="$month = '10'">October</xsl:when>
7241
- <xsl:when test="$month = '11'">November</xsl:when>
7242
- <xsl:when test="$month = '12'">December</xsl:when>
7243
- </xsl:choose>
7446
+ <xsl:call-template name="getMonthByNum">
7447
+ <xsl:with-param name="num" select="$month"/>
7448
+ <xsl:with-param name="lowercase" select="'true'"/>
7449
+ </xsl:call-template>
7450
+ </xsl:variable>
7451
+ <xsl:variable name="monthStr_localized">
7452
+ <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>
7244
7453
  </xsl:variable>
7245
7454
  <xsl:variable name="result">
7246
7455
  <xsl:choose>
7247
- <xsl:when test="$format = 'ddMMyyyy'">
7456
+ <xsl:when test="$format = 'ddMMyyyy'"> <!-- convert date from format 2007-04-01 to 1 April 2007 -->
7248
7457
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7249
7458
  <xsl:text> </xsl:text>
7250
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7459
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ' , $year))"/>
7251
7460
  </xsl:when>
7252
7461
  <xsl:when test="$format = 'ddMM'">
7253
7462
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7254
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7463
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr_localized"/>
7255
7464
  </xsl:when>
7256
7465
  <xsl:when test="$format = 'short' or $day = ''">
7257
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
7466
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $year))"/>
7258
7467
  </xsl:when>
7259
7468
  <xsl:otherwise>
7260
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
7469
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $day, ', ' , $year))"/> <!-- January 01, 2022 -->
7261
7470
  </xsl:otherwise>
7262
7471
  </xsl:choose>
7263
7472
  </xsl:variable>
7264
7473
  <xsl:value-of select="$result"/>
7265
- </xsl:template><xsl:template name="convertDateLocalized">
7266
- <xsl:param name="date"/>
7267
- <xsl:param name="format" select="'short'"/>
7268
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
7269
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
7270
- <xsl:variable name="day" select="substring($date, 9, 2)"/>
7271
- <xsl:variable name="monthStr">
7272
- <xsl:choose>
7273
- <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>
7274
- <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>
7275
- <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>
7276
- <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>
7277
- <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>
7278
- <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>
7279
- <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>
7280
- <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>
7281
- <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>
7282
- <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>
7283
- <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>
7284
- <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>
7285
- </xsl:choose>
7286
- </xsl:variable>
7287
- <xsl:variable name="result">
7474
+ </xsl:template><xsl:template name="getMonthByNum">
7475
+ <xsl:param name="num"/>
7476
+ <xsl:param name="lang">en</xsl:param>
7477
+ <xsl:param name="lowercase">false</xsl:param> <!-- return 'january' instead of 'January' -->
7478
+ <xsl:variable name="monthStr_">
7288
7479
  <xsl:choose>
7289
- <xsl:when test="$format = 'ddMMyyyy'">
7290
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7291
- <xsl:text> </xsl:text>
7292
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7293
- </xsl:when>
7294
- <xsl:when test="$format = 'ddMM'">
7295
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7296
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7297
- </xsl:when>
7298
- <xsl:when test="$format = 'short' or $day = ''">
7299
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
7480
+ <xsl:when test="$lang = 'fr'">
7481
+ <xsl:choose>
7482
+ <xsl:when test="$num = '01'">Janvier</xsl:when>
7483
+ <xsl:when test="$num = '02'">Février</xsl:when>
7484
+ <xsl:when test="$num = '03'">Mars</xsl:when>
7485
+ <xsl:when test="$num = '04'">Avril</xsl:when>
7486
+ <xsl:when test="$num = '05'">Mai</xsl:when>
7487
+ <xsl:when test="$num = '06'">Juin</xsl:when>
7488
+ <xsl:when test="$num = '07'">Juillet</xsl:when>
7489
+ <xsl:when test="$num = '08'">Août</xsl:when>
7490
+ <xsl:when test="$num = '09'">Septembre</xsl:when>
7491
+ <xsl:when test="$num = '10'">Octobre</xsl:when>
7492
+ <xsl:when test="$num = '11'">Novembre</xsl:when>
7493
+ <xsl:when test="$num = '12'">Décembre</xsl:when>
7494
+ </xsl:choose>
7300
7495
  </xsl:when>
7301
7496
  <xsl:otherwise>
7302
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
7497
+ <xsl:choose>
7498
+ <xsl:when test="$num = '01'">January</xsl:when>
7499
+ <xsl:when test="$num = '02'">February</xsl:when>
7500
+ <xsl:when test="$num = '03'">March</xsl:when>
7501
+ <xsl:when test="$num = '04'">April</xsl:when>
7502
+ <xsl:when test="$num = '05'">May</xsl:when>
7503
+ <xsl:when test="$num = '06'">June</xsl:when>
7504
+ <xsl:when test="$num = '07'">July</xsl:when>
7505
+ <xsl:when test="$num = '08'">August</xsl:when>
7506
+ <xsl:when test="$num = '09'">September</xsl:when>
7507
+ <xsl:when test="$num = '10'">October</xsl:when>
7508
+ <xsl:when test="$num = '11'">November</xsl:when>
7509
+ <xsl:when test="$num = '12'">December</xsl:when>
7510
+ </xsl:choose>
7303
7511
  </xsl:otherwise>
7304
7512
  </xsl:choose>
7305
7513
  </xsl:variable>
7306
- <xsl:value-of select="$result"/>
7514
+ <xsl:choose>
7515
+ <xsl:when test="normalize-space($lowercase) = 'true'">
7516
+ <xsl:value-of select="java:toLowerCase(java:java.lang.String.new($monthStr_))"/>
7517
+ </xsl:when>
7518
+ <xsl:otherwise><xsl:value-of select="$monthStr_"/></xsl:otherwise>
7519
+ </xsl:choose>
7307
7520
  </xsl:template><xsl:template name="insertKeywords">
7308
7521
  <xsl:param name="sorting" select="'true'"/>
7309
7522
  <xsl:param name="charAtEnd" select="'.'"/>
@@ -7352,13 +7565,8 @@
7352
7565
  <xsl:variable name="title">
7353
7566
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7354
7567
 
7355
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
7356
-
7357
-
7358
-
7359
-
7360
-
7361
-
7568
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
7569
+
7362
7570
  </xsl:for-each>
7363
7571
  </xsl:variable>
7364
7572
  <xsl:choose>
@@ -7373,21 +7581,18 @@
7373
7581
  <dc:creator>
7374
7582
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7375
7583
 
7376
- <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
7377
- <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
7378
- <xsl:if test="position() != last()">; </xsl:if>
7379
- </xsl:for-each>
7380
-
7381
-
7382
-
7584
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
7585
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
7586
+ <xsl:if test="position() != last()">; </xsl:if>
7587
+ </xsl:for-each>
7588
+
7383
7589
  </xsl:for-each>
7384
7590
  </dc:creator>
7385
7591
  <dc:description>
7386
7592
  <xsl:variable name="abstract">
7387
7593
 
7388
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
7389
-
7390
-
7594
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
7595
+
7391
7596
  </xsl:variable>
7392
7597
  <xsl:value-of select="normalize-space($abstract)"/>
7393
7598
  </dc:description>
@@ -7407,7 +7612,6 @@
7407
7612
  <xsl:value-of select="../@id"/>
7408
7613
  </xsl:when>
7409
7614
  <xsl:otherwise>
7410
- <!-- <xsl:value-of select="concat(local-name(..), '_', text())"/> -->
7411
7615
  <xsl:value-of select="concat(generate-id(..), '_', text())"/>
7412
7616
  </xsl:otherwise>
7413
7617
  </xsl:choose>
@@ -7433,9 +7637,6 @@
7433
7637
  <xsl:when test="ancestor::*[local-name() = 'preface']">
7434
7638
  <xsl:value-of select="$level_total - 2"/>
7435
7639
  </xsl:when>
7436
- <!-- <xsl:when test="parent::*[local-name() = 'sections']">
7437
- <xsl:value-of select="$level_total - 1"/>
7438
- </xsl:when> -->
7439
7640
  <xsl:when test="ancestor::*[local-name() = 'sections']">
7440
7641
  <xsl:value-of select="$level_total - 1"/>
7441
7642
  </xsl:when>
@@ -7577,9 +7778,15 @@
7577
7778
  </xsl:template><xsl:template name="getLocalizedString">
7578
7779
  <xsl:param name="key"/>
7579
7780
  <xsl:param name="formatted">false</xsl:param>
7781
+ <xsl:param name="lang"/>
7580
7782
 
7581
7783
  <xsl:variable name="curr_lang">
7582
- <xsl:call-template name="getLang"/>
7784
+ <xsl:choose>
7785
+ <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
7786
+ <xsl:otherwise>
7787
+ <xsl:call-template name="getLang"/>
7788
+ </xsl:otherwise>
7789
+ </xsl:choose>
7583
7790
  </xsl:variable>
7584
7791
 
7585
7792
  <xsl:variable name="data_value">
@@ -7619,7 +7826,6 @@
7619
7826
  <xsl:value-of select="$key_"/>
7620
7827
  </xsl:otherwise>
7621
7828
  </xsl:choose>
7622
-
7623
7829
  </xsl:template><xsl:template name="setTrackChangesStyles">
7624
7830
  <xsl:param name="isAdded"/>
7625
7831
  <xsl:param name="isDeleted"/>
@@ -7642,7 +7848,6 @@
7642
7848
  <xsl:if test="local-name() = 'table'">
7643
7849
  <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
7644
7850
  </xsl:if>
7645
- <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
7646
7851
  <xsl:attribute name="padding">2mm</xsl:attribute>
7647
7852
  </xsl:if>
7648
7853
  </xsl:otherwise>
@@ -7662,15 +7867,18 @@
7662
7867
  </xsl:choose>
7663
7868
  </xsl:template><xsl:template name="setTextAlignment">
7664
7869
  <xsl:param name="default">left</xsl:param>
7870
+ <xsl:variable name="align" select="normalize-space(@align)"/>
7665
7871
  <xsl:attribute name="text-align">
7666
7872
  <xsl:choose>
7667
- <xsl:when test="@align and not(@align = 'indent')"><xsl:value-of select="@align"/></xsl:when>
7873
+ <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
7874
+ <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
7875
+ <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
7668
7876
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
7669
7877
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
7670
7878
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
7671
7879
  </xsl:choose>
7672
7880
  </xsl:attribute>
7673
- <xsl:if test="@align = 'indent'">
7881
+ <xsl:if test="$align = 'indent'">
7674
7882
  <xsl:attribute name="margin-left">7mm</xsl:attribute>
7675
7883
  </xsl:if>
7676
7884
  </xsl:template><xsl:template name="number-to-words">
@@ -7769,6 +7977,25 @@
7769
7977
  </xsl:otherwise>
7770
7978
  </xsl:choose>
7771
7979
  </xsl:if>
7980
+ </xsl:template><xsl:template name="number-to-ordinal">
7981
+ <xsl:param name="number"/>
7982
+ <xsl:param name="curr_lang"/>
7983
+ <xsl:choose>
7984
+ <xsl:when test="$curr_lang = 'fr'">
7985
+ <xsl:choose>
7986
+ <xsl:when test="$number = '1'">re</xsl:when>
7987
+ <xsl:otherwise>e</xsl:otherwise>
7988
+ </xsl:choose>
7989
+ </xsl:when>
7990
+ <xsl:otherwise>
7991
+ <xsl:choose>
7992
+ <xsl:when test="$number = 1">st</xsl:when>
7993
+ <xsl:when test="$number = 2">nd</xsl:when>
7994
+ <xsl:when test="$number = 3">rd</xsl:when>
7995
+ <xsl:otherwise>th</xsl:otherwise>
7996
+ </xsl:choose>
7997
+ </xsl:otherwise>
7998
+ </xsl:choose>
7772
7999
  </xsl:template><xsl:template name="setAltText">
7773
8000
  <xsl:param name="value"/>
7774
8001
  <xsl:attribute name="fox:alt-text">