metanorma-iho 0.2.2 → 0.2.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -608,7 +608,7 @@
608
608
  </xsl:template>
609
609
 
610
610
 
611
- <xsl:template match="iho:ul | iho:ol">
611
+ <xsl:template match="iho:ul | iho:ol" mode="ul_ol">
612
612
  <fo:list-block provisional-distance-between-starts="6mm">
613
613
  <xsl:apply-templates/>
614
614
  </fo:list-block>
@@ -624,13 +624,16 @@
624
624
  <xsl:apply-templates mode="process"/>
625
625
  </fo:block>
626
626
  </xsl:template>
627
- <xsl:template match="iho:ul//iho:note/iho:name | iho:ol//iho:note/iho:name" mode="process"/>
628
- <xsl:template match="iho:ul//iho:note/iho:p | iho:ol//iho:note/iho:p" mode="process">
627
+ <xsl:template match="iho:ul//iho:note/iho:name | iho:ol//iho:note/iho:name" mode="process" priority="2"/>
628
+ <xsl:template match="iho:ul//iho:note/iho:p | iho:ol//iho:note/iho:p" mode="process" priority="2">
629
629
  <fo:block font-size="11pt" margin-top="4pt">
630
630
  <xsl:apply-templates/>
631
631
  </fo:block>
632
632
  </xsl:template>
633
633
 
634
+ <xsl:template match="iho:ul//iho:note/* | iho:ol//iho:note/*" mode="process">
635
+ <xsl:apply-templates select="."/>
636
+ </xsl:template>
634
637
 
635
638
 
636
639
  <xsl:template match="iho:li">
@@ -690,7 +693,13 @@
690
693
  </fo:block>
691
694
  </xsl:template>
692
695
 
693
- <!-- Example: [1] IHO S-100, Universal Hydrographic Data Model v4.0.0, December 2018 (Encoding, Feature Catalogue) -->
696
+
697
+ <!-- IHO documents:
698
+ "[1] S57 edition 3.1: IHO Transfer Standard for Digital Hydrographic Data, International Hydrographic Organization (www.iho.int)”
699
+ [{number}] {docID} edition {edition}: {title}, {author/organization}
700
+
701
+ Non-IHO documents:
702
+ Provide title and publisher -->
694
703
  <xsl:template match="iho:bibitem">
695
704
  <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm" line-height="115%">
696
705
  <fo:list-item>
@@ -703,38 +712,34 @@
703
712
  </fo:list-item-label>
704
713
  <fo:list-item-body start-indent="body-start()">
705
714
  <fo:block>
706
- <xsl:variable name="docidentifier">
707
- <xsl:if test="iho:docidentifier">
708
- <xsl:choose>
709
- <xsl:when test="iho:docidentifier/@type = 'metanorma'"/>
710
- <xsl:otherwise><xsl:value-of select="iho:docidentifier"/></xsl:otherwise>
711
- </xsl:choose>
712
- </xsl:if>
713
- </xsl:variable>
714
- <xsl:value-of select="$docidentifier"/>
715
- <xsl:apply-templates select="iho:note"/>
716
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
717
- <xsl:choose>
718
- <xsl:when test="iho:title[@type = 'main' and @language = 'en']">
719
- <xsl:apply-templates select="iho:title[@type = 'main' and @language = 'en']"/>
720
- </xsl:when>
721
- <xsl:otherwise>
722
- <xsl:apply-templates select="iho:title"/>
723
- </xsl:otherwise>
724
- </xsl:choose>
725
- <xsl:apply-templates select="iho:formattedref"/>
715
+ <xsl:call-template name="processBibitem"/>
726
716
  </fo:block>
727
717
  </fo:list-item-body>
728
718
  </fo:list-item>
729
719
  </fo:list-block>
730
720
  </xsl:template>
731
721
 
722
+ <xsl:template match="iho:bibitem/iho:edition">
723
+ <xsl:text> edition </xsl:text>
724
+ <xsl:value-of select="."/>
725
+ </xsl:template>
726
+
732
727
  <xsl:template match="iho:bibitem/iho:title">
733
728
  <fo:inline font-style="italic">
734
729
  <xsl:apply-templates/>
735
730
  </fo:inline>
736
731
  </xsl:template>
737
732
 
733
+ <xsl:template match="iho:bibitem/iho:uri">
734
+ <xsl:text> (</xsl:text>
735
+ <fo:inline xsl:use-attribute-sets="link-style">
736
+ <fo:basic-link external-destination="." fox:alt-text=".">
737
+ <xsl:value-of select="."/>
738
+ </fo:basic-link>
739
+ </fo:inline>
740
+ <xsl:text>)</xsl:text>
741
+ </xsl:template>
742
+
738
743
  <xsl:template match="iho:bibitem/iho:note" priority="2">
739
744
  <fo:footnote>
740
745
  <xsl:variable name="number">
@@ -991,7 +996,12 @@
991
996
 
992
997
 
993
998
 
994
- <title-source lang="en">SOURCE</title-source>
999
+ <title-source lang="en">
1000
+
1001
+ <xsl:text>SOURCE</xsl:text>
1002
+
1003
+
1004
+ </title-source>
995
1005
 
996
1006
  <title-keywords lang="en">Keywords</title-keywords>
997
1007
 
@@ -1034,6 +1044,10 @@
1034
1044
  <title-warning lang="zh">警告</title-warning>
1035
1045
 
1036
1046
  <title-amendment lang="en">AMENDMENT</title-amendment>
1047
+
1048
+ <title-continued lang="en">(continued)</title-continued>
1049
+ <title-continued lang="fr">(continué)</title-continued>
1050
+
1037
1051
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
1038
1052
  <xsl:param name="name"/>
1039
1053
  <xsl:variable name="lang">
@@ -1054,6 +1068,7 @@
1054
1068
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1055
1069
 
1056
1070
 
1071
+
1057
1072
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1058
1073
  <xsl:attribute name="white-space">pre</xsl:attribute>
1059
1074
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
@@ -1065,8 +1080,8 @@
1065
1080
 
1066
1081
 
1067
1082
 
1068
- <xsl:attribute name="font-family">SFMono-Regular</xsl:attribute>
1069
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1083
+
1084
+ <xsl:attribute name="font-family">SFMono-Regular</xsl:attribute>
1070
1085
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1071
1086
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
1072
1087
  <xsl:attribute name="line-height">113%</xsl:attribute>
@@ -1121,6 +1136,7 @@
1121
1136
 
1122
1137
 
1123
1138
 
1139
+
1124
1140
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1125
1141
 
1126
1142
 
@@ -1142,6 +1158,7 @@
1142
1158
 
1143
1159
 
1144
1160
 
1161
+
1145
1162
 
1146
1163
 
1147
1164
 
@@ -1201,11 +1218,13 @@
1201
1218
 
1202
1219
  <xsl:attribute name="color">blue</xsl:attribute>
1203
1220
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1204
-
1221
+
1222
+
1205
1223
  </xsl:attribute-set><xsl:attribute-set name="eref-style">
1206
1224
 
1207
1225
 
1208
1226
 
1227
+
1209
1228
  </xsl:attribute-set><xsl:attribute-set name="note-style">
1210
1229
 
1211
1230
 
@@ -1225,9 +1244,7 @@
1225
1244
 
1226
1245
 
1227
1246
 
1228
-
1229
-
1230
- </xsl:attribute-set><xsl:attribute-set name="note-name-style">
1247
+ </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">
1231
1248
 
1232
1249
 
1233
1250
 
@@ -1239,7 +1256,9 @@
1239
1256
 
1240
1257
 
1241
1258
 
1242
-
1259
+
1260
+
1261
+
1243
1262
 
1244
1263
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1245
1264
 
@@ -1269,6 +1288,8 @@
1269
1288
 
1270
1289
 
1271
1290
 
1291
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
1292
+
1272
1293
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1273
1294
 
1274
1295
 
@@ -1299,6 +1320,7 @@
1299
1320
  <xsl:attribute name="color">blue</xsl:attribute>
1300
1321
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1301
1322
 
1323
+
1302
1324
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1303
1325
 
1304
1326
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
@@ -1310,6 +1332,7 @@
1310
1332
 
1311
1333
 
1312
1334
 
1335
+
1313
1336
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1314
1337
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1315
1338
  <xsl:attribute name="text-align">center</xsl:attribute>
@@ -1351,14 +1374,16 @@
1351
1374
  </xsl:attribute-set><xsl:attribute-set name="tt-style">
1352
1375
 
1353
1376
 
1354
- <xsl:attribute name="font-family">Courier</xsl:attribute>
1355
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1377
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
1378
+
1356
1379
 
1357
1380
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
1358
1381
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1359
1382
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1360
1383
  <xsl:attribute name="text-align">center</xsl:attribute>
1361
1384
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1385
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1386
+
1362
1387
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
1363
1388
 
1364
1389
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -1424,6 +1449,8 @@
1424
1449
 
1425
1450
 
1426
1451
 
1452
+ <!-- $namespace = 'iso' or -->
1453
+
1427
1454
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1428
1455
 
1429
1456
 
@@ -1483,7 +1510,7 @@
1483
1510
 
1484
1511
 
1485
1512
 
1486
-
1513
+
1487
1514
 
1488
1515
 
1489
1516
  <xsl:attribute name="space-after">18pt</xsl:attribute>
@@ -1502,11 +1529,13 @@
1502
1529
 
1503
1530
 
1504
1531
 
1532
+
1505
1533
 
1506
1534
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
1507
1535
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
1508
1536
 
1509
1537
 
1538
+
1510
1539
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
1511
1540
  <xsl:choose>
1512
1541
  <xsl:when test=". = 1 or . = 0">
@@ -1537,8 +1566,9 @@
1537
1566
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
1538
1567
  <xsl:if test="normalize-space() != ''">
1539
1568
  <fo:block xsl:use-attribute-sets="table-name-style">
1540
- <xsl:apply-templates/>
1541
- </fo:block>
1569
+
1570
+ <xsl:apply-templates/>
1571
+ </fo:block>
1542
1572
  </xsl:if>
1543
1573
  </xsl:template><xsl:template name="calculate-columns-numbers">
1544
1574
  <xsl:param name="table-row"/>
@@ -1654,10 +1684,25 @@
1654
1684
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
1655
1685
  <xsl:param name="cols-count"/>
1656
1686
  <!-- font-weight="bold" -->
1657
- <fo:table-header>
1658
-
1687
+ <fo:table-header>
1688
+
1659
1689
  <xsl:apply-templates/>
1660
1690
  </fo:table-header>
1691
+ </xsl:template><xsl:template name="table-header-title">
1692
+ <xsl:param name="cols-count"/>
1693
+ <!-- row for title -->
1694
+ <fo:table-row>
1695
+ <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">
1696
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation"/>
1697
+ <xsl:for-each select="ancestor::*[local-name()='table'][1]">
1698
+ <xsl:call-template name="fn_name_display"/>
1699
+ </xsl:for-each>
1700
+ <fo:block text-align="right" font-style="italic">
1701
+ <xsl:text> </xsl:text>
1702
+ <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
1703
+ </fo:block>
1704
+ </fo:table-cell>
1705
+ </fo:table-row>
1661
1706
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
1662
1707
  <fo:table-body>
1663
1708
  <xsl:apply-templates/>
@@ -1721,6 +1766,8 @@
1721
1766
  </xsl:choose>
1722
1767
  </xsl:variable>
1723
1768
 
1769
+
1770
+
1724
1771
  <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
1725
1772
  <xsl:with-param name="cols-count" select="$cols-count"/>
1726
1773
  </xsl:apply-templates>
@@ -1730,6 +1777,8 @@
1730
1777
  </xsl:call-template>
1731
1778
 
1732
1779
  <fo:table-body>
1780
+
1781
+
1733
1782
  <xsl:apply-templates/>
1734
1783
  <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
1735
1784
 
@@ -1752,6 +1801,8 @@
1752
1801
 
1753
1802
  </xsl:if>
1754
1803
 
1804
+
1805
+
1755
1806
 
1756
1807
  <xsl:apply-templates/>
1757
1808
  </fo:table-row>
@@ -1774,6 +1825,7 @@
1774
1825
 
1775
1826
 
1776
1827
 
1828
+
1777
1829
  <xsl:if test="@colspan">
1778
1830
  <xsl:attribute name="number-columns-spanned">
1779
1831
  <xsl:value-of select="@colspan"/>
@@ -1784,10 +1836,22 @@
1784
1836
  <xsl:value-of select="@rowspan"/>
1785
1837
  </xsl:attribute>
1786
1838
  </xsl:if>
1839
+ <xsl:call-template name="display-align"/>
1787
1840
  <fo:block>
1788
1841
  <xsl:apply-templates/>
1789
1842
  </fo:block>
1790
1843
  </fo:table-cell>
1844
+ </xsl:template><xsl:template name="display-align">
1845
+ <xsl:if test="@valign">
1846
+ <xsl:attribute name="display-align">
1847
+ <xsl:choose>
1848
+ <xsl:when test="@valign = 'top'">before</xsl:when>
1849
+ <xsl:when test="@valign = 'middle'">center</xsl:when>
1850
+ <xsl:when test="@valign = 'bottom'">after</xsl:when>
1851
+ <xsl:otherwise>before</xsl:otherwise>
1852
+ </xsl:choose>
1853
+ </xsl:attribute>
1854
+ </xsl:if>
1791
1855
  </xsl:template><xsl:template match="*[local-name()='td']">
1792
1856
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
1793
1857
  <xsl:attribute name="text-align">
@@ -1809,6 +1873,7 @@
1809
1873
 
1810
1874
 
1811
1875
 
1876
+
1812
1877
  <xsl:if test="@colspan">
1813
1878
  <xsl:attribute name="number-columns-spanned">
1814
1879
  <xsl:value-of select="@colspan"/>
@@ -1819,8 +1884,8 @@
1819
1884
  <xsl:value-of select="@rowspan"/>
1820
1885
  </xsl:attribute>
1821
1886
  </xsl:if>
1822
- <fo:block>
1823
-
1887
+ <xsl:call-template name="display-align"/>
1888
+ <fo:block>
1824
1889
  <xsl:apply-templates/>
1825
1890
  </fo:block>
1826
1891
  </fo:table-cell>
@@ -2002,6 +2067,7 @@
2002
2067
 
2003
2068
 
2004
2069
 
2070
+
2005
2071
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
2006
2072
 
2007
2073
  <xsl:value-of select="@reference"/>
@@ -2012,119 +2078,133 @@
2012
2078
  <xsl:apply-templates/>
2013
2079
  </fo:inline>
2014
2080
  </xsl:template><xsl:template match="*[local-name()='dl']">
2015
- <xsl:variable name="parent" select="local-name(..)"/>
2016
-
2017
- <xsl:variable name="key_iso">
2018
- <!-- and (not(../@class) or ../@class !='pseudocode') -->
2019
- </xsl:variable>
2020
-
2021
- <xsl:choose>
2022
- <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2023
-
2024
-
2025
- <fo:block margin-bottom="12pt" text-align="left">
2026
-
2027
- <xsl:variable name="title-where">
2028
- <xsl:call-template name="getTitle">
2029
- <xsl:with-param name="name" select="'title-where'"/>
2030
- </xsl:call-template>
2031
- </xsl:variable>
2032
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2033
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
2034
- <xsl:text/>
2035
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2036
- </fo:block>
2037
-
2038
- </xsl:when>
2039
- <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2040
- <fo:block margin-bottom="12pt" text-align="left">
2041
-
2042
-
2043
-
2044
-
2045
- <xsl:variable name="title-where">
2046
- <xsl:call-template name="getTitle">
2047
- <xsl:with-param name="name" select="'title-where'"/>
2048
- </xsl:call-template>
2049
- </xsl:variable>
2050
- <xsl:value-of select="$title-where"/>
2051
- </fo:block>
2052
- </xsl:when>
2053
- <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2054
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
2055
-
2056
-
2057
-
2058
- <xsl:variable name="title-key">
2059
- <xsl:call-template name="getTitle">
2060
- <xsl:with-param name="name" select="'title-key'"/>
2061
- </xsl:call-template>
2062
- </xsl:variable>
2063
- <xsl:value-of select="$title-key"/>
2064
- </fo:block>
2065
- </xsl:when>
2066
- </xsl:choose>
2067
-
2068
- <!-- a few components -->
2069
- <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2070
- <fo:block>
2071
-
2081
+ <fo:block-container margin-left="0mm">
2082
+ <xsl:if test="parent::*[local-name() = 'note']">
2083
+ <xsl:attribute name="margin-left">
2084
+ <xsl:choose>
2085
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2086
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2087
+ </xsl:choose>
2088
+ </xsl:attribute>
2072
2089
 
2090
+ </xsl:if>
2091
+ <fo:block-container margin-left="0mm">
2092
+
2093
+ <xsl:variable name="parent" select="local-name(..)"/>
2073
2094
 
2095
+ <xsl:variable name="key_iso">
2096
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
2097
+ </xsl:variable>
2074
2098
 
2075
- <xsl:attribute name="margin-left">7mm</xsl:attribute>
2099
+ <xsl:choose>
2100
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2101
+
2102
+
2103
+ <fo:block margin-bottom="12pt" text-align="left">
2104
+
2105
+ <xsl:variable name="title-where">
2106
+ <xsl:call-template name="getTitle">
2107
+ <xsl:with-param name="name" select="'title-where'"/>
2108
+ </xsl:call-template>
2109
+ </xsl:variable>
2110
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2111
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
2112
+ <xsl:text/>
2113
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2114
+ </fo:block>
2115
+
2116
+ </xsl:when>
2117
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2118
+ <fo:block margin-bottom="12pt" text-align="left">
2119
+
2120
+
2121
+
2122
+
2123
+ <xsl:variable name="title-where">
2124
+ <xsl:call-template name="getTitle">
2125
+ <xsl:with-param name="name" select="'title-where'"/>
2126
+ </xsl:call-template>
2127
+ </xsl:variable>
2128
+ <xsl:value-of select="$title-where"/>
2129
+ </fo:block>
2130
+ </xsl:when>
2131
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2132
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
2133
+
2134
+
2135
+
2136
+ <xsl:variable name="title-key">
2137
+ <xsl:call-template name="getTitle">
2138
+ <xsl:with-param name="name" select="'title-key'"/>
2139
+ </xsl:call-template>
2140
+ </xsl:variable>
2141
+ <xsl:value-of select="$title-key"/>
2142
+ </fo:block>
2143
+ </xsl:when>
2144
+ </xsl:choose>
2076
2145
 
2077
- <fo:block>
2078
-
2079
-
2080
-
2081
- <xsl:attribute name="margin-left">-3.5mm</xsl:attribute>
2082
-
2083
-
2084
- <fo:table width="95%" table-layout="fixed">
2146
+ <!-- a few components -->
2147
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2148
+ <fo:block>
2085
2149
 
2086
- <xsl:choose>
2087
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2088
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2089
- </xsl:when>
2090
- <xsl:when test="normalize-space($key_iso) = 'true'">
2091
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2150
+
2151
+
2152
+
2153
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
2154
+
2155
+ <fo:block>
2156
+
2157
+
2158
+
2159
+ <xsl:attribute name="margin-left">-3.5mm</xsl:attribute>
2160
+
2161
+
2162
+ <fo:table width="95%" table-layout="fixed">
2092
2163
 
2093
- </xsl:when>
2094
- </xsl:choose>
2095
- <!-- create virtual html table for dl/[dt and dd] -->
2096
- <xsl:variable name="html-table">
2097
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2098
- <xsl:element name="{$ns}:table">
2099
- <tbody>
2100
- <xsl:apply-templates mode="dl"/>
2101
- </tbody>
2102
- </xsl:element>
2103
- </xsl:variable>
2104
- <!-- html-table<xsl:copy-of select="$html-table"/> -->
2105
- <xsl:variable name="colwidths">
2106
- <xsl:call-template name="calculate-column-widths">
2107
- <xsl:with-param name="cols-count" select="2"/>
2108
- <xsl:with-param name="table" select="$html-table"/>
2109
- </xsl:call-template>
2110
- </xsl:variable>
2111
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2112
- <xsl:variable name="maxlength_dt">
2113
- <xsl:call-template name="getMaxLength_dt"/>
2114
- </xsl:variable>
2115
- <xsl:call-template name="setColumnWidth_dl">
2116
- <xsl:with-param name="colwidths" select="$colwidths"/>
2117
- <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
2118
- </xsl:call-template>
2119
- <fo:table-body>
2120
- <xsl:apply-templates>
2121
- <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2122
- </xsl:apply-templates>
2123
- </fo:table-body>
2124
- </fo:table>
2125
- </fo:block>
2126
- </fo:block>
2127
- </xsl:if>
2164
+ <xsl:choose>
2165
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2166
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2167
+ </xsl:when>
2168
+ <xsl:when test="normalize-space($key_iso) = 'true'">
2169
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2170
+
2171
+ </xsl:when>
2172
+ </xsl:choose>
2173
+ <!-- create virtual html table for dl/[dt and dd] -->
2174
+ <xsl:variable name="html-table">
2175
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2176
+ <xsl:element name="{$ns}:table">
2177
+ <tbody>
2178
+ <xsl:apply-templates mode="dl"/>
2179
+ </tbody>
2180
+ </xsl:element>
2181
+ </xsl:variable>
2182
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
2183
+ <xsl:variable name="colwidths">
2184
+ <xsl:call-template name="calculate-column-widths">
2185
+ <xsl:with-param name="cols-count" select="2"/>
2186
+ <xsl:with-param name="table" select="$html-table"/>
2187
+ </xsl:call-template>
2188
+ </xsl:variable>
2189
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2190
+ <xsl:variable name="maxlength_dt">
2191
+ <xsl:call-template name="getMaxLength_dt"/>
2192
+ </xsl:variable>
2193
+ <xsl:call-template name="setColumnWidth_dl">
2194
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2195
+ <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
2196
+ </xsl:call-template>
2197
+ <fo:table-body>
2198
+ <xsl:apply-templates>
2199
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2200
+ </xsl:apply-templates>
2201
+ </fo:table-body>
2202
+ </fo:table>
2203
+ </fo:block>
2204
+ </fo:block>
2205
+ </xsl:if>
2206
+ </fo:block-container>
2207
+ </fo:block-container>
2128
2208
  </xsl:template><xsl:template name="setColumnWidth_dl">
2129
2209
  <xsl:param name="colwidths"/>
2130
2210
  <xsl:param name="maxlength_dt"/>
@@ -2221,6 +2301,7 @@
2221
2301
  <xsl:param name="key_iso"/>
2222
2302
 
2223
2303
  <fo:table-row>
2304
+
2224
2305
  <fo:table-cell>
2225
2306
 
2226
2307
  <fo:block margin-top="6pt">
@@ -2303,6 +2384,31 @@
2303
2384
  </fo:inline>
2304
2385
  </xsl:template><xsl:template match="*[local-name()='tt']">
2305
2386
  <fo:inline xsl:use-attribute-sets="tt-style">
2387
+ <xsl:variable name="_font-size">
2388
+
2389
+
2390
+
2391
+
2392
+ 10
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
2400
+
2401
+
2402
+ </xsl:variable>
2403
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
2404
+ <xsl:if test="$font-size != ''">
2405
+ <xsl:attribute name="font-size">
2406
+ <xsl:choose>
2407
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
2408
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
2409
+ </xsl:choose>
2410
+ </xsl:attribute>
2411
+ </xsl:if>
2306
2412
  <xsl:apply-templates/>
2307
2413
  </fo:inline>
2308
2414
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -2629,10 +2735,23 @@
2629
2735
  <xsl:value-of select="substring($str, 2)"/>
2630
2736
  </xsl:template><xsl:template match="mathml:math">
2631
2737
  <fo:inline font-family="STIX2Math">
2632
- <fo:instream-foreign-object fox:alt-text="Math">
2633
- <xsl:copy-of select="."/>
2634
- </fo:instream-foreign-object>
2738
+ <xsl:variable name="mathml">
2739
+ <xsl:apply-templates select="." mode="mathml"/>
2740
+ </xsl:variable>
2741
+ <fo:instream-foreign-object fox:alt-text="Math">
2742
+ <!-- <xsl:copy-of select="."/> -->
2743
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
2744
+ </fo:instream-foreign-object>
2635
2745
  </fo:inline>
2746
+ </xsl:template><xsl:template match="@*|node()" mode="mathml">
2747
+ <xsl:copy>
2748
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
2749
+ </xsl:copy>
2750
+ </xsl:template><xsl:template match="mathml:mtext" mode="mathml">
2751
+ <xsl:copy>
2752
+ <!-- replace start and end spaces to non-break space -->
2753
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
2754
+ </xsl:copy>
2636
2755
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
2637
2756
  <xsl:variable name="target">
2638
2757
  <xsl:choose>
@@ -2713,9 +2832,22 @@
2713
2832
  <xsl:apply-templates/>
2714
2833
  </fo:basic-link>
2715
2834
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
2716
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2717
- <xsl:apply-templates/>
2718
- </fo:block>
2835
+ <fo:block-container margin-left="0mm">
2836
+ <xsl:if test="parent::*[local-name() = 'note']">
2837
+ <xsl:attribute name="margin-left">
2838
+ <xsl:choose>
2839
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2840
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2841
+ </xsl:choose>
2842
+ </xsl:attribute>
2843
+
2844
+ </xsl:if>
2845
+ <fo:block-container margin-left="0mm">
2846
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2847
+ <xsl:apply-templates/>
2848
+ </fo:block>
2849
+ </fo:block-container>
2850
+ </fo:block-container>
2719
2851
  </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
2720
2852
  <fo:inline>
2721
2853
  <xsl:apply-templates/>
@@ -2779,7 +2911,9 @@
2779
2911
  </xsl:choose>
2780
2912
  </xsl:template><xsl:template match="*[local-name() = 'termnote']">
2781
2913
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
2782
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2914
+ <fo:inline xsl:use-attribute-sets="termnote-name-style">
2915
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2916
+ </fo:inline>
2783
2917
  <xsl:apply-templates/>
2784
2918
  </fo:block>
2785
2919
  </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">
@@ -2946,21 +3080,61 @@
2946
3080
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
2947
3081
  <xsl:text> </xsl:text>
2948
3082
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
2949
- <fo:block xsl:use-attribute-sets="sourcecode-style">
2950
- <xsl:apply-templates/>
2951
- </fo:block>
2952
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2953
- </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()">
3083
+
3084
+ <fo:block-container margin-left="0mm">
3085
+ <xsl:if test="parent::*[local-name() = 'note']">
3086
+ <xsl:attribute name="margin-left">
3087
+ <xsl:choose>
3088
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3089
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3090
+ </xsl:choose>
3091
+ </xsl:attribute>
3092
+
3093
+ </xsl:if>
3094
+ <fo:block-container margin-left="0mm">
3095
+
3096
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
3097
+ <xsl:variable name="_font-size">
3098
+
3099
+
3100
+
3101
+
3102
+ 10
3103
+
3104
+
3105
+
3106
+
3107
+
3108
+
3109
+
3110
+
3111
+
3112
+ </xsl:variable>
3113
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
3114
+ <xsl:if test="$font-size != ''">
3115
+ <xsl:attribute name="font-size">
3116
+ <xsl:choose>
3117
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3118
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
3119
+ </xsl:choose>
3120
+ </xsl:attribute>
3121
+ </xsl:if>
3122
+ <xsl:apply-templates/>
3123
+ </fo:block>
3124
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3125
+
3126
+ </fo:block-container>
3127
+ </fo:block-container>
3128
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
2954
3129
  <xsl:variable name="text">
2955
3130
  <xsl:call-template name="add-zero-spaces-equal"/>
2956
3131
  </xsl:variable>
2957
- <xsl:call-template name="add-zero-spaces">
3132
+ <xsl:call-template name="add-zero-spaces-java">
2958
3133
  <xsl:with-param name="text" select="$text"/>
2959
3134
  </xsl:call-template>
2960
3135
  </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
2961
3136
  <xsl:if test="normalize-space() != ''">
2962
- <fo:block xsl:use-attribute-sets="sourcecode-name-style">
2963
-
3137
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
2964
3138
  <xsl:apply-templates/>
2965
3139
  </fo:block>
2966
3140
  </xsl:if>
@@ -3034,9 +3208,9 @@
3034
3208
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
3035
3209
  </xsl:if>
3036
3210
  <fo:block-container margin-left="0mm" margin-right="0mm">
3037
- <fo:table id="{@id}" table-layout="fixed" width="100%" border="1pt solid black">
3211
+ <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
3038
3212
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3039
- <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
3213
+ <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
3040
3214
  </xsl:if>
3041
3215
  <xsl:variable name="simple-table">
3042
3216
  <xsl:call-template name="getSimpleTable"/>
@@ -3045,8 +3219,8 @@
3045
3219
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
3046
3220
  <!-- <fo:table-column column-width="35mm"/>
3047
3221
  <fo:table-column column-width="115mm"/> -->
3048
- <fo:table-column column-width="25%"/>
3049
- <fo:table-column column-width="75%"/>
3222
+ <fo:table-column column-width="30%"/>
3223
+ <fo:table-column column-width="70%"/>
3050
3224
  </xsl:if>
3051
3225
  <xsl:apply-templates mode="requirement"/>
3052
3226
  </fo:table>
@@ -3069,14 +3243,21 @@
3069
3243
  <xsl:apply-templates mode="requirement"/>
3070
3244
  </fo:table-body>
3071
3245
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
3072
- <fo:table-row height="7mm">
3073
- <xsl:if test="parent::*[local-name()='thead'] and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission'])">
3074
- <xsl:attribute name="border">1pt solid black</xsl:attribute>
3246
+ <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
3247
+ <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
3248
+ <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
3249
+ <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
3250
+ </xsl:if>
3251
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
3252
+ <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
3253
+ </xsl:if>
3254
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
3255
+ <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
3075
3256
  </xsl:if>
3076
3257
  <xsl:apply-templates mode="requirement"/>
3077
3258
  </fo:table-row>
3078
3259
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
3079
- <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm" border="0.5pt solid black">
3260
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
3080
3261
  <xsl:attribute name="text-align">
3081
3262
  <xsl:choose>
3082
3263
  <xsl:when test="@align">
@@ -3095,6 +3276,7 @@
3095
3276
  <xsl:value-of select="@rowspan"/>
3096
3277
  </xsl:attribute>
3097
3278
  </xsl:if>
3279
+ <xsl:call-template name="display-align"/>
3098
3280
 
3099
3281
  <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3100
3282
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
@@ -3110,7 +3292,7 @@
3110
3292
  </fo:block>
3111
3293
  </fo:table-cell>
3112
3294
  </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
3113
- <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm" border="0.5pt solid black">
3295
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
3114
3296
  <xsl:if test="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3115
3297
  <xsl:attribute name="padding">0mm</xsl:attribute>
3116
3298
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
@@ -3123,6 +3305,9 @@
3123
3305
  <xsl:otherwise>left</xsl:otherwise>
3124
3306
  </xsl:choose>
3125
3307
  </xsl:attribute>
3308
+ <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
3309
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3310
+ </xsl:if>
3126
3311
  <xsl:if test="@colspan">
3127
3312
  <xsl:attribute name="number-columns-spanned">
3128
3313
  <xsl:value-of select="@colspan"/>
@@ -3133,6 +3318,7 @@
3133
3318
  <xsl:value-of select="@rowspan"/>
3134
3319
  </xsl:attribute>
3135
3320
  </xsl:if>
3321
+ <xsl:call-template name="display-align"/>
3136
3322
 
3137
3323
  <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3138
3324
  <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
@@ -3148,7 +3334,7 @@
3148
3334
  </fo:block>
3149
3335
  </fo:table-cell>
3150
3336
  </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
3151
- <fo:block font-size="11pt" font-weight="bold"> <!-- margin-bottom="4pt" text-align="center" -->
3337
+ <fo:block font-size="11pt" color="rgb(237, 193, 35)"> <!-- font-weight="bold" margin-bottom="4pt" text-align="center" -->
3152
3338
  <xsl:apply-templates/>
3153
3339
  </fo:block>
3154
3340
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
@@ -3174,12 +3360,13 @@
3174
3360
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3175
3361
 
3176
3362
  <xsl:variable name="element">
3177
- block
3363
+ block
3178
3364
 
3365
+ <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
3179
3366
  </xsl:variable>
3180
3367
 
3181
3368
  <xsl:choose>
3182
- <xsl:when test="normalize-space($element) = 'block'">
3369
+ <xsl:when test="contains(normalize-space($element), 'block')">
3183
3370
  <fo:block xsl:use-attribute-sets="example-body-style">
3184
3371
  <xsl:apply-templates/>
3185
3372
  </fo:block>
@@ -3216,25 +3403,44 @@
3216
3403
  </xsl:otherwise>
3217
3404
  </xsl:choose>
3218
3405
 
3219
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3220
- <fo:block xsl:use-attribute-sets="example-p-style">
3406
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3407
+
3408
+ <xsl:variable name="element">
3409
+ block
3221
3410
 
3222
- <xsl:apply-templates/>
3223
- </fo:block>
3411
+ </xsl:variable>
3412
+ <xsl:choose>
3413
+ <xsl:when test="normalize-space($element) = 'block'">
3414
+ <fo:block xsl:use-attribute-sets="example-p-style">
3415
+
3416
+ <xsl:apply-templates/>
3417
+ </fo:block>
3418
+ </xsl:when>
3419
+ <xsl:otherwise>
3420
+ <fo:inline xsl:use-attribute-sets="example-p-style">
3421
+ <xsl:apply-templates/>
3422
+ </fo:inline>
3423
+ </xsl:otherwise>
3424
+ </xsl:choose>
3224
3425
  </xsl:template><xsl:template match="*[local-name() = 'termsource']">
3225
3426
  <fo:block xsl:use-attribute-sets="termsource-style">
3226
3427
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
3227
3428
  <xsl:variable name="termsource_text">
3228
3429
  <xsl:apply-templates/>
3229
3430
  </xsl:variable>
3431
+
3230
3432
  <xsl:choose>
3231
3433
  <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
3232
3434
  <xsl:apply-templates/>
3233
3435
  </xsl:when>
3234
- <xsl:otherwise>
3235
- <xsl:text>[</xsl:text>
3236
- <xsl:apply-templates/>
3237
- <xsl:text>]</xsl:text>
3436
+ <xsl:otherwise>
3437
+
3438
+ <xsl:text>[</xsl:text>
3439
+
3440
+ <xsl:apply-templates/>
3441
+
3442
+ <xsl:text>]</xsl:text>
3443
+
3238
3444
  </xsl:otherwise>
3239
3445
  </xsl:choose>
3240
3446
  </fo:block>
@@ -3245,10 +3451,13 @@
3245
3451
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
3246
3452
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3247
3453
 
3248
- <xsl:call-template name="getTitle">
3249
- <xsl:with-param name="name" select="'title-source'"/>
3250
- </xsl:call-template>
3251
- <xsl:text>: </xsl:text>
3454
+ <fo:inline>
3455
+
3456
+ <xsl:call-template name="getTitle">
3457
+ <xsl:with-param name="name" select="'title-source'"/>
3458
+ </xsl:call-template>
3459
+ <xsl:text>: </xsl:text>
3460
+ </fo:inline>
3252
3461
 
3253
3462
  <fo:inline xsl:use-attribute-sets="origin-style">
3254
3463
  <xsl:apply-templates/>
@@ -3260,18 +3469,29 @@
3260
3469
  <xsl:if test="normalize-space() != ''">
3261
3470
  <xsl:value-of select="."/>
3262
3471
  </xsl:if>
3263
- </xsl:template><xsl:template match="*[local-name() = 'quote']">
3472
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
3473
+ <fo:block-container margin-left="0mm">
3474
+ <xsl:if test="parent::*[local-name() = 'note']">
3475
+ <xsl:if test="not(ancestor::*[local-name() = 'table'])">
3476
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
3477
+ </xsl:if>
3478
+ </xsl:if>
3479
+
3480
+ <fo:block-container margin-left="0mm">
3264
3481
 
3265
- <fo:block xsl:use-attribute-sets="quote-style">
3266
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3267
- </fo:block>
3268
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3269
- <fo:block xsl:use-attribute-sets="quote-source-style">
3270
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
3271
- <xsl:apply-templates select="*[local-name() = 'author']"/>
3272
- <xsl:apply-templates select="*[local-name() = 'source']"/>
3273
- </fo:block>
3274
- </xsl:if>
3482
+ <fo:block xsl:use-attribute-sets="quote-style">
3483
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3484
+ </fo:block>
3485
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3486
+ <fo:block xsl:use-attribute-sets="quote-source-style">
3487
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
3488
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
3489
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
3490
+ </fo:block>
3491
+ </xsl:if>
3492
+
3493
+ </fo:block-container>
3494
+ </fo:block-container>
3275
3495
  </xsl:template><xsl:template match="*[local-name() = 'source']">
3276
3496
  <xsl:if test="../*[local-name() = 'author']">
3277
3497
  <xsl:text>, </xsl:text>
@@ -3302,6 +3522,7 @@
3302
3522
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
3303
3523
 
3304
3524
 
3525
+
3305
3526
  </xsl:if>
3306
3527
 
3307
3528
 
@@ -3340,6 +3561,7 @@
3340
3561
 
3341
3562
 
3342
3563
 
3564
+
3343
3565
  </xsl:variable>
3344
3566
 
3345
3567
  <xsl:variable name="padding-right">
@@ -3454,6 +3676,21 @@
3454
3676
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
3455
3677
  <!-- 0xA0 to space replacement -->
3456
3678
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
3679
+ </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
3680
+ <fo:block-container margin-left="0mm">
3681
+ <xsl:if test="parent::*[local-name() = 'note']">
3682
+ <xsl:attribute name="margin-left">
3683
+ <xsl:choose>
3684
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3685
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3686
+ </xsl:choose>
3687
+ </xsl:attribute>
3688
+
3689
+ </xsl:if>
3690
+ <fo:block-container margin-left="0mm">
3691
+ <xsl:apply-templates select="." mode="ul_ol"/>
3692
+ </fo:block-container>
3693
+ </fo:block-container>
3457
3694
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
3458
3695
  <!-- <row>
3459
3696
  <date>05-07-2013</date>
@@ -3486,7 +3723,127 @@
3486
3723
  <fo:block><xsl:apply-templates/></fo:block>
3487
3724
  </fo:table-cell>
3488
3725
  </xsl:template><xsl:template name="processBibitem">
3726
+
3727
+
3728
+
3489
3729
 
3730
+ <!-- start IHO bibtem processing -->
3731
+ <xsl:choose>
3732
+ <xsl:when test="iho:formattedref">
3733
+ <xsl:apply-templates select="iho:formattedref"/>
3734
+ </xsl:when>
3735
+ <xsl:otherwise>
3736
+ <xsl:choose>
3737
+ <!-- IHO documents -->
3738
+ <!-- {docID} edition {edition}: {title}, {author/organization} -->
3739
+ <xsl:when test="iho:docidentifier[1]/@type='IHO'">
3740
+ <xsl:value-of select="iho:docidentifier[1]"/>
3741
+ <xsl:apply-templates select="iho:edition"/>
3742
+ <xsl:if test="iho:title or iho:contributor or iho:url">
3743
+ <xsl:text>: </xsl:text>
3744
+ </xsl:if>
3745
+ </xsl:when>
3746
+
3747
+ <!-- Non-IHO documents -->
3748
+ <!-- title and publisher -->
3749
+ <xsl:otherwise>
3750
+ <xsl:variable name="docID">
3751
+ <xsl:call-template name="processBibitemDocId"/>
3752
+ </xsl:variable>
3753
+ <xsl:value-of select="normalize-space($docID)"/>
3754
+ <xsl:if test="normalize-space($docID) != ''"><xsl:text>: </xsl:text></xsl:if>
3755
+ </xsl:otherwise>
3756
+ </xsl:choose>
3757
+
3758
+ <xsl:choose>
3759
+ <xsl:when test="iho:title[@type = 'main' and @language = 'en']">
3760
+ <xsl:apply-templates select="iho:title[@type = 'main' and @language = 'en']"/>
3761
+ </xsl:when>
3762
+ <xsl:otherwise>
3763
+ <xsl:apply-templates select="iho:title"/>
3764
+ </xsl:otherwise>
3765
+ </xsl:choose>
3766
+
3767
+ <xsl:if test="iho:title and iho:contributor">
3768
+ <xsl:text>, </xsl:text>
3769
+ </xsl:if>
3770
+
3771
+ <xsl:variable name="authors">
3772
+ <xsl:choose>
3773
+ <xsl:when test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
3774
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
3775
+ <xsl:copy-of select="."/>
3776
+ </xsl:for-each>
3777
+ </xsl:when>
3778
+ <xsl:when test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='editor']">
3779
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='editor']">
3780
+ <xsl:copy-of select="."/>
3781
+ </xsl:for-each>
3782
+ </xsl:when>
3783
+ <xsl:when test="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='publisher'][*[local-name() = 'organization']]">
3784
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='publisher'][*[local-name() = 'organization']]">
3785
+ <xsl:copy>
3786
+ <xsl:choose>
3787
+ <xsl:when test="position() != 1 and position() != last()">, </xsl:when>
3788
+ <xsl:when test="position() != 1 and position() = last()"> and </xsl:when>
3789
+ </xsl:choose>
3790
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
3791
+ </xsl:copy>
3792
+ </xsl:for-each>
3793
+ </xsl:when>
3794
+ </xsl:choose>
3795
+ </xsl:variable>
3796
+
3797
+ <xsl:for-each select="xalan:nodeset($authors)/*">
3798
+ <xsl:choose>
3799
+ <xsl:when test="not(*[local-name() = 'role'])"><!-- publisher organisation -->
3800
+ <xsl:value-of select="."/>
3801
+ </xsl:when>
3802
+ <xsl:otherwise> <!-- author, editor -->
3803
+ <xsl:choose>
3804
+ <xsl:when test="*[local-name() = 'organization']/*[local-name() = 'name']">
3805
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
3806
+ </xsl:when>
3807
+ <xsl:otherwise>
3808
+ <xsl:for-each select="*[local-name() = 'person']">
3809
+ <xsl:variable name="author">
3810
+ <xsl:call-template name="processPersonalAuthor"/>
3811
+ </xsl:variable>
3812
+ <xsl:value-of select="xalan:nodeset($author)/author"/>
3813
+ </xsl:for-each>
3814
+ </xsl:otherwise>
3815
+ </xsl:choose>
3816
+ </xsl:otherwise>
3817
+ </xsl:choose>
3818
+ <xsl:if test="*[local-name() = 'organization']/*[local-name() = 'name'] and position() != last()">
3819
+ <xsl:text>, </xsl:text>
3820
+ </xsl:if>
3821
+ </xsl:for-each>
3822
+
3823
+ <xsl:apply-templates select="*[local-name() = 'uri'][1]"/>
3824
+
3825
+ </xsl:otherwise>
3826
+ </xsl:choose>
3827
+ <!-- end IHO bibitem processing -->
3828
+
3829
+ </xsl:template><xsl:template name="processBibitemDocId">
3830
+ <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')]"/>
3831
+ <xsl:choose>
3832
+ <xsl:when test="normalize-space($_doc_ident) != ''">
3833
+ <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"/>
3834
+ <xsl:if test="$type != '' and not(contains($_doc_ident, $type))">
3835
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3836
+ </xsl:if>
3837
+ <xsl:value-of select="$_doc_ident"/>
3838
+ </xsl:when>
3839
+ <xsl:otherwise>
3840
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]/@type"/>
3841
+ <xsl:if test="$type != ''">
3842
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3843
+ </xsl:if>
3844
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
3845
+ </xsl:otherwise>
3846
+ </xsl:choose>
3490
3847
  </xsl:template><xsl:template name="processPersonalAuthor">
3491
3848
  <xsl:choose>
3492
3849
  <xsl:when test="*[local-name() = 'name']/*[local-name() = 'completename']">