metanorma-iso 1.3.25 → 1.3.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>