metanorma-csa 1.6.1 → 1.6.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d90ee4c2b591b5ec73387e3f6e83e82498161cf8ecc08bc045dafa2b99fa9347
4
- data.tar.gz: ce93ce6f3f8656c4e23ab1fe598d2023d6c7136778ec836b04296adc7d39383e
3
+ metadata.gz: 3167e8f69fcf1788c807e29b0b0bf466372b86a587e349db7ed2b9581593b919
4
+ data.tar.gz: c47618d4156d5d68d37a033260b5d3f13c4dd1ef7ad5165eeb20b8b25be9cbc8
5
5
  SHA512:
6
- metadata.gz: f6b8e0b818eb09fe1173cfda224988d025a0044a7c65c8533355f5432e4ee369363da30dfd413582c19d6492d59e4d82dec3d60427d858bce7546eb27bf8413b
7
- data.tar.gz: '0905c8c9e0556e9373fa36b4f108945a72e004429b7031c67fd1938ce6403c15e7436a76014e0c255ef0c984b8cb2ca4f5e106fcf42ffb26069562091c777d86'
6
+ metadata.gz: b9fd562124e26c29ce6df45597cda035dc3f4042efd1af231c3020d9c643c09702ac889b4c64fe782c5519839ebffe13ae6769e6cbd1093e2d1144f06730fc1d
7
+ data.tar.gz: 2478c8a52b6663cc90e82f7b51d7f85b40546eebc432fd6c990e20859a7cec3fcc9f8b73b2705b98f5c2337687541088d2e6e7db4bdbae19360d6ae8271697f6
@@ -0,0 +1,44 @@
1
+ # Auto-generated by Cimas: Do not edit it manually!
2
+ # See https://github.com/metanorma/cimas
3
+ name: rake
4
+
5
+ on:
6
+ push:
7
+ branches: [ master ]
8
+ pull_request:
9
+
10
+ jobs:
11
+ rake:
12
+ name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
13
+ runs-on: ${{ matrix.os }}
14
+ continue-on-error: ${{ matrix.experimental }}
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ ruby: [ '2.6', '2.5', '2.4' ]
19
+ os: [ ubuntu-latest, windows-latest, macos-latest ]
20
+ experimental: [ false ]
21
+ include:
22
+ - ruby: '2.7'
23
+ os: 'ubuntu-latest'
24
+ experimental: true
25
+ - ruby: '2.7'
26
+ os: 'windows-latest'
27
+ experimental: true
28
+ - ruby: '2.7'
29
+ os: 'macos-latest'
30
+ experimental: true
31
+ steps:
32
+ - uses: actions/checkout@master
33
+
34
+ - name: Use Ruby
35
+ uses: ruby/setup-ruby@v1
36
+ with:
37
+ ruby-version: ${{ matrix.ruby }}
38
+ bundler-cache: true
39
+
40
+ - name: Update gems
41
+ run: bundle install --jobs 4 --retry 3
42
+
43
+ - name: Run specs
44
+ run: bundle exec rake
@@ -402,6 +402,16 @@
402
402
  </choice>
403
403
  </attribute>
404
404
  </optional>
405
+ <optional>
406
+ <attribute name="valign">
407
+ <choice>
408
+ <value>top</value>
409
+ <value>middle</value>
410
+ <value>bottom</value>
411
+ <value>baseline</value>
412
+ </choice>
413
+ </attribute>
414
+ </optional>
405
415
  <choice>
406
416
  <zeroOrMore>
407
417
  <ref name="TextElement"/>
@@ -429,6 +439,16 @@
429
439
  </choice>
430
440
  </attribute>
431
441
  </optional>
442
+ <optional>
443
+ <attribute name="valign">
444
+ <choice>
445
+ <value>top</value>
446
+ <value>middle</value>
447
+ <value>bottom</value>
448
+ <value>baseline</value>
449
+ </choice>
450
+ </attribute>
451
+ </optional>
432
452
  <choice>
433
453
  <zeroOrMore>
434
454
  <ref name="TextElement"/>
@@ -998,6 +1018,9 @@
998
1018
  <value>alphabet_upper</value>
999
1019
  </choice>
1000
1020
  </attribute>
1021
+ <optional>
1022
+ <attribute name="start"/>
1023
+ </optional>
1001
1024
  <oneOrMore>
1002
1025
  <ref name="li"/>
1003
1026
  </oneOrMore>
@@ -7,6 +7,7 @@
7
7
 
8
8
  {% if unpublished %}
9
9
  <license-statement>
10
+ <clause>
10
11
  <title>Warning for Drafts</title>
11
12
 
12
13
  <p>This document is not a CSA Standard. It is distributed for review and
@@ -15,6 +16,7 @@
15
16
  comments, notification of any relevant patent rights of which they are aware
16
17
  and to provide supporting documentation.
17
18
  </p>
19
+ </clause>
18
20
  </license-statement>
19
21
  {% endif %}
20
22
 
@@ -26,7 +26,11 @@ module Asciidoctor
26
26
  "Cloud Security Alliance"
27
27
  end
28
28
 
29
- def personal_author(node, xml)
29
+ def personal_role(node, c, suffix)
30
+ role = node.attr("role#{suffix}")&.downcase || "full author"
31
+ c.role **{ type: role == "editor" ? "editor" : "author" } do |r|
32
+ r.description role.strip.gsub(/\s/, "-")
33
+ end
30
34
  end
31
35
 
32
36
  def metadata_committee(node, xml)
@@ -61,7 +65,7 @@ module Asciidoctor
61
65
  end
62
66
 
63
67
  def doctype(node)
64
- d = node.attr('doctype')
68
+ d = super
65
69
  unless %w{guidance proposal standard report whitepaper charter policy
66
70
  glossary case-study}.include? d
67
71
  @log.add("Document Attributes", nil,
@@ -102,12 +106,16 @@ module Asciidoctor
102
106
  def html_converter(node)
103
107
  IsoDoc::Csa::HtmlConvert.new(html_extract_attributes(node))
104
108
  end
109
+
105
110
  def pdf_converter(node)
111
+ return if node.attr("no-pdf")
106
112
  IsoDoc::Csa::PdfConvert.new(html_extract_attributes(node))
107
113
  end
114
+
108
115
  def doc_converter(node)
109
116
  IsoDoc::Csa::WordConvert.new(doc_extract_attributes(node))
110
117
  end
118
+
111
119
  def presentation_xml_converter(node)
112
120
  IsoDoc::Csa::PresentationXMLConvert.new(doc_extract_attributes(node))
113
121
  end
@@ -95,6 +95,13 @@
95
95
  </include>
96
96
  <define name="csand-standard">
97
97
  <element name="csa-standard">
98
+ <attribute name="version"/>
99
+ <attribute name="type">
100
+ <choice>
101
+ <value>semantic</value>
102
+ <value>presentation</value>
103
+ </choice>
104
+ </attribute>
98
105
  <ref name="bibdata"/>
99
106
  <zeroOrMore>
100
107
  <ref name="termdocsource"/>
@@ -43,7 +43,9 @@
43
43
  <define name="xref">
44
44
  <element name="xref">
45
45
  <attribute name="target">
46
- <data type="IDREF"/>
46
+ <data type="string">
47
+ <param name="pattern">\i\c*|\c+#\c+</param>
48
+ </data>
47
49
  </attribute>
48
50
  <optional>
49
51
  <attribute name="type">
@@ -61,6 +63,11 @@
61
63
  </choice>
62
64
  </attribute>
63
65
  </optional>
66
+ <optional>
67
+ <attribute name="droploc">
68
+ <data type="boolean"/>
69
+ </attribute>
70
+ </optional>
64
71
  <text/>
65
72
  </element>
66
73
  </define>
@@ -578,6 +585,8 @@
578
585
  <ref name="ol"/>
579
586
  <ref name="dl"/>
580
587
  <ref name="formula"/>
588
+ <ref name="quote"/>
589
+ <ref name="sourcecode"/>
581
590
  </choice>
582
591
  </oneOrMore>
583
592
  </element>
@@ -661,6 +670,16 @@
661
670
  </choice>
662
671
  </attribute>
663
672
  </optional>
673
+ <optional>
674
+ <attribute name="valign">
675
+ <choice>
676
+ <value>top</value>
677
+ <value>middle</value>
678
+ <value>bottom</value>
679
+ <value>baseline</value>
680
+ </choice>
681
+ </attribute>
682
+ </optional>
664
683
  <choice>
665
684
  <zeroOrMore>
666
685
  <choice>
@@ -697,6 +716,16 @@
697
716
  </choice>
698
717
  </attribute>
699
718
  </optional>
719
+ <optional>
720
+ <attribute name="valign">
721
+ <choice>
722
+ <value>top</value>
723
+ <value>middle</value>
724
+ <value>bottom</value>
725
+ <value>baseline</value>
726
+ </choice>
727
+ </attribute>
728
+ </optional>
700
729
  <choice>
701
730
  <zeroOrMore>
702
731
  <choice>
@@ -834,6 +863,13 @@
834
863
  </define>
835
864
  <define name="standard-document">
836
865
  <element name="standard-document">
866
+ <attribute name="version"/>
867
+ <attribute name="type">
868
+ <choice>
869
+ <value>semantic</value>
870
+ <value>presentation</value>
871
+ </choice>
872
+ </attribute>
837
873
  <ref name="bibdata"/>
838
874
  <optional>
839
875
  <ref name="boilerplate"/>
@@ -855,7 +891,7 @@
855
891
  <oneOrMore>
856
892
  <choice>
857
893
  <ref name="content"/>
858
- <ref name="preface_abstract"/>
894
+ <ref name="abstract"/>
859
895
  <ref name="foreword"/>
860
896
  <ref name="introduction"/>
861
897
  <ref name="acknowledgements"/>
@@ -1049,14 +1085,17 @@
1049
1085
  <ref name="section-title"/>
1050
1086
  </optional>
1051
1087
  <group>
1052
- <group>
1053
- <zeroOrMore>
1054
- <ref name="BasicBlock"/>
1055
- </zeroOrMore>
1056
- <zeroOrMore>
1057
- <ref name="note"/>
1058
- </zeroOrMore>
1059
- </group>
1088
+ <choice>
1089
+ <group>
1090
+ <zeroOrMore>
1091
+ <ref name="BasicBlock"/>
1092
+ </zeroOrMore>
1093
+ <zeroOrMore>
1094
+ <ref name="note"/>
1095
+ </zeroOrMore>
1096
+ </group>
1097
+ <ref name="amend"/>
1098
+ </choice>
1060
1099
  <zeroOrMore>
1061
1100
  <choice>
1062
1101
  <ref name="clause-subsection"/>
@@ -1125,49 +1164,7 @@
1125
1164
  </define>
1126
1165
  <define name="annex">
1127
1166
  <element name="annex">
1128
- <optional>
1129
- <attribute name="id">
1130
- <data type="ID"/>
1131
- </attribute>
1132
- </optional>
1133
- <optional>
1134
- <attribute name="language"/>
1135
- </optional>
1136
- <optional>
1137
- <attribute name="script"/>
1138
- </optional>
1139
- <optional>
1140
- <attribute name="inline-header">
1141
- <data type="boolean"/>
1142
- </attribute>
1143
- </optional>
1144
- <attribute name="obligation">
1145
- <choice>
1146
- <value>normative</value>
1147
- <value>informative</value>
1148
- </choice>
1149
- </attribute>
1150
- <optional>
1151
- <ref name="section-title"/>
1152
- </optional>
1153
- <group>
1154
- <group>
1155
- <zeroOrMore>
1156
- <ref name="BasicBlock"/>
1157
- </zeroOrMore>
1158
- <zeroOrMore>
1159
- <ref name="note"/>
1160
- </zeroOrMore>
1161
- </group>
1162
- <zeroOrMore>
1163
- <choice>
1164
- <ref name="annex-subsection"/>
1165
- <ref name="terms"/>
1166
- <ref name="definitions"/>
1167
- <ref name="references"/>
1168
- </choice>
1169
- </zeroOrMore>
1170
- </group>
1167
+ <ref name="Annex-Section"/>
1171
1168
  </element>
1172
1169
  </define>
1173
1170
  <define name="terms">
@@ -1453,11 +1450,6 @@
1453
1450
  </optional>
1454
1451
  </element>
1455
1452
  </define>
1456
- <define name="preface_abstract">
1457
- <element name="abstract">
1458
- <ref name="Basic-Section"/>
1459
- </element>
1460
- </define>
1461
1453
  <define name="term-clause">
1462
1454
  <element name="clause">
1463
1455
  <optional>
@@ -1507,4 +1499,79 @@
1507
1499
  <ref name="CitationType"/>
1508
1500
  </element>
1509
1501
  </define>
1502
+ <define name="amend">
1503
+ <element name="amend">
1504
+ <optional>
1505
+ <attribute name="id">
1506
+ <data type="ID"/>
1507
+ </attribute>
1508
+ </optional>
1509
+ <attribute name="change">
1510
+ <choice>
1511
+ <value>add</value>
1512
+ <value>modify</value>
1513
+ <value>delete</value>
1514
+ </choice>
1515
+ </attribute>
1516
+ <optional>
1517
+ <attribute name="path"/>
1518
+ </optional>
1519
+ <optional>
1520
+ <attribute name="path_end"/>
1521
+ </optional>
1522
+ <optional>
1523
+ <attribute name="title"/>
1524
+ </optional>
1525
+ <optional>
1526
+ <element name="location">
1527
+ <zeroOrMore>
1528
+ <ref name="locality"/>
1529
+ </zeroOrMore>
1530
+ </element>
1531
+ </optional>
1532
+ <zeroOrMore>
1533
+ <ref name="autonumber"/>
1534
+ </zeroOrMore>
1535
+ <optional>
1536
+ <element name="description">
1537
+ <zeroOrMore>
1538
+ <ref name="BasicBlock"/>
1539
+ </zeroOrMore>
1540
+ </element>
1541
+ </optional>
1542
+ <optional>
1543
+ <element name="newcontent">
1544
+ <zeroOrMore>
1545
+ <ref name="BasicBlock"/>
1546
+ </zeroOrMore>
1547
+ </element>
1548
+ </optional>
1549
+ <optional>
1550
+ <element name="description">
1551
+ <zeroOrMore>
1552
+ <ref name="BasicBlock"/>
1553
+ </zeroOrMore>
1554
+ </element>
1555
+ </optional>
1556
+ </element>
1557
+ </define>
1558
+ <define name="autonumber">
1559
+ <element name="autonumber">
1560
+ <attribute name="type">
1561
+ <choice>
1562
+ <value>requirement</value>
1563
+ <value>recommendation</value>
1564
+ <value>permission</value>
1565
+ <value>table</value>
1566
+ <value>figure</value>
1567
+ <value>admonition</value>
1568
+ <value>formula</value>
1569
+ <value>sourcecode</value>
1570
+ <value>example</value>
1571
+ <value>note</value>
1572
+ </choice>
1573
+ </attribute>
1574
+ <text/>
1575
+ </element>
1576
+ </define>
1510
1577
  </grammar>
@@ -8,6 +8,7 @@ module Asciidoctor
8
8
 
9
9
  def bibdata_validate(doc)
10
10
  stage_validate(doc)
11
+ role_validate(doc)
11
12
  end
12
13
 
13
14
  def stage_validate(xmldoc)
@@ -17,6 +18,16 @@ module Asciidoctor
17
18
  @log.add("Document Attributes", nil,
18
19
  "#{stage} is not a recognised status")
19
20
  end
21
+
22
+ def role_validate(doc)
23
+ doc&.xpath("//bibdata/contributor/role[description]")&.each do |r|
24
+ r["type"] == "author" or next
25
+ role = r.at("./description").text
26
+ %w{full-author contributor staff reviewer}.include?(role) or
27
+ @log.add("Document Attributes", nil,
28
+ "#{role} is not a recognised role")
29
+ end
30
+ end
20
31
  end
21
32
  end
22
33
  end
@@ -33,7 +33,7 @@
33
33
 
34
34
  <xsl:template match="/">
35
35
  <xsl:call-template name="namespaceCheck"/>
36
- <fo:root font-family="AzoSans, STIX2Math" font-size="10pt" xml:lang="{$lang}">
36
+ <fo:root font-family="AzoSans, STIX Two Math" font-size="10pt" xml:lang="{$lang}">
37
37
  <fo:layout-master-set>
38
38
  <!-- Cover page -->
39
39
  <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
@@ -54,6 +54,10 @@
54
54
 
55
55
  <xsl:call-template name="addPDFUAmeta"/>
56
56
 
57
+ <xsl:call-template name="addBookmarks">
58
+ <xsl:with-param name="contents" select="$contents"/>
59
+ </xsl:call-template>
60
+
57
61
  <!-- Cover Page -->
58
62
  <fo:page-sequence master-reference="cover-page" force-page-count="no-force">
59
63
  <fo:static-content flow-name="xsl-footnote-separator">
@@ -134,16 +138,57 @@
134
138
  </xsl:variable>
135
139
  <fo:block font-size="26pt" margin-bottom="18pt"><xsl:value-of select="$title-acknowledgements"/></fo:block>
136
140
 
137
- <fo:block font-size="18pt" font-weight="bold" margin-bottom="12pt" color="rgb(3, 115, 200)">Lead Authors:</fo:block>
138
- <fo:block>Ronald Tse</fo:block>
139
- <fo:block font-size="18pt" font-weight="bold" margin-top="16pt" margin-bottom="12pt" color="rgb(3, 115, 200)">Contributors:</fo:block>
140
- <fo:block>Michael Roza</fo:block>
141
- <fo:block>Sean Heide</fo:block>
142
- <fo:block>David Lewis</fo:block>
143
- <fo:block>Eric Gauthier</fo:block>
144
- <fo:block font-size="18pt" font-weight="bold" margin-top="16pt" margin-bottom="12pt" color="rgb(3, 115, 200)">CSA Staff:</fo:block>
145
- <fo:block>Sean Heide</fo:block>
141
+ <xsl:variable name="persons">
142
+ <xsl:for-each select="/csa:csa-standard/csa:bibdata/csa:contributor[csa:person]">
143
+ <contributor>
144
+ <xsl:attribute name="type">
145
+ <xsl:choose>
146
+ <xsl:when test="csa:role/@type='author'">
147
+ <xsl:value-of select="csa:role/csa:description"/>
148
+ </xsl:when>
149
+ <xsl:otherwise>
150
+ <xsl:value-of select="csa:role/@type"/>
151
+ </xsl:otherwise>
152
+ </xsl:choose>
153
+ </xsl:attribute>
154
+ <xsl:value-of select="csa:person/csa:name/csa:completename"/>
155
+ </contributor>
156
+ </xsl:for-each>
157
+ </xsl:variable>
158
+
159
+ <xsl:variable name="contributors">
160
+ <contributor title="Author" pluraltitle="Authors">full-author</contributor>
161
+ <contributor title="Contributor" pluraltitle="Contributors">contributor</contributor>
162
+ <contributor title="Staff" pluraltitle="Staff">staff</contributor>
163
+ <contributor title="Reviewer" pluraltitle="Reviewers">reviewer</contributor>
164
+ <contributor title="Editor" pluraltitle="Editors">editor</contributor>
165
+ </xsl:variable>
166
+
167
+ <!-- The sequence of author types is: full-author (omitted), Contributor, Staff, Reviewer -->
168
+
169
+ <xsl:for-each select="xalan:nodeset($contributors)/*">
170
+ <xsl:variable name="type" select="."/>
171
+ <xsl:variable name="title" select="@title"/>
172
+ <xsl:variable name="pluraltitle" select="@pluraltitle"/>
173
+ <xsl:for-each select="xalan:nodeset($persons)/contributor[@type = $type]">
174
+ <xsl:if test="position() = 1">
175
+ <fo:block font-size="18pt" font-weight="bold" margin-top="16pt" margin-bottom="12pt" color="rgb(3, 115, 200)">
176
+ <xsl:choose>
177
+ <xsl:when test="following-sibling::contributor[@type = $type]">
178
+ <xsl:value-of select="$pluraltitle"/>
179
+ </xsl:when>
180
+ <xsl:otherwise>
181
+ <xsl:value-of select="$title"/>
182
+ </xsl:otherwise>
183
+ </xsl:choose>
184
+ <xsl:text>:</xsl:text>
185
+ </fo:block>
186
+ </xsl:if>
187
+ <fo:block><xsl:value-of select="."/></fo:block>
188
+ </xsl:for-each>
189
+ </xsl:for-each>
146
190
 
191
+
147
192
  <fo:block break-after="page"/>
148
193
 
149
194
  <fo:block-container font-size="12pt" line-height="170%" color="rgb(7, 72, 156)">
@@ -155,7 +200,7 @@
155
200
  <fo:block font-size="26pt" color="black" margin-top="2pt" margin-bottom="30pt"><xsl:value-of select="$title-toc"/></fo:block>
156
201
 
157
202
  <fo:block margin-left="-3mm">
158
- <xsl:for-each select="xalan:nodeset($contents)//item">
203
+ <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
159
204
  <fo:block>
160
205
  <fo:list-block>
161
206
  <xsl:attribute name="provisional-distance-between-starts">
@@ -170,9 +215,9 @@
170
215
  </fo:list-item-label>
171
216
  <fo:list-item-body start-indent="body-start()">
172
217
  <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
173
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{text()}">
218
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
174
219
  <fo:inline padding-right="2mm"><xsl:value-of select="@section"/></fo:inline>
175
- <xsl:apply-templates/>
220
+ <xsl:apply-templates select="title"/>
176
221
  <fo:inline keep-together.within-line="always">
177
222
  <fo:leader leader-pattern="dots"/>
178
223
  <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
@@ -220,17 +265,24 @@
220
265
  <xsl:with-param name="depth" select="csa:title/@depth"/>
221
266
  </xsl:call-template>
222
267
  </xsl:variable>
268
+
269
+
223
270
  <xsl:variable name="display">
224
- <xsl:choose>
225
- <xsl:when test="ancestor-or-self::csa:bibitem">false</xsl:when>
226
- <xsl:when test="ancestor-or-self::csa:term">false</xsl:when>
271
+ <xsl:choose>
227
272
  <xsl:when test="$level &gt;= 3">false</xsl:when>
228
273
  <xsl:otherwise>true</xsl:otherwise>
229
274
  </xsl:choose>
230
275
  </xsl:variable>
231
276
 
232
- <xsl:if test="$display = 'true'">
277
+ <xsl:variable name="skip">
278
+ <xsl:choose>
279
+ <xsl:when test="ancestor-or-self::csa:bibitem">true</xsl:when>
280
+ <xsl:when test="ancestor-or-self::csa:term">true</xsl:when>
281
+ <xsl:otherwise>false</xsl:otherwise>
282
+ </xsl:choose>
283
+ </xsl:variable>
233
284
 
285
+ <xsl:if test="$skip = 'false'">
234
286
  <xsl:variable name="section">
235
287
  <xsl:call-template name="getSection"/>
236
288
  </xsl:variable>
@@ -239,10 +291,12 @@
239
291
  <xsl:call-template name="getName"/>
240
292
  </xsl:variable>
241
293
 
242
- <item id="{@id}" level="{$level}" section="{$section}">
243
- <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
294
+ <item id="{@id}" level="{$level}" section="{$section}" display="{$display}">
295
+ <title>
296
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
297
+ </title>
298
+ <xsl:apply-templates mode="contents"/>
244
299
  </item>
245
- <xsl:apply-templates mode="contents"/>
246
300
  </xsl:if>
247
301
  </xsl:template>
248
302
 
@@ -559,7 +613,7 @@
559
613
 
560
614
 
561
615
 
562
- <xsl:template match="csa:ul | csa:ol">
616
+ <xsl:template match="csa:ul | csa:ol" mode="ul_ol">
563
617
  <xsl:choose>
564
618
  <xsl:when test="not(ancestor::csa:ul) and not(ancestor::csa:ol)">
565
619
  <fo:block-container border-left="0.75mm solid {$color-header-document}" margin-left="1mm" margin-bottom="12pt">
@@ -571,7 +625,13 @@
571
625
  </fo:block-container>
572
626
  </xsl:when>
573
627
  <xsl:otherwise>
574
- <xsl:call-template name="listProcessing"/>
628
+ <fo:block-container>
629
+ <fo:block-container margin-left="7mm">
630
+ <fo:block margin-left="-7mm">
631
+ <xsl:call-template name="listProcessing"/>
632
+ </fo:block>
633
+ </fo:block-container>
634
+ </fo:block-container>
575
635
  </xsl:otherwise>
576
636
  </xsl:choose>
577
637
  </xsl:template>
@@ -829,6 +889,12 @@
829
889
 
830
890
  </title-edition>
831
891
 
892
+ <title-edition lang="fr">
893
+
894
+ <xsl:text>Édition </xsl:text>
895
+
896
+ </title-edition>
897
+
832
898
 
833
899
  <title-toc lang="en">
834
900
 
@@ -837,7 +903,12 @@
837
903
 
838
904
 
839
905
  </title-toc>
840
- <title-toc lang="fr">Sommaire</title-toc>
906
+ <title-toc lang="fr">
907
+
908
+ <xsl:text>Sommaire</xsl:text>
909
+
910
+
911
+ </title-toc>
841
912
 
842
913
  <title-toc lang="zh">Contents</title-toc>
843
914
 
@@ -871,7 +942,12 @@
871
942
 
872
943
 
873
944
 
874
- <title-source lang="en">SOURCE</title-source>
945
+ <title-source lang="en">
946
+
947
+ <xsl:text>SOURCE</xsl:text>
948
+
949
+
950
+ </title-source>
875
951
 
876
952
  <title-keywords lang="en">Keywords</title-keywords>
877
953
 
@@ -914,12 +990,25 @@
914
990
  <title-warning lang="zh">警告</title-warning>
915
991
 
916
992
  <title-amendment lang="en">AMENDMENT</title-amendment>
993
+
994
+ <title-continued lang="en">(continued)</title-continued>
995
+ <title-continued lang="fr">(continué)</title-continued>
996
+
917
997
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
918
998
  <xsl:param name="name"/>
919
- <xsl:variable name="lang">
920
- <xsl:call-template name="getLang"/>
999
+ <xsl:param name="lang"/>
1000
+ <xsl:variable name="lang_">
1001
+ <xsl:choose>
1002
+ <xsl:when test="$lang != ''">
1003
+ <xsl:value-of select="$lang"/>
1004
+ </xsl:when>
1005
+ <xsl:otherwise>
1006
+ <xsl:call-template name="getLang"/>
1007
+ </xsl:otherwise>
1008
+ </xsl:choose>
921
1009
  </xsl:variable>
922
- <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $lang]"/>
1010
+ <xsl:variable name="language" select="normalize-space($lang_)"/>
1011
+ <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
923
1012
  <xsl:choose>
924
1013
  <xsl:when test="normalize-space($title_) != ''">
925
1014
  <xsl:value-of select="$title_"/>
@@ -928,7 +1017,10 @@
928
1017
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
929
1018
  </xsl:otherwise>
930
1019
  </xsl:choose>
931
- </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">
1020
+ </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">
1021
+
1022
+ </xsl:attribute-set><xsl:attribute-set name="link-style">
1023
+
932
1024
 
933
1025
 
934
1026
  <xsl:attribute name="color">rgb(33, 94, 159)</xsl:attribute>
@@ -939,8 +1031,7 @@
939
1031
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
940
1032
 
941
1033
 
942
- <xsl:attribute name="font-family">SourceCodePro</xsl:attribute>
943
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1034
+ <xsl:attribute name="font-family">SourceCodePro</xsl:attribute>
944
1035
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
945
1036
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
946
1037
  <xsl:attribute name="line-height">113%</xsl:attribute>
@@ -951,6 +1042,7 @@
951
1042
 
952
1043
 
953
1044
 
1045
+
954
1046
  </xsl:attribute-set><xsl:attribute-set name="permission-style">
955
1047
 
956
1048
  </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
@@ -997,6 +1089,7 @@
997
1089
 
998
1090
 
999
1091
 
1092
+
1000
1093
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1001
1094
 
1002
1095
  <xsl:attribute name="margin-left">12.5mm</xsl:attribute>
@@ -1023,6 +1116,7 @@
1023
1116
 
1024
1117
 
1025
1118
 
1119
+
1026
1120
 
1027
1121
 
1028
1122
 
@@ -1063,6 +1157,7 @@
1063
1157
 
1064
1158
 
1065
1159
 
1160
+
1066
1161
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1067
1162
 
1068
1163
 
@@ -1075,7 +1170,8 @@
1075
1170
 
1076
1171
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1077
1172
 
1078
-
1173
+
1174
+
1079
1175
  </xsl:attribute-set><xsl:attribute-set name="eref-style">
1080
1176
 
1081
1177
  <xsl:attribute name="color">rgb(33, 94, 159)</xsl:attribute>
@@ -1083,6 +1179,7 @@
1083
1179
 
1084
1180
 
1085
1181
 
1182
+
1086
1183
  </xsl:attribute-set><xsl:attribute-set name="note-style">
1087
1184
 
1088
1185
  <xsl:attribute name="font-size">10pt</xsl:attribute>
@@ -1103,8 +1200,7 @@
1103
1200
 
1104
1201
 
1105
1202
 
1106
-
1107
- </xsl:attribute-set><xsl:attribute-set name="note-name-style">
1203
+ </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">
1108
1204
 
1109
1205
  <xsl:attribute name="padding-right">4mm</xsl:attribute>
1110
1206
 
@@ -1115,7 +1211,9 @@
1115
1211
 
1116
1212
 
1117
1213
 
1118
-
1214
+
1215
+
1216
+
1119
1217
 
1120
1218
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1121
1219
 
@@ -1143,6 +1241,8 @@
1143
1241
 
1144
1242
 
1145
1243
 
1244
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
1245
+
1146
1246
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1147
1247
 
1148
1248
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
@@ -1176,6 +1276,7 @@
1176
1276
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1177
1277
 
1178
1278
 
1279
+
1179
1280
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1180
1281
 
1181
1282
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
@@ -1201,6 +1302,7 @@
1201
1302
 
1202
1303
 
1203
1304
 
1305
+
1204
1306
 
1205
1307
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1206
1308
 
@@ -1225,8 +1327,8 @@
1225
1327
 
1226
1328
  </xsl:attribute-set><xsl:attribute-set name="tt-style">
1227
1329
 
1228
- <xsl:attribute name="font-family">SourceCodePro</xsl:attribute>
1229
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1330
+ <xsl:attribute name="font-family">SourceCodePro</xsl:attribute>
1331
+
1230
1332
 
1231
1333
 
1232
1334
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
@@ -1234,6 +1336,8 @@
1234
1336
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1235
1337
  <xsl:attribute name="text-align">center</xsl:attribute>
1236
1338
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1339
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1340
+
1237
1341
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
1238
1342
 
1239
1343
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -1299,6 +1403,10 @@
1299
1403
 
1300
1404
 
1301
1405
 
1406
+
1407
+
1408
+ <!-- $namespace = 'iso' or -->
1409
+
1302
1410
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1303
1411
 
1304
1412
 
@@ -1332,6 +1440,7 @@
1332
1440
  <xsl:with-param name="table" select="$simple-table"/>
1333
1441
  </xsl:call-template>
1334
1442
  </xsl:variable>
1443
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1335
1444
 
1336
1445
  <!-- <xsl:variable name="colwidths2">
1337
1446
  <xsl:call-template name="calculate-column-widths">
@@ -1353,6 +1462,12 @@
1353
1462
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1354
1463
 
1355
1464
 
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1356
1471
 
1357
1472
 
1358
1473
 
@@ -1360,18 +1475,36 @@
1360
1475
 
1361
1476
 
1362
1477
 
1363
- <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">
1364
-
1365
-
1366
-
1478
+ <xsl:variable name="table_attributes">
1479
+ <attribute name="table-layout">fixed</attribute>
1480
+ <attribute name="width">100%</attribute>
1481
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1482
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1367
1483
 
1368
1484
 
1369
1485
 
1370
1486
 
1487
+
1488
+
1489
+
1371
1490
 
1491
+
1372
1492
 
1493
+ </xsl:variable>
1494
+
1495
+
1496
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
1373
1497
 
1498
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1499
+ <xsl:attribute name="{@name}">
1500
+ <xsl:value-of select="."/>
1501
+ </xsl:attribute>
1502
+ </xsl:for-each>
1374
1503
 
1504
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
1505
+ <xsl:if test="$isNoteOrFnExist = 'true'">
1506
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
1507
+ </xsl:if>
1375
1508
 
1376
1509
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
1377
1510
  <xsl:choose>
@@ -1395,6 +1528,33 @@
1395
1528
 
1396
1529
  </fo:table>
1397
1530
 
1531
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
1532
+ <xsl:call-template name="insertTableFooterInSeparateTable">
1533
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
1534
+ <xsl:with-param name="colwidths" select="$colwidths"/>
1535
+ </xsl:call-template>
1536
+ </xsl:for-each>
1537
+
1538
+ <!-- insert footer as table -->
1539
+ <!-- <fo:table>
1540
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
1541
+ <xsl:attribute name="{@name}">
1542
+ <xsl:value-of select="."/>
1543
+ </xsl:attribute>
1544
+ </xsl:for-each>
1545
+
1546
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1547
+ <xsl:choose>
1548
+ <xsl:when test=". = 1 or . = 0">
1549
+ <fo:table-column column-width="proportional-column-width(2)"/>
1550
+ </xsl:when>
1551
+ <xsl:otherwise>
1552
+ <fo:table-column column-width="proportional-column-width({.})"/>
1553
+ </xsl:otherwise>
1554
+ </xsl:choose>
1555
+ </xsl:for-each>
1556
+ </fo:table>-->
1557
+
1398
1558
 
1399
1559
 
1400
1560
 
@@ -1403,8 +1563,9 @@
1403
1563
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
1404
1564
  <xsl:if test="normalize-space() != ''">
1405
1565
  <fo:block xsl:use-attribute-sets="table-name-style">
1406
- <xsl:apply-templates/>
1407
- </fo:block>
1566
+
1567
+ <xsl:apply-templates/>
1568
+ </fo:block>
1408
1569
  </xsl:if>
1409
1570
  </xsl:template><xsl:template name="calculate-columns-numbers">
1410
1571
  <xsl:param name="table-row"/>
@@ -1458,6 +1619,13 @@
1458
1619
  <xsl:for-each select="xalan:nodeset($table)//tr">
1459
1620
  <xsl:variable name="td_text">
1460
1621
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
1622
+
1623
+ <!-- <xsl:if test="$namespace = 'bipm'">
1624
+ <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
1625
+ <word><xsl:value-of select="normalize-space(.)"/></word>
1626
+ </xsl:for-each>
1627
+ </xsl:if> -->
1628
+
1461
1629
  </xsl:variable>
1462
1630
  <xsl:variable name="words">
1463
1631
  <xsl:variable name="string_with_added_zerospaces">
@@ -1517,13 +1685,31 @@
1517
1685
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
1518
1686
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
1519
1687
  <xsl:value-of select="@target"/>
1688
+ </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
1689
+ <xsl:variable name="math_text" select="normalize-space(.)"/>
1690
+ <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
1520
1691
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
1521
1692
  <xsl:param name="cols-count"/>
1522
1693
  <!-- font-weight="bold" -->
1523
- <fo:table-header>
1694
+ <fo:table-header>
1524
1695
 
1525
1696
  <xsl:apply-templates/>
1526
1697
  </fo:table-header>
1698
+ </xsl:template><xsl:template name="table-header-title">
1699
+ <xsl:param name="cols-count"/>
1700
+ <!-- row for title -->
1701
+ <fo:table-row>
1702
+ <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
1703
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation"/>
1704
+ <xsl:for-each select="ancestor::*[local-name()='table'][1]">
1705
+ <xsl:call-template name="fn_name_display"/>
1706
+ </xsl:for-each>
1707
+ <fo:block text-align="right" font-style="italic">
1708
+ <xsl:text> </xsl:text>
1709
+ <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
1710
+ </fo:block>
1711
+ </fo:table-cell>
1712
+ </fo:table-row>
1527
1713
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
1528
1714
  <fo:table-body>
1529
1715
  <xsl:apply-templates/>
@@ -1531,6 +1717,13 @@
1531
1717
  </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
1532
1718
  <xsl:apply-templates/>
1533
1719
  </xsl:template><xsl:template name="insertTableFooter">
1720
+ <xsl:param name="cols-count"/>
1721
+ <xsl:if test="../*[local-name()='tfoot']">
1722
+ <fo:table-footer>
1723
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
1724
+ </fo:table-footer>
1725
+ </xsl:if>
1726
+ </xsl:template><xsl:template name="insertTableFooter2">
1534
1727
  <xsl:param name="cols-count"/>
1535
1728
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1536
1729
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
@@ -1552,11 +1745,29 @@
1552
1745
  <!-- fn will be processed inside 'note' processing -->
1553
1746
 
1554
1747
 
1748
+
1749
+
1750
+
1751
+
1555
1752
  <!-- except gb -->
1556
1753
 
1557
1754
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1558
1755
 
1559
1756
 
1757
+ <!-- show Note under table in preface (ex. abstract) sections -->
1758
+ <!-- empty, because notes show at page side in main sections -->
1759
+ <!-- <xsl:if test="$namespace = 'bipm'">
1760
+ <xsl:choose>
1761
+ <xsl:when test="ancestor::*[local-name()='preface']">
1762
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1763
+ </xsl:when>
1764
+ <xsl:otherwise>
1765
+ <fo:block/>
1766
+ </xsl:otherwise>
1767
+ </xsl:choose>
1768
+ </xsl:if> -->
1769
+
1770
+
1560
1771
  <!-- horizontal row separator -->
1561
1772
 
1562
1773
 
@@ -1570,6 +1781,88 @@
1570
1781
  </fo:table-footer>
1571
1782
 
1572
1783
  </xsl:if>
1784
+ </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
1785
+ <xsl:param name="table_attributes"/>
1786
+ <xsl:param name="colwidths"/>
1787
+
1788
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1789
+
1790
+ <xsl:if test="$isNoteOrFnExist = 'true'">
1791
+
1792
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
1793
+
1794
+ <fo:table keep-with-previous="always">
1795
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1796
+ <xsl:choose>
1797
+ <xsl:when test="@name = 'border-top'">
1798
+ <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
1799
+ </xsl:when>
1800
+ <xsl:when test="@name = 'border'">
1801
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
1802
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
1803
+ </xsl:when>
1804
+ <xsl:otherwise>
1805
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
1806
+ </xsl:otherwise>
1807
+ </xsl:choose>
1808
+ </xsl:for-each>
1809
+
1810
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1811
+ <xsl:choose>
1812
+ <xsl:when test=". = 1 or . = 0">
1813
+ <fo:table-column column-width="proportional-column-width(2)"/>
1814
+ </xsl:when>
1815
+ <xsl:otherwise>
1816
+ <fo:table-column column-width="proportional-column-width({.})"/>
1817
+ </xsl:otherwise>
1818
+ </xsl:choose>
1819
+ </xsl:for-each>
1820
+
1821
+ <fo:table-body>
1822
+ <fo:table-row>
1823
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
1824
+
1825
+
1826
+
1827
+ <!-- fn will be processed inside 'note' processing -->
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+
1835
+ <!-- except gb -->
1836
+
1837
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1838
+
1839
+
1840
+ <!-- <xsl:if test="$namespace = 'bipm'">
1841
+ <xsl:choose>
1842
+ <xsl:when test="ancestor::*[local-name()='preface']">
1843
+ show Note under table in preface (ex. abstract) sections
1844
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1845
+ </xsl:when>
1846
+ <xsl:otherwise>
1847
+ empty, because notes show at page side in main sections
1848
+ <fo:block/>
1849
+ </xsl:otherwise>
1850
+ </xsl:choose>
1851
+ </xsl:if> -->
1852
+
1853
+
1854
+ <!-- horizontal row separator -->
1855
+
1856
+
1857
+ <!-- fn processing -->
1858
+ <xsl:call-template name="fn_display"/>
1859
+
1860
+ </fo:table-cell>
1861
+ </fo:table-row>
1862
+ </fo:table-body>
1863
+
1864
+ </fo:table>
1865
+ </xsl:if>
1573
1866
  </xsl:template><xsl:template match="*[local-name()='tbody']">
1574
1867
 
1575
1868
  <xsl:variable name="cols-count">
@@ -1587,6 +1880,8 @@
1587
1880
  </xsl:choose>
1588
1881
  </xsl:variable>
1589
1882
 
1883
+
1884
+
1590
1885
  <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
1591
1886
  <xsl:with-param name="cols-count" select="$cols-count"/>
1592
1887
  </xsl:apply-templates>
@@ -1596,6 +1891,8 @@
1596
1891
  </xsl:call-template>
1597
1892
 
1598
1893
  <fo:table-body>
1894
+
1895
+
1599
1896
  <xsl:apply-templates/>
1600
1897
  <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
1601
1898
 
@@ -1619,6 +1916,11 @@
1619
1916
  </xsl:if>
1620
1917
 
1621
1918
 
1919
+
1920
+ <!-- <xsl:if test="$namespace = 'bipm'">
1921
+ <xsl:attribute name="height">8mm</xsl:attribute>
1922
+ </xsl:if> -->
1923
+
1622
1924
  <xsl:apply-templates/>
1623
1925
  </fo:table-row>
1624
1926
  </xsl:template><xsl:template match="*[local-name()='th']">
@@ -1640,6 +1942,8 @@
1640
1942
 
1641
1943
 
1642
1944
 
1945
+
1946
+
1643
1947
  <xsl:if test="@colspan">
1644
1948
  <xsl:attribute name="number-columns-spanned">
1645
1949
  <xsl:value-of select="@colspan"/>
@@ -1650,10 +1954,22 @@
1650
1954
  <xsl:value-of select="@rowspan"/>
1651
1955
  </xsl:attribute>
1652
1956
  </xsl:if>
1957
+ <xsl:call-template name="display-align"/>
1653
1958
  <fo:block>
1654
1959
  <xsl:apply-templates/>
1655
1960
  </fo:block>
1656
1961
  </fo:table-cell>
1962
+ </xsl:template><xsl:template name="display-align">
1963
+ <xsl:if test="@valign">
1964
+ <xsl:attribute name="display-align">
1965
+ <xsl:choose>
1966
+ <xsl:when test="@valign = 'top'">before</xsl:when>
1967
+ <xsl:when test="@valign = 'middle'">center</xsl:when>
1968
+ <xsl:when test="@valign = 'bottom'">after</xsl:when>
1969
+ <xsl:otherwise>before</xsl:otherwise>
1970
+ </xsl:choose>
1971
+ </xsl:attribute>
1972
+ </xsl:if>
1657
1973
  </xsl:template><xsl:template match="*[local-name()='td']">
1658
1974
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
1659
1975
  <xsl:attribute name="text-align">
@@ -1667,7 +1983,9 @@
1667
1983
 
1668
1984
 
1669
1985
 
1670
-
1986
+
1987
+
1988
+
1671
1989
 
1672
1990
 
1673
1991
 
@@ -1683,8 +2001,8 @@
1683
2001
  <xsl:value-of select="@rowspan"/>
1684
2002
  </xsl:attribute>
1685
2003
  </xsl:if>
1686
- <fo:block>
1687
-
2004
+ <xsl:call-template name="display-align"/>
2005
+ <fo:block>
1688
2006
  <xsl:apply-templates/>
1689
2007
  </fo:block>
1690
2008
  </fo:table-cell>
@@ -1696,14 +2014,17 @@
1696
2014
 
1697
2015
 
1698
2016
 
2017
+
2018
+
1699
2019
  <fo:inline padding-right="2mm">
1700
2020
 
1701
2021
 
1702
2022
 
1703
-
2023
+
1704
2024
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
1705
2025
 
1706
2026
  </fo:inline>
2027
+
1707
2028
  <xsl:apply-templates mode="process"/>
1708
2029
  </fo:block>
1709
2030
 
@@ -1727,6 +2048,7 @@
1727
2048
 
1728
2049
 
1729
2050
 
2051
+
1730
2052
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
1731
2053
 
1732
2054
 
@@ -1734,12 +2056,15 @@
1734
2056
 
1735
2057
 
1736
2058
 
2059
+
1737
2060
  <xsl:value-of select="@reference"/>
1738
2061
 
2062
+
1739
2063
  </fo:inline>
1740
2064
  <fo:inline>
1741
2065
 
1742
- <xsl:apply-templates/>
2066
+ <!-- <xsl:apply-templates /> -->
2067
+ <xsl:copy-of select="./node()"/>
1743
2068
  </fo:inline>
1744
2069
  </fo:block>
1745
2070
  </xsl:if>
@@ -1776,7 +2101,20 @@
1776
2101
  <xsl:variable name="following_dl_colwidths">
1777
2102
  <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
1778
2103
  <xsl:variable name="html-table">
1779
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2104
+ <xsl:variable name="doc_ns">
2105
+
2106
+ </xsl:variable>
2107
+ <xsl:variable name="ns">
2108
+ <xsl:choose>
2109
+ <xsl:when test="normalize-space($doc_ns) != ''">
2110
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2111
+ </xsl:when>
2112
+ <xsl:otherwise>
2113
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2114
+ </xsl:otherwise>
2115
+ </xsl:choose>
2116
+ </xsl:variable>
2117
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
1780
2118
  <xsl:element name="{$ns}:table">
1781
2119
  <xsl:for-each select="*[local-name() = 'dl'][1]">
1782
2120
  <tbody>
@@ -1841,7 +2179,8 @@
1841
2179
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
1842
2180
  </xsl:if>
1843
2181
 
1844
- <xsl:apply-templates/>
2182
+ <!-- <xsl:apply-templates /> -->
2183
+ <xsl:copy-of select="./node()"/>
1845
2184
  </fo:block>
1846
2185
  </fo:table-cell>
1847
2186
  </fo:table-row>
@@ -1859,9 +2198,13 @@
1859
2198
 
1860
2199
 
1861
2200
 
2201
+
2202
+
1862
2203
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
1863
2204
 
2205
+
1864
2206
  <xsl:value-of select="@reference"/>
2207
+
1865
2208
  </fo:basic-link>
1866
2209
  </fo:inline>
1867
2210
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -1869,102 +2212,142 @@
1869
2212
  <xsl:apply-templates/>
1870
2213
  </fo:inline>
1871
2214
  </xsl:template><xsl:template match="*[local-name()='dl']">
1872
- <xsl:variable name="parent" select="local-name(..)"/>
1873
-
1874
- <xsl:variable name="key_iso">
1875
- <!-- and (not(../@class) or ../@class !='pseudocode') -->
1876
- </xsl:variable>
1877
-
1878
- <xsl:choose>
1879
- <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
1880
-
1881
-
1882
- </xsl:when>
1883
- <xsl:when test="$parent = 'formula'"> <!-- a few components -->
1884
- <fo:block margin-bottom="12pt" text-align="left">
1885
-
1886
-
1887
-
1888
-
1889
- <xsl:variable name="title-where">
1890
- <xsl:call-template name="getTitle">
1891
- <xsl:with-param name="name" select="'title-where'"/>
1892
- </xsl:call-template>
1893
- </xsl:variable>
1894
- <xsl:value-of select="$title-where"/>
1895
- </fo:block>
1896
- </xsl:when>
1897
- <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
1898
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
1899
-
1900
-
1901
-
1902
- <xsl:variable name="title-key">
1903
- <xsl:call-template name="getTitle">
1904
- <xsl:with-param name="name" select="'title-key'"/>
1905
- </xsl:call-template>
1906
- </xsl:variable>
1907
- <xsl:value-of select="$title-key"/>
1908
- </fo:block>
1909
- </xsl:when>
1910
- </xsl:choose>
1911
-
1912
- <!-- a few components -->
1913
- <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
1914
- <fo:block>
2215
+ <fo:block-container margin-left="0mm">
2216
+ <xsl:if test="parent::*[local-name() = 'note']">
2217
+ <xsl:attribute name="margin-left">
2218
+ <xsl:choose>
2219
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2220
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2221
+ </xsl:choose>
2222
+ </xsl:attribute>
1915
2223
 
2224
+ </xsl:if>
2225
+ <fo:block-container margin-left="0mm">
2226
+
2227
+ <xsl:variable name="parent" select="local-name(..)"/>
1916
2228
 
2229
+ <xsl:variable name="key_iso">
2230
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
2231
+ </xsl:variable>
1917
2232
 
2233
+ <xsl:choose>
2234
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2235
+
2236
+
2237
+ <fo:block margin-bottom="12pt" text-align="left">
2238
+
2239
+ <xsl:variable name="title-where">
2240
+ <xsl:call-template name="getTitle">
2241
+ <xsl:with-param name="name" select="'title-where'"/>
2242
+ </xsl:call-template>
2243
+ </xsl:variable>
2244
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2245
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
2246
+ <xsl:text/>
2247
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2248
+ </fo:block>
2249
+
2250
+ </xsl:when>
2251
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2252
+ <fo:block margin-bottom="12pt" text-align="left">
2253
+
2254
+
2255
+
2256
+
2257
+ <xsl:variable name="title-where">
2258
+ <xsl:call-template name="getTitle">
2259
+ <xsl:with-param name="name" select="'title-where'"/>
2260
+ </xsl:call-template>
2261
+ </xsl:variable>
2262
+ <xsl:value-of select="$title-where"/>
2263
+ </fo:block>
2264
+ </xsl:when>
2265
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2266
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
2267
+
2268
+
2269
+
2270
+ <xsl:variable name="title-key">
2271
+ <xsl:call-template name="getTitle">
2272
+ <xsl:with-param name="name" select="'title-key'"/>
2273
+ </xsl:call-template>
2274
+ </xsl:variable>
2275
+ <xsl:value-of select="$title-key"/>
2276
+ </fo:block>
2277
+ </xsl:when>
2278
+ </xsl:choose>
1918
2279
 
1919
- <fo:block>
1920
-
1921
-
1922
-
1923
-
1924
- <fo:table width="95%" table-layout="fixed">
2280
+ <!-- a few components -->
2281
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2282
+ <fo:block>
1925
2283
 
1926
- <xsl:choose>
1927
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
1928
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
1929
- </xsl:when>
1930
- <xsl:when test="normalize-space($key_iso) = 'true'">
1931
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2284
+
2285
+
2286
+
2287
+ <fo:block>
2288
+
2289
+
2290
+
2291
+
2292
+ <fo:table width="95%" table-layout="fixed">
1932
2293
 
1933
- </xsl:when>
1934
- </xsl:choose>
1935
- <!-- create virtual html table for dl/[dt and dd] -->
1936
- <xsl:variable name="html-table">
1937
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
1938
- <xsl:element name="{$ns}:table">
1939
- <tbody>
1940
- <xsl:apply-templates mode="dl"/>
1941
- </tbody>
1942
- </xsl:element>
1943
- </xsl:variable>
1944
- <!-- html-table<xsl:copy-of select="$html-table"/> -->
1945
- <xsl:variable name="colwidths">
1946
- <xsl:call-template name="calculate-column-widths">
1947
- <xsl:with-param name="cols-count" select="2"/>
1948
- <xsl:with-param name="table" select="$html-table"/>
1949
- </xsl:call-template>
1950
- </xsl:variable>
1951
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
1952
- <xsl:variable name="maxlength_dt">
1953
- <xsl:call-template name="getMaxLength_dt"/>
1954
- </xsl:variable>
1955
- <xsl:call-template name="setColumnWidth_dl">
1956
- <xsl:with-param name="colwidths" select="$colwidths"/>
1957
- <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
1958
- </xsl:call-template>
1959
- <fo:table-body>
1960
- <xsl:apply-templates>
1961
- <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
1962
- </xsl:apply-templates>
1963
- </fo:table-body>
1964
- </fo:table>
1965
- </fo:block>
1966
- </fo:block>
1967
- </xsl:if>
2294
+ <xsl:choose>
2295
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2296
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2297
+ </xsl:when>
2298
+ <xsl:when test="normalize-space($key_iso) = 'true'">
2299
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2300
+
2301
+ </xsl:when>
2302
+ </xsl:choose>
2303
+ <!-- create virtual html table for dl/[dt and dd] -->
2304
+ <xsl:variable name="html-table">
2305
+ <xsl:variable name="doc_ns">
2306
+
2307
+ </xsl:variable>
2308
+ <xsl:variable name="ns">
2309
+ <xsl:choose>
2310
+ <xsl:when test="normalize-space($doc_ns) != ''">
2311
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2312
+ </xsl:when>
2313
+ <xsl:otherwise>
2314
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2315
+ </xsl:otherwise>
2316
+ </xsl:choose>
2317
+ </xsl:variable>
2318
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2319
+ <xsl:element name="{$ns}:table">
2320
+ <tbody>
2321
+ <xsl:apply-templates mode="dl"/>
2322
+ </tbody>
2323
+ </xsl:element>
2324
+ </xsl:variable>
2325
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
2326
+ <xsl:variable name="colwidths">
2327
+ <xsl:call-template name="calculate-column-widths">
2328
+ <xsl:with-param name="cols-count" select="2"/>
2329
+ <xsl:with-param name="table" select="$html-table"/>
2330
+ </xsl:call-template>
2331
+ </xsl:variable>
2332
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2333
+ <xsl:variable name="maxlength_dt">
2334
+ <xsl:call-template name="getMaxLength_dt"/>
2335
+ </xsl:variable>
2336
+ <xsl:call-template name="setColumnWidth_dl">
2337
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2338
+ <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
2339
+ </xsl:call-template>
2340
+ <fo:table-body>
2341
+ <xsl:apply-templates>
2342
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2343
+ </xsl:apply-templates>
2344
+ </fo:table-body>
2345
+ </fo:table>
2346
+ </fo:block>
2347
+ </fo:block>
2348
+ </xsl:if>
2349
+ </fo:block-container>
2350
+ </fo:block-container>
1968
2351
  </xsl:template><xsl:template name="setColumnWidth_dl">
1969
2352
  <xsl:param name="colwidths"/>
1970
2353
  <xsl:param name="maxlength_dt"/>
@@ -2052,6 +2435,8 @@
2052
2435
  <td>
2053
2436
 
2054
2437
 
2438
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2439
+
2055
2440
  </td>
2056
2441
  </tr>
2057
2442
 
@@ -2059,6 +2444,7 @@
2059
2444
  <xsl:param name="key_iso"/>
2060
2445
 
2061
2446
  <fo:table-row>
2447
+
2062
2448
  <fo:table-cell>
2063
2449
 
2064
2450
  <fo:block margin-top="6pt">
@@ -2073,6 +2459,7 @@
2073
2459
 
2074
2460
 
2075
2461
 
2462
+
2076
2463
  <xsl:apply-templates/>
2077
2464
  <!-- <xsl:if test="$namespace = 'gb'">
2078
2465
  <xsl:if test="ancestor::*[local-name()='formula']">
@@ -2084,12 +2471,36 @@
2084
2471
  <fo:table-cell>
2085
2472
  <fo:block>
2086
2473
 
2474
+ <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2475
+ <xsl:if test="local-name(*[1]) != 'stem'">
2476
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2477
+ </xsl:if>
2478
+ </xsl:if> -->
2087
2479
 
2480
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2088
2481
 
2089
2482
  </fo:block>
2090
2483
  </fo:table-cell>
2091
2484
  </fo:table-row>
2092
-
2485
+ <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2486
+ <xsl:if test="local-name(*[1]) = 'stem'">
2487
+ <fo:table-row>
2488
+ <fo:table-cell>
2489
+ <fo:block margin-top="6pt">
2490
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2491
+ <xsl:attribute name="margin-top">0</xsl:attribute>
2492
+ </xsl:if>
2493
+ <xsl:text>&#xA0;</xsl:text>
2494
+ </fo:block>
2495
+ </fo:table-cell>
2496
+ <fo:table-cell>
2497
+ <fo:block>
2498
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2499
+ </fo:block>
2500
+ </fo:table-cell>
2501
+ </fo:table-row>
2502
+ </xsl:if>
2503
+ </xsl:if> -->
2093
2504
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
2094
2505
  <xsl:apply-templates/>
2095
2506
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
@@ -2114,6 +2525,31 @@
2114
2525
  </fo:inline>
2115
2526
  </xsl:template><xsl:template match="*[local-name()='tt']">
2116
2527
  <fo:inline xsl:use-attribute-sets="tt-style">
2528
+ <xsl:variable name="_font-size">
2529
+ 10
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+ </xsl:variable>
2544
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
2545
+ <xsl:if test="$font-size != ''">
2546
+ <xsl:attribute name="font-size">
2547
+ <xsl:choose>
2548
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
2549
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
2550
+ </xsl:choose>
2551
+ </xsl:attribute>
2552
+ </xsl:if>
2117
2553
  <xsl:apply-templates/>
2118
2554
  </fo:inline>
2119
2555
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -2439,11 +2875,24 @@
2439
2875
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
2440
2876
  <xsl:value-of select="substring($str, 2)"/>
2441
2877
  </xsl:template><xsl:template match="mathml:math">
2442
- <fo:inline font-family="STIX2Math">
2443
- <fo:instream-foreign-object fox:alt-text="Math">
2444
- <xsl:copy-of select="."/>
2445
- </fo:instream-foreign-object>
2878
+ <fo:inline font-family="STIX Two Math"> <!-- -->
2879
+ <xsl:variable name="mathml">
2880
+ <xsl:apply-templates select="." mode="mathml"/>
2881
+ </xsl:variable>
2882
+ <fo:instream-foreign-object fox:alt-text="Math">
2883
+ <!-- <xsl:copy-of select="."/> -->
2884
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
2885
+ </fo:instream-foreign-object>
2446
2886
  </fo:inline>
2887
+ </xsl:template><xsl:template match="@*|node()" mode="mathml">
2888
+ <xsl:copy>
2889
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
2890
+ </xsl:copy>
2891
+ </xsl:template><xsl:template match="mathml:mtext" mode="mathml">
2892
+ <xsl:copy>
2893
+ <!-- replace start and end spaces to non-break space -->
2894
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
2895
+ </xsl:copy>
2447
2896
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
2448
2897
  <xsl:variable name="target">
2449
2898
  <xsl:choose>
@@ -2520,13 +2969,26 @@
2520
2969
  <xsl:apply-templates/>
2521
2970
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
2522
2971
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
2523
-
2972
+
2524
2973
  <xsl:apply-templates/>
2525
2974
  </fo:basic-link>
2526
2975
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
2527
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2528
- <xsl:apply-templates/>
2529
- </fo:block>
2976
+ <fo:block-container margin-left="0mm">
2977
+ <xsl:if test="parent::*[local-name() = 'note']">
2978
+ <xsl:attribute name="margin-left">
2979
+ <xsl:choose>
2980
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2981
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2982
+ </xsl:choose>
2983
+ </xsl:attribute>
2984
+
2985
+ </xsl:if>
2986
+ <fo:block-container margin-left="0mm">
2987
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2988
+ <xsl:apply-templates/>
2989
+ </fo:block>
2990
+ </fo:block-container>
2991
+ </fo:block-container>
2530
2992
  </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
2531
2993
  <fo:inline>
2532
2994
  <xsl:apply-templates/>
@@ -2564,6 +3026,8 @@
2564
3026
 
2565
3027
 
2566
3028
 
3029
+
3030
+
2567
3031
  <fo:inline xsl:use-attribute-sets="note-name-style">
2568
3032
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2569
3033
  </fo:inline>
@@ -2590,7 +3054,9 @@
2590
3054
  </xsl:choose>
2591
3055
  </xsl:template><xsl:template match="*[local-name() = 'termnote']">
2592
3056
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
2593
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3057
+ <fo:inline xsl:use-attribute-sets="termnote-name-style">
3058
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3059
+ </fo:inline>
2594
3060
  <xsl:apply-templates/>
2595
3061
  </fo:block>
2596
3062
  </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name'] | *[local-name() = 'termnote']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']" mode="presentation">
@@ -2685,15 +3151,109 @@
2685
3151
 
2686
3152
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
2687
3153
  </fo:block>
2688
- </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">
3154
+ </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">
2689
3155
  <xsl:apply-templates mode="contents"/>
2690
3156
  <xsl:text> </xsl:text>
2691
- </xsl:template><xsl:template match="text()" mode="contents">
3157
+ </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">
3158
+ <xsl:apply-templates mode="bookmarks"/>
3159
+ <xsl:text> </xsl:text>
3160
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
2692
3161
  <xsl:value-of select="."/>
2693
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
3162
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
3163
+ <xsl:value-of select="."/>
3164
+ </xsl:template><xsl:template match="node()" mode="contents">
3165
+ <xsl:apply-templates mode="contents"/>
3166
+ </xsl:template><xsl:template match="node()" mode="bookmarks">
3167
+ <xsl:apply-templates mode="bookmarks"/>
3168
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
3169
+ <xsl:apply-templates select="."/>
3170
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
3171
+ <xsl:apply-templates mode="bookmarks"/>
3172
+ </xsl:template><xsl:template name="addBookmarks">
3173
+ <xsl:param name="contents"/>
3174
+ <xsl:if test="xalan:nodeset($contents)//item">
3175
+ <fo:bookmark-tree>
3176
+ <xsl:choose>
3177
+ <xsl:when test="xalan:nodeset($contents)/doc">
3178
+ <xsl:choose>
3179
+ <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
3180
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
3181
+ <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
3182
+ <fo:bookmark-title>
3183
+ <xsl:variable name="bookmark-title_">
3184
+ <xsl:call-template name="getLangVersion">
3185
+ <xsl:with-param name="lang" select="@lang"/>
3186
+ </xsl:call-template>
3187
+ </xsl:variable>
3188
+ <xsl:choose>
3189
+ <xsl:when test="normalize-space($bookmark-title_) != ''">
3190
+ <xsl:value-of select="normalize-space($bookmark-title_)"/>
3191
+ </xsl:when>
3192
+ <xsl:otherwise>
3193
+ <xsl:choose>
3194
+ <xsl:when test="@lang = 'en'">English</xsl:when>
3195
+ <xsl:when test="@lang = 'fr'">Français</xsl:when>
3196
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
3197
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
3198
+ </xsl:choose>
3199
+ </xsl:otherwise>
3200
+ </xsl:choose>
3201
+ </fo:bookmark-title>
3202
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
3203
+ </fo:bookmark>
3204
+
3205
+ </xsl:for-each>
3206
+ </xsl:when>
3207
+ <xsl:otherwise>
3208
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
3209
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
3210
+ </xsl:for-each>
3211
+ </xsl:otherwise>
3212
+ </xsl:choose>
3213
+ </xsl:when>
3214
+ <xsl:otherwise>
3215
+ <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
3216
+ </xsl:otherwise>
3217
+ </xsl:choose>
3218
+
3219
+
3220
+
3221
+
3222
+
3223
+
3224
+
3225
+
3226
+ </fo:bookmark-tree>
3227
+ </xsl:if>
3228
+ </xsl:template><xsl:template name="getLangVersion">
3229
+ <xsl:param name="lang"/>
3230
+ <xsl:choose>
3231
+ <xsl:when test="$lang = 'en'">
3232
+
3233
+
3234
+ </xsl:when>
3235
+ <xsl:when test="$lang = 'fr'">
3236
+
3237
+
3238
+ </xsl:when>
3239
+ <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
3240
+ <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
3241
+ </xsl:choose>
3242
+ </xsl:template><xsl:template match="item" mode="bookmark">
3243
+ <fo:bookmark internal-destination="{@id}" starting-state="hide">
3244
+ <fo:bookmark-title>
3245
+ <xsl:if test="@section != ''">
3246
+ <xsl:value-of select="@section"/>
3247
+ <xsl:text> </xsl:text>
3248
+ </xsl:if>
3249
+ <xsl:value-of select="normalize-space(title)"/>
3250
+ </fo:bookmark-title>
3251
+ <xsl:apply-templates mode="bookmark"/>
3252
+ </fo:bookmark>
3253
+ </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">
2694
3254
  <xsl:if test="normalize-space() != ''">
2695
3255
  <fo:block xsl:use-attribute-sets="figure-name-style">
2696
-
3256
+
2697
3257
  <xsl:apply-templates/>
2698
3258
  </fo:block>
2699
3259
  </xsl:if>
@@ -2748,7 +3308,7 @@
2748
3308
  <xsl:apply-templates/>
2749
3309
  </xsl:otherwise>
2750
3310
  </xsl:choose>
2751
- </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">
3311
+ </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">
2752
3312
  <xsl:text> </xsl:text>
2753
3313
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
2754
3314
  <xsl:copy>
@@ -2757,21 +3317,61 @@
2757
3317
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
2758
3318
  <xsl:text> </xsl:text>
2759
3319
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
2760
- <fo:block xsl:use-attribute-sets="sourcecode-style">
2761
- <xsl:apply-templates/>
2762
- </fo:block>
2763
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2764
- </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()">
3320
+
3321
+ <fo:block-container margin-left="0mm">
3322
+ <xsl:if test="parent::*[local-name() = 'note']">
3323
+ <xsl:attribute name="margin-left">
3324
+ <xsl:choose>
3325
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3326
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3327
+ </xsl:choose>
3328
+ </xsl:attribute>
3329
+
3330
+ </xsl:if>
3331
+ <fo:block-container margin-left="0mm">
3332
+
3333
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
3334
+ <xsl:variable name="_font-size">
3335
+ 10
3336
+
3337
+
3338
+
3339
+
3340
+
3341
+
3342
+
3343
+
3344
+
3345
+
3346
+
3347
+
3348
+
3349
+ </xsl:variable>
3350
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
3351
+ <xsl:if test="$font-size != ''">
3352
+ <xsl:attribute name="font-size">
3353
+ <xsl:choose>
3354
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3355
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
3356
+ </xsl:choose>
3357
+ </xsl:attribute>
3358
+ </xsl:if>
3359
+ <xsl:apply-templates/>
3360
+ </fo:block>
3361
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3362
+
3363
+ </fo:block-container>
3364
+ </fo:block-container>
3365
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
2765
3366
  <xsl:variable name="text">
2766
3367
  <xsl:call-template name="add-zero-spaces-equal"/>
2767
3368
  </xsl:variable>
2768
- <xsl:call-template name="add-zero-spaces">
3369
+ <xsl:call-template name="add-zero-spaces-java">
2769
3370
  <xsl:with-param name="text" select="$text"/>
2770
3371
  </xsl:call-template>
2771
3372
  </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
2772
3373
  <xsl:if test="normalize-space() != ''">
2773
- <fo:block xsl:use-attribute-sets="sourcecode-name-style">
2774
-
3374
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
2775
3375
  <xsl:apply-templates/>
2776
3376
  </fo:block>
2777
3377
  </xsl:if>
@@ -2841,22 +3441,30 @@
2841
3441
  </fo:block>
2842
3442
  </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
2843
3443
  <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
3444
+ <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3445
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
3446
+ </xsl:if>
2844
3447
  <fo:block-container margin-left="0mm" margin-right="0mm">
2845
- <fo:table id="{@id}" table-layout="fixed" width="100%" border="0pt solid black">
3448
+ <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
3449
+ <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3450
+ <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
3451
+ </xsl:if>
2846
3452
  <xsl:variable name="simple-table">
2847
3453
  <xsl:call-template name="getSimpleTable"/>
2848
3454
  </xsl:variable>
2849
3455
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
2850
3456
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
2851
- <fo:table-column column-width="35mm"/>
2852
- <fo:table-column column-width="115mm"/>
3457
+ <!-- <fo:table-column column-width="35mm"/>
3458
+ <fo:table-column column-width="115mm"/> -->
3459
+ <fo:table-column column-width="30%"/>
3460
+ <fo:table-column column-width="70%"/>
2853
3461
  </xsl:if>
2854
3462
  <xsl:apply-templates mode="requirement"/>
2855
3463
  </fo:table>
2856
3464
  <!-- fn processing -->
2857
3465
  <xsl:if test=".//*[local-name() = 'fn']">
2858
3466
  <xsl:for-each select="*[local-name() = 'tbody']">
2859
- <fo:block font-size="90%" border-bottom="1.pt solid black">
3467
+ <fo:block font-size="90%" border-bottom="1pt solid black">
2860
3468
  <xsl:call-template name="fn_display"/>
2861
3469
  </fo:block>
2862
3470
  </xsl:for-each>
@@ -2872,17 +3480,27 @@
2872
3480
  <xsl:apply-templates mode="requirement"/>
2873
3481
  </fo:table-body>
2874
3482
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
2875
- <fo:table-row>
3483
+ <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
3484
+ <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
3485
+ <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
3486
+ <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
3487
+ </xsl:if>
3488
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
3489
+ <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
3490
+ </xsl:if>
3491
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
3492
+ <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
3493
+ </xsl:if>
2876
3494
  <xsl:apply-templates mode="requirement"/>
2877
3495
  </fo:table-row>
2878
3496
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
2879
- <fo:table-cell text-align="{@align}">
3497
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
2880
3498
  <xsl:attribute name="text-align">
2881
3499
  <xsl:choose>
2882
3500
  <xsl:when test="@align">
2883
3501
  <xsl:value-of select="@align"/>
2884
3502
  </xsl:when>
2885
- <xsl:otherwise>center</xsl:otherwise>
3503
+ <xsl:otherwise>left</xsl:otherwise>
2886
3504
  </xsl:choose>
2887
3505
  </xsl:attribute>
2888
3506
  <xsl:if test="@colspan">
@@ -2895,22 +3513,27 @@
2895
3513
  <xsl:value-of select="@rowspan"/>
2896
3514
  </xsl:attribute>
2897
3515
  </xsl:if>
3516
+ <xsl:call-template name="display-align"/>
2898
3517
 
2899
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3518
+ <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
2900
3519
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
2901
3520
  <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
2902
3521
  </xsl:if>
2903
3522
  <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
2904
3523
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
2905
3524
  <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
2906
- </xsl:if>
3525
+ </xsl:if> -->
2907
3526
 
2908
3527
  <fo:block>
2909
3528
  <xsl:apply-templates/>
2910
3529
  </fo:block>
2911
3530
  </fo:table-cell>
2912
3531
  </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
2913
- <fo:table-cell text-align="{@align}">
3532
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
3533
+ <xsl:if test="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3534
+ <xsl:attribute name="padding">0mm</xsl:attribute>
3535
+ <xsl:attribute name="padding-left">0mm</xsl:attribute>
3536
+ </xsl:if>
2914
3537
  <xsl:attribute name="text-align">
2915
3538
  <xsl:choose>
2916
3539
  <xsl:when test="@align">
@@ -2919,6 +3542,9 @@
2919
3542
  <xsl:otherwise>left</xsl:otherwise>
2920
3543
  </xsl:choose>
2921
3544
  </xsl:attribute>
3545
+ <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
3546
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3547
+ </xsl:if>
2922
3548
  <xsl:if test="@colspan">
2923
3549
  <xsl:attribute name="number-columns-spanned">
2924
3550
  <xsl:value-of select="@colspan"/>
@@ -2929,25 +3555,27 @@
2929
3555
  <xsl:value-of select="@rowspan"/>
2930
3556
  </xsl:attribute>
2931
3557
  </xsl:if>
3558
+ <xsl:call-template name="display-align"/>
2932
3559
 
2933
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3560
+ <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
2934
3561
  <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
2935
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
2936
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])"> <!-- 2nd line and below -->
3562
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3563
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
2937
3564
  <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
2938
3565
  </xsl:if>
2939
- </xsl:if>
3566
+ </xsl:if> -->
3567
+ <!-- 2nd line and below -->
2940
3568
 
2941
3569
  <fo:block>
2942
3570
  <xsl:apply-templates/>
2943
3571
  </fo:block>
2944
3572
  </fo:table-cell>
2945
3573
  </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
2946
- <fo:block font-size="11pt" font-weight="bold" text-align="center" margin-bottom="4pt">
3574
+ <fo:block font-size="11pt" color="rgb(237, 193, 35)"> <!-- font-weight="bold" margin-bottom="4pt" text-align="center" -->
2947
3575
  <xsl:apply-templates/>
2948
3576
  </fo:block>
2949
- </xsl:template><xsl:template match="*[local-name() = 'p'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
2950
- <fo:block margin-bottom="10pt">
3577
+ </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
3578
+ <fo:block> <!-- margin-bottom="10pt" -->
2951
3579
  <xsl:apply-templates/>
2952
3580
  </fo:block>
2953
3581
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
@@ -2969,12 +3597,13 @@
2969
3597
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2970
3598
 
2971
3599
  <xsl:variable name="element">
2972
- block
3600
+ block
2973
3601
 
3602
+ <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
2974
3603
  </xsl:variable>
2975
3604
 
2976
3605
  <xsl:choose>
2977
- <xsl:when test="normalize-space($element) = 'block'">
3606
+ <xsl:when test="contains(normalize-space($element), 'block')">
2978
3607
  <fo:block xsl:use-attribute-sets="example-body-style">
2979
3608
  <xsl:apply-templates/>
2980
3609
  </fo:block>
@@ -3011,25 +3640,44 @@
3011
3640
  </xsl:otherwise>
3012
3641
  </xsl:choose>
3013
3642
 
3014
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3015
- <fo:block xsl:use-attribute-sets="example-p-style">
3643
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3644
+
3645
+ <xsl:variable name="element">
3646
+ block
3016
3647
 
3017
- <xsl:apply-templates/>
3018
- </fo:block>
3648
+ </xsl:variable>
3649
+ <xsl:choose>
3650
+ <xsl:when test="normalize-space($element) = 'block'">
3651
+ <fo:block xsl:use-attribute-sets="example-p-style">
3652
+
3653
+ <xsl:apply-templates/>
3654
+ </fo:block>
3655
+ </xsl:when>
3656
+ <xsl:otherwise>
3657
+ <fo:inline xsl:use-attribute-sets="example-p-style">
3658
+ <xsl:apply-templates/>
3659
+ </fo:inline>
3660
+ </xsl:otherwise>
3661
+ </xsl:choose>
3019
3662
  </xsl:template><xsl:template match="*[local-name() = 'termsource']">
3020
3663
  <fo:block xsl:use-attribute-sets="termsource-style">
3021
3664
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
3022
3665
  <xsl:variable name="termsource_text">
3023
3666
  <xsl:apply-templates/>
3024
3667
  </xsl:variable>
3668
+
3025
3669
  <xsl:choose>
3026
3670
  <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
3027
3671
  <xsl:apply-templates/>
3028
3672
  </xsl:when>
3029
- <xsl:otherwise>
3030
- <xsl:text>[</xsl:text>
3031
- <xsl:apply-templates/>
3032
- <xsl:text>]</xsl:text>
3673
+ <xsl:otherwise>
3674
+
3675
+ <xsl:text>[</xsl:text>
3676
+
3677
+ <xsl:apply-templates/>
3678
+
3679
+ <xsl:text>]</xsl:text>
3680
+
3033
3681
  </xsl:otherwise>
3034
3682
  </xsl:choose>
3035
3683
  </fo:block>
@@ -3040,10 +3688,13 @@
3040
3688
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
3041
3689
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3042
3690
 
3043
- <xsl:call-template name="getTitle">
3044
- <xsl:with-param name="name" select="'title-source'"/>
3045
- </xsl:call-template>
3046
- <xsl:text>: </xsl:text>
3691
+ <fo:inline>
3692
+
3693
+ <xsl:call-template name="getTitle">
3694
+ <xsl:with-param name="name" select="'title-source'"/>
3695
+ </xsl:call-template>
3696
+ <xsl:text>: </xsl:text>
3697
+ </fo:inline>
3047
3698
 
3048
3699
  <fo:inline xsl:use-attribute-sets="origin-style">
3049
3700
  <xsl:apply-templates/>
@@ -3055,18 +3706,29 @@
3055
3706
  <xsl:if test="normalize-space() != ''">
3056
3707
  <xsl:value-of select="."/>
3057
3708
  </xsl:if>
3058
- </xsl:template><xsl:template match="*[local-name() = 'quote']">
3709
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
3710
+ <fo:block-container margin-left="0mm">
3711
+ <xsl:if test="parent::*[local-name() = 'note']">
3712
+ <xsl:if test="not(ancestor::*[local-name() = 'table'])">
3713
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
3714
+ </xsl:if>
3715
+ </xsl:if>
3716
+
3717
+ <fo:block-container margin-left="0mm">
3059
3718
 
3060
- <fo:block xsl:use-attribute-sets="quote-style">
3061
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3062
- </fo:block>
3063
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3064
- <fo:block xsl:use-attribute-sets="quote-source-style">
3065
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
3066
- <xsl:apply-templates select="*[local-name() = 'author']"/>
3067
- <xsl:apply-templates select="*[local-name() = 'source']"/>
3068
- </fo:block>
3069
- </xsl:if>
3719
+ <fo:block xsl:use-attribute-sets="quote-style">
3720
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3721
+ </fo:block>
3722
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3723
+ <fo:block xsl:use-attribute-sets="quote-source-style">
3724
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
3725
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
3726
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
3727
+ </fo:block>
3728
+ </xsl:if>
3729
+
3730
+ </fo:block-container>
3731
+ </fo:block-container>
3070
3732
  </xsl:template><xsl:template match="*[local-name() = 'source']">
3071
3733
  <xsl:if test="../*[local-name() = 'author']">
3072
3734
  <xsl:text>, </xsl:text>
@@ -3094,6 +3756,7 @@
3094
3756
  <xsl:if test="@type = 'inline'">
3095
3757
 
3096
3758
 
3759
+
3097
3760
  </xsl:if>
3098
3761
 
3099
3762
 
@@ -3126,6 +3789,7 @@
3126
3789
 
3127
3790
 
3128
3791
 
3792
+
3129
3793
  </xsl:variable>
3130
3794
 
3131
3795
  <xsl:variable name="padding-right">
@@ -3221,6 +3885,7 @@
3221
3885
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
3222
3886
  <fo:block>
3223
3887
  <xsl:call-template name="setId"/>
3888
+
3224
3889
  <xsl:apply-templates/>
3225
3890
  </fo:block>
3226
3891
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
@@ -3245,6 +3910,31 @@
3245
3910
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
3246
3911
  <!-- 0xA0 to space replacement -->
3247
3912
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
3913
+ </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
3914
+ <xsl:choose>
3915
+ <xsl:when test="parent::*[local-name() = 'note']">
3916
+ <fo:block-container>
3917
+ <xsl:attribute name="margin-left">
3918
+ <xsl:choose>
3919
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3920
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3921
+ </xsl:choose>
3922
+ </xsl:attribute>
3923
+
3924
+
3925
+ <fo:block-container margin-left="0mm">
3926
+ <fo:block>
3927
+ <xsl:apply-templates select="." mode="ul_ol"/>
3928
+ </fo:block>
3929
+ </fo:block-container>
3930
+ </fo:block-container>
3931
+ </xsl:when>
3932
+ <xsl:otherwise>
3933
+ <fo:block>
3934
+ <xsl:apply-templates select="." mode="ul_ol"/>
3935
+ </fo:block>
3936
+ </xsl:otherwise>
3937
+ </xsl:choose>
3248
3938
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
3249
3939
  <!-- <row>
3250
3940
  <date>05-07-2013</date>
@@ -3276,6 +3966,65 @@
3276
3966
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
3277
3967
  <fo:block><xsl:apply-templates/></fo:block>
3278
3968
  </fo:table-cell>
3969
+ </xsl:template><xsl:template name="processBibitem">
3970
+
3971
+
3972
+
3973
+
3974
+ </xsl:template><xsl:template name="processBibitemDocId">
3975
+ <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
3976
+ <xsl:choose>
3977
+ <xsl:when test="normalize-space($_doc_ident) != ''">
3978
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]/@type"/>
3979
+ <xsl:if test="$type != '' and not(contains($_doc_ident, $type))">
3980
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3981
+ </xsl:if>
3982
+ <xsl:value-of select="$_doc_ident"/>
3983
+ </xsl:when>
3984
+ <xsl:otherwise>
3985
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]/@type"/>
3986
+ <xsl:if test="$type != ''">
3987
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3988
+ </xsl:if>
3989
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
3990
+ </xsl:otherwise>
3991
+ </xsl:choose>
3992
+ </xsl:template><xsl:template name="processPersonalAuthor">
3993
+ <xsl:choose>
3994
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'completename']">
3995
+ <author>
3996
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'completename']"/>
3997
+ </author>
3998
+ </xsl:when>
3999
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'initial']">
4000
+ <author>
4001
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
4002
+ <xsl:text> </xsl:text>
4003
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'initial']" mode="strip"/>
4004
+ </author>
4005
+ </xsl:when>
4006
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'forename']">
4007
+ <author>
4008
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
4009
+ <xsl:text> </xsl:text>
4010
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'forename']" mode="strip"/>
4011
+ </author>
4012
+ </xsl:when>
4013
+ <xsl:otherwise>
4014
+ <xsl:apply-templates/>
4015
+ </xsl:otherwise>
4016
+ </xsl:choose>
4017
+ </xsl:template><xsl:template name="renderDate">
4018
+ <xsl:if test="normalize-space(*[local-name() = 'on']) != ''">
4019
+ <xsl:value-of select="*[local-name() = 'on']"/>
4020
+ </xsl:if>
4021
+ <xsl:if test="normalize-space(*[local-name() = 'from']) != ''">
4022
+ <xsl:value-of select="concat(*[local-name() = 'from'], '–', *[local-name() = 'to'])"/>
4023
+ </xsl:if>
4024
+ </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'initial']/text()" mode="strip">
4025
+ <xsl:value-of select="translate(.,'. ','')"/>
4026
+ </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
4027
+ <xsl:value-of select="substring(.,1,1)"/>
3279
4028
  </xsl:template><xsl:template name="convertDate">
3280
4029
  <xsl:param name="date"/>
3281
4030
  <xsl:param name="format" select="'short'"/>
@@ -3354,6 +4103,7 @@
3354
4103
  <dc:title>
3355
4104
  <xsl:variable name="title">
3356
4105
 
4106
+
3357
4107
 
3358
4108
  <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'title'][@language = 'en']"/>
3359
4109
 
@@ -3372,6 +4122,7 @@
3372
4122
  <dc:creator>
3373
4123
 
3374
4124
 
4125
+
3375
4126
  </dc:creator>
3376
4127
  <dc:description>
3377
4128
  <xsl:variable name="abstract">
@@ -3381,6 +4132,7 @@
3381
4132
 
3382
4133
  <xsl:copy-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'abstract']//text()"/>
3383
4134
 
4135
+
3384
4136
  </xsl:variable>
3385
4137
  <xsl:value-of select="normalize-space($abstract)"/>
3386
4138
  </dc:description>
@@ -3481,6 +4233,7 @@
3481
4233
 
3482
4234
 
3483
4235
 
4236
+
3484
4237
  </xsl:variable>
3485
4238
  <xsl:if test="$documentNS != $XSLNS">
3486
4239
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -3506,4 +4259,21 @@
3506
4259
  </xsl:otherwise>
3507
4260
  </xsl:choose>
3508
4261
  </xsl:attribute>
4262
+ </xsl:template><xsl:template name="add-letter-spacing">
4263
+ <xsl:param name="text"/>
4264
+ <xsl:param name="letter-spacing" select="'0.15'"/>
4265
+ <xsl:if test="string-length($text) &gt; 0">
4266
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
4267
+ <fo:inline padding-right="{$letter-spacing}mm">
4268
+ <xsl:if test="$char = '®'">
4269
+ <xsl:attribute name="font-size">58%</xsl:attribute>
4270
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
4271
+ </xsl:if>
4272
+ <xsl:value-of select="$char"/>
4273
+ </fo:inline>
4274
+ <xsl:call-template name="add-letter-spacing">
4275
+ <xsl:with-param name="text" select="substring($text, 2)"/>
4276
+ <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
4277
+ </xsl:call-template>
4278
+ </xsl:if>
3509
4279
  </xsl:template></xsl:stylesheet>