metanorma-ogc 1.2.3 → 1.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +62 -0
  3. data/README.adoc +3 -4
  4. data/lib/asciidoctor/ogc/basicdoc.rng +4 -11
  5. data/lib/asciidoctor/ogc/boilerplate.xml +2 -2
  6. data/lib/asciidoctor/ogc/converter.rb +25 -1
  7. data/lib/asciidoctor/ogc/isodoc.rng +27 -50
  8. data/lib/asciidoctor/ogc/ogc.rng +8 -1
  9. data/lib/asciidoctor/ogc/validate.rb +1 -1
  10. data/lib/isodoc/ogc/base_convert.rb +0 -1
  11. data/lib/isodoc/ogc/biblio.rb +1 -0
  12. data/lib/isodoc/ogc/html/_coverpage.css +6 -0
  13. data/lib/isodoc/ogc/html/_coverpage.scss +8 -0
  14. data/lib/isodoc/ogc/html/html_ogc_titlepage.html +3 -3
  15. data/lib/isodoc/ogc/html/htmlstyle.css +211 -201
  16. data/lib/isodoc/ogc/html/htmlstyle.scss +4 -4
  17. data/lib/isodoc/ogc/html/ogc.css +21 -21
  18. data/lib/isodoc/ogc/html/ogc.scss +21 -21
  19. data/lib/isodoc/ogc/html/ogc_wp.css +35 -35
  20. data/lib/isodoc/ogc/html/ogc_wp.scss +35 -35
  21. data/lib/isodoc/ogc/html/word_ogc_titlepage.html +1 -1
  22. data/lib/isodoc/ogc/html/wordstyle.css +19 -19
  23. data/lib/isodoc/ogc/html/wordstyle.scss +19 -19
  24. data/lib/isodoc/ogc/html/wordstyle_wp.css +23 -23
  25. data/lib/isodoc/ogc/html/wordstyle_wp.scss +23 -23
  26. data/lib/isodoc/ogc/html_convert.rb +5 -1
  27. data/lib/isodoc/ogc/i18n-en.yaml +10 -0
  28. data/lib/isodoc/ogc/init.rb +1 -1
  29. data/lib/isodoc/ogc/metadata.rb +1 -1
  30. data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +671 -138
  31. data/lib/isodoc/ogc/ogc.best-practice.xsl +671 -138
  32. data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +671 -138
  33. data/lib/isodoc/ogc/ogc.community-practice.xsl +671 -138
  34. data/lib/isodoc/ogc/ogc.community-standard.xsl +671 -138
  35. data/lib/isodoc/ogc/ogc.discussion-paper.xsl +671 -138
  36. data/lib/isodoc/ogc/ogc.engineering-report.xsl +671 -138
  37. data/lib/isodoc/ogc/ogc.other.xsl +671 -138
  38. data/lib/isodoc/ogc/ogc.policy.xsl +671 -138
  39. data/lib/isodoc/ogc/ogc.reference-model.xsl +671 -138
  40. data/lib/isodoc/ogc/ogc.release-notes.xsl +671 -138
  41. data/lib/isodoc/ogc/ogc.standard.xsl +671 -138
  42. data/lib/isodoc/ogc/ogc.test-suite.xsl +671 -138
  43. data/lib/isodoc/ogc/ogc.user-guide.xsl +671 -138
  44. data/lib/isodoc/ogc/ogc.white-paper.xsl +584 -89
  45. data/lib/isodoc/ogc/presentation_xml_convert.rb +25 -0
  46. data/lib/isodoc/ogc/sections.rb +6 -1
  47. data/lib/isodoc/ogc/word_convert.rb +8 -1
  48. data/lib/isodoc/ogc/xref.rb +30 -5
  49. data/lib/metanorma/ogc.rb +7 -0
  50. data/lib/metanorma/ogc/fonts_manifest.yaml +6 -0
  51. data/lib/metanorma/ogc/processor.rb +0 -8
  52. data/lib/metanorma/ogc/version.rb +1 -1
  53. data/metanorma-ogc.gemspec +2 -2
  54. metadata +8 -9
  55. data/.github/workflows/macos.yml +0 -38
  56. data/.github/workflows/ubuntu.yml +0 -56
  57. data/.github/workflows/windows.yml +0 -40
@@ -12,18 +12,6 @@
12
12
 
13
13
  <xsl:variable name="debug">false</xsl:variable>
14
14
 
15
- <xsl:variable name="copyright">
16
- <xsl:text>© Open Geospatial Consortium </xsl:text>
17
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:copyright/ogc:from"/>
18
- <xsl:text> – All rights reserved</xsl:text>
19
- </xsl:variable>
20
- <xsl:variable name="copyright_short">
21
- <xsl:text>© </xsl:text>
22
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:copyright/ogc:from"/>
23
- <xsl:text> </xsl:text>
24
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:contributor[ogc:role/@type = 'publisher']/ogc:organization/ogc:name"/>
25
- </xsl:variable>
26
-
27
15
  <xsl:variable name="docnumber" select="java:toUpperCase(java:java.lang.String.new(/ogc:ogc-standard/ogc:bibdata/ogc:docnumber))"/>
28
16
  <xsl:variable name="doctitle" select="/ogc:ogc-standard/ogc:bibdata/ogc:title[@language = 'en']"/>
29
17
 
@@ -33,13 +21,8 @@
33
21
  </xsl:call-template>
34
22
  </xsl:variable>
35
23
 
36
- <xsl:variable name="header">
37
- <xsl:text>Open Geospatial Consortium </xsl:text>
38
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:docidentifier[@type = 'ogc-internal']"/>
39
- <xsl:text>:</xsl:text>
40
- <xsl:value-of select="/ogc:ogc-standard/ogc:bibdata/ogc:copyright/ogc:from"/>
41
- </xsl:variable>
42
-
24
+ <xsl:variable name="copyright-owner" select="java:toUpperCase(java:java.lang.String.new(/ogc:ogc-standard/ogc:bibdata/ogc:copyright/ogc:owner/ogc:organization/ogc:name))"/>
25
+
43
26
  <xsl:variable name="color_main">rgb(88, 89, 91)</xsl:variable>
44
27
  <xsl:variable name="color_orange">rgb(237, 193, 35)</xsl:variable>
45
28
  <xsl:variable name="color_lightorange">rgb(246, 223, 140)</xsl:variable>
@@ -53,10 +36,11 @@
53
36
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:abstract" mode="contents"/>
54
37
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'keywords']" mode="contents"/>
55
38
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:foreword" mode="contents"/>
39
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'security']" mode="contents"/>
56
40
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'submitting_orgs']" mode="contents"/>
57
41
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:submitters" mode="contents"/>
58
42
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:introduction" mode="contents"/>
59
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[not(@type = 'submitting_orgs') and not(@type = 'keywords')]" mode="contents"/>
43
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[not(@type = 'security') and not(@type = 'submitting_orgs') and not(@type = 'keywords')]" mode="contents"/>
60
44
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:acknowledgements" mode="contents"/>
61
45
 
62
46
 
@@ -85,7 +69,7 @@
85
69
 
86
70
  <xsl:template match="/">
87
71
  <xsl:call-template name="namespaceCheck"/>
88
- <fo:root font-family="Lato, STIX2Math, HanSans" font-size="11pt" color="{$color_main}" xml:lang="{$lang}">
72
+ <fo:root font-family="Lato, STIX Two Math, Source Han Sans" font-size="11pt" color="{$color_main}" xml:lang="{$lang}">
89
73
  <fo:layout-master-set>
90
74
  <!-- Cover page -->
91
75
  <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
@@ -119,6 +103,10 @@
119
103
 
120
104
  <xsl:call-template name="addPDFUAmeta"/>
121
105
 
106
+ <xsl:call-template name="addBookmarks">
107
+ <xsl:with-param name="contents" select="$contents"/>
108
+ </xsl:call-template>
109
+
122
110
  <!-- Cover Page -->
123
111
  <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
124
112
  <fo:static-content flow-name="xsl-footnote-separator">
@@ -126,13 +114,6 @@
126
114
  <fo:leader leader-pattern="rule" leader-length="30%"/>
127
115
  </fo:block>
128
116
  </fo:static-content>
129
- <fo:static-content flow-name="cover-page-header" font-size="10pt">
130
- <fo:block-container height="23.5mm" display-align="before">
131
- <fo:block padding-top="12.5mm">
132
- <xsl:value-of select="$copyright"/>
133
- </fo:block>
134
- </fo:block-container>
135
- </fo:static-content>
136
117
 
137
118
  <fo:flow flow-name="xsl-region-body" color="white">
138
119
 
@@ -200,14 +181,30 @@
200
181
  <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($doctype))"/>
201
182
  </xsl:call-template>
202
183
  <xsl:value-of select="$linebreak"/>
184
+ <xsl:variable name="docsubtype" select="normalize-space(/ogc:ogc-standard/ogc:bibdata/ogc:ext/ogc:docsubtype)"/>
185
+ <xsl:variable name="docsubtype_str">
186
+ <xsl:choose>
187
+ <xsl:when test="$docsubtype = 'implementation'">Implementation</xsl:when>
188
+ <xsl:when test="$docsubtype = 'conceptual-model'">Conceptual model</xsl:when>
189
+ <xsl:when test="$docsubtype = 'conceptual-model-and-encoding'">Conceptual model &amp; encoding</xsl:when>
190
+ <xsl:when test="$docsubtype = 'conceptual-model-and-implementation'">Conceptual model &amp; implementation</xsl:when>
191
+ <xsl:when test="$docsubtype = 'encoding'">Encoding</xsl:when>
192
+ <xsl:when test="$docsubtype = 'extension'">Extension</xsl:when>
193
+ <xsl:when test="$docsubtype = 'profile'">Profile</xsl:when>
194
+ <xsl:when test="$docsubtype = 'profile-with-extension'">Profile with extension</xsl:when>
195
+ <xsl:when test="$docsubtype = 'general'">General</xsl:when>
196
+ </xsl:choose>
197
+ </xsl:variable>
203
198
  <xsl:call-template name="addLetterSpacing">
204
- <xsl:with-param name="text" select="'Conceptual model &amp; encoding'"/>
199
+ <xsl:with-param name="text" select="$docsubtype_str"/>
205
200
  <xsl:with-param name="letter-spacing" select="0.25"/>
206
201
  </xsl:call-template>
207
202
  </fo:block>
208
203
  <fo:block font-size="12pt" font-weight="bold">
204
+ <xsl:variable name="curr_lang" select="/ogc:ogc-standard/ogc:bibdata/ogc:language[@current = 'true']"/>
205
+ <xsl:variable name="stage" select="java:toUpperCase(java:java.lang.String.new(/ogc:ogc-standard/ogc:bibdata/ogc:status/ogc:stage[@language = $curr_lang]))"/>
209
206
  <xsl:call-template name="addLetterSpacing">
210
- <xsl:with-param name="text" select="'APPROVED'"/>
207
+ <xsl:with-param name="text" select="$stage"/>
211
208
  </xsl:call-template>
212
209
  </fo:block>
213
210
  </fo:block>
@@ -344,7 +341,7 @@
344
341
 
345
342
  <fo:block-container line-height="130%">
346
343
 
347
- <xsl:for-each select="xalan:nodeset($contents)//item">
344
+ <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
348
345
 
349
346
  <fo:block>
350
347
  <xsl:if test="@level = 1">
@@ -373,7 +370,7 @@
373
370
  <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
374
371
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
375
372
  <xsl:variable name="sectionTitle">
376
- <xsl:apply-templates/>
373
+ <xsl:apply-templates select="title"/>
377
374
  </xsl:variable>
378
375
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($sectionTitle))"/>
379
376
  <xsl:text> </xsl:text>
@@ -392,7 +389,7 @@
392
389
  <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
393
390
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
394
391
  <xsl:text> </xsl:text>
395
- <xsl:apply-templates/>
392
+ <xsl:apply-templates select="title"/>
396
393
  <xsl:text> </xsl:text>
397
394
  <fo:inline keep-together.within-line="always">
398
395
  <fo:leader leader-pattern="dots"/>
@@ -514,10 +511,17 @@
514
511
  <fo:block break-after="page"/>
515
512
  </xsl:if>
516
513
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:foreword"/>
514
+
515
+ <xsl:if test="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'security']">
516
+ <fo:block break-after="page"/>
517
+ </xsl:if>
518
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'security']"/>
519
+
517
520
  <xsl:if test="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'submitting_orgs']">
518
521
  <fo:block break-after="page"/>
519
522
  </xsl:if>
520
523
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[@type = 'submitting_orgs']"/>
524
+
521
525
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:submitters"/>
522
526
  <xsl:if test="/ogc:ogc-standard/ogc:preface/ogc:introduction">
523
527
  <fo:block break-after="page"/>
@@ -526,7 +530,7 @@
526
530
 
527
531
 
528
532
 
529
- <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[not(@type = 'submitting_orgs') and not(@type = 'keywords')]"/>
533
+ <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:clause[not(@type = 'security') and not(@type = 'submitting_orgs') and not(@type = 'keywords')]"/>
530
534
  <xsl:apply-templates select="/ogc:ogc-standard/ogc:preface/ogc:acknowledgements"/>
531
535
  </fo:block>
532
536
  </fo:flow>
@@ -567,7 +571,7 @@
567
571
  <xsl:value-of select="translate(., $thinspace, ' ')"/>
568
572
  </xsl:template>
569
573
 
570
- <xsl:template match="text()" priority="1" mode="contents">
574
+ <xsl:template match="text()" priority="3" mode="contents">
571
575
  <xsl:value-of select="translate(., $thinspace, ' ')"/>
572
576
  </xsl:template>
573
577
 
@@ -657,16 +661,21 @@
657
661
  </xsl:variable>
658
662
 
659
663
  <xsl:variable name="display">
660
- <xsl:choose>
661
- <xsl:when test="ancestor-or-self::ogc:bibitem">false</xsl:when>
662
- <xsl:when test="ancestor-or-self::ogc:term">false</xsl:when>
664
+ <xsl:choose>
663
665
  <xsl:when test="$level &gt;= 3">false</xsl:when>
664
666
  <xsl:otherwise>true</xsl:otherwise>
665
667
  </xsl:choose>
666
668
  </xsl:variable>
667
669
 
670
+ <xsl:variable name="skip">
671
+ <xsl:choose>
672
+ <xsl:when test="ancestor-or-self::ogc:bibitem">true</xsl:when>
673
+ <xsl:when test="ancestor-or-self::ogc:term">true</xsl:when>
674
+ <xsl:otherwise>false</xsl:otherwise>
675
+ </xsl:choose>
676
+ </xsl:variable>
668
677
 
669
- <xsl:if test="$display = 'true'">
678
+ <xsl:if test="$skip = 'false'">
670
679
 
671
680
  <xsl:variable name="section">
672
681
  <xsl:call-template name="getSection"/>
@@ -680,13 +689,15 @@
680
689
  <xsl:value-of select="local-name()"/>
681
690
  </xsl:variable>
682
691
 
683
- <item id="{@id}" level="{$level}" section="{$section}" type="{$type}">
692
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" display="{$display}">
684
693
  <xsl:if test="ancestor::ogc:annex">
685
694
  <xsl:attribute name="parent">annex</xsl:attribute>
686
695
  </xsl:if>
687
- <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
696
+ <title>
697
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
698
+ </title>
699
+ <xsl:apply-templates mode="contents"/>
688
700
  </item>
689
- <xsl:apply-templates mode="contents"/>
690
701
  </xsl:if>
691
702
 
692
703
  </xsl:template>
@@ -866,11 +877,20 @@
866
877
  <xsl:when test="$level = 2">
867
878
  <fo:block space-before="24pt" margin-bottom="10pt">
868
879
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
869
- <!-- <xsl:variable name="title">
870
- <xsl:apply-templates/>
871
- </xsl:variable> -->
880
+ <xsl:variable name="title">
881
+ <xsl:choose>
882
+ <xsl:when test="*[local-name() = 'tab']">
883
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
884
+ </xsl:when>
885
+ <xsl:otherwise>
886
+ <xsl:copy-of select="."/>
887
+ </xsl:otherwise>
888
+ </xsl:choose>
889
+ </xsl:variable>
890
+ <xsl:variable name="section" select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
872
891
  <xsl:call-template name="insertSectionTitle">
873
- <xsl:with-param name="title" select="."/>
892
+ <xsl:with-param name="section" select="$section"/>
893
+ <xsl:with-param name="title" select="$title"/>
874
894
  </xsl:call-template>
875
895
  </fo:block>
876
896
  </xsl:when>
@@ -1015,8 +1035,14 @@
1015
1035
 
1016
1036
  <xsl:template match="ogc:ul | ogc:ol" mode="ul_ol">
1017
1037
  <fo:block-container margin-left="13mm">
1038
+ <xsl:if test="ancestor::ogc:table">
1039
+ <xsl:attribute name="margin-left">1.5mm</xsl:attribute>
1040
+ </xsl:if>
1018
1041
  <fo:block-container margin-left="0mm">
1019
1042
  <fo:list-block provisional-distance-between-starts="12mm" space-after="12pt" line-height="115%">
1043
+ <xsl:if test="ancestor::ogc:table">
1044
+ <xsl:attribute name="provisional-distance-between-starts">5mm</xsl:attribute>
1045
+ </xsl:if>
1020
1046
  <xsl:if test="ancestor::ogc:ul | ancestor::ogc:ol">
1021
1047
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1022
1048
  </xsl:if>
@@ -1095,8 +1121,13 @@
1095
1121
 
1096
1122
  <xsl:template match="ogc:preferred | ogc:deprecated | ogc:admitted" priority="2"/>
1097
1123
 
1098
- <xsl:template match="ogc:preferred | ogc:deprecated | ogc:admitted" mode="term_name">
1099
- <fo:inline font-size="18pt" padding-right="3mm"><xsl:apply-templates/></fo:inline>
1124
+ <xsl:template match="ogc:preferred" mode="term_name">
1125
+ <fo:inline font-size="18pt" padding-right="3mm"><xsl:apply-templates/></fo:inline>
1126
+ <fo:inline padding-right="2mm"> </fo:inline>
1127
+ </xsl:template>
1128
+
1129
+ <xsl:template match="ogc:deprecated | ogc:admitted" mode="term_name">
1130
+ <fo:inline font-size="18pt" padding-right="3mm"><xsl:apply-templates/></fo:inline>
1100
1131
  <fo:inline font-size="11pt" padding="1mm" padding-bottom="0.5mm" baseline-shift="25%">
1101
1132
  <xsl:variable name="kind" select="local-name()"/>
1102
1133
  <xsl:attribute name="background-color">
@@ -1113,7 +1144,6 @@
1113
1144
  <fo:inline padding-right="2mm"> </fo:inline>
1114
1145
  </xsl:template>
1115
1146
 
1116
-
1117
1147
  <!-- [position() &gt; 1] -->
1118
1148
  <xsl:template match="ogc:references[not(@normative='true')]">
1119
1149
  <fo:block break-after="page"/>
@@ -1236,7 +1266,7 @@
1236
1266
  <fo:block>
1237
1267
  <fo:inline font-weight="bold">
1238
1268
  <xsl:call-template name="addLetterSpacing">
1239
- <xsl:with-param name="text" select="'OPEN GEOSPATIAL CONSORTIUM '"/>
1269
+ <xsl:with-param name="text" select="concat($copyright-owner, ' ')"/>
1240
1270
  <xsl:with-param name="letter-spacing" select="0.2"/>
1241
1271
  </xsl:call-template>
1242
1272
  </fo:inline>
@@ -1372,9 +1402,18 @@
1372
1402
  </xsl:template>
1373
1403
 
1374
1404
  <xsl:template name="insertSectionTitle">
1405
+ <xsl:param name="section"/>
1375
1406
  <xsl:param name="title"/>
1376
1407
  <fo:block>
1377
1408
  <fo:block font-size="18pt" color="{$color_blue}" keep-with-next="always" line-height="150%">
1409
+ <xsl:if test="$section != ''">
1410
+ <fo:inline padding-right="2mm">
1411
+ <xsl:call-template name="addLetterSpacing">
1412
+ <xsl:with-param name="text" select="$section"/>
1413
+ <xsl:with-param name="letter-spacing" select="0.6"/>
1414
+ </xsl:call-template>
1415
+ </fo:inline>
1416
+ </xsl:if>
1378
1417
  <xsl:apply-templates select="xalan:nodeset($title)" mode="titlesmall"/>
1379
1418
  </fo:block>
1380
1419
  <xsl:call-template name="insertOrangeHorizontalLine"/>
@@ -1383,9 +1422,9 @@
1383
1422
 
1384
1423
  <xsl:template match="text()" mode="titlesmall">
1385
1424
  <xsl:call-template name="addLetterSpacing">
1386
- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(.))"/>
1387
- <xsl:with-param name="letter-spacing" select="0.6"/>
1388
- </xsl:call-template>
1425
+ <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(.))"/>
1426
+ <xsl:with-param name="letter-spacing" select="0.6"/>
1427
+ </xsl:call-template>
1389
1428
  </xsl:template>
1390
1429
 
1391
1430
  <xsl:template match="ogc:strong" mode="titlesmall">
@@ -1438,6 +1477,12 @@
1438
1477
 
1439
1478
  </title-edition>
1440
1479
 
1480
+ <title-edition lang="fr">
1481
+
1482
+ <xsl:text>Édition </xsl:text>
1483
+
1484
+ </title-edition>
1485
+
1441
1486
 
1442
1487
  <title-toc lang="en">
1443
1488
 
@@ -1446,7 +1491,12 @@
1446
1491
 
1447
1492
 
1448
1493
  </title-toc>
1449
- <title-toc lang="fr">Sommaire</title-toc>
1494
+ <title-toc lang="fr">
1495
+
1496
+ <xsl:text>Sommaire</xsl:text>
1497
+
1498
+
1499
+ </title-toc>
1450
1500
 
1451
1501
  <title-toc lang="zh">Contents</title-toc>
1452
1502
 
@@ -1466,13 +1516,22 @@
1466
1516
  <title-part lang="en">
1467
1517
 
1468
1518
 
1519
+
1469
1520
  </title-part>
1470
1521
  <title-part lang="fr">
1471
1522
 
1472
1523
 
1524
+
1473
1525
  </title-part>
1474
1526
  <title-part lang="zh">第 # 部分:</title-part>
1475
1527
 
1528
+ <title-subpart lang="en">
1529
+
1530
+ </title-subpart>
1531
+ <title-subpart lang="fr">
1532
+
1533
+ </title-subpart>
1534
+
1476
1535
  <title-modified lang="en">modified</title-modified>
1477
1536
  <title-modified lang="fr">modifiée</title-modified>
1478
1537
 
@@ -1534,10 +1593,19 @@
1534
1593
 
1535
1594
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
1536
1595
  <xsl:param name="name"/>
1537
- <xsl:variable name="lang">
1538
- <xsl:call-template name="getLang"/>
1596
+ <xsl:param name="lang"/>
1597
+ <xsl:variable name="lang_">
1598
+ <xsl:choose>
1599
+ <xsl:when test="$lang != ''">
1600
+ <xsl:value-of select="$lang"/>
1601
+ </xsl:when>
1602
+ <xsl:otherwise>
1603
+ <xsl:call-template name="getLang"/>
1604
+ </xsl:otherwise>
1605
+ </xsl:choose>
1539
1606
  </xsl:variable>
1540
- <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $lang]"/>
1607
+ <xsl:variable name="language" select="normalize-space($lang_)"/>
1608
+ <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
1541
1609
  <xsl:choose>
1542
1610
  <xsl:when test="normalize-space($title_) != ''">
1543
1611
  <xsl:value-of select="$title_"/>
@@ -1546,7 +1614,9 @@
1546
1614
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
1547
1615
  </xsl:otherwise>
1548
1616
  </xsl:choose>
1549
- </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="link-style">
1617
+ </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
1618
+
1619
+ </xsl:attribute-set><xsl:attribute-set name="link-style">
1550
1620
 
1551
1621
 
1552
1622
  <!-- <xsl:attribute name="color">rgb(33, 55, 92)</xsl:attribute> -->
@@ -1563,7 +1633,7 @@
1563
1633
 
1564
1634
 
1565
1635
 
1566
- <xsl:attribute name="font-family">FiraCode</xsl:attribute>
1636
+ <xsl:attribute name="font-family">Fira Code</xsl:attribute>
1567
1637
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1568
1638
  <xsl:attribute name="line-height">113%</xsl:attribute>
1569
1639
 
@@ -1723,6 +1793,7 @@
1723
1793
 
1724
1794
 
1725
1795
 
1796
+
1726
1797
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1727
1798
 
1728
1799
  <xsl:attribute name="font-size">12pt</xsl:attribute>
@@ -1768,6 +1839,7 @@
1768
1839
 
1769
1840
 
1770
1841
 
1842
+
1771
1843
  </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
1772
1844
 
1773
1845
 
@@ -1850,6 +1922,7 @@
1850
1922
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1851
1923
 
1852
1924
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1925
+
1853
1926
 
1854
1927
 
1855
1928
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
@@ -1899,7 +1972,7 @@
1899
1972
 
1900
1973
 
1901
1974
 
1902
- <xsl:attribute name="font-family">FiraCode</xsl:attribute>
1975
+ <xsl:attribute name="font-family">Fira Code</xsl:attribute>
1903
1976
 
1904
1977
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
1905
1978
  <xsl:attribute name="font-size">11pt</xsl:attribute>
@@ -1977,6 +2050,10 @@
1977
2050
  <fo:block> </fo:block>
1978
2051
 
1979
2052
 
2053
+ <!-- <xsl:if test="$namespace = 'bipm'">
2054
+ <fo:block>&#xA0;</fo:block>
2055
+ </xsl:if> -->
2056
+
1980
2057
  <!-- $namespace = 'iso' or -->
1981
2058
 
1982
2059
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -2014,6 +2091,7 @@
2014
2091
  <xsl:with-param name="table" select="$simple-table"/>
2015
2092
  </xsl:call-template>
2016
2093
  </xsl:variable>
2094
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
2017
2095
 
2018
2096
  <!-- <xsl:variable name="colwidths2">
2019
2097
  <xsl:call-template name="calculate-column-widths">
@@ -2035,38 +2113,60 @@
2035
2113
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
2036
2114
 
2037
2115
 
2038
-
2116
+
2117
+
2118
+
2039
2119
 
2040
2120
 
2041
2121
 
2042
2122
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
2043
2123
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
2044
2124
  <xsl:attribute name="space-after">12pt</xsl:attribute>
2045
-
2125
+
2046
2126
 
2127
+ <xsl:if test="ancestor::*[local-name()='sections']">
2128
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2129
+ </xsl:if>
2047
2130
 
2048
2131
 
2049
- <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">
2050
-
2051
-
2052
-
2053
-
2054
-
2055
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2056
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2057
-
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+ <xsl:variable name="table_attributes">
2138
+ <attribute name="table-layout">fixed</attribute>
2139
+ <attribute name="width">100%</attribute>
2140
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
2141
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
2058
2142
 
2059
2143
 
2060
2144
 
2061
2145
 
2062
2146
 
2063
- <xsl:if test="ancestor::*[local-name()='sections']">
2064
- <xsl:attribute name="font-size">9pt</xsl:attribute>
2065
- </xsl:if>
2147
+ <attribute name="margin-left">0mm</attribute>
2148
+ <attribute name="margin-right">0mm</attribute>
2149
+
2150
+
2151
+
2066
2152
 
2153
+
2067
2154
 
2155
+ </xsl:variable>
2156
+
2157
+
2158
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
2068
2159
 
2160
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2161
+ <xsl:attribute name="{@name}">
2162
+ <xsl:value-of select="."/>
2163
+ </xsl:attribute>
2164
+ </xsl:for-each>
2069
2165
 
2166
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
2167
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2168
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
2169
+ </xsl:if>
2070
2170
 
2071
2171
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
2072
2172
  <xsl:choose>
@@ -2090,6 +2190,33 @@
2090
2190
 
2091
2191
  </fo:table>
2092
2192
 
2193
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
2194
+ <xsl:call-template name="insertTableFooterInSeparateTable">
2195
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
2196
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2197
+ </xsl:call-template>
2198
+ </xsl:for-each>
2199
+
2200
+ <!-- insert footer as table -->
2201
+ <!-- <fo:table>
2202
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
2203
+ <xsl:attribute name="{@name}">
2204
+ <xsl:value-of select="."/>
2205
+ </xsl:attribute>
2206
+ </xsl:for-each>
2207
+
2208
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2209
+ <xsl:choose>
2210
+ <xsl:when test=". = 1 or . = 0">
2211
+ <fo:table-column column-width="proportional-column-width(2)"/>
2212
+ </xsl:when>
2213
+ <xsl:otherwise>
2214
+ <fo:table-column column-width="proportional-column-width({.})"/>
2215
+ </xsl:otherwise>
2216
+ </xsl:choose>
2217
+ </xsl:for-each>
2218
+ </fo:table>-->
2219
+
2093
2220
 
2094
2221
 
2095
2222
 
@@ -2099,6 +2226,7 @@
2099
2226
  <xsl:if test="normalize-space() != ''">
2100
2227
  <fo:block xsl:use-attribute-sets="table-name-style">
2101
2228
 
2229
+
2102
2230
  <xsl:apply-templates/>
2103
2231
  </fo:block>
2104
2232
  </xsl:if>
@@ -2154,6 +2282,13 @@
2154
2282
  <xsl:for-each select="xalan:nodeset($table)//tr">
2155
2283
  <xsl:variable name="td_text">
2156
2284
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
2285
+
2286
+ <!-- <xsl:if test="$namespace = 'bipm'">
2287
+ <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
2288
+ <word><xsl:value-of select="normalize-space(.)"/></word>
2289
+ </xsl:for-each>
2290
+ </xsl:if> -->
2291
+
2157
2292
  </xsl:variable>
2158
2293
  <xsl:variable name="words">
2159
2294
  <xsl:variable name="string_with_added_zerospaces">
@@ -2213,11 +2348,14 @@
2213
2348
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
2214
2349
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
2215
2350
  <xsl:value-of select="@target"/>
2351
+ </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
2352
+ <xsl:variable name="math_text" select="normalize-space(.)"/>
2353
+ <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
2216
2354
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2217
2355
  <xsl:param name="cols-count"/>
2218
2356
  <!-- font-weight="bold" -->
2219
2357
  <fo:table-header>
2220
-
2358
+
2221
2359
  <xsl:apply-templates/>
2222
2360
  </fo:table-header>
2223
2361
  </xsl:template><xsl:template name="table-header-title">
@@ -2242,6 +2380,13 @@
2242
2380
  </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2243
2381
  <xsl:apply-templates/>
2244
2382
  </xsl:template><xsl:template name="insertTableFooter">
2383
+ <xsl:param name="cols-count"/>
2384
+ <xsl:if test="../*[local-name()='tfoot']">
2385
+ <fo:table-footer>
2386
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2387
+ </fo:table-footer>
2388
+ </xsl:if>
2389
+ </xsl:template><xsl:template name="insertTableFooter2">
2245
2390
  <xsl:param name="cols-count"/>
2246
2391
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2247
2392
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
@@ -2265,11 +2410,29 @@
2265
2410
 
2266
2411
  <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2267
2412
 
2413
+
2414
+
2415
+
2416
+
2268
2417
  <!-- except gb -->
2269
2418
 
2270
2419
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2271
2420
 
2272
2421
 
2422
+ <!-- show Note under table in preface (ex. abstract) sections -->
2423
+ <!-- empty, because notes show at page side in main sections -->
2424
+ <!-- <xsl:if test="$namespace = 'bipm'">
2425
+ <xsl:choose>
2426
+ <xsl:when test="ancestor::*[local-name()='preface']">
2427
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2428
+ </xsl:when>
2429
+ <xsl:otherwise>
2430
+ <fo:block/>
2431
+ </xsl:otherwise>
2432
+ </xsl:choose>
2433
+ </xsl:if> -->
2434
+
2435
+
2273
2436
  <!-- horizontal row separator -->
2274
2437
 
2275
2438
 
@@ -2283,6 +2446,90 @@
2283
2446
  </fo:table-footer>
2284
2447
 
2285
2448
  </xsl:if>
2449
+ </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
2450
+ <xsl:param name="table_attributes"/>
2451
+ <xsl:param name="colwidths"/>
2452
+
2453
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2454
+
2455
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2456
+
2457
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
2458
+
2459
+ <fo:table keep-with-previous="always">
2460
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2461
+ <xsl:choose>
2462
+ <xsl:when test="@name = 'border-top'">
2463
+ <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
2464
+ </xsl:when>
2465
+ <xsl:when test="@name = 'border'">
2466
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2467
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
2468
+ </xsl:when>
2469
+ <xsl:otherwise>
2470
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2471
+ </xsl:otherwise>
2472
+ </xsl:choose>
2473
+ </xsl:for-each>
2474
+
2475
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2476
+ <xsl:choose>
2477
+ <xsl:when test=". = 1 or . = 0">
2478
+ <fo:table-column column-width="proportional-column-width(2)"/>
2479
+ </xsl:when>
2480
+ <xsl:otherwise>
2481
+ <fo:table-column column-width="proportional-column-width({.})"/>
2482
+ </xsl:otherwise>
2483
+ </xsl:choose>
2484
+ </xsl:for-each>
2485
+
2486
+ <fo:table-body>
2487
+ <fo:table-row>
2488
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2489
+
2490
+
2491
+
2492
+ <!-- fn will be processed inside 'note' processing -->
2493
+
2494
+
2495
+ <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2496
+
2497
+
2498
+
2499
+
2500
+
2501
+
2502
+ <!-- except gb -->
2503
+
2504
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2505
+
2506
+
2507
+ <!-- <xsl:if test="$namespace = 'bipm'">
2508
+ <xsl:choose>
2509
+ <xsl:when test="ancestor::*[local-name()='preface']">
2510
+ show Note under table in preface (ex. abstract) sections
2511
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2512
+ </xsl:when>
2513
+ <xsl:otherwise>
2514
+ empty, because notes show at page side in main sections
2515
+ <fo:block/>
2516
+ </xsl:otherwise>
2517
+ </xsl:choose>
2518
+ </xsl:if> -->
2519
+
2520
+
2521
+ <!-- horizontal row separator -->
2522
+
2523
+
2524
+ <!-- fn processing -->
2525
+ <xsl:call-template name="fn_display"/>
2526
+
2527
+ </fo:table-cell>
2528
+ </fo:table-row>
2529
+ </fo:table-body>
2530
+
2531
+ </fo:table>
2532
+ </xsl:if>
2286
2533
  </xsl:template><xsl:template match="*[local-name()='tbody']">
2287
2534
 
2288
2535
  <xsl:variable name="cols-count">
@@ -2335,7 +2582,7 @@
2335
2582
 
2336
2583
  </xsl:if>
2337
2584
 
2338
-
2585
+
2339
2586
 
2340
2587
  <xsl:attribute name="min-height">8.5mm</xsl:attribute>
2341
2588
  <xsl:if test="$parent-name = 'thead'">
@@ -2347,8 +2594,12 @@
2347
2594
  <xsl:if test="$number mod 2 = 0">
2348
2595
  <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
2349
2596
  </xsl:if>
2350
- </xsl:if>
2351
-
2597
+ </xsl:if>
2598
+
2599
+
2600
+ <!-- <xsl:if test="$namespace = 'bipm'">
2601
+ <xsl:attribute name="height">8mm</xsl:attribute>
2602
+ </xsl:if> -->
2352
2603
 
2353
2604
  <xsl:apply-templates/>
2354
2605
  </fo:table-row>
@@ -2367,8 +2618,8 @@
2367
2618
 
2368
2619
 
2369
2620
 
2370
- <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2371
-
2621
+ <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2622
+
2372
2623
 
2373
2624
 
2374
2625
 
@@ -2414,7 +2665,7 @@
2414
2665
 
2415
2666
 
2416
2667
 
2417
-
2668
+
2418
2669
 
2419
2670
 
2420
2671
  <xsl:attribute name="border">solid 0pt white</xsl:attribute>
@@ -2423,6 +2674,7 @@
2423
2674
 
2424
2675
 
2425
2676
 
2677
+
2426
2678
  <xsl:if test="@colspan">
2427
2679
  <xsl:attribute name="number-columns-spanned">
2428
2680
  <xsl:value-of select="@colspan"/>
@@ -2434,7 +2686,8 @@
2434
2686
  </xsl:attribute>
2435
2687
  </xsl:if>
2436
2688
  <xsl:call-template name="display-align"/>
2437
- <fo:block>
2689
+ <fo:block>
2690
+
2438
2691
  <xsl:apply-templates/>
2439
2692
  </fo:block>
2440
2693
  </fo:table-cell>
@@ -2446,14 +2699,17 @@
2446
2699
 
2447
2700
 
2448
2701
 
2702
+
2703
+
2449
2704
  <fo:inline padding-right="2mm">
2450
2705
 
2451
2706
 
2452
2707
 
2453
-
2708
+
2454
2709
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2455
2710
 
2456
2711
  </fo:inline>
2712
+
2457
2713
  <xsl:apply-templates mode="process"/>
2458
2714
  </fo:block>
2459
2715
 
@@ -2483,6 +2739,7 @@
2483
2739
 
2484
2740
 
2485
2741
 
2742
+
2486
2743
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2487
2744
 
2488
2745
  <xsl:attribute name="vertical-align">super</xsl:attribute>
@@ -2492,12 +2749,15 @@
2492
2749
 
2493
2750
 
2494
2751
 
2752
+
2495
2753
  <xsl:value-of select="@reference"/>
2496
2754
 
2755
+
2497
2756
  </fo:inline>
2498
2757
  <fo:inline>
2499
2758
 
2500
- <xsl:apply-templates/>
2759
+ <!-- <xsl:apply-templates /> -->
2760
+ <xsl:copy-of select="./node()"/>
2501
2761
  </fo:inline>
2502
2762
  </fo:block>
2503
2763
  </xsl:if>
@@ -2534,7 +2794,20 @@
2534
2794
  <xsl:variable name="following_dl_colwidths">
2535
2795
  <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2536
2796
  <xsl:variable name="html-table">
2537
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2797
+ <xsl:variable name="doc_ns">
2798
+
2799
+ </xsl:variable>
2800
+ <xsl:variable name="ns">
2801
+ <xsl:choose>
2802
+ <xsl:when test="normalize-space($doc_ns) != ''">
2803
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2804
+ </xsl:when>
2805
+ <xsl:otherwise>
2806
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2807
+ </xsl:otherwise>
2808
+ </xsl:choose>
2809
+ </xsl:variable>
2810
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2538
2811
  <xsl:element name="{$ns}:table">
2539
2812
  <xsl:for-each select="*[local-name() = 'dl'][1]">
2540
2813
  <tbody>
@@ -2599,7 +2872,8 @@
2599
2872
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
2600
2873
  </xsl:if>
2601
2874
 
2602
- <xsl:apply-templates/>
2875
+ <!-- <xsl:apply-templates /> -->
2876
+ <xsl:copy-of select="./node()"/>
2603
2877
  </fo:block>
2604
2878
  </fo:table-cell>
2605
2879
  </fo:table-row>
@@ -2620,6 +2894,7 @@
2620
2894
 
2621
2895
 
2622
2896
 
2897
+
2623
2898
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
2624
2899
 
2625
2900
  <xsl:attribute name="internal-destination">
@@ -2627,7 +2902,9 @@
2627
2902
  <xsl:value-of select="ancestor::*[local-name()='table'][1]/@id"/>
2628
2903
  </xsl:attribute>
2629
2904
 
2905
+
2630
2906
  <xsl:value-of select="@reference"/>
2907
+
2631
2908
  </fo:basic-link>
2632
2909
  </fo:inline>
2633
2910
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -2635,7 +2912,11 @@
2635
2912
  <xsl:apply-templates/>
2636
2913
  </fo:inline>
2637
2914
  </xsl:template><xsl:template match="*[local-name()='dl']">
2638
- <fo:block-container margin-left="0mm">
2915
+ <fo:block-container>
2916
+
2917
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2918
+
2919
+
2639
2920
  <xsl:if test="parent::*[local-name() = 'note']">
2640
2921
  <xsl:attribute name="margin-left">
2641
2922
  <xsl:choose>
@@ -2645,8 +2926,11 @@
2645
2926
  </xsl:attribute>
2646
2927
 
2647
2928
  </xsl:if>
2648
- <fo:block-container margin-left="0mm">
2649
-
2929
+ <fo:block-container>
2930
+
2931
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2932
+
2933
+
2650
2934
  <xsl:variable name="parent" select="local-name(..)"/>
2651
2935
 
2652
2936
  <xsl:variable name="key_iso">
@@ -2660,9 +2944,12 @@
2660
2944
  <fo:block margin-bottom="12pt" text-align="left">
2661
2945
 
2662
2946
  <xsl:variable name="title-where">
2663
- <xsl:call-template name="getTitle">
2664
- <xsl:with-param name="name" select="'title-where'"/>
2665
- </xsl:call-template>
2947
+
2948
+
2949
+ <xsl:call-template name="getTitle">
2950
+ <xsl:with-param name="name" select="'title-where'"/>
2951
+ </xsl:call-template>
2952
+
2666
2953
  </xsl:variable>
2667
2954
  <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2668
2955
  <xsl:apply-templates select="*[local-name()='dt']/*"/>
@@ -2678,9 +2965,12 @@
2678
2965
 
2679
2966
 
2680
2967
  <xsl:variable name="title-where">
2681
- <xsl:call-template name="getTitle">
2682
- <xsl:with-param name="name" select="'title-where'"/>
2683
- </xsl:call-template>
2968
+
2969
+
2970
+ <xsl:call-template name="getTitle">
2971
+ <xsl:with-param name="name" select="'title-where'"/>
2972
+ </xsl:call-template>
2973
+
2684
2974
  </xsl:variable>
2685
2975
  <xsl:value-of select="$title-where"/>
2686
2976
  </fo:block>
@@ -2691,9 +2981,12 @@
2691
2981
 
2692
2982
 
2693
2983
  <xsl:variable name="title-key">
2694
- <xsl:call-template name="getTitle">
2695
- <xsl:with-param name="name" select="'title-key'"/>
2696
- </xsl:call-template>
2984
+
2985
+
2986
+ <xsl:call-template name="getTitle">
2987
+ <xsl:with-param name="name" select="'title-key'"/>
2988
+ </xsl:call-template>
2989
+
2697
2990
  </xsl:variable>
2698
2991
  <xsl:value-of select="$title-key"/>
2699
2992
  </fo:block>
@@ -2725,7 +3018,20 @@
2725
3018
  </xsl:choose>
2726
3019
  <!-- create virtual html table for dl/[dt and dd] -->
2727
3020
  <xsl:variable name="html-table">
2728
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
3021
+ <xsl:variable name="doc_ns">
3022
+
3023
+ </xsl:variable>
3024
+ <xsl:variable name="ns">
3025
+ <xsl:choose>
3026
+ <xsl:when test="normalize-space($doc_ns) != ''">
3027
+ <xsl:value-of select="normalize-space($doc_ns)"/>
3028
+ </xsl:when>
3029
+ <xsl:otherwise>
3030
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
3031
+ </xsl:otherwise>
3032
+ </xsl:choose>
3033
+ </xsl:variable>
3034
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2729
3035
  <xsl:element name="{$ns}:table">
2730
3036
  <tbody>
2731
3037
  <xsl:apply-templates mode="dl"/>
@@ -2874,6 +3180,7 @@
2874
3180
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
2875
3181
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2876
3182
 
3183
+
2877
3184
  <xsl:apply-templates/>
2878
3185
  <!-- <xsl:if test="$namespace = 'gb'">
2879
3186
  <xsl:if test="ancestor::*[local-name()='formula']">
@@ -2927,6 +3234,7 @@
2927
3234
  </fo:inline>
2928
3235
  </xsl:template><xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
2929
3236
  <fo:inline font-weight="bold">
3237
+
2930
3238
  <xsl:apply-templates/>
2931
3239
  </fo:inline>
2932
3240
  </xsl:template><xsl:template match="*[local-name()='sup']">
@@ -2940,18 +3248,18 @@
2940
3248
  </xsl:template><xsl:template match="*[local-name()='tt']">
2941
3249
  <fo:inline xsl:use-attribute-sets="tt-style">
2942
3250
  <xsl:variable name="_font-size">
2943
-
2944
-
2945
-
2946
3251
 
2947
3252
 
2948
3253
 
2949
3254
 
2950
3255
 
2951
3256
 
2952
-
3257
+
3258
+
3259
+
3260
+
2953
3261
  10
2954
-
3262
+
2955
3263
 
2956
3264
 
2957
3265
  </xsl:variable>
@@ -3255,7 +3563,18 @@
3255
3563
  <xsl:with-param name="previousRow" select="$newRow"/>
3256
3564
  </xsl:apply-templates>
3257
3565
  </xsl:template><xsl:template name="getLang">
3258
- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3566
+ <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3567
+ <xsl:variable name="language">
3568
+ <xsl:choose>
3569
+ <xsl:when test="$language_current != ''">
3570
+ <xsl:value-of select="$language_current"/>
3571
+ </xsl:when>
3572
+ <xsl:otherwise>
3573
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3574
+ </xsl:otherwise>
3575
+ </xsl:choose>
3576
+ </xsl:variable>
3577
+
3259
3578
  <xsl:choose>
3260
3579
  <xsl:when test="$language = 'English'">en</xsl:when>
3261
3580
  <xsl:otherwise><xsl:value-of select="$language"/></xsl:otherwise>
@@ -3289,7 +3608,8 @@
3289
3608
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
3290
3609
  <xsl:value-of select="substring($str, 2)"/>
3291
3610
  </xsl:template><xsl:template match="mathml:math">
3292
- <fo:inline font-family="STIX2Math">
3611
+ <fo:inline font-family="STIX Two Math"> <!-- -->
3612
+
3293
3613
  <xsl:variable name="mathml">
3294
3614
  <xsl:apply-templates select="." mode="mathml"/>
3295
3615
  </xsl:variable>
@@ -3319,6 +3639,7 @@
3319
3639
  </xsl:choose>
3320
3640
  </xsl:variable>
3321
3641
  <fo:inline xsl:use-attribute-sets="link-style">
3642
+
3322
3643
  <xsl:choose>
3323
3644
  <xsl:when test="$target = ''">
3324
3645
  <xsl:apply-templates/>
@@ -3372,10 +3693,14 @@
3372
3693
  </fo:inline>
3373
3694
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
3374
3695
  <xsl:variable name="title-modified">
3375
- <xsl:call-template name="getTitle">
3376
- <xsl:with-param name="name" select="'title-modified'"/>
3377
- </xsl:call-template>
3696
+
3697
+
3698
+ <xsl:call-template name="getTitle">
3699
+ <xsl:with-param name="name" select="'title-modified'"/>
3700
+ </xsl:call-template>
3701
+
3378
3702
  </xsl:variable>
3703
+
3379
3704
  <xsl:choose>
3380
3705
  <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3381
3706
  <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
@@ -3383,7 +3708,7 @@
3383
3708
  <xsl:apply-templates/>
3384
3709
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
3385
3710
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3386
-
3711
+
3387
3712
  <xsl:apply-templates/>
3388
3713
  </fo:basic-link>
3389
3714
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -3440,6 +3765,8 @@
3440
3765
 
3441
3766
 
3442
3767
 
3768
+
3769
+
3443
3770
  <fo:inline xsl:use-attribute-sets="note-name-style">
3444
3771
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3445
3772
  </fo:inline>
@@ -3532,7 +3859,8 @@
3532
3859
  </fo:inline>
3533
3860
  </xsl:if>
3534
3861
  </xsl:template><xsl:template match="*[local-name() = 'figure']">
3535
- <fo:block-container id="{@id}">
3862
+ <fo:block-container id="{@id}">
3863
+
3536
3864
  <fo:block>
3537
3865
  <xsl:apply-templates/>
3538
3866
  </fo:block>
@@ -3567,15 +3895,152 @@
3567
3895
 
3568
3896
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
3569
3897
  </fo:block>
3570
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
3898
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
3571
3899
  <xsl:apply-templates mode="contents"/>
3572
3900
  <xsl:text> </xsl:text>
3573
- </xsl:template><xsl:template match="text()" mode="contents">
3901
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="bookmarks">
3902
+ <xsl:apply-templates mode="bookmarks"/>
3903
+ <xsl:text> </xsl:text>
3904
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
3905
+ <xsl:value-of select="."/>
3906
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
3574
3907
  <xsl:value-of select="."/>
3575
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
3908
+ </xsl:template><xsl:template match="node()" mode="contents">
3909
+ <xsl:apply-templates mode="contents"/>
3910
+ </xsl:template><xsl:template match="node()" mode="bookmarks">
3911
+ <xsl:apply-templates mode="bookmarks"/>
3912
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
3913
+ <xsl:apply-templates select="."/>
3914
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
3915
+ <xsl:apply-templates mode="bookmarks"/>
3916
+ </xsl:template><xsl:template name="addBookmarks">
3917
+ <xsl:param name="contents"/>
3918
+ <xsl:if test="xalan:nodeset($contents)//item">
3919
+ <fo:bookmark-tree>
3920
+ <xsl:choose>
3921
+ <xsl:when test="xalan:nodeset($contents)/doc">
3922
+ <xsl:choose>
3923
+ <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
3924
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
3925
+ <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
3926
+ <fo:bookmark-title>
3927
+ <xsl:variable name="bookmark-title_">
3928
+ <xsl:call-template name="getLangVersion">
3929
+ <xsl:with-param name="lang" select="@lang"/>
3930
+ </xsl:call-template>
3931
+ </xsl:variable>
3932
+ <xsl:choose>
3933
+ <xsl:when test="normalize-space($bookmark-title_) != ''">
3934
+ <xsl:value-of select="normalize-space($bookmark-title_)"/>
3935
+ </xsl:when>
3936
+ <xsl:otherwise>
3937
+ <xsl:choose>
3938
+ <xsl:when test="@lang = 'en'">English</xsl:when>
3939
+ <xsl:when test="@lang = 'fr'">Français</xsl:when>
3940
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
3941
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
3942
+ </xsl:choose>
3943
+ </xsl:otherwise>
3944
+ </xsl:choose>
3945
+ </fo:bookmark-title>
3946
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
3947
+ </fo:bookmark>
3948
+
3949
+ </xsl:for-each>
3950
+ </xsl:when>
3951
+ <xsl:otherwise>
3952
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
3953
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
3954
+ </xsl:for-each>
3955
+ </xsl:otherwise>
3956
+ </xsl:choose>
3957
+ </xsl:when>
3958
+ <xsl:otherwise>
3959
+ <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
3960
+ </xsl:otherwise>
3961
+ </xsl:choose>
3962
+
3963
+
3964
+
3965
+ <xsl:if test="//*[local-name() = 'figure'][@id and *[local-name() = 'name']]">
3966
+ <fo:bookmark internal-destination="{//*[local-name() = 'figure'][@id and *[local-name() = 'name']][1]/@id}" starting-state="hide">
3967
+ <fo:bookmark-title>Figures</fo:bookmark-title>
3968
+ <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name']]">
3969
+ <fo:bookmark internal-destination="{@id}">
3970
+ <fo:bookmark-title><xsl:apply-templates select="*[local-name() = 'name']/text()" mode="bookmarks"/></fo:bookmark-title>
3971
+ </fo:bookmark>
3972
+ </xsl:for-each>
3973
+ </fo:bookmark>
3974
+ </xsl:if>
3975
+
3976
+
3977
+
3978
+ <xsl:if test="//*[local-name() = 'table'][@id and *[local-name() = 'name']]">
3979
+ <fo:bookmark internal-destination="{//*[local-name() = 'table'][@id and *[local-name() = 'name']][1]/@id}" starting-state="hide">
3980
+ <fo:bookmark-title>
3981
+ <xsl:choose>
3982
+ <xsl:when test="@lang = 'fr'">Tableaux</xsl:when>
3983
+ <xsl:otherwise>Tables</xsl:otherwise>
3984
+ </xsl:choose>
3985
+ </fo:bookmark-title>
3986
+ <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name']]">
3987
+ <fo:bookmark internal-destination="{@id}">
3988
+ <fo:bookmark-title><xsl:apply-templates select="*[local-name() = 'name']//text()" mode="bookmarks"/></fo:bookmark-title>
3989
+ </fo:bookmark>
3990
+ </xsl:for-each>
3991
+ </fo:bookmark>
3992
+ </xsl:if>
3993
+
3994
+
3995
+
3996
+
3997
+ <xsl:if test="//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]">
3998
+ <fo:bookmark internal-destination="{//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']][1]/@id}" starting-state="hide">
3999
+ <fo:bookmark-title>Recommendations</fo:bookmark-title>
4000
+ <xsl:for-each select="//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]">
4001
+ <xsl:variable name="table_id" select="@id"/>
4002
+ <fo:bookmark internal-destination="{@id}">
4003
+ <fo:bookmark-title><xsl:value-of select=".//*[local-name() = 'p'][@class = 'RecommendationTitle'][ancestor::*[local-name() = 'table'][1][@id= $table_id]]/node()"/></fo:bookmark-title>
4004
+ </fo:bookmark>
4005
+ </xsl:for-each>
4006
+ </fo:bookmark>
4007
+
4008
+ </xsl:if>
4009
+
4010
+
4011
+
4012
+
4013
+ </fo:bookmark-tree>
4014
+ </xsl:if>
4015
+ </xsl:template><xsl:template name="getLangVersion">
4016
+ <xsl:param name="lang"/>
4017
+ <xsl:choose>
4018
+ <xsl:when test="$lang = 'en'">
4019
+
4020
+
4021
+ </xsl:when>
4022
+ <xsl:when test="$lang = 'fr'">
4023
+
4024
+
4025
+ </xsl:when>
4026
+ <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
4027
+ <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
4028
+ </xsl:choose>
4029
+ </xsl:template><xsl:template match="item" mode="bookmark">
4030
+ <fo:bookmark internal-destination="{@id}" starting-state="hide">
4031
+ <fo:bookmark-title>
4032
+ <xsl:if test="@section != ''">
4033
+ <xsl:value-of select="@section"/>
4034
+ <xsl:text> </xsl:text>
4035
+ </xsl:if>
4036
+ <xsl:value-of select="normalize-space(title)"/>
4037
+ </fo:bookmark-title>
4038
+ <xsl:apply-templates mode="bookmark"/>
4039
+ </fo:bookmark>
4040
+ </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
3576
4041
  <xsl:if test="normalize-space() != ''">
3577
4042
  <fo:block xsl:use-attribute-sets="figure-name-style">
3578
-
4043
+
3579
4044
  <xsl:apply-templates/>
3580
4045
  </fo:block>
3581
4046
  </xsl:if>
@@ -3630,7 +4095,7 @@
3630
4095
  <xsl:apply-templates/>
3631
4096
  </xsl:otherwise>
3632
4097
  </xsl:choose>
3633
- </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
4098
+ </xsl:template><xsl:template match="*[local-name() = 'fn']" mode="contents"/><xsl:template match="*[local-name() = 'fn']" mode="bookmarks"/><xsl:template match="*[local-name() = 'fn']" mode="contents_item"/><xsl:template match="*[local-name() = 'tab']" mode="contents_item">
3634
4099
  <xsl:text> </xsl:text>
3635
4100
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
3636
4101
  <xsl:copy>
@@ -4019,9 +4484,14 @@
4019
4484
  <xsl:attribute name="font-weight">bold</xsl:attribute>
4020
4485
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
4021
4486
 
4022
- <xsl:call-template name="getTitle">
4023
- <xsl:with-param name="name" select="'title-source'"/>
4024
- </xsl:call-template>
4487
+
4488
+
4489
+
4490
+ <xsl:call-template name="getTitle">
4491
+ <xsl:with-param name="name" select="'title-source'"/>
4492
+ </xsl:call-template>
4493
+
4494
+
4025
4495
  <xsl:text>: </xsl:text>
4026
4496
  </fo:inline>
4027
4497
 
@@ -4171,9 +4641,12 @@
4171
4641
  </fo:block>
4172
4642
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
4173
4643
  <xsl:variable name="title-deprecated">
4174
- <xsl:call-template name="getTitle">
4175
- <xsl:with-param name="name" select="'title-deprecated'"/>
4176
- </xsl:call-template>
4644
+
4645
+
4646
+ <xsl:call-template name="getTitle">
4647
+ <xsl:with-param name="name" select="'title-deprecated'"/>
4648
+ </xsl:call-template>
4649
+
4177
4650
  </xsl:variable>
4178
4651
  <fo:block xsl:use-attribute-sets="deprecates-style">
4179
4652
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -4220,13 +4693,14 @@
4220
4693
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
4221
4694
  <fo:block>
4222
4695
  <xsl:call-template name="setId"/>
4696
+
4223
4697
  <xsl:apply-templates/>
4224
4698
  </fo:block>
4225
4699
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
4226
4700
  <fo:block id="{@id}">
4227
4701
  <xsl:apply-templates/>
4228
4702
  </fo:block>
4229
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
4703
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
4230
4704
 
4231
4705
  <fo:block id="{@id}">
4232
4706
  <xsl:apply-templates/>
@@ -4245,20 +4719,30 @@
4245
4719
  <!-- 0xA0 to space replacement -->
4246
4720
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
4247
4721
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
4248
- <fo:block-container margin-left="0mm">
4249
- <xsl:if test="parent::*[local-name() = 'note']">
4250
- <xsl:attribute name="margin-left">
4251
- <xsl:choose>
4252
- <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
4253
- <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
4254
- </xsl:choose>
4255
- </xsl:attribute>
4256
-
4257
- </xsl:if>
4258
- <fo:block-container margin-left="0mm">
4259
- <xsl:apply-templates select="." mode="ul_ol"/>
4260
- </fo:block-container>
4261
- </fo:block-container>
4722
+ <xsl:choose>
4723
+ <xsl:when test="parent::*[local-name() = 'note']">
4724
+ <fo:block-container>
4725
+ <xsl:attribute name="margin-left">
4726
+ <xsl:choose>
4727
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
4728
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
4729
+ </xsl:choose>
4730
+ </xsl:attribute>
4731
+
4732
+
4733
+ <fo:block-container margin-left="0mm">
4734
+ <fo:block>
4735
+ <xsl:apply-templates select="." mode="ul_ol"/>
4736
+ </fo:block>
4737
+ </fo:block-container>
4738
+ </fo:block-container>
4739
+ </xsl:when>
4740
+ <xsl:otherwise>
4741
+ <fo:block>
4742
+ <xsl:apply-templates select="." mode="ul_ol"/>
4743
+ </fo:block>
4744
+ </xsl:otherwise>
4745
+ </xsl:choose>
4262
4746
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
4263
4747
  <!-- <row>
4264
4748
  <date>05-07-2013</date>
@@ -4569,6 +5053,7 @@
4569
5053
  <dc:title>
4570
5054
  <xsl:variable name="title">
4571
5055
 
5056
+
4572
5057
 
4573
5058
  <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = 'en']"/>
4574
5059
 
@@ -4587,6 +5072,7 @@
4587
5072
  <dc:creator>
4588
5073
 
4589
5074
 
5075
+
4590
5076
  </dc:creator>
4591
5077
  <dc:description>
4592
5078
  <xsl:variable name="abstract">
@@ -4596,6 +5082,7 @@
4596
5082
 
4597
5083
  <xsl:copy-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'abstract']//text()"/>
4598
5084
 
5085
+
4599
5086
  </xsl:variable>
4600
5087
  <xsl:value-of select="normalize-space($abstract)"/>
4601
5088
  </dc:description>
@@ -4667,13 +5154,22 @@
4667
5154
  </xsl:template><xsl:template name="split">
4668
5155
  <xsl:param name="pText" select="."/>
4669
5156
  <xsl:param name="sep" select="','"/>
5157
+ <xsl:param name="normalize-space" select="'true'"/>
4670
5158
  <xsl:if test="string-length($pText) &gt;0">
4671
5159
  <item>
4672
- <xsl:value-of select="normalize-space(substring-before(concat($pText, ','), $sep))"/>
5160
+ <xsl:choose>
5161
+ <xsl:when test="$normalize-space = 'true'">
5162
+ <xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
5163
+ </xsl:when>
5164
+ <xsl:otherwise>
5165
+ <xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
5166
+ </xsl:otherwise>
5167
+ </xsl:choose>
4673
5168
  </item>
4674
5169
  <xsl:call-template name="split">
4675
5170
  <xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
4676
5171
  <xsl:with-param name="sep" select="$sep"/>
5172
+ <xsl:with-param name="normalize-space" select="$normalize-space"/>
4677
5173
  </xsl:call-template>
4678
5174
  </xsl:if>
4679
5175
  </xsl:template><xsl:template name="getDocumentId">
@@ -4696,6 +5192,7 @@
4696
5192
 
4697
5193
 
4698
5194
 
5195
+
4699
5196
  </xsl:variable>
4700
5197
  <xsl:if test="$documentNS != $XSLNS">
4701
5198
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -4721,4 +5218,40 @@
4721
5218
  </xsl:otherwise>
4722
5219
  </xsl:choose>
4723
5220
  </xsl:attribute>
5221
+ </xsl:template><xsl:template name="add-letter-spacing">
5222
+ <xsl:param name="text"/>
5223
+ <xsl:param name="letter-spacing" select="'0.15'"/>
5224
+ <xsl:if test="string-length($text) &gt; 0">
5225
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
5226
+ <fo:inline padding-right="{$letter-spacing}mm">
5227
+ <xsl:if test="$char = '®'">
5228
+ <xsl:attribute name="font-size">58%</xsl:attribute>
5229
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
5230
+ </xsl:if>
5231
+ <xsl:value-of select="$char"/>
5232
+ </fo:inline>
5233
+ <xsl:call-template name="add-letter-spacing">
5234
+ <xsl:with-param name="text" select="substring($text, 2)"/>
5235
+ <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
5236
+ </xsl:call-template>
5237
+ </xsl:if>
5238
+ </xsl:template><xsl:template name="repeat">
5239
+ <xsl:param name="char" select="'*'"/>
5240
+ <xsl:param name="count"/>
5241
+ <xsl:if test="$count &gt; 0">
5242
+ <xsl:value-of select="$char"/>
5243
+ <xsl:call-template name="repeat">
5244
+ <xsl:with-param name="char" select="$char"/>
5245
+ <xsl:with-param name="count" select="$count - 1"/>
5246
+ </xsl:call-template>
5247
+ </xsl:if>
5248
+ </xsl:template><xsl:template name="getLocalizedString">
5249
+ <xsl:param name="key"/>
5250
+
5251
+ <xsl:variable name="curr_lang">
5252
+ <xsl:call-template name="getLang"/>
5253
+ </xsl:variable>
5254
+
5255
+ <xsl:value-of select="/*/*[local-name() = 'localized-strings']/*[local-name() = 'localized-string'][@key = $key and @language = $curr_lang]"/>
5256
+
4724
5257
  </xsl:template></xsl:stylesheet>