metanorma-iso 1.3.25 → 1.3.26

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/lib/asciidoctor/iso/base.rb +6 -0
  3. data/lib/asciidoctor/iso/biblio.rng +13 -3
  4. data/lib/asciidoctor/iso/front.rb +3 -155
  5. data/lib/asciidoctor/iso/front_id.rb +196 -0
  6. data/lib/asciidoctor/iso/isodoc.rng +17 -1
  7. data/lib/asciidoctor/iso/isostandard.rng +7 -1
  8. data/lib/asciidoctor/iso/term_lookup_cleanup.rb +5 -8
  9. data/lib/asciidoctor/iso/validate_requirements.rb +1 -1
  10. data/lib/asciidoctor/iso/validate_style.rb +6 -5
  11. data/lib/isodoc/iso/base_convert.rb +1 -33
  12. data/lib/isodoc/iso/html/header.html +5 -1
  13. data/lib/isodoc/iso/html/html_iso_titlepage.html +9 -0
  14. data/lib/isodoc/iso/html/isodoc.scss +21 -0
  15. data/lib/isodoc/iso/html/style-human.scss +5 -1
  16. data/lib/isodoc/iso/html/style-iso.scss +5 -1
  17. data/lib/isodoc/iso/html/word_iso_titlepage.html +4 -4
  18. data/lib/isodoc/iso/html/wordstyle.scss +20 -6
  19. data/lib/isodoc/iso/iso.amendment.xsl +4597 -0
  20. data/lib/isodoc/iso/iso.international-standard.xsl +494 -283
  21. data/lib/isodoc/iso/metadata.rb +30 -26
  22. data/lib/isodoc/iso/pdf_convert.rb +9 -2
  23. data/lib/isodoc/iso/sections.rb +66 -0
  24. data/lib/isodoc/iso/sts_convert.rb +29 -0
  25. data/lib/metanorma-iso.rb +1 -0
  26. data/lib/metanorma/iso/processor.rb +4 -1
  27. data/lib/metanorma/iso/version.rb +1 -1
  28. data/metanorma-iso.gemspec +4 -1
  29. data/spec/asciidoctor-iso/amd_spec.rb +412 -4
  30. data/spec/asciidoctor-iso/base_spec.rb +15 -13
  31. data/spec/asciidoctor-iso/macros_spec.rb +15 -13
  32. data/spec/isodoc/amd_spec.rb +606 -0
  33. data/spec/isodoc/metadata_spec.rb +4 -2
  34. data/spec/isodoc/postproc_spec.rb +8 -8
  35. data/spec/isodoc/ref_spec.rb +1 -1
  36. data/spec/isodoc/section_spec.rb +28 -1
  37. data/spec/metanorma/processor_spec.rb +1 -1
  38. metadata +51 -4
@@ -1,4 +1,4 @@
1
- <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" version="1.0">
1
+ <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:iso="https://www.metanorma.org/ns/iso" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java" version="1.0">
2
2
 
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
4
 
@@ -31,8 +31,8 @@
31
31
  <xsl:variable name="title-main" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-main']"/>
32
32
  <xsl:variable name="title-main-fr" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-main']"/>
33
33
  <xsl:variable name="part" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@part"/>
34
- <xsl:variable name="title-part" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-part']"/>
35
- <xsl:variable name="title-part-fr" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-part']"/>
34
+
35
+
36
36
 
37
37
  <xsl:variable name="doctype_uppercased" select="translate(translate(/iso:iso-standard/iso:bibdata/iso:ext/iso:doctype,'-',' '), $lower,$upper)"/>
38
38
 
@@ -144,10 +144,6 @@
144
144
  </xsl:variable>
145
145
 
146
146
  <xsl:variable name="proof-text">PROOF/ÉPREUVE</xsl:variable>
147
-
148
- <xsl:variable name="title-figure">
149
- <xsl:text>Figure </xsl:text>
150
- </xsl:variable>
151
147
 
152
148
  <!-- Example:
153
149
  <item level="1" id="Foreword" display="true">Foreword</item>
@@ -333,7 +329,9 @@
333
329
  </xsl:variable>
334
330
  <xsl:value-of select="normalize-space($abstract)"/>
335
331
  </dc:description>
336
- <pdf:Keywords/>
332
+ <pdf:Keywords>
333
+ <xsl:call-template name="insertKeywords"/>
334
+ </pdf:Keywords>
337
335
  </rdf:Description>
338
336
  <rdf:Description xmlns:xmp="http://ns.adobe.com/xap/1.0/" rdf:about="">
339
337
  <!-- XMP properties go here -->
@@ -518,8 +516,10 @@
518
516
  </xsl:if>
519
517
 
520
518
  <xsl:value-of select="$title-main"/>
519
+
520
+ <xsl:call-template name="printTitlePartEn"/>
521
521
 
522
- <xsl:if test="normalize-space($title-part) != ''">
522
+ <!-- <xsl:if test="normalize-space($title-part) != ''">
523
523
  <xsl:if test="$part != ''">
524
524
  <xsl:text> — </xsl:text>
525
525
  <fo:block font-weight="normal" margin-top="6pt">
@@ -528,7 +528,7 @@
528
528
  </fo:block>
529
529
  </xsl:if>
530
530
  <xsl:value-of select="$title-part"/>
531
- </xsl:if>
531
+ </xsl:if> -->
532
532
  </fo:block>
533
533
 
534
534
  <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
@@ -540,16 +540,9 @@
540
540
  </xsl:if>
541
541
 
542
542
  <xsl:value-of select="$title-main-fr"/>
543
+
544
+ <xsl:call-template name="printTitlePartFr"/>
543
545
 
544
- <xsl:if test="normalize-space($title-part-fr) != ''">
545
- <xsl:if test="$part != ''">
546
- <xsl:text> — </xsl:text>
547
- <xsl:text>Partie </xsl:text>
548
- <xsl:value-of select="$part"/>
549
- <xsl:text>:</xsl:text>
550
- </xsl:if>
551
- <xsl:value-of select="$title-part-fr"/>
552
- </xsl:if>
553
546
  </fo:block>
554
547
  </fo:block>
555
548
  <fo:block margin-top="10mm">
@@ -681,7 +674,8 @@
681
674
 
682
675
  <xsl:value-of select="$title-main"/>
683
676
 
684
- <xsl:if test="normalize-space($title-part) != ''">
677
+ <xsl:call-template name="printTitlePartEn"/>
678
+ <!-- <xsl:if test="normalize-space($title-part) != ''">
685
679
  <xsl:if test="$part != ''">
686
680
  <xsl:text> — </xsl:text>
687
681
  <fo:block font-weight="normal" margin-top="6pt">
@@ -690,7 +684,7 @@
690
684
  </fo:block>
691
685
  </xsl:if>
692
686
  <xsl:value-of select="$title-part"/>
693
- </xsl:if>
687
+ </xsl:if> -->
694
688
  </fo:block>
695
689
 
696
690
  <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
@@ -703,15 +697,8 @@
703
697
 
704
698
  <xsl:value-of select="$title-main-fr"/>
705
699
 
706
- <xsl:if test="normalize-space($title-part-fr) != ''">
707
- <xsl:if test="$part != ''">
708
- <xsl:text> — </xsl:text>
709
- <xsl:text>Partie </xsl:text>
710
- <xsl:value-of select="$part"/>
711
- <xsl:text>:</xsl:text>
712
- </xsl:if>
713
- <xsl:value-of select="$title-part-fr"/>
714
- </xsl:if>
700
+ <xsl:call-template name="printTitlePartFr"/>
701
+
715
702
  </fo:block>
716
703
  </fo:block>
717
704
  </fo:block-container>
@@ -801,7 +788,8 @@
801
788
 
802
789
  <xsl:value-of select="$title-main"/>
803
790
 
804
- <xsl:if test="normalize-space($title-part) != ''">
791
+ <xsl:call-template name="printTitlePartEn"/>
792
+ <!-- <xsl:if test="normalize-space($title-part) != ''">
805
793
  <xsl:if test="$part != ''">
806
794
  <xsl:text> — </xsl:text>
807
795
  <fo:block font-weight="normal" margin-top="6pt">
@@ -810,7 +798,7 @@
810
798
  </fo:block>
811
799
  </xsl:if>
812
800
  <xsl:value-of select="$title-part"/>
813
- </xsl:if>
801
+ </xsl:if> -->
814
802
  </fo:block>
815
803
 
816
804
  <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
@@ -823,15 +811,8 @@
823
811
 
824
812
  <xsl:value-of select="$title-main-fr"/>
825
813
 
826
- <xsl:if test="normalize-space($title-part-fr) != ''">
827
- <xsl:if test="$part != ''">
828
- <xsl:text> — </xsl:text>
829
- <xsl:text>Partie </xsl:text>
830
- <xsl:value-of select="$part"/>
831
- <xsl:text>:</xsl:text>
832
- </xsl:if>
833
- <xsl:value-of select="$title-part-fr"/>
834
- </xsl:if>
814
+ <xsl:call-template name="printTitlePartFr"/>
815
+
835
816
  </fo:block>
836
817
  </fo:block>
837
818
  </fo:block-container>
@@ -920,7 +901,8 @@
920
901
 
921
902
  <xsl:value-of select="$title-main"/>
922
903
 
923
- <xsl:if test="normalize-space($title-part) != ''">
904
+ <xsl:call-template name="printTitlePartEn"/>
905
+ <!-- <xsl:if test="normalize-space($title-part) != ''">
924
906
  <xsl:if test="$part != ''">
925
907
  <xsl:text> — </xsl:text>
926
908
  <fo:block font-weight="normal" margin-top="6pt">
@@ -929,7 +911,7 @@
929
911
  </fo:block>
930
912
  </xsl:if>
931
913
  <xsl:value-of select="$title-part"/>
932
- </xsl:if>
914
+ </xsl:if> -->
933
915
  </fo:block>
934
916
 
935
917
  <fo:block font-size="12pt"><xsl:value-of select="$linebreak"/></fo:block>
@@ -941,15 +923,16 @@
941
923
 
942
924
  <xsl:value-of select="$title-main-fr"/>
943
925
 
944
- <xsl:if test="normalize-space($title-part-fr) != ''">
926
+ <xsl:variable name="part-fr" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-part']"/>
927
+ <xsl:if test="normalize-space($part-fr) != ''">
945
928
  <xsl:if test="$part != ''">
946
929
  <xsl:text> — </xsl:text>
947
930
  <fo:block margin-top="6pt" font-weight="normal">
948
- <xsl:text>Partie </xsl:text><xsl:value-of select="$part"/>
931
+ <xsl:value-of select="$title-part-fr"/><xsl:value-of select="$part"/>
949
932
  <xsl:text>:</xsl:text>
950
933
  </fo:block>
951
934
  </xsl:if>
952
- <xsl:value-of select="$title-part-fr"/>
935
+ <xsl:value-of select="$part-fr"/>
953
936
  </xsl:if>
954
937
  </fo:block>
955
938
  </fo:block-container>
@@ -1088,6 +1071,7 @@
1088
1071
  </fo:block>
1089
1072
  -->
1090
1073
  <fo:block font-size="18pt" font-weight="bold" margin-top="40pt" margin-bottom="20pt" line-height="1.1">
1074
+ <xsl:variable name="part-en" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-part']"/>
1091
1075
  <fo:block>
1092
1076
  <xsl:if test="normalize-space($title-intro) != ''">
1093
1077
  <xsl:value-of select="$title-intro"/>
@@ -1096,18 +1080,19 @@
1096
1080
 
1097
1081
  <xsl:value-of select="$title-main"/>
1098
1082
 
1099
- <xsl:if test="normalize-space($title-part) != ''">
1083
+ <xsl:if test="normalize-space($part-en) != ''">
1100
1084
  <xsl:if test="$part != ''">
1101
1085
  <xsl:text> — </xsl:text>
1102
1086
  <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1103
- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
1087
+ <xsl:value-of select="$title-part-en"/>
1088
+ <xsl:value-of select="$part"/>
1104
1089
  <xsl:text>:</xsl:text>
1105
1090
  </fo:block>
1106
1091
  </xsl:if>
1107
1092
  </xsl:if>
1108
1093
  </fo:block>
1109
1094
  <fo:block>
1110
- <xsl:value-of select="$title-part"/>
1095
+ <xsl:value-of select="$part-en"/>
1111
1096
  </fo:block>
1112
1097
  </fo:block>
1113
1098
 
@@ -1187,6 +1172,14 @@
1187
1172
  <xsl:otherwise>ICS&#xA0;&#xA0;67.060</xsl:otherwise>
1188
1173
  </xsl:choose> -->
1189
1174
  </fo:block>
1175
+ <xsl:if test="/iso:iso-standard/iso:bibdata/iso:keyword">
1176
+ <fo:block font-size="9pt" margin-bottom="6pt">
1177
+ <fo:inline font-weight="bold"><xsl:value-of select="$title-descriptors"/>: </fo:inline>
1178
+ <xsl:call-template name="insertKeywords">
1179
+ <xsl:with-param name="sorting">no</xsl:with-param>
1180
+ </xsl:call-template>
1181
+ </fo:block>
1182
+ </xsl:if>
1190
1183
  <fo:block font-size="9pt">Price based on <fo:page-number-citation ref-id="lastBlock"/> pages</fo:block>
1191
1184
  </fo:block-container>
1192
1185
  </fo:block-container>
@@ -1314,21 +1307,9 @@
1314
1307
  <xsl:param name="sectionNum"/>
1315
1308
  <xsl:variable name="annex-id" select="ancestor::iso:annex/@id"/>
1316
1309
  <item level="" id="{@id}" display="false" type="table">
1317
- <xsl:attribute name="section">
1318
- <xsl:text>Table </xsl:text>
1319
- <xsl:choose>
1320
- <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
1321
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table']"/>
1322
- </xsl:when>
1323
- <xsl:when test="ancestor::*[local-name()='annex']">
1324
- <xsl:number format="A-" count="iso:annex"/>
1325
- <xsl:number format="1" level="any" count="iso:table[ancestor::iso:annex[@id = $annex-id]]"/>
1326
- </xsl:when>
1327
- <xsl:otherwise>
1328
- <!-- <xsl:number format="1"/> -->
1329
- <xsl:number format="1" level="any" count="*[local-name()='sections']//*[local-name()='table']"/>
1330
- </xsl:otherwise>
1331
- </xsl:choose>
1310
+ <xsl:attribute name="section">
1311
+ <xsl:value-of select="$title-table"/>
1312
+ <xsl:call-template name="getTableNumber"/>
1332
1313
  </xsl:attribute>
1333
1314
  <xsl:value-of select="iso:name/text()"/>
1334
1315
  </item>
@@ -1443,7 +1424,7 @@
1443
1424
  <xsl:param name="sectionNum"/>
1444
1425
  <xsl:param name="sectionNumSkew" select="0"/>
1445
1426
  <fo:block>
1446
- <xsl:variable name="pos"><xsl:number count="iso:sections/iso:clause | iso:sections/iso:terms"/></xsl:variable>
1427
+ <xsl:variable name="pos"><xsl:number count="*"/></xsl:variable> <!-- iso:sections/iso:clause | iso:sections/iso:terms | iso:sections/iso:definitions -->
1447
1428
  <xsl:if test="$pos &gt;= 2">
1448
1429
  <xsl:attribute name="space-before">18pt</xsl:attribute>
1449
1430
  </xsl:if>
@@ -1452,7 +1433,7 @@
1452
1433
  <xsl:choose>
1453
1434
  <xsl:when test="$sectionNum"><xsl:value-of select="$sectionNum"/></xsl:when>
1454
1435
  <xsl:when test="$sectionNumSkew != 0">
1455
- <xsl:variable name="number"><xsl:number count="iso:sections/iso:clause | iso:sections/iso:terms"/></xsl:variable>
1436
+ <xsl:variable name="number"><xsl:number count="*"/></xsl:variable> <!--iso:sections/iso:clause | iso:sections/iso:terms | iso:sections/iso:definitions -->
1456
1437
  <xsl:value-of select="$number + $sectionNumSkew"/>
1457
1438
  </xsl:when>
1458
1439
  </xsl:choose>
@@ -1793,15 +1774,17 @@
1793
1774
 
1794
1775
  <xsl:template match="iso:bibitem">
1795
1776
  <fo:block id="{@id}" margin-bottom="6pt"> <!-- 12 pt -->
1796
- <!-- iso:docidentifier -->
1797
- <xsl:if test="iso:docidentifier">
1798
- <xsl:choose>
1799
- <xsl:when test="iso:docidentifier/@type = 'metanorma'"/>
1800
- <xsl:otherwise><fo:inline><xsl:value-of select="iso:docidentifier"/></fo:inline></xsl:otherwise>
1801
- </xsl:choose>
1802
- </xsl:if>
1803
- <xsl:apply-templates select="iso:note"/>
1804
- <xsl:if test="iso:docidentifier">, </xsl:if>
1777
+ <xsl:variable name="docidentifier">
1778
+ <xsl:if test="iso:docidentifier">
1779
+ <xsl:choose>
1780
+ <xsl:when test="iso:docidentifier/@type = 'metanorma'"/>
1781
+ <xsl:otherwise><xsl:value-of select="iso:docidentifier"/></xsl:otherwise>
1782
+ </xsl:choose>
1783
+ </xsl:if>
1784
+ </xsl:variable>
1785
+ <xsl:value-of select="$docidentifier"/>
1786
+ <xsl:apply-templates select="iso:note"/>
1787
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
1805
1788
  <fo:inline font-style="italic">
1806
1789
  <xsl:choose>
1807
1790
  <xsl:when test="iso:title[@type = 'main' and @language = 'en']">
@@ -1921,7 +1904,9 @@
1921
1904
  <fo:block margin-bottom="8pt"> <!-- keep-with-previous="always" -->
1922
1905
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
1923
1906
  <fo:basic-link internal-destination="{iso:origin/@bibitemid}" fox:alt-text="{iso:origin/@citeas}">
1924
- <xsl:text>[SOURCE: </xsl:text>
1907
+ <xsl:text>[</xsl:text>
1908
+ <xsl:value-of select="$title-source"/>
1909
+ <xsl:text>: </xsl:text>
1925
1910
  <xsl:value-of select="iso:origin/@citeas"/>
1926
1911
 
1927
1912
  <xsl:apply-templates select="iso:origin/iso:localityStack"/>
@@ -1936,7 +1921,7 @@
1936
1921
  </xsl:template>
1937
1922
 
1938
1923
  <xsl:template match="iso:modification">
1939
- <xsl:text>, modified — </xsl:text>
1924
+ <xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text>
1940
1925
  <xsl:apply-templates/>
1941
1926
  </xsl:template>
1942
1927
  <xsl:template match="iso:modification/iso:p">
@@ -1945,9 +1930,11 @@
1945
1930
 
1946
1931
  <xsl:template match="iso:termnote">
1947
1932
  <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt" text-align="justify">
1948
- <xsl:text>Note </xsl:text>
1949
- <xsl:number/>
1950
- <xsl:text> to entry: </xsl:text>
1933
+ <!-- <xsl:text>Note </xsl:text>
1934
+ <xsl:number />
1935
+ <xsl:text> to entry: </xsl:text> -->
1936
+ <xsl:variable name="num"><xsl:number/></xsl:variable>
1937
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($title-note-to-entry),'#',$num)"/>
1951
1938
  <xsl:apply-templates/>
1952
1939
  </fo:block>
1953
1940
  </xsl:template>
@@ -1961,14 +1948,14 @@
1961
1948
  </xsl:template>
1962
1949
 
1963
1950
  <xsl:template match="iso:domain">
1964
- <fo:inline>&lt;<xsl:apply-templates/>&gt;</fo:inline>
1951
+ <fo:inline>&lt;<xsl:apply-templates/>&gt;</fo:inline><xsl:text> </xsl:text>
1965
1952
  </xsl:template>
1966
1953
 
1967
1954
 
1968
1955
  <xsl:template match="iso:termexample">
1969
1956
  <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt" text-align="justify">
1970
1957
  <fo:inline padding-right="5mm">
1971
- <xsl:text>EXAMPLE </xsl:text>
1958
+ <xsl:value-of select="$title-example"/>
1972
1959
  <xsl:if test="count(ancestor::iso:term[1]//iso:termexample) &gt; 1">
1973
1960
  <xsl:number/>
1974
1961
  </xsl:if>
@@ -2009,14 +1996,17 @@
2009
1996
  </fo:list-item-label>
2010
1997
  <fo:list-item-body start-indent="body-start()">
2011
1998
  <fo:block>
2012
- <xsl:if test="iso:docidentifier">
2013
- <xsl:choose>
2014
- <xsl:when test="iso:docidentifier/@type = 'metanorma'"/>
2015
- <xsl:otherwise><fo:inline><xsl:value-of select="iso:docidentifier"/></fo:inline></xsl:otherwise>
2016
- </xsl:choose>
2017
- </xsl:if>
1999
+ <xsl:variable name="docidentifier">
2000
+ <xsl:if test="iso:docidentifier">
2001
+ <xsl:choose>
2002
+ <xsl:when test="iso:docidentifier/@type = 'metanorma'"/>
2003
+ <xsl:otherwise><xsl:value-of select="iso:docidentifier"/></xsl:otherwise>
2004
+ </xsl:choose>
2005
+ </xsl:if>
2006
+ </xsl:variable>
2007
+ <xsl:value-of select="$docidentifier"/>
2018
2008
  <xsl:apply-templates select="iso:note"/>
2019
- <xsl:if test="iso:docidentifier">, </xsl:if>
2009
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
2020
2010
  <xsl:choose>
2021
2011
  <xsl:when test="iso:title[@type = 'main' and @language = 'en']">
2022
2012
  <xsl:apply-templates select="iso:title[@type = 'main' and @language = 'en']"/>
@@ -2063,63 +2053,6 @@
2063
2053
  </fo:basic-link>
2064
2054
  </xsl:template>
2065
2055
 
2066
- <xsl:template match="iso:appendix">
2067
- <fo:block font-size="12pt" font-weight="bold" margin-top="12pt" margin-bottom="12pt">
2068
- <fo:inline padding-right="5mm">Appendix <xsl:number/></fo:inline>
2069
- <xsl:apply-templates select="iso:title" mode="process"/>
2070
- </fo:block>
2071
- <xsl:apply-templates/>
2072
- </xsl:template>
2073
-
2074
- <xsl:template match="iso:appendix//iso:example">
2075
- <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt">
2076
- <xsl:variable name="claims_id" select="ancestor::iso:clause[1]/@id"/>
2077
- <xsl:text>EXAMPLE </xsl:text>
2078
- <xsl:if test="count(ancestor::iso:clause[1]//iso:example) &gt; 1">
2079
- <xsl:number count="iso:example[ancestor::iso:clause[@id = $claims_id]]" level="any"/><xsl:text> </xsl:text>
2080
- </xsl:if>
2081
- <xsl:if test="iso:name">
2082
- <xsl:text>— </xsl:text><xsl:apply-templates select="iso:name" mode="process"/>
2083
- </xsl:if>
2084
- </fo:block>
2085
- <xsl:apply-templates/>
2086
- </xsl:template>
2087
-
2088
- <xsl:template match="iso:appendix//iso:example/iso:name"/>
2089
- <xsl:template match="iso:appendix//iso:example/iso:name" mode="process">
2090
- <fo:inline><xsl:apply-templates/></fo:inline>
2091
- </xsl:template>
2092
-
2093
- <!-- <xsl:template match="iso:callout/text()">
2094
- <fo:basic-link internal-destination="{@target}"><fo:inline>&lt;<xsl:apply-templates />&gt;</fo:inline></fo:basic-link>
2095
- </xsl:template> -->
2096
- <xsl:template match="iso:callout">
2097
- <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
2098
- </xsl:template>
2099
-
2100
- <xsl:template match="iso:annotation">
2101
- <fo:block>
2102
-
2103
- </fo:block>
2104
- <xsl:apply-templates/>
2105
- </xsl:template>
2106
-
2107
- <xsl:template match="iso:annotation/text()"/>
2108
-
2109
- <xsl:template match="iso:annotation/iso:p">
2110
- <xsl:variable name="annotation-id" select="../@id"/>
2111
- <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
2112
- <fo:block id="{$annotation-id}">
2113
- <xsl:value-of select="concat('&lt;', $callout, '&gt; ')"/>
2114
- <xsl:apply-templates/>
2115
- </fo:block>
2116
- </xsl:template>
2117
-
2118
-
2119
- <xsl:template match="iso:appendix/iso:title"/>
2120
- <xsl:template match="iso:appendix/iso:title" mode="process">
2121
- <fo:inline><xsl:apply-templates/></fo:inline>
2122
- </xsl:template>
2123
2056
 
2124
2057
  <xsl:template match="mathml:math" priority="2">
2125
2058
  <fo:inline font-family="Cambria Math">
@@ -2143,7 +2076,7 @@
2143
2076
  <xsl:variable name="root" select="xalan:nodeset($contents)//item[@id =$target]/@root"/>
2144
2077
  <xsl:variable name="level" select="xalan:nodeset($contents)//item[@id =$target]/@level"/>
2145
2078
  <xsl:choose>
2146
- <xsl:when test="$type = 'clause' and $root != 'annex' and $level = 1">Clause </xsl:when><!-- and not (ancestor::annex) -->
2079
+ <xsl:when test="$type = 'clause' and $root != 'annex' and $level = 1"><xsl:value-of select="$title-clause"/></xsl:when><!-- and not (ancestor::annex) -->
2147
2080
  <xsl:when test="$type = 'li'">
2148
2081
  <xsl:attribute name="color">black</xsl:attribute>
2149
2082
  <xsl:attribute name="text-decoration">none</xsl:attribute>
@@ -2164,18 +2097,6 @@
2164
2097
  <xsl:value-of select="$section"/>
2165
2098
  </fo:basic-link>
2166
2099
  </xsl:template>
2167
-
2168
- <xsl:template match="iso:sourcecode">
2169
- <fo:block font-family="Courier" font-size="9pt" margin-bottom="12pt">
2170
- <xsl:choose>
2171
- <xsl:when test="@lang = 'en'"/>
2172
- <xsl:otherwise>
2173
- <xsl:attribute name="white-space">pre</xsl:attribute>
2174
- </xsl:otherwise>
2175
- </xsl:choose>
2176
- <xsl:apply-templates/>
2177
- </fo:block>
2178
- </xsl:template>
2179
2100
 
2180
2101
  <xsl:template match="iso:example/iso:p">
2181
2102
  <fo:block font-size="10pt" margin-top="8pt" margin-bottom="8pt">
@@ -2183,8 +2104,8 @@
2183
2104
  <xsl:attribute name="font-size">11pt</xsl:attribute>
2184
2105
  </xsl:if> -->
2185
2106
  <xsl:variable name="claims_id" select="ancestor::iso:clause[1]/@id"/>
2186
- <fo:inline padding-right="5mm">
2187
- <xsl:text>EXAMPLE </xsl:text>
2107
+ <fo:inline padding-right="5mm">
2108
+ <xsl:value-of select="$title-example"/>
2188
2109
  <xsl:if test="count(ancestor::iso:clause[1]//iso:example) &gt; 1">
2189
2110
  <xsl:number count="iso:example[ancestor::iso:clause[@id = $claims_id]]" level="any"/>
2190
2111
  </xsl:if>
@@ -2196,8 +2117,8 @@
2196
2117
  <xsl:template match="iso:note/iso:p" name="note">
2197
2118
  <fo:block font-size="10pt" margin-top="8pt" margin-bottom="12pt" text-align="justify">
2198
2119
  <xsl:variable name="claims_id" select="ancestor::iso:clause[1]/@id"/>
2199
- <fo:inline padding-right="6mm">
2200
- <xsl:text>NOTE </xsl:text>
2120
+ <fo:inline padding-right="6mm">
2121
+ <xsl:value-of select="$title-note"/>
2201
2122
  <xsl:if test="count(ancestor::iso:clause[1]//iso:note) &gt; 1">
2202
2123
  <xsl:number count="iso:note[ancestor::iso:clause[@id = $claims_id]]" level="any"/>
2203
2124
  </xsl:if>
@@ -2238,9 +2159,9 @@
2238
2159
  <xsl:choose>
2239
2160
  <xsl:when test="ancestor::iso:termsource"/>
2240
2161
  <xsl:when test="@type ='clause' and ancestor::iso:eref"/>
2241
- <xsl:when test="@type ='clause'">Clause </xsl:when>
2242
- <xsl:when test="@type ='annex'">Annex </xsl:when>
2243
- <xsl:when test="@type ='table'">Table </xsl:when>
2162
+ <xsl:when test="@type ='clause'"><xsl:value-of select="$title-clause"/></xsl:when>
2163
+ <xsl:when test="@type ='annex'"><xsl:value-of select="$title-annex"/></xsl:when>
2164
+ <xsl:when test="@type ='table'"><xsl:value-of select="$title-table"/></xsl:when>
2244
2165
  <xsl:otherwise><xsl:value-of select="@type"/></xsl:otherwise>
2245
2166
  </xsl:choose>
2246
2167
  <xsl:text> </xsl:text><xsl:value-of select="iso:referenceFrom"/>
@@ -2431,7 +2352,7 @@
2431
2352
  </xsl:when>
2432
2353
  <xsl:when test="$level &gt;= 2">
2433
2354
  <xsl:variable name="num">
2434
- <xsl:number format=".1" level="multiple" count="iso:clause/iso:clause | iso:clause/iso:terms | iso:terms/iso:term | iso:clause/iso:term | iso:terms/iso:clause | iso:terms/iso:definitions | iso:definitions/iso:clause | iso:clause/iso:definitions"/>
2355
+ <xsl:number format=".1" level="multiple" count="iso:clause/iso:clause | iso:clause/iso:terms | iso:terms/iso:term | iso:clause/iso:term | iso:terms/iso:clause | iso:terms/iso:definitions | iso:definitions/iso:clause | iso:definitions/iso:definitions | iso:clause/iso:definitions"/>
2435
2356
  </xsl:variable>
2436
2357
  <xsl:value-of select="concat($sectionNum, $num)"/>
2437
2358
  </xsl:when>
@@ -2455,7 +2376,7 @@
2455
2376
  <xsl:variable name="annexid" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:annexid)"/>
2456
2377
  <xsl:choose>
2457
2378
  <xsl:when test="$level = 1">
2458
- <xsl:text>Annex </xsl:text>
2379
+ <xsl:value-of select="$title-annex"/>
2459
2380
  <xsl:choose>
2460
2381
  <xsl:when test="count(//iso:annex) = 1 and $annexid != ''">
2461
2382
  <xsl:value-of select="$annexid"/>
@@ -2465,8 +2386,7 @@
2465
2386
  </xsl:otherwise>
2466
2387
  </xsl:choose>
2467
2388
  </xsl:when>
2468
- <xsl:otherwise>
2469
- <xsl:variable name="annexid" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:annexid)"/>
2389
+ <xsl:otherwise>
2470
2390
  <xsl:choose>
2471
2391
  <xsl:when test="count(//iso:annex) = 1 and $annexid != ''">
2472
2392
  <xsl:value-of select="$annexid"/><xsl:number format=".1" level="multiple" count="iso:clause"/>
@@ -3183,20 +3103,117 @@
3183
3103
  </xsl:choose>
3184
3104
  <xsl:if test="$edition != ''"><xsl:text> edition</xsl:text></xsl:if>
3185
3105
  </xsl:template>
3106
+
3107
+ <xsl:template name="printTitlePartFr">
3108
+ <xsl:variable name="part-fr" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-part']"/>
3109
+ <xsl:if test="normalize-space($part-fr) != ''">
3110
+ <xsl:if test="$part != ''">
3111
+ <xsl:text> — </xsl:text>
3112
+ <xsl:value-of select="$title-part-fr"/>
3113
+ <xsl:value-of select="$part"/>
3114
+ <xsl:text>:</xsl:text>
3115
+ </xsl:if>
3116
+ <xsl:value-of select="$part-fr"/>
3117
+ </xsl:if>
3118
+ </xsl:template>
3119
+
3120
+ <xsl:template name="printTitlePartEn">
3121
+ <xsl:variable name="part-en" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-part']"/>
3122
+ <xsl:if test="normalize-space($part-en) != ''">
3123
+ <xsl:if test="$part != ''">
3124
+ <xsl:text> — </xsl:text>
3125
+ <fo:block font-weight="normal" margin-top="6pt">
3126
+ <xsl:value-of select="$title-part-en"/>
3127
+ <xsl:value-of select="$part"/>
3128
+ <xsl:text>:</xsl:text>
3129
+ </fo:block>
3130
+ </xsl:if>
3131
+ <xsl:value-of select="$part-en"/>
3132
+ </xsl:if>
3133
+ </xsl:template>
3186
3134
 
3187
- <xsl:variable xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="linebreak" select="'&#8232;'"/><xsl:attribute-set xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="link-style">
3135
+
3136
+ <xsl:variable name="title-table">
3137
+
3138
+ <xsl:text>Table </xsl:text>
3139
+
3140
+
3141
+ </xsl:variable><xsl:variable name="title-note">
3142
+
3143
+ <xsl:text>NOTE </xsl:text>
3144
+
3145
+
3146
+ </xsl:variable><xsl:variable name="title-figure">
3147
+
3148
+ <xsl:text>Figure </xsl:text>
3149
+
3150
+
3151
+ </xsl:variable><xsl:variable name="title-example">
3152
+
3153
+ <xsl:text>EXAMPLE </xsl:text>
3154
+
3155
+
3156
+ </xsl:variable><xsl:variable name="title-inequality">Inequality </xsl:variable><xsl:variable name="title-equation">Equation </xsl:variable><xsl:variable name="title-annex">
3157
+
3158
+ <xsl:text>Annex </xsl:text>
3159
+
3160
+
3161
+ </xsl:variable><xsl:variable name="title-appendix">
3162
+ <xsl:text>Appendix </xsl:text>
3163
+ </xsl:variable><xsl:variable name="title-clause">
3164
+
3165
+ <xsl:text>Clause </xsl:text>
3166
+
3167
+
3168
+ </xsl:variable><xsl:variable name="title-edition">
3169
+ <xsl:text>Edition </xsl:text>
3170
+ </xsl:variable><xsl:variable name="title-toc">
3171
+
3172
+
3173
+ </xsl:variable><xsl:variable name="title-page">Page</xsl:variable><xsl:variable name="title-key">Key</xsl:variable><xsl:variable name="title-where">where</xsl:variable><xsl:variable name="title-descriptors">Descriptors</xsl:variable><xsl:variable name="title-part-en">Part </xsl:variable><xsl:variable name="title-part-fr">Partie </xsl:variable><xsl:variable name="title-note-to-entry">Note # to entry: </xsl:variable><xsl:variable name="title-modified">modified</xsl:variable><xsl:variable name="title-source">SOURCE</xsl:variable><xsl:variable name="title-keywords">Keywords</xsl:variable><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="link-style">
3188
3174
 
3189
3175
  <xsl:attribute name="color">blue</xsl:attribute>
3190
3176
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
3191
3177
 
3192
3178
 
3193
- </xsl:attribute-set><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()">
3179
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
3180
+
3181
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
3182
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
3183
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3184
+
3185
+
3186
+
3187
+
3188
+
3189
+
3190
+
3191
+
3192
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
3193
+
3194
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
3195
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3196
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
3197
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3198
+
3199
+
3200
+
3201
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
3202
+
3203
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3204
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
3205
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
3206
+
3207
+
3208
+
3209
+ </xsl:attribute-set><xsl:template match="text()">
3194
3210
  <xsl:value-of select="."/>
3195
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='br']">
3211
+ </xsl:template><xsl:template match="*[local-name()='br']">
3196
3212
  <xsl:value-of select="$linebreak"/>
3197
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
3198
- <xsl:call-template name="add-zero-spaces"/>
3199
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']">
3213
+ </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
3214
+ <!-- <xsl:call-template name="add-zero-spaces"/> -->
3215
+ <xsl:call-template name="add-zero-spaces-java"/>
3216
+ </xsl:template><xsl:template match="*[local-name()='table']">
3200
3217
 
3201
3218
  <xsl:variable name="simple-table">
3202
3219
  <!-- <xsl:copy> -->
@@ -3230,32 +3247,13 @@
3230
3247
 
3231
3248
 
3232
3249
 
3233
- <xsl:text>Table </xsl:text>
3234
- <xsl:choose>
3235
- <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
3236
- <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
3237
- </xsl:when>
3238
- <xsl:when test="ancestor::*[local-name()='annex']">
3239
-
3240
- <xsl:variable name="annex-id" select="ancestor::iso:annex/@id"/>
3241
- <xsl:number format="A." count="*[local-name()='annex']"/><xsl:number format="1" level="any" count="iso:table[(not(@unnumbered) or @unnumbered != 'true') and ancestor::iso:annex[@id = $annex-id]]"/>
3242
-
3243
-
3244
-
3245
-
3246
-
3247
-
3248
-
3249
-
3250
- </xsl:when>
3251
- <xsl:otherwise>
3252
-
3253
-
3254
- <xsl:number format="A." count="*[local-name()='annex']"/>
3255
- <xsl:number format="1" level="any" count="//*[local-name()='table'] [not(ancestor::*[local-name()='annex']) and not(ancestor::*[local-name()='executivesummary']) and not(ancestor::*[local-name()='bibdata'])] [not(@unnumbered) or @unnumbered != 'true']"/>
3256
-
3257
- </xsl:otherwise>
3258
- </xsl:choose>
3250
+
3251
+
3252
+ <xsl:value-of select="$title-table"/>
3253
+
3254
+ <xsl:call-template name="getTableNumber"/>
3255
+
3256
+
3259
3257
  <xsl:if test="*[local-name()='name']">
3260
3258
 
3261
3259
 
@@ -3329,9 +3327,13 @@
3329
3327
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
3330
3328
  <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
3331
3329
 
3330
+
3332
3331
  <fo:table id="{@id}" table-layout="fixed" width="100%" margin-left="{$margin-left}mm" margin-right="{$margin-left}mm" table-omit-footer-at-break="true">
3333
3332
 
3334
3333
  <xsl:attribute name="border">1.5pt solid black</xsl:attribute>
3334
+ <xsl:if test="*[local-name()='thead']">
3335
+ <xsl:attribute name="border-top">1pt solid black</xsl:attribute>
3336
+ </xsl:if>
3335
3337
 
3336
3338
 
3337
3339
 
@@ -3347,9 +3349,10 @@
3347
3349
  <xsl:attribute name="font-size">10pt</xsl:attribute>
3348
3350
 
3349
3351
 
3352
+
3350
3353
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
3351
3354
  <xsl:choose>
3352
- <xsl:when test=". = 1">
3355
+ <xsl:when test=". = 1 or . = 0">
3353
3356
  <fo:table-column column-width="proportional-column-width(2)"/>
3354
3357
  </xsl:when>
3355
3358
  <xsl:otherwise>
@@ -3363,15 +3366,41 @@
3363
3366
 
3364
3367
 
3365
3368
  </fo:block-container>
3366
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='name']"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='name']" mode="process">
3369
+ </xsl:template><xsl:template name="getTableNumber">
3370
+ <xsl:choose>
3371
+ <xsl:when test="ancestor::*[local-name()='executivesummary']"> <!-- NIST -->
3372
+ <xsl:text>ES-</xsl:text><xsl:number format="1" count="*[local-name()='executivesummary']//*[local-name()='table'][not(@unnumbered) or @unnumbered != 'true']"/>
3373
+ </xsl:when>
3374
+ <xsl:when test="ancestor::*[local-name()='annex']">
3375
+
3376
+ <xsl:variable name="annex-id" select="ancestor::*[local-name()='annex']/@id"/>
3377
+ <xsl:number format="A." count="*[local-name()='annex']"/><xsl:number format="1" level="any" count="*[local-name()='table'][(not(@unnumbered) or @unnumbered != 'true') and ancestor::*[local-name()='annex'][@id = $annex-id]]"/>
3378
+
3379
+
3380
+
3381
+
3382
+
3383
+
3384
+
3385
+
3386
+ </xsl:when>
3387
+ <xsl:otherwise>
3388
+
3389
+
3390
+ <xsl:number format="A." count="*[local-name()='annex']"/>
3391
+ <xsl:number format="1" level="any" count="//*[local-name()='table'] [not(ancestor::*[local-name()='annex']) and not(ancestor::*[local-name()='executivesummary']) and not(ancestor::*[local-name()='bibdata'])] [not(@unnumbered) or @unnumbered != 'true']"/>
3392
+
3393
+ </xsl:otherwise>
3394
+ </xsl:choose>
3395
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']"/><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="process">
3367
3396
  <xsl:apply-templates/>
3368
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="calculate-columns-numbers">
3397
+ </xsl:template><xsl:template name="calculate-columns-numbers">
3369
3398
  <xsl:param name="table-row"/>
3370
3399
  <xsl:variable name="columns-count" select="count($table-row/*)"/>
3371
3400
  <xsl:variable name="sum-colspans" select="sum($table-row/*/@colspan)"/>
3372
3401
  <xsl:variable name="columns-with-colspan" select="count($table-row/*[@colspan])"/>
3373
3402
  <xsl:value-of select="$columns-count + $sum-colspans - $columns-with-colspan"/>
3374
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="calculate-column-widths">
3403
+ </xsl:template><xsl:template name="calculate-column-widths">
3375
3404
  <xsl:param name="table"/>
3376
3405
  <xsl:param name="cols-count"/>
3377
3406
  <xsl:param name="curr-col" select="1"/>
@@ -3380,7 +3409,7 @@
3380
3409
  <xsl:if test="$curr-col &lt;= $cols-count">
3381
3410
  <xsl:variable name="widths">
3382
3411
  <xsl:choose>
3383
- <xsl:when test="not($table)">
3412
+ <xsl:when test="not($table)"><!-- this branch is not using in production, for debug only -->
3384
3413
  <xsl:for-each select="*[local-name()='thead']//*[local-name()='tr']">
3385
3414
  <xsl:variable name="words">
3386
3415
  <xsl:call-template name="tokenize">
@@ -3419,9 +3448,16 @@
3419
3448
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
3420
3449
  </xsl:variable>
3421
3450
  <xsl:variable name="words">
3451
+ <xsl:variable name="string_with_added_zerospaces">
3452
+ <xsl:call-template name="add-zero-spaces-java">
3453
+ <xsl:with-param name="text" select="$td_text"/>
3454
+ </xsl:call-template>
3455
+ </xsl:variable>
3422
3456
  <xsl:call-template name="tokenize">
3423
3457
  <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
3424
- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/>
3458
+ <!-- 2009 thinspace -->
3459
+ <!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
3460
+ <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '​', ' '))"/>
3425
3461
  </xsl:call-template>
3426
3462
  </xsl:variable>
3427
3463
  <xsl:variable name="max_length">
@@ -3462,17 +3498,42 @@
3462
3498
  <xsl:with-param name="table" select="$table"/>
3463
3499
  </xsl:call-template>
3464
3500
  </xsl:if>
3465
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()" mode="td_text">
3501
+ </xsl:template><xsl:template match="text()" mode="td_text">
3466
3502
  <xsl:variable name="zero-space">​</xsl:variable>
3467
3503
  <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
3468
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table2']"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead']"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead']" mode="process">
3504
+ </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
3505
+ <xsl:value-of select="*[local-name()='origin']/@citeas"/>
3506
+ </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
3507
+ <xsl:value-of select="@target"/>
3508
+ </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
3509
+ <xsl:param name="cols-count"/>
3469
3510
  <!-- font-weight="bold" -->
3470
- <fo:table-header>
3511
+ <fo:table-header>
3512
+
3513
+ <fo:table-row>
3514
+ <fo:table-cell number-columns-spanned="{$cols-count}"> <!-- border-left="1pt solid white" border-right="1pt solid white" border-top="1pt solid white" -->
3515
+ <fo:block text-align="center" font-size="11pt" font-weight="bold">
3516
+ <!-- (continued) -->
3517
+ <fo:block-container position="absolute" top="-7mm">
3518
+ <fo:block>
3519
+ <fo:retrieve-table-marker retrieve-class-name="table_continued" retrieve-position-within-table="first-starting" retrieve-boundary-within-table="table-fragment"/>
3520
+ </fo:block>
3521
+ </fo:block-container>
3522
+
3523
+ </fo:block>
3524
+ <!-- <fo:block>fn_name_display
3525
+ <xsl:call-template name="fn_name_display"/>
3526
+ </fo:block> -->
3527
+
3528
+ </fo:table-cell>
3529
+ </fo:table-row>
3530
+
3471
3531
  <xsl:apply-templates/>
3472
3532
  </fo:table-header>
3473
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tfoot']"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tfoot']" mode="process">
3533
+ </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
3474
3534
  <xsl:apply-templates/>
3475
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="insertTableFooter">
3535
+ </xsl:template><xsl:template name="insertTableFooter">
3536
+ <xsl:param name="cols-count"/>
3476
3537
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3477
3538
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
3478
3539
 
@@ -3483,22 +3544,7 @@
3483
3544
  <!-- if there are note(s) or fn(s) then create footer row -->
3484
3545
  <xsl:if test="$isNoteOrFnExist = 'true'">
3485
3546
 
3486
- <xsl:variable name="cols-count">
3487
- <xsl:choose>
3488
- <xsl:when test="../*[local-name()='thead']">
3489
- <!-- <xsl:value-of select="count(../*[local-name()='thead']/*[local-name()='tr']/*[local-name()='th'])"/> -->
3490
- <xsl:call-template name="calculate-columns-numbers">
3491
- <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
3492
- </xsl:call-template>
3493
- </xsl:when>
3494
- <xsl:otherwise>
3495
- <!-- <xsl:value-of select="count(./*[local-name()='tr'][1]/*[local-name()='td'])"/> -->
3496
- <xsl:call-template name="calculate-columns-numbers">
3497
- <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
3498
- </xsl:call-template>
3499
- </xsl:otherwise>
3500
- </xsl:choose>
3501
- </xsl:variable>
3547
+
3502
3548
 
3503
3549
  <fo:table-row>
3504
3550
  <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
@@ -3528,11 +3574,30 @@
3528
3574
  </fo:table-footer>
3529
3575
 
3530
3576
  </xsl:if>
3531
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tbody']">
3577
+ </xsl:template><xsl:template match="*[local-name()='tbody']">
3532
3578
 
3533
- <xsl:apply-templates select="../*[local-name()='thead']" mode="process"/>
3579
+ <xsl:variable name="cols-count">
3580
+ <xsl:choose>
3581
+ <xsl:when test="../*[local-name()='thead']">
3582
+ <xsl:call-template name="calculate-columns-numbers">
3583
+ <xsl:with-param name="table-row" select="../*[local-name()='thead']/*[local-name()='tr'][1]"/>
3584
+ </xsl:call-template>
3585
+ </xsl:when>
3586
+ <xsl:otherwise>
3587
+ <xsl:call-template name="calculate-columns-numbers">
3588
+ <xsl:with-param name="table-row" select="./*[local-name()='tr'][1]"/>
3589
+ </xsl:call-template>
3590
+ </xsl:otherwise>
3591
+ </xsl:choose>
3592
+ </xsl:variable>
3593
+
3594
+ <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
3595
+ <xsl:with-param name="cols-count" select="$cols-count"/>
3596
+ </xsl:apply-templates>
3534
3597
 
3535
- <xsl:call-template name="insertTableFooter"/>
3598
+ <xsl:call-template name="insertTableFooter">
3599
+ <xsl:with-param name="cols-count" select="$cols-count"/>
3600
+ </xsl:call-template>
3536
3601
 
3537
3602
  <fo:table-body>
3538
3603
  <xsl:apply-templates/>
@@ -3540,7 +3605,7 @@
3540
3605
 
3541
3606
  </fo:table-body>
3542
3607
 
3543
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tr']">
3608
+ </xsl:template><xsl:template match="*[local-name()='tr']">
3544
3609
  <xsl:variable name="parent-name" select="local-name(..)"/>
3545
3610
  <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3546
3611
  <fo:table-row min-height="4mm">
@@ -3579,7 +3644,7 @@
3579
3644
 
3580
3645
  <xsl:apply-templates/>
3581
3646
  </fo:table-row>
3582
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='th']">
3647
+ </xsl:template><xsl:template match="*[local-name()='th']">
3583
3648
  <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
3584
3649
 
3585
3650
  <xsl:attribute name="padding-top">1mm</xsl:attribute>
@@ -3604,7 +3669,7 @@
3604
3669
  <xsl:apply-templates/>
3605
3670
  </fo:block>
3606
3671
  </fo:table-cell>
3607
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='td']">
3672
+ </xsl:template><xsl:template match="*[local-name()='td']">
3608
3673
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
3609
3674
  <!-- and ancestor::*[local-name() = 'thead'] -->
3610
3675
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
@@ -3632,6 +3697,21 @@
3632
3697
  </xsl:attribute>
3633
3698
  </xsl:if>
3634
3699
  <fo:block>
3700
+
3701
+ <xsl:variable name="row_number">
3702
+ <xsl:number format="1" count="*[local-name() = 'tr'] | *[local-name() = 'th']"/>
3703
+ </xsl:variable>
3704
+ <fo:marker marker-class-name="table_continued">
3705
+ <xsl:if test="$row_number &gt; 1">
3706
+ <fo:inline>
3707
+ <xsl:value-of select="$title-table"/>
3708
+ <xsl:call-template name="getTableNumber"/>
3709
+ <xsl:text> </xsl:text>
3710
+ <fo:inline font-style="italic" font-weight="normal">(continued)</fo:inline>
3711
+ </fo:inline>
3712
+ </xsl:if>
3713
+ </fo:marker>
3714
+
3635
3715
  <xsl:apply-templates/>
3636
3716
  </fo:block>
3637
3717
  <!-- <xsl:choose>
@@ -3647,7 +3727,7 @@
3647
3727
 
3648
3728
 
3649
3729
  </fo:table-cell>
3650
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']" mode="process">
3730
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
3651
3731
 
3652
3732
 
3653
3733
  <fo:block font-size="10pt" margin-bottom="12pt">
@@ -3657,9 +3737,11 @@
3657
3737
 
3658
3738
 
3659
3739
 
3740
+
3660
3741
  <fo:inline padding-right="2mm">
3661
3742
 
3662
- <xsl:text>NOTE </xsl:text>
3743
+
3744
+ <xsl:value-of select="$title-note"/>
3663
3745
 
3664
3746
  <xsl:variable name="id" select="ancestor::*[local-name() = 'table'][1]/@id"/>
3665
3747
  <xsl:if test="count(//*[local-name()='note'][ancestor::*[@id = $id]]) &gt; 1">
@@ -3673,9 +3755,9 @@
3673
3755
  <xsl:apply-templates mode="process"/>
3674
3756
  </fo:block>
3675
3757
 
3676
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
3758
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
3677
3759
  <xsl:apply-templates/>
3678
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_display">
3760
+ </xsl:template><xsl:template name="fn_display">
3679
3761
  <xsl:variable name="references">
3680
3762
  <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
3681
3763
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -3695,6 +3777,7 @@
3695
3777
 
3696
3778
 
3697
3779
 
3780
+
3698
3781
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
3699
3782
 
3700
3783
 
@@ -3714,7 +3797,7 @@
3714
3797
  </fo:block>
3715
3798
  </xsl:if>
3716
3799
  </xsl:for-each>
3717
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_name_display">
3800
+ </xsl:template><xsl:template name="fn_name_display">
3718
3801
  <!-- <xsl:variable name="references">
3719
3802
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
3720
3803
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -3730,7 +3813,7 @@
3730
3813
  <xsl:apply-templates/>
3731
3814
  </fo:block>
3732
3815
  </xsl:for-each>
3733
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="fn_display_figure">
3816
+ </xsl:template><xsl:template name="fn_display_figure">
3734
3817
  <xsl:variable name="key_iso">
3735
3818
  true <!-- and (not(@class) or @class !='pseudocode') -->
3736
3819
  </xsl:variable>
@@ -3781,7 +3864,7 @@
3781
3864
  </fo:block>
3782
3865
  </xsl:if>
3783
3866
 
3784
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']">
3867
+ </xsl:template><xsl:template match="*[local-name()='fn']">
3785
3868
  <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3786
3869
  <fo:inline font-size="80%" keep-with-previous.within-line="always">
3787
3870
 
@@ -3799,11 +3882,11 @@
3799
3882
  <xsl:value-of select="@reference"/>
3800
3883
  </fo:basic-link>
3801
3884
  </fo:inline>
3802
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']/*[local-name()='p']">
3885
+ </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
3803
3886
  <fo:inline>
3804
3887
  <xsl:apply-templates/>
3805
3888
  </fo:inline>
3806
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dl']">
3889
+ </xsl:template><xsl:template match="*[local-name()='dl']">
3807
3890
  <xsl:variable name="parent" select="local-name(..)"/>
3808
3891
 
3809
3892
  <xsl:variable name="key_iso">
@@ -3819,8 +3902,8 @@
3819
3902
  <fo:block margin-bottom="12pt" text-align="left">
3820
3903
 
3821
3904
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
3822
-
3823
- <xsl:text>where </xsl:text>
3905
+
3906
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
3824
3907
  <xsl:apply-templates select="*[local-name()='dt']/*"/>
3825
3908
  <xsl:text/>
3826
3909
  <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
@@ -3835,7 +3918,7 @@
3835
3918
 
3836
3919
 
3837
3920
 
3838
- <xsl:text>where</xsl:text>
3921
+ <xsl:value-of select="$title-where"/>
3839
3922
  </fo:block>
3840
3923
  </xsl:when>
3841
3924
  <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
@@ -3846,7 +3929,7 @@
3846
3929
 
3847
3930
 
3848
3931
 
3849
- <xsl:text>Key</xsl:text>
3932
+ <xsl:value-of select="$title-key"/>
3850
3933
  </fo:block>
3851
3934
  </xsl:when>
3852
3935
  </xsl:choose>
@@ -3862,9 +3945,11 @@
3862
3945
 
3863
3946
 
3864
3947
 
3948
+
3865
3949
  <fo:block>
3866
3950
 
3867
3951
 
3952
+
3868
3953
  <!-- create virtual html table for dl/[dt and dd] -->
3869
3954
  <xsl:variable name="html-table">
3870
3955
  <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
@@ -3916,7 +4001,7 @@
3916
4001
  <xsl:otherwise>
3917
4002
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
3918
4003
  <xsl:choose>
3919
- <xsl:when test=". = 1">
4004
+ <xsl:when test=". = 1 or . = 0">
3920
4005
  <fo:table-column column-width="proportional-column-width(2)"/>
3921
4006
  </xsl:when>
3922
4007
  <xsl:otherwise>
@@ -3939,7 +4024,7 @@
3939
4024
  </fo:block>
3940
4025
  </fo:block>
3941
4026
  </xsl:if>
3942
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dl']/*[local-name()='note']">
4027
+ </xsl:template><xsl:template match="*[local-name()='dl']/*[local-name()='note']">
3943
4028
  <xsl:param name="key_iso"/>
3944
4029
 
3945
4030
  <!-- <tr>
@@ -3955,7 +4040,7 @@
3955
4040
  <xsl:if test="normalize-space($key_iso) = 'true'">
3956
4041
  <xsl:attribute name="margin-top">0</xsl:attribute>
3957
4042
  </xsl:if>
3958
- NOTE
4043
+ <xsl:value-of select="$title-note"/>
3959
4044
  </fo:block>
3960
4045
  </fo:table-cell>
3961
4046
  <fo:table-cell>
@@ -3964,7 +4049,7 @@
3964
4049
  </fo:block>
3965
4050
  </fo:table-cell>
3966
4051
  </fo:table-row>
3967
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dt']" mode="dl">
4052
+ </xsl:template><xsl:template match="*[local-name()='dt']" mode="dl">
3968
4053
  <tr>
3969
4054
  <td>
3970
4055
  <xsl:apply-templates/>
@@ -3977,11 +4062,12 @@
3977
4062
  </td>
3978
4063
  </tr>
3979
4064
 
3980
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dt']">
4065
+ </xsl:template><xsl:template match="*[local-name()='dt']">
3981
4066
  <xsl:param name="key_iso"/>
3982
4067
 
3983
4068
  <fo:table-row>
3984
4069
  <fo:table-cell>
4070
+
3985
4071
  <fo:block margin-top="6pt">
3986
4072
 
3987
4073
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
@@ -3993,6 +4079,9 @@
3993
4079
  </xsl:if>
3994
4080
 
3995
4081
 
4082
+
4083
+
4084
+
3996
4085
  <xsl:apply-templates/>
3997
4086
 
3998
4087
  </fo:block>
@@ -4008,37 +4097,37 @@
4008
4097
  </fo:table-cell>
4009
4098
  </fo:table-row>
4010
4099
 
4011
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="dl"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="dl_process">
4100
+ </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
4012
4101
  <xsl:apply-templates/>
4013
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']" mode="process">
4102
+ </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
4014
4103
  <xsl:apply-templates/>
4015
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
4104
+ </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
4016
4105
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
4017
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='em']">
4106
+ </xsl:template><xsl:template match="*[local-name()='em']">
4018
4107
  <fo:inline font-style="italic">
4019
4108
  <xsl:apply-templates/>
4020
4109
  </fo:inline>
4021
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='strong']">
4110
+ </xsl:template><xsl:template match="*[local-name()='strong']">
4022
4111
  <fo:inline font-weight="bold">
4023
4112
  <xsl:apply-templates/>
4024
4113
  </fo:inline>
4025
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='sup']">
4114
+ </xsl:template><xsl:template match="*[local-name()='sup']">
4026
4115
  <fo:inline font-size="80%" vertical-align="super">
4027
4116
  <xsl:apply-templates/>
4028
4117
  </fo:inline>
4029
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='sub']">
4118
+ </xsl:template><xsl:template match="*[local-name()='sub']">
4030
4119
  <fo:inline font-size="80%" vertical-align="sub">
4031
4120
  <xsl:apply-templates/>
4032
4121
  </fo:inline>
4033
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tt']">
4034
- <fo:inline font-family="Courier" font-size="10pt">
4122
+ </xsl:template><xsl:template match="*[local-name()='tt']">
4123
+ <fo:inline font-family="Courier" font-size="10pt">
4035
4124
  <xsl:apply-templates/>
4036
4125
  </fo:inline>
4037
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='del']">
4126
+ </xsl:template><xsl:template match="*[local-name()='del']">
4038
4127
  <fo:inline font-size="10pt" color="red" text-decoration="line-through">
4039
4128
  <xsl:apply-templates/>
4040
4129
  </fo:inline>
4041
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="text()[ancestor::*[local-name()='smallcap']]">
4130
+ </xsl:template><xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
4042
4131
  <xsl:variable name="text" select="normalize-space(.)"/>
4043
4132
  <fo:inline font-size="75%">
4044
4133
  <xsl:if test="string-length($text) &gt; 0">
@@ -4047,7 +4136,7 @@
4047
4136
  </xsl:call-template>
4048
4137
  </xsl:if>
4049
4138
  </fo:inline>
4050
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="recursiveSmallCaps">
4139
+ </xsl:template><xsl:template name="recursiveSmallCaps">
4051
4140
  <xsl:param name="text"/>
4052
4141
  <xsl:variable name="char" select="substring($text,1,1)"/>
4053
4142
  <xsl:variable name="upperCase" select="translate($char, $lower, $upper)"/>
@@ -4066,7 +4155,7 @@
4066
4155
  <xsl:with-param name="text" select="substring($text,2)"/>
4067
4156
  </xsl:call-template>
4068
4157
  </xsl:if>
4069
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="tokenize">
4158
+ </xsl:template><xsl:template name="tokenize">
4070
4159
  <xsl:param name="text"/>
4071
4160
  <xsl:param name="separator" select="' '"/>
4072
4161
  <xsl:choose>
@@ -4114,7 +4203,7 @@
4114
4203
  </xsl:call-template>
4115
4204
  </xsl:otherwise>
4116
4205
  </xsl:choose>
4117
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="max_length">
4206
+ </xsl:template><xsl:template name="max_length">
4118
4207
  <xsl:param name="words"/>
4119
4208
  <xsl:for-each select="$words//word">
4120
4209
  <xsl:sort select="." data-type="number" order="descending"/>
@@ -4122,7 +4211,11 @@
4122
4211
  <xsl:value-of select="."/>
4123
4212
  </xsl:if>
4124
4213
  </xsl:for-each>
4125
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="add-zero-spaces">
4214
+ </xsl:template><xsl:template name="add-zero-spaces-java">
4215
+ <xsl:param name="text" select="."/>
4216
+ <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space -->
4217
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($text),'(-|\.|:|=|_|—| )','$1​')"/>
4218
+ </xsl:template><xsl:template name="add-zero-spaces">
4126
4219
  <xsl:param name="text" select="."/>
4127
4220
  <xsl:variable name="zero-space-after-chars">-</xsl:variable>
4128
4221
  <xsl:variable name="zero-space-after-dot">.</xsl:variable>
@@ -4175,7 +4268,7 @@
4175
4268
  <xsl:value-of select="$text"/>
4176
4269
  </xsl:otherwise>
4177
4270
  </xsl:choose>
4178
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="add-zero-spaces-equal">
4271
+ </xsl:template><xsl:template name="add-zero-spaces-equal">
4179
4272
  <xsl:param name="text" select="."/>
4180
4273
  <xsl:variable name="zero-space-after-equals">==========</xsl:variable>
4181
4274
  <xsl:variable name="zero-space-after-equal">=</xsl:variable>
@@ -4201,7 +4294,7 @@
4201
4294
  <xsl:value-of select="$text"/>
4202
4295
  </xsl:otherwise>
4203
4296
  </xsl:choose>
4204
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="getSimpleTable">
4297
+ </xsl:template><xsl:template name="getSimpleTable">
4205
4298
  <xsl:variable name="simple-table">
4206
4299
 
4207
4300
  <!-- Step 1. colspan processing -->
@@ -4228,9 +4321,9 @@
4228
4321
  </xsl:choose> -->
4229
4322
  </xsl:variable>
4230
4323
  <xsl:copy-of select="$simple-table"/>
4231
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
4324
+ </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
4232
4325
  <xsl:apply-templates mode="simple-table-colspan"/>
4233
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='fn']" mode="simple-table-colspan"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='th'] | *[local-name()='td']" mode="simple-table-colspan">
4326
+ </xsl:template><xsl:template match="*[local-name()='fn']" mode="simple-table-colspan"/><xsl:template match="*[local-name()='th'] | *[local-name()='td']" mode="simple-table-colspan">
4234
4327
  <xsl:choose>
4235
4328
  <xsl:when test="@colspan">
4236
4329
  <xsl:variable name="td">
@@ -4252,16 +4345,16 @@
4252
4345
  </xsl:element>
4253
4346
  </xsl:otherwise>
4254
4347
  </xsl:choose>
4255
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@colspan" mode="simple-table-colspan"/><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='tr']" mode="simple-table-colspan">
4348
+ </xsl:template><xsl:template match="@colspan" mode="simple-table-colspan"/><xsl:template match="*[local-name()='tr']" mode="simple-table-colspan">
4256
4349
  <xsl:element name="tr">
4257
4350
  <xsl:apply-templates select="@*" mode="simple-table-colspan"/>
4258
4351
  <xsl:apply-templates mode="simple-table-colspan"/>
4259
4352
  </xsl:element>
4260
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@*|node()" mode="simple-table-colspan">
4353
+ </xsl:template><xsl:template match="@*|node()" mode="simple-table-colspan">
4261
4354
  <xsl:copy>
4262
4355
  <xsl:apply-templates select="@*|node()" mode="simple-table-colspan"/>
4263
4356
  </xsl:copy>
4264
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="repeatNode">
4357
+ </xsl:template><xsl:template name="repeatNode">
4265
4358
  <xsl:param name="count"/>
4266
4359
  <xsl:param name="node"/>
4267
4360
 
@@ -4272,18 +4365,18 @@
4272
4365
  </xsl:call-template>
4273
4366
  <xsl:copy-of select="$node"/>
4274
4367
  </xsl:if>
4275
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="@*|node()" mode="simple-table-rowspan">
4368
+ </xsl:template><xsl:template match="@*|node()" mode="simple-table-rowspan">
4276
4369
  <xsl:copy>
4277
4370
  <xsl:apply-templates select="@*|node()" mode="simple-table-rowspan"/>
4278
4371
  </xsl:copy>
4279
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="tbody" mode="simple-table-rowspan">
4372
+ </xsl:template><xsl:template match="tbody" mode="simple-table-rowspan">
4280
4373
  <xsl:copy>
4281
4374
  <xsl:copy-of select="tr[1]"/>
4282
4375
  <xsl:apply-templates select="tr[2]" mode="simple-table-rowspan">
4283
4376
  <xsl:with-param name="previousRow" select="tr[1]"/>
4284
4377
  </xsl:apply-templates>
4285
4378
  </xsl:copy>
4286
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="tr" mode="simple-table-rowspan">
4379
+ </xsl:template><xsl:template match="tr" mode="simple-table-rowspan">
4287
4380
  <xsl:param name="previousRow"/>
4288
4381
  <xsl:variable name="currentRow" select="."/>
4289
4382
 
@@ -4317,13 +4410,13 @@
4317
4410
  <xsl:apply-templates select="following-sibling::tr[1]" mode="simple-table-rowspan">
4318
4411
  <xsl:with-param name="previousRow" select="$newRow"/>
4319
4412
  </xsl:apply-templates>
4320
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="getLang">
4413
+ </xsl:template><xsl:template name="getLang">
4321
4414
  <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
4322
4415
  <xsl:choose>
4323
4416
  <xsl:when test="$language = 'English'">en</xsl:when>
4324
4417
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
4325
4418
  </xsl:choose>
4326
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" name="capitalizeWords">
4419
+ </xsl:template><xsl:template name="capitalizeWords">
4327
4420
  <xsl:param name="str"/>
4328
4421
  <xsl:variable name="str2" select="translate($str, '-', ' ')"/>
4329
4422
  <xsl:choose>
@@ -4341,19 +4434,19 @@
4341
4434
  <xsl:value-of select="substring($str2, 2)"/>
4342
4435
  </xsl:otherwise>
4343
4436
  </xsl:choose>
4344
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="mathml:math">
4437
+ </xsl:template><xsl:template match="mathml:math">
4345
4438
  <fo:inline font-family="STIX2Math">
4346
4439
  <fo:instream-foreign-object fox:alt-text="Math">
4347
4440
  <xsl:copy-of select="."/>
4348
4441
  </fo:instream-foreign-object>
4349
4442
  </fo:inline>
4350
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='localityStack']">
4443
+ </xsl:template><xsl:template match="*[local-name()='localityStack']">
4351
4444
  <xsl:for-each select="*[local-name()='locality']">
4352
4445
  <xsl:if test="position() =1"><xsl:text>, </xsl:text></xsl:if>
4353
4446
  <xsl:apply-templates select="."/>
4354
4447
  <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
4355
4448
  </xsl:for-each>
4356
- </xsl:template><xsl:template xmlns:iec="https://www.metanorma.org/ns/iec" xmlns:itu="https://www.metanorma.org/ns/itu" xmlns:nist="https://www.metanorma.org/ns/nist" xmlns:un="https://www.metanorma.org/ns/un" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:ogc="https://www.metanorma.org/ns/ogc" match="*[local-name()='link']" name="link">
4449
+ </xsl:template><xsl:template match="*[local-name()='link']" name="link">
4357
4450
  <xsl:variable name="target">
4358
4451
  <xsl:choose>
4359
4452
  <xsl:when test="starts-with(normalize-space(@target), 'mailto:')">
@@ -4383,4 +4476,122 @@
4383
4476
  </xsl:otherwise>
4384
4477
  </xsl:choose>
4385
4478
  </fo:inline>
4479
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
4480
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
4481
+ <!-- <xsl:choose>
4482
+ <xsl:when test="@lang = 'en'"></xsl:when>
4483
+ <xsl:otherwise> -->
4484
+ <xsl:attribute name="white-space">pre</xsl:attribute>
4485
+ <xsl:attribute name="wrap-option">wrap</xsl:attribute>
4486
+ <!-- </xsl:otherwise>
4487
+ </xsl:choose> -->
4488
+ <xsl:apply-templates/>
4489
+ </fo:block>
4490
+ </xsl:template><xsl:template match="*[local-name()='bookmark']">
4491
+ <fo:inline id="{@id}"/>
4492
+ </xsl:template><xsl:template match="*[local-name()='appendix']">
4493
+ <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
4494
+ <fo:inline padding-right="5mm"><xsl:value-of select="$title-appendix"/> <xsl:number/></fo:inline>
4495
+ <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
4496
+ </fo:block>
4497
+ <xsl:apply-templates/>
4498
+ </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
4499
+ <fo:inline><xsl:apply-templates/></fo:inline>
4500
+ </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']">
4501
+ <fo:block xsl:use-attribute-sets="appendix-example-style">
4502
+ <xsl:variable name="claims_id" select="ancestor::*[local-name()='clause'][1]/@id"/>
4503
+ <xsl:value-of select="$title-example"/>
4504
+ <xsl:if test="count(ancestor::*[local-name()='clause'][1]//*[local-name()='example']) &gt; 1">
4505
+ <xsl:number count="*[local-name()='example'][ancestor::*[local-name()='clause'][@id = $claims_id]]" level="any"/><xsl:text> </xsl:text>
4506
+ </xsl:if>
4507
+ <xsl:if test="*[local-name()='name']">
4508
+ <xsl:text>— </xsl:text><xsl:apply-templates select="*[local-name()='name']" mode="process"/>
4509
+ </xsl:if>
4510
+ </fo:block>
4511
+ <xsl:apply-templates/>
4512
+ </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']/*[local-name()='name']"/><xsl:template match="*[local-name()='appendix']//*[local-name()='example']/*[local-name()='name']" mode="process">
4513
+ <fo:inline><xsl:apply-templates/></fo:inline>
4514
+ </xsl:template><xsl:template match="*[local-name() = 'callout']">
4515
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
4516
+ </xsl:template><xsl:template match="*[local-name() = 'annotation']">
4517
+ <xsl:variable name="annotation-id" select="@id"/>
4518
+ <xsl:variable name="callout" select="//*[@target = $annotation-id]/text()"/>
4519
+ <fo:block id="{$annotation-id}" white-space="nowrap">
4520
+ <fo:inline>
4521
+ <xsl:apply-templates>
4522
+ <xsl:with-param name="callout" select="concat('&lt;', $callout, '&gt; ')"/>
4523
+ </xsl:apply-templates>
4524
+ </fo:inline>
4525
+ </fo:block>
4526
+ </xsl:template><xsl:template match="*[local-name() = 'annotation']/*[local-name() = 'p']">
4527
+ <xsl:param name="callout"/>
4528
+ <fo:inline id="{@id}">
4529
+ <!-- for first p in annotation, put <x> -->
4530
+ <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
4531
+ <xsl:apply-templates/>
4532
+ </fo:inline>
4533
+ </xsl:template><xsl:template name="convertDate">
4534
+ <xsl:param name="date"/>
4535
+ <xsl:param name="format" select="'short'"/>
4536
+ <xsl:variable name="year" select="substring($date, 1, 4)"/>
4537
+ <xsl:variable name="month" select="substring($date, 6, 2)"/>
4538
+ <xsl:variable name="day" select="substring($date, 9, 2)"/>
4539
+ <xsl:variable name="monthStr">
4540
+ <xsl:choose>
4541
+ <xsl:when test="$month = '01'">January</xsl:when>
4542
+ <xsl:when test="$month = '02'">February</xsl:when>
4543
+ <xsl:when test="$month = '03'">March</xsl:when>
4544
+ <xsl:when test="$month = '04'">April</xsl:when>
4545
+ <xsl:when test="$month = '05'">May</xsl:when>
4546
+ <xsl:when test="$month = '06'">June</xsl:when>
4547
+ <xsl:when test="$month = '07'">July</xsl:when>
4548
+ <xsl:when test="$month = '08'">August</xsl:when>
4549
+ <xsl:when test="$month = '09'">September</xsl:when>
4550
+ <xsl:when test="$month = '10'">October</xsl:when>
4551
+ <xsl:when test="$month = '11'">November</xsl:when>
4552
+ <xsl:when test="$month = '12'">December</xsl:when>
4553
+ </xsl:choose>
4554
+ </xsl:variable>
4555
+ <xsl:variable name="result">
4556
+ <xsl:choose>
4557
+ <xsl:when test="$format = 'short' or $day = ''">
4558
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
4559
+ </xsl:when>
4560
+ <xsl:otherwise>
4561
+ <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
4562
+ </xsl:otherwise>
4563
+ </xsl:choose>
4564
+ </xsl:variable>
4565
+ <xsl:value-of select="$result"/>
4566
+ </xsl:template><xsl:template name="insertKeywords">
4567
+ <xsl:param name="sorting" select="'true'"/>
4568
+ <xsl:param name="charAtEnd" select="'.'"/>
4569
+ <xsl:param name="charDelim" select="', '"/>
4570
+ <xsl:choose>
4571
+ <xsl:when test="$sorting = 'true' or $sorting = 'yes'">
4572
+ <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
4573
+ <xsl:sort data-type="text" order="ascending"/>
4574
+ <xsl:call-template name="insertKeyword">
4575
+ <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
4576
+ <xsl:with-param name="charDelim" select="$charDelim"/>
4577
+ </xsl:call-template>
4578
+ </xsl:for-each>
4579
+ </xsl:when>
4580
+ <xsl:otherwise>
4581
+ <xsl:for-each select="/*/*[local-name() = 'bibdata']//*[local-name() = 'keyword']">
4582
+ <xsl:call-template name="insertKeyword">
4583
+ <xsl:with-param name="charAtEnd" select="$charAtEnd"/>
4584
+ <xsl:with-param name="charDelim" select="$charDelim"/>
4585
+ </xsl:call-template>
4586
+ </xsl:for-each>
4587
+ </xsl:otherwise>
4588
+ </xsl:choose>
4589
+ </xsl:template><xsl:template name="insertKeyword">
4590
+ <xsl:param name="charAtEnd"/>
4591
+ <xsl:param name="charDelim"/>
4592
+ <xsl:apply-templates/>
4593
+ <xsl:choose>
4594
+ <xsl:when test="position() != last()"><xsl:value-of select="$charDelim"/></xsl:when>
4595
+ <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
4596
+ </xsl:choose>
4386
4597
  </xsl:template></xsl:stylesheet>