metanorma-csa 1.6.2 → 1.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ac6472da7e2e0757b0309861efecb8e2e9382301b33a9a728845fbf577d7d0d5
4
- data.tar.gz: '09a9e87bb2f99f74494aeb878c8305fd3a05befa08b529745faf8555168ff3f4'
3
+ metadata.gz: 5f729b4fb0d4b85282f5789f6319789b4acda25e444177569cd079e3ea3b7ddf
4
+ data.tar.gz: 347870c9d9962b4ebbc8c9a4ed1b5a6680daa27e1641a94cd260e67bbc1a6a0e
5
5
  SHA512:
6
- metadata.gz: 2bd573a70988022a22ab5e0d6a509fc1e6e23c1cd9bea69cf41cb34d643e254399035cb8d67ef2af891f42f4aef8d68777d6f18e0c4e9cc2f13304312c8ed7d5
7
- data.tar.gz: 4a5e1aa96f4dc2d2469214b4ea6d68f0344649b10d08e37f8587dd6abd8c72c20b2139d412d2b3a0f6a4a6a2965756567bb79a115e9385c2781a6cb5fd0b8571
6
+ metadata.gz: 43990eb95ef473762909aefb54acf0e364f17d284abaee655b8d417843b011b0601f4f5882788dbe79bb70e64ffef20093e9da8cfc63ce9bc150c90198a4aea8
7
+ data.tar.gz: 6ae3d574cc8a299f60474f196e26bd7a10e07d5d89e1d4ca37f342d1d6ccd021e53d75086bcd371904139a0b24bf17d2cc901540d81237b710466697dbea1976
@@ -158,7 +158,17 @@
158
158
  <data type="ID"/>
159
159
  </attribute>
160
160
  <oneOrMore>
161
- <ref name="paragraph"/>
161
+ <choice>
162
+ <ref name="formula"/>
163
+ <ref name="ul"/>
164
+ <ref name="ol"/>
165
+ <ref name="dl"/>
166
+ <ref name="quote"/>
167
+ <ref name="sourcecode"/>
168
+ <ref name="paragraph"/>
169
+ <ref name="table"/>
170
+ <ref name="figure"/>
171
+ </choice>
162
172
  </oneOrMore>
163
173
  </element>
164
174
  </define>
@@ -402,6 +412,16 @@
402
412
  </choice>
403
413
  </attribute>
404
414
  </optional>
415
+ <optional>
416
+ <attribute name="valign">
417
+ <choice>
418
+ <value>top</value>
419
+ <value>middle</value>
420
+ <value>bottom</value>
421
+ <value>baseline</value>
422
+ </choice>
423
+ </attribute>
424
+ </optional>
405
425
  <choice>
406
426
  <zeroOrMore>
407
427
  <ref name="TextElement"/>
@@ -429,6 +449,16 @@
429
449
  </choice>
430
450
  </attribute>
431
451
  </optional>
452
+ <optional>
453
+ <attribute name="valign">
454
+ <choice>
455
+ <value>top</value>
456
+ <value>middle</value>
457
+ <value>bottom</value>
458
+ <value>baseline</value>
459
+ </choice>
460
+ </attribute>
461
+ </optional>
432
462
  <choice>
433
463
  <zeroOrMore>
434
464
  <ref name="TextElement"/>
@@ -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)
@@ -581,6 +581,8 @@
581
581
  <ref name="ol"/>
582
582
  <ref name="dl"/>
583
583
  <ref name="formula"/>
584
+ <ref name="quote"/>
585
+ <ref name="sourcecode"/>
584
586
  </choice>
585
587
  </oneOrMore>
586
588
  </element>
@@ -664,6 +666,16 @@
664
666
  </choice>
665
667
  </attribute>
666
668
  </optional>
669
+ <optional>
670
+ <attribute name="valign">
671
+ <choice>
672
+ <value>top</value>
673
+ <value>middle</value>
674
+ <value>bottom</value>
675
+ <value>baseline</value>
676
+ </choice>
677
+ </attribute>
678
+ </optional>
667
679
  <choice>
668
680
  <zeroOrMore>
669
681
  <choice>
@@ -700,6 +712,16 @@
700
712
  </choice>
701
713
  </attribute>
702
714
  </optional>
715
+ <optional>
716
+ <attribute name="valign">
717
+ <choice>
718
+ <value>top</value>
719
+ <value>middle</value>
720
+ <value>bottom</value>
721
+ <value>baseline</value>
722
+ </choice>
723
+ </attribute>
724
+ </optional>
703
725
  <choice>
704
726
  <zeroOrMore>
705
727
  <choice>
@@ -1052,14 +1074,17 @@
1052
1074
  <ref name="section-title"/>
1053
1075
  </optional>
1054
1076
  <group>
1055
- <group>
1056
- <zeroOrMore>
1057
- <ref name="BasicBlock"/>
1058
- </zeroOrMore>
1059
- <zeroOrMore>
1060
- <ref name="note"/>
1061
- </zeroOrMore>
1062
- </group>
1077
+ <choice>
1078
+ <group>
1079
+ <zeroOrMore>
1080
+ <ref name="BasicBlock"/>
1081
+ </zeroOrMore>
1082
+ <zeroOrMore>
1083
+ <ref name="note"/>
1084
+ </zeroOrMore>
1085
+ </group>
1086
+ <ref name="amend"/>
1087
+ </choice>
1063
1088
  <zeroOrMore>
1064
1089
  <choice>
1065
1090
  <ref name="clause-subsection"/>
@@ -1510,4 +1535,79 @@
1510
1535
  <ref name="CitationType"/>
1511
1536
  </element>
1512
1537
  </define>
1538
+ <define name="amend">
1539
+ <element name="amend">
1540
+ <optional>
1541
+ <attribute name="id">
1542
+ <data type="ID"/>
1543
+ </attribute>
1544
+ </optional>
1545
+ <attribute name="change">
1546
+ <choice>
1547
+ <value>add</value>
1548
+ <value>modify</value>
1549
+ <value>delete</value>
1550
+ </choice>
1551
+ </attribute>
1552
+ <optional>
1553
+ <attribute name="path"/>
1554
+ </optional>
1555
+ <optional>
1556
+ <attribute name="path_end"/>
1557
+ </optional>
1558
+ <optional>
1559
+ <attribute name="title"/>
1560
+ </optional>
1561
+ <optional>
1562
+ <element name="location">
1563
+ <zeroOrMore>
1564
+ <ref name="locality"/>
1565
+ </zeroOrMore>
1566
+ </element>
1567
+ </optional>
1568
+ <zeroOrMore>
1569
+ <ref name="autonumber"/>
1570
+ </zeroOrMore>
1571
+ <optional>
1572
+ <element name="description">
1573
+ <zeroOrMore>
1574
+ <ref name="BasicBlock"/>
1575
+ </zeroOrMore>
1576
+ </element>
1577
+ </optional>
1578
+ <optional>
1579
+ <element name="newcontent">
1580
+ <zeroOrMore>
1581
+ <ref name="BasicBlock"/>
1582
+ </zeroOrMore>
1583
+ </element>
1584
+ </optional>
1585
+ <optional>
1586
+ <element name="description">
1587
+ <zeroOrMore>
1588
+ <ref name="BasicBlock"/>
1589
+ </zeroOrMore>
1590
+ </element>
1591
+ </optional>
1592
+ </element>
1593
+ </define>
1594
+ <define name="autonumber">
1595
+ <element name="autonumber">
1596
+ <attribute name="type">
1597
+ <choice>
1598
+ <value>requirement</value>
1599
+ <value>recommendation</value>
1600
+ <value>permission</value>
1601
+ <value>table</value>
1602
+ <value>figure</value>
1603
+ <value>admonition</value>
1604
+ <value>formula</value>
1605
+ <value>sourcecode</value>
1606
+ <value>example</value>
1607
+ <value>note</value>
1608
+ </choice>
1609
+ </attribute>
1610
+ <text/>
1611
+ </element>
1612
+ </define>
1513
1613
  </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
@@ -134,16 +134,57 @@
134
134
  </xsl:variable>
135
135
  <fo:block font-size="26pt" margin-bottom="18pt"><xsl:value-of select="$title-acknowledgements"/></fo:block>
136
136
 
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>
137
+ <xsl:variable name="persons">
138
+ <xsl:for-each select="/csa:csa-standard/csa:bibdata/csa:contributor[csa:person]">
139
+ <contributor>
140
+ <xsl:attribute name="type">
141
+ <xsl:choose>
142
+ <xsl:when test="csa:role/@type='author'">
143
+ <xsl:value-of select="csa:role/csa:description"/>
144
+ </xsl:when>
145
+ <xsl:otherwise>
146
+ <xsl:value-of select="csa:role/@type"/>
147
+ </xsl:otherwise>
148
+ </xsl:choose>
149
+ </xsl:attribute>
150
+ <xsl:value-of select="csa:person/csa:name/csa:completename"/>
151
+ </contributor>
152
+ </xsl:for-each>
153
+ </xsl:variable>
146
154
 
155
+ <xsl:variable name="contributors">
156
+ <contributor title="Author" pluraltitle="Authors">full-author</contributor>
157
+ <contributor title="Contributor" pluraltitle="Contributors">contributor</contributor>
158
+ <contributor title="Staff" pluraltitle="Staff">staff</contributor>
159
+ <contributor title="Reviewer" pluraltitle="Reviewers">reviewer</contributor>
160
+ <contributor title="Editor" pluraltitle="Editors">editor</contributor>
161
+ </xsl:variable>
162
+
163
+ <!-- The sequence of author types is: full-author (omitted), Contributor, Staff, Reviewer -->
164
+
165
+ <xsl:for-each select="xalan:nodeset($contributors)/*">
166
+ <xsl:variable name="type" select="."/>
167
+ <xsl:variable name="title" select="@title"/>
168
+ <xsl:variable name="pluraltitle" select="@pluraltitle"/>
169
+ <xsl:for-each select="xalan:nodeset($persons)/contributor[@type = $type]">
170
+ <xsl:if test="position() = 1">
171
+ <fo:block font-size="18pt" font-weight="bold" margin-top="16pt" margin-bottom="12pt" color="rgb(3, 115, 200)">
172
+ <xsl:choose>
173
+ <xsl:when test="following-sibling::contributor[@type = $type]">
174
+ <xsl:value-of select="$pluraltitle"/>
175
+ </xsl:when>
176
+ <xsl:otherwise>
177
+ <xsl:value-of select="$title"/>
178
+ </xsl:otherwise>
179
+ </xsl:choose>
180
+ <xsl:text>:</xsl:text>
181
+ </fo:block>
182
+ </xsl:if>
183
+ <fo:block><xsl:value-of select="."/></fo:block>
184
+ </xsl:for-each>
185
+ </xsl:for-each>
186
+
187
+
147
188
  <fo:block break-after="page"/>
148
189
 
149
190
  <fo:block-container font-size="12pt" line-height="170%" color="rgb(7, 72, 156)">
@@ -559,7 +600,7 @@
559
600
 
560
601
 
561
602
 
562
- <xsl:template match="csa:ul | csa:ol">
603
+ <xsl:template match="csa:ul | csa:ol" mode="ul_ol">
563
604
  <xsl:choose>
564
605
  <xsl:when test="not(ancestor::csa:ul) and not(ancestor::csa:ol)">
565
606
  <fo:block-container border-left="0.75mm solid {$color-header-document}" margin-left="1mm" margin-bottom="12pt">
@@ -871,7 +912,12 @@
871
912
 
872
913
 
873
914
 
874
- <title-source lang="en">SOURCE</title-source>
915
+ <title-source lang="en">
916
+
917
+ <xsl:text>SOURCE</xsl:text>
918
+
919
+
920
+ </title-source>
875
921
 
876
922
  <title-keywords lang="en">Keywords</title-keywords>
877
923
 
@@ -914,6 +960,10 @@
914
960
  <title-warning lang="zh">警告</title-warning>
915
961
 
916
962
  <title-amendment lang="en">AMENDMENT</title-amendment>
963
+
964
+ <title-continued lang="en">(continued)</title-continued>
965
+ <title-continued lang="fr">(continué)</title-continued>
966
+
917
967
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
918
968
  <xsl:param name="name"/>
919
969
  <xsl:variable name="lang">
@@ -931,6 +981,7 @@
931
981
  </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">
932
982
 
933
983
 
984
+
934
985
  <xsl:attribute name="color">rgb(33, 94, 159)</xsl:attribute>
935
986
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
936
987
 
@@ -939,8 +990,7 @@
939
990
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
940
991
 
941
992
 
942
- <xsl:attribute name="font-family">SourceCodePro</xsl:attribute>
943
- <xsl:attribute name="font-size">10pt</xsl:attribute>
993
+ <xsl:attribute name="font-family">SourceCodePro</xsl:attribute>
944
994
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
945
995
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
946
996
  <xsl:attribute name="line-height">113%</xsl:attribute>
@@ -951,6 +1001,7 @@
951
1001
 
952
1002
 
953
1003
 
1004
+
954
1005
  </xsl:attribute-set><xsl:attribute-set name="permission-style">
955
1006
 
956
1007
  </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
@@ -997,6 +1048,7 @@
997
1048
 
998
1049
 
999
1050
 
1051
+
1000
1052
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1001
1053
 
1002
1054
  <xsl:attribute name="margin-left">12.5mm</xsl:attribute>
@@ -1023,6 +1075,7 @@
1023
1075
 
1024
1076
 
1025
1077
 
1078
+
1026
1079
 
1027
1080
 
1028
1081
 
@@ -1075,7 +1128,8 @@
1075
1128
 
1076
1129
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1077
1130
 
1078
-
1131
+
1132
+
1079
1133
  </xsl:attribute-set><xsl:attribute-set name="eref-style">
1080
1134
 
1081
1135
  <xsl:attribute name="color">rgb(33, 94, 159)</xsl:attribute>
@@ -1083,6 +1137,7 @@
1083
1137
 
1084
1138
 
1085
1139
 
1140
+
1086
1141
  </xsl:attribute-set><xsl:attribute-set name="note-style">
1087
1142
 
1088
1143
  <xsl:attribute name="font-size">10pt</xsl:attribute>
@@ -1102,11 +1157,12 @@
1102
1157
 
1103
1158
 
1104
1159
 
1160
+ </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">
1161
+
1162
+ <xsl:attribute name="padding-right">4mm</xsl:attribute>
1105
1163
 
1106
1164
 
1107
- </xsl:attribute-set><xsl:attribute-set name="note-name-style">
1108
1165
 
1109
- <xsl:attribute name="padding-right">4mm</xsl:attribute>
1110
1166
 
1111
1167
 
1112
1168
 
@@ -1115,7 +1171,6 @@
1115
1171
 
1116
1172
 
1117
1173
 
1118
-
1119
1174
 
1120
1175
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1121
1176
 
@@ -1143,6 +1198,8 @@
1143
1198
 
1144
1199
 
1145
1200
 
1201
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
1202
+
1146
1203
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1147
1204
 
1148
1205
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
@@ -1176,6 +1233,7 @@
1176
1233
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1177
1234
 
1178
1235
 
1236
+
1179
1237
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1180
1238
 
1181
1239
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
@@ -1201,6 +1259,7 @@
1201
1259
 
1202
1260
 
1203
1261
 
1262
+
1204
1263
 
1205
1264
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1206
1265
 
@@ -1225,8 +1284,8 @@
1225
1284
 
1226
1285
  </xsl:attribute-set><xsl:attribute-set name="tt-style">
1227
1286
 
1228
- <xsl:attribute name="font-family">SourceCodePro</xsl:attribute>
1229
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1287
+ <xsl:attribute name="font-family">SourceCodePro</xsl:attribute>
1288
+
1230
1289
 
1231
1290
 
1232
1291
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
@@ -1234,6 +1293,8 @@
1234
1293
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1235
1294
  <xsl:attribute name="text-align">center</xsl:attribute>
1236
1295
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1296
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1297
+
1237
1298
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
1238
1299
 
1239
1300
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -1299,6 +1360,8 @@
1299
1360
 
1300
1361
 
1301
1362
 
1363
+ <!-- $namespace = 'iso' or -->
1364
+
1302
1365
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1303
1366
 
1304
1367
 
@@ -1356,7 +1419,7 @@
1356
1419
 
1357
1420
 
1358
1421
 
1359
-
1422
+
1360
1423
 
1361
1424
 
1362
1425
 
@@ -1373,6 +1436,8 @@
1373
1436
 
1374
1437
 
1375
1438
 
1439
+
1440
+
1376
1441
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
1377
1442
  <xsl:choose>
1378
1443
  <xsl:when test=". = 1 or . = 0">
@@ -1403,8 +1468,9 @@
1403
1468
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
1404
1469
  <xsl:if test="normalize-space() != ''">
1405
1470
  <fo:block xsl:use-attribute-sets="table-name-style">
1406
- <xsl:apply-templates/>
1407
- </fo:block>
1471
+
1472
+ <xsl:apply-templates/>
1473
+ </fo:block>
1408
1474
  </xsl:if>
1409
1475
  </xsl:template><xsl:template name="calculate-columns-numbers">
1410
1476
  <xsl:param name="table-row"/>
@@ -1520,10 +1586,25 @@
1520
1586
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
1521
1587
  <xsl:param name="cols-count"/>
1522
1588
  <!-- font-weight="bold" -->
1523
- <fo:table-header>
1524
-
1589
+ <fo:table-header>
1590
+
1525
1591
  <xsl:apply-templates/>
1526
1592
  </fo:table-header>
1593
+ </xsl:template><xsl:template name="table-header-title">
1594
+ <xsl:param name="cols-count"/>
1595
+ <!-- row for title -->
1596
+ <fo:table-row>
1597
+ <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">
1598
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation"/>
1599
+ <xsl:for-each select="ancestor::*[local-name()='table'][1]">
1600
+ <xsl:call-template name="fn_name_display"/>
1601
+ </xsl:for-each>
1602
+ <fo:block text-align="right" font-style="italic">
1603
+ <xsl:text> </xsl:text>
1604
+ <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
1605
+ </fo:block>
1606
+ </fo:table-cell>
1607
+ </fo:table-row>
1527
1608
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
1528
1609
  <fo:table-body>
1529
1610
  <xsl:apply-templates/>
@@ -1587,6 +1668,8 @@
1587
1668
  </xsl:choose>
1588
1669
  </xsl:variable>
1589
1670
 
1671
+
1672
+
1590
1673
  <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
1591
1674
  <xsl:with-param name="cols-count" select="$cols-count"/>
1592
1675
  </xsl:apply-templates>
@@ -1596,6 +1679,8 @@
1596
1679
  </xsl:call-template>
1597
1680
 
1598
1681
  <fo:table-body>
1682
+
1683
+
1599
1684
  <xsl:apply-templates/>
1600
1685
  <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
1601
1686
 
@@ -1618,6 +1703,8 @@
1618
1703
 
1619
1704
  </xsl:if>
1620
1705
 
1706
+
1707
+
1621
1708
 
1622
1709
  <xsl:apply-templates/>
1623
1710
  </fo:table-row>
@@ -1640,6 +1727,7 @@
1640
1727
 
1641
1728
 
1642
1729
 
1730
+
1643
1731
  <xsl:if test="@colspan">
1644
1732
  <xsl:attribute name="number-columns-spanned">
1645
1733
  <xsl:value-of select="@colspan"/>
@@ -1650,10 +1738,22 @@
1650
1738
  <xsl:value-of select="@rowspan"/>
1651
1739
  </xsl:attribute>
1652
1740
  </xsl:if>
1741
+ <xsl:call-template name="display-align"/>
1653
1742
  <fo:block>
1654
1743
  <xsl:apply-templates/>
1655
1744
  </fo:block>
1656
1745
  </fo:table-cell>
1746
+ </xsl:template><xsl:template name="display-align">
1747
+ <xsl:if test="@valign">
1748
+ <xsl:attribute name="display-align">
1749
+ <xsl:choose>
1750
+ <xsl:when test="@valign = 'top'">before</xsl:when>
1751
+ <xsl:when test="@valign = 'middle'">center</xsl:when>
1752
+ <xsl:when test="@valign = 'bottom'">after</xsl:when>
1753
+ <xsl:otherwise>before</xsl:otherwise>
1754
+ </xsl:choose>
1755
+ </xsl:attribute>
1756
+ </xsl:if>
1657
1757
  </xsl:template><xsl:template match="*[local-name()='td']">
1658
1758
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
1659
1759
  <xsl:attribute name="text-align">
@@ -1673,6 +1773,7 @@
1673
1773
 
1674
1774
 
1675
1775
 
1776
+
1676
1777
  <xsl:if test="@colspan">
1677
1778
  <xsl:attribute name="number-columns-spanned">
1678
1779
  <xsl:value-of select="@colspan"/>
@@ -1683,8 +1784,8 @@
1683
1784
  <xsl:value-of select="@rowspan"/>
1684
1785
  </xsl:attribute>
1685
1786
  </xsl:if>
1686
- <fo:block>
1687
-
1787
+ <xsl:call-template name="display-align"/>
1788
+ <fo:block>
1688
1789
  <xsl:apply-templates/>
1689
1790
  </fo:block>
1690
1791
  </fo:table-cell>
@@ -1859,6 +1960,7 @@
1859
1960
 
1860
1961
 
1861
1962
 
1963
+
1862
1964
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
1863
1965
 
1864
1966
  <xsl:value-of select="@reference"/>
@@ -1869,102 +1971,129 @@
1869
1971
  <xsl:apply-templates/>
1870
1972
  </fo:inline>
1871
1973
  </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>
1974
+ <fo:block-container margin-left="0mm">
1975
+ <xsl:if test="parent::*[local-name() = 'note']">
1976
+ <xsl:attribute name="margin-left">
1977
+ <xsl:choose>
1978
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
1979
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
1980
+ </xsl:choose>
1981
+ </xsl:attribute>
1915
1982
 
1983
+ </xsl:if>
1984
+ <fo:block-container margin-left="0mm">
1985
+
1986
+ <xsl:variable name="parent" select="local-name(..)"/>
1916
1987
 
1988
+ <xsl:variable name="key_iso">
1989
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
1990
+ </xsl:variable>
1917
1991
 
1992
+ <xsl:choose>
1993
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
1994
+
1995
+
1996
+ <fo:block margin-bottom="12pt" text-align="left">
1997
+
1998
+ <xsl:variable name="title-where">
1999
+ <xsl:call-template name="getTitle">
2000
+ <xsl:with-param name="name" select="'title-where'"/>
2001
+ </xsl:call-template>
2002
+ </xsl:variable>
2003
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2004
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
2005
+ <xsl:text/>
2006
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2007
+ </fo:block>
2008
+
2009
+ </xsl:when>
2010
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2011
+ <fo:block margin-bottom="12pt" text-align="left">
2012
+
2013
+
2014
+
2015
+
2016
+ <xsl:variable name="title-where">
2017
+ <xsl:call-template name="getTitle">
2018
+ <xsl:with-param name="name" select="'title-where'"/>
2019
+ </xsl:call-template>
2020
+ </xsl:variable>
2021
+ <xsl:value-of select="$title-where"/>
2022
+ </fo:block>
2023
+ </xsl:when>
2024
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2025
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
2026
+
2027
+
2028
+
2029
+ <xsl:variable name="title-key">
2030
+ <xsl:call-template name="getTitle">
2031
+ <xsl:with-param name="name" select="'title-key'"/>
2032
+ </xsl:call-template>
2033
+ </xsl:variable>
2034
+ <xsl:value-of select="$title-key"/>
2035
+ </fo:block>
2036
+ </xsl:when>
2037
+ </xsl:choose>
1918
2038
 
1919
- <fo:block>
1920
-
1921
-
1922
-
1923
-
1924
- <fo:table width="95%" table-layout="fixed">
2039
+ <!-- a few components -->
2040
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2041
+ <fo:block>
1925
2042
 
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>
2043
+
2044
+
2045
+
2046
+ <fo:block>
2047
+
2048
+
2049
+
2050
+
2051
+ <fo:table width="95%" table-layout="fixed">
1932
2052
 
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>
2053
+ <xsl:choose>
2054
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2055
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2056
+ </xsl:when>
2057
+ <xsl:when test="normalize-space($key_iso) = 'true'">
2058
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2059
+
2060
+ </xsl:when>
2061
+ </xsl:choose>
2062
+ <!-- create virtual html table for dl/[dt and dd] -->
2063
+ <xsl:variable name="html-table">
2064
+ <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2065
+ <xsl:element name="{$ns}:table">
2066
+ <tbody>
2067
+ <xsl:apply-templates mode="dl"/>
2068
+ </tbody>
2069
+ </xsl:element>
2070
+ </xsl:variable>
2071
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
2072
+ <xsl:variable name="colwidths">
2073
+ <xsl:call-template name="calculate-column-widths">
2074
+ <xsl:with-param name="cols-count" select="2"/>
2075
+ <xsl:with-param name="table" select="$html-table"/>
2076
+ </xsl:call-template>
2077
+ </xsl:variable>
2078
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2079
+ <xsl:variable name="maxlength_dt">
2080
+ <xsl:call-template name="getMaxLength_dt"/>
2081
+ </xsl:variable>
2082
+ <xsl:call-template name="setColumnWidth_dl">
2083
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2084
+ <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
2085
+ </xsl:call-template>
2086
+ <fo:table-body>
2087
+ <xsl:apply-templates>
2088
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2089
+ </xsl:apply-templates>
2090
+ </fo:table-body>
2091
+ </fo:table>
2092
+ </fo:block>
2093
+ </fo:block>
2094
+ </xsl:if>
2095
+ </fo:block-container>
2096
+ </fo:block-container>
1968
2097
  </xsl:template><xsl:template name="setColumnWidth_dl">
1969
2098
  <xsl:param name="colwidths"/>
1970
2099
  <xsl:param name="maxlength_dt"/>
@@ -2052,6 +2181,8 @@
2052
2181
  <td>
2053
2182
 
2054
2183
 
2184
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2185
+
2055
2186
  </td>
2056
2187
  </tr>
2057
2188
 
@@ -2059,6 +2190,7 @@
2059
2190
  <xsl:param name="key_iso"/>
2060
2191
 
2061
2192
  <fo:table-row>
2193
+
2062
2194
  <fo:table-cell>
2063
2195
 
2064
2196
  <fo:block margin-top="6pt">
@@ -2090,6 +2222,8 @@
2090
2222
  </xsl:if>
2091
2223
  </xsl:if> -->
2092
2224
 
2225
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2226
+
2093
2227
  </fo:block>
2094
2228
  </fo:table-cell>
2095
2229
  </fo:table-row>
@@ -2136,6 +2270,31 @@
2136
2270
  </fo:inline>
2137
2271
  </xsl:template><xsl:template match="*[local-name()='tt']">
2138
2272
  <fo:inline xsl:use-attribute-sets="tt-style">
2273
+ <xsl:variable name="_font-size">
2274
+ 10
2275
+
2276
+
2277
+
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+
2286
+
2287
+
2288
+ </xsl:variable>
2289
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
2290
+ <xsl:if test="$font-size != ''">
2291
+ <xsl:attribute name="font-size">
2292
+ <xsl:choose>
2293
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
2294
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
2295
+ </xsl:choose>
2296
+ </xsl:attribute>
2297
+ </xsl:if>
2139
2298
  <xsl:apply-templates/>
2140
2299
  </fo:inline>
2141
2300
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -2462,10 +2621,23 @@
2462
2621
  <xsl:value-of select="substring($str, 2)"/>
2463
2622
  </xsl:template><xsl:template match="mathml:math">
2464
2623
  <fo:inline font-family="STIX2Math">
2465
- <fo:instream-foreign-object fox:alt-text="Math">
2466
- <xsl:copy-of select="."/>
2467
- </fo:instream-foreign-object>
2624
+ <xsl:variable name="mathml">
2625
+ <xsl:apply-templates select="." mode="mathml"/>
2626
+ </xsl:variable>
2627
+ <fo:instream-foreign-object fox:alt-text="Math">
2628
+ <!-- <xsl:copy-of select="."/> -->
2629
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
2630
+ </fo:instream-foreign-object>
2468
2631
  </fo:inline>
2632
+ </xsl:template><xsl:template match="@*|node()" mode="mathml">
2633
+ <xsl:copy>
2634
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
2635
+ </xsl:copy>
2636
+ </xsl:template><xsl:template match="mathml:mtext" mode="mathml">
2637
+ <xsl:copy>
2638
+ <!-- replace start and end spaces to non-break space -->
2639
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
2640
+ </xsl:copy>
2469
2641
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
2470
2642
  <xsl:variable name="target">
2471
2643
  <xsl:choose>
@@ -2546,9 +2718,22 @@
2546
2718
  <xsl:apply-templates/>
2547
2719
  </fo:basic-link>
2548
2720
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
2549
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2550
- <xsl:apply-templates/>
2551
- </fo:block>
2721
+ <fo:block-container margin-left="0mm">
2722
+ <xsl:if test="parent::*[local-name() = 'note']">
2723
+ <xsl:attribute name="margin-left">
2724
+ <xsl:choose>
2725
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2726
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2727
+ </xsl:choose>
2728
+ </xsl:attribute>
2729
+
2730
+ </xsl:if>
2731
+ <fo:block-container margin-left="0mm">
2732
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2733
+ <xsl:apply-templates/>
2734
+ </fo:block>
2735
+ </fo:block-container>
2736
+ </fo:block-container>
2552
2737
  </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
2553
2738
  <fo:inline>
2554
2739
  <xsl:apply-templates/>
@@ -2612,7 +2797,9 @@
2612
2797
  </xsl:choose>
2613
2798
  </xsl:template><xsl:template match="*[local-name() = 'termnote']">
2614
2799
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
2615
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2800
+ <fo:inline xsl:use-attribute-sets="termnote-name-style">
2801
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2802
+ </fo:inline>
2616
2803
  <xsl:apply-templates/>
2617
2804
  </fo:block>
2618
2805
  </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">
@@ -2779,21 +2966,61 @@
2779
2966
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
2780
2967
  <xsl:text> </xsl:text>
2781
2968
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
2782
- <fo:block xsl:use-attribute-sets="sourcecode-style">
2783
- <xsl:apply-templates/>
2784
- </fo:block>
2785
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
2786
- </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()">
2969
+
2970
+ <fo:block-container margin-left="0mm">
2971
+ <xsl:if test="parent::*[local-name() = 'note']">
2972
+ <xsl:attribute name="margin-left">
2973
+ <xsl:choose>
2974
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2975
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2976
+ </xsl:choose>
2977
+ </xsl:attribute>
2978
+
2979
+ </xsl:if>
2980
+ <fo:block-container margin-left="0mm">
2981
+
2982
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
2983
+ <xsl:variable name="_font-size">
2984
+ 10
2985
+
2986
+
2987
+
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+
2997
+
2998
+ </xsl:variable>
2999
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
3000
+ <xsl:if test="$font-size != ''">
3001
+ <xsl:attribute name="font-size">
3002
+ <xsl:choose>
3003
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3004
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
3005
+ </xsl:choose>
3006
+ </xsl:attribute>
3007
+ </xsl:if>
3008
+ <xsl:apply-templates/>
3009
+ </fo:block>
3010
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3011
+
3012
+ </fo:block-container>
3013
+ </fo:block-container>
3014
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
2787
3015
  <xsl:variable name="text">
2788
3016
  <xsl:call-template name="add-zero-spaces-equal"/>
2789
3017
  </xsl:variable>
2790
- <xsl:call-template name="add-zero-spaces">
3018
+ <xsl:call-template name="add-zero-spaces-java">
2791
3019
  <xsl:with-param name="text" select="$text"/>
2792
3020
  </xsl:call-template>
2793
3021
  </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
2794
3022
  <xsl:if test="normalize-space() != ''">
2795
- <fo:block xsl:use-attribute-sets="sourcecode-name-style">
2796
-
3023
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
2797
3024
  <xsl:apply-templates/>
2798
3025
  </fo:block>
2799
3026
  </xsl:if>
@@ -2867,9 +3094,9 @@
2867
3094
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2868
3095
  </xsl:if>
2869
3096
  <fo:block-container margin-left="0mm" margin-right="0mm">
2870
- <fo:table id="{@id}" table-layout="fixed" width="100%" border="1pt solid black">
3097
+ <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
2871
3098
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
2872
- <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
3099
+ <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
2873
3100
  </xsl:if>
2874
3101
  <xsl:variable name="simple-table">
2875
3102
  <xsl:call-template name="getSimpleTable"/>
@@ -2878,8 +3105,8 @@
2878
3105
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
2879
3106
  <!-- <fo:table-column column-width="35mm"/>
2880
3107
  <fo:table-column column-width="115mm"/> -->
2881
- <fo:table-column column-width="25%"/>
2882
- <fo:table-column column-width="75%"/>
3108
+ <fo:table-column column-width="30%"/>
3109
+ <fo:table-column column-width="70%"/>
2883
3110
  </xsl:if>
2884
3111
  <xsl:apply-templates mode="requirement"/>
2885
3112
  </fo:table>
@@ -2902,14 +3129,21 @@
2902
3129
  <xsl:apply-templates mode="requirement"/>
2903
3130
  </fo:table-body>
2904
3131
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
2905
- <fo:table-row height="7mm">
2906
- <xsl:if test="parent::*[local-name()='thead'] and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission'])">
2907
- <xsl:attribute name="border">1pt solid black</xsl:attribute>
3132
+ <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
3133
+ <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
3134
+ <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
3135
+ <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
3136
+ </xsl:if>
3137
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
3138
+ <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
3139
+ </xsl:if>
3140
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
3141
+ <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
2908
3142
  </xsl:if>
2909
3143
  <xsl:apply-templates mode="requirement"/>
2910
3144
  </fo:table-row>
2911
3145
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
2912
- <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm" border="0.5pt solid black">
3146
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
2913
3147
  <xsl:attribute name="text-align">
2914
3148
  <xsl:choose>
2915
3149
  <xsl:when test="@align">
@@ -2928,6 +3162,7 @@
2928
3162
  <xsl:value-of select="@rowspan"/>
2929
3163
  </xsl:attribute>
2930
3164
  </xsl:if>
3165
+ <xsl:call-template name="display-align"/>
2931
3166
 
2932
3167
  <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
2933
3168
  <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
@@ -2943,7 +3178,7 @@
2943
3178
  </fo:block>
2944
3179
  </fo:table-cell>
2945
3180
  </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
2946
- <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm" border="0.5pt solid black">
3181
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
2947
3182
  <xsl:if test="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
2948
3183
  <xsl:attribute name="padding">0mm</xsl:attribute>
2949
3184
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
@@ -2956,6 +3191,9 @@
2956
3191
  <xsl:otherwise>left</xsl:otherwise>
2957
3192
  </xsl:choose>
2958
3193
  </xsl:attribute>
3194
+ <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
3195
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3196
+ </xsl:if>
2959
3197
  <xsl:if test="@colspan">
2960
3198
  <xsl:attribute name="number-columns-spanned">
2961
3199
  <xsl:value-of select="@colspan"/>
@@ -2966,6 +3204,7 @@
2966
3204
  <xsl:value-of select="@rowspan"/>
2967
3205
  </xsl:attribute>
2968
3206
  </xsl:if>
3207
+ <xsl:call-template name="display-align"/>
2969
3208
 
2970
3209
  <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
2971
3210
  <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
@@ -2981,7 +3220,7 @@
2981
3220
  </fo:block>
2982
3221
  </fo:table-cell>
2983
3222
  </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
2984
- <fo:block font-size="11pt" font-weight="bold"> <!-- margin-bottom="4pt" text-align="center" -->
3223
+ <fo:block font-size="11pt" color="rgb(237, 193, 35)"> <!-- font-weight="bold" margin-bottom="4pt" text-align="center" -->
2985
3224
  <xsl:apply-templates/>
2986
3225
  </fo:block>
2987
3226
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
@@ -3007,12 +3246,13 @@
3007
3246
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3008
3247
 
3009
3248
  <xsl:variable name="element">
3010
- block
3249
+ block
3011
3250
 
3251
+ <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
3012
3252
  </xsl:variable>
3013
3253
 
3014
3254
  <xsl:choose>
3015
- <xsl:when test="normalize-space($element) = 'block'">
3255
+ <xsl:when test="contains(normalize-space($element), 'block')">
3016
3256
  <fo:block xsl:use-attribute-sets="example-body-style">
3017
3257
  <xsl:apply-templates/>
3018
3258
  </fo:block>
@@ -3049,25 +3289,44 @@
3049
3289
  </xsl:otherwise>
3050
3290
  </xsl:choose>
3051
3291
 
3052
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3053
- <fo:block xsl:use-attribute-sets="example-p-style">
3292
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3293
+
3294
+ <xsl:variable name="element">
3295
+ block
3054
3296
 
3055
- <xsl:apply-templates/>
3056
- </fo:block>
3297
+ </xsl:variable>
3298
+ <xsl:choose>
3299
+ <xsl:when test="normalize-space($element) = 'block'">
3300
+ <fo:block xsl:use-attribute-sets="example-p-style">
3301
+
3302
+ <xsl:apply-templates/>
3303
+ </fo:block>
3304
+ </xsl:when>
3305
+ <xsl:otherwise>
3306
+ <fo:inline xsl:use-attribute-sets="example-p-style">
3307
+ <xsl:apply-templates/>
3308
+ </fo:inline>
3309
+ </xsl:otherwise>
3310
+ </xsl:choose>
3057
3311
  </xsl:template><xsl:template match="*[local-name() = 'termsource']">
3058
3312
  <fo:block xsl:use-attribute-sets="termsource-style">
3059
3313
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
3060
3314
  <xsl:variable name="termsource_text">
3061
3315
  <xsl:apply-templates/>
3062
3316
  </xsl:variable>
3317
+
3063
3318
  <xsl:choose>
3064
3319
  <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
3065
3320
  <xsl:apply-templates/>
3066
3321
  </xsl:when>
3067
- <xsl:otherwise>
3068
- <xsl:text>[</xsl:text>
3069
- <xsl:apply-templates/>
3070
- <xsl:text>]</xsl:text>
3322
+ <xsl:otherwise>
3323
+
3324
+ <xsl:text>[</xsl:text>
3325
+
3326
+ <xsl:apply-templates/>
3327
+
3328
+ <xsl:text>]</xsl:text>
3329
+
3071
3330
  </xsl:otherwise>
3072
3331
  </xsl:choose>
3073
3332
  </fo:block>
@@ -3078,10 +3337,13 @@
3078
3337
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
3079
3338
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
3080
3339
 
3081
- <xsl:call-template name="getTitle">
3082
- <xsl:with-param name="name" select="'title-source'"/>
3083
- </xsl:call-template>
3084
- <xsl:text>: </xsl:text>
3340
+ <fo:inline>
3341
+
3342
+ <xsl:call-template name="getTitle">
3343
+ <xsl:with-param name="name" select="'title-source'"/>
3344
+ </xsl:call-template>
3345
+ <xsl:text>: </xsl:text>
3346
+ </fo:inline>
3085
3347
 
3086
3348
  <fo:inline xsl:use-attribute-sets="origin-style">
3087
3349
  <xsl:apply-templates/>
@@ -3093,18 +3355,29 @@
3093
3355
  <xsl:if test="normalize-space() != ''">
3094
3356
  <xsl:value-of select="."/>
3095
3357
  </xsl:if>
3096
- </xsl:template><xsl:template match="*[local-name() = 'quote']">
3358
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
3359
+ <fo:block-container margin-left="0mm">
3360
+ <xsl:if test="parent::*[local-name() = 'note']">
3361
+ <xsl:if test="not(ancestor::*[local-name() = 'table'])">
3362
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
3363
+ </xsl:if>
3364
+ </xsl:if>
3365
+
3366
+ <fo:block-container margin-left="0mm">
3097
3367
 
3098
- <fo:block xsl:use-attribute-sets="quote-style">
3099
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3100
- </fo:block>
3101
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3102
- <fo:block xsl:use-attribute-sets="quote-source-style">
3103
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
3104
- <xsl:apply-templates select="*[local-name() = 'author']"/>
3105
- <xsl:apply-templates select="*[local-name() = 'source']"/>
3106
- </fo:block>
3107
- </xsl:if>
3368
+ <fo:block xsl:use-attribute-sets="quote-style">
3369
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3370
+ </fo:block>
3371
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3372
+ <fo:block xsl:use-attribute-sets="quote-source-style">
3373
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
3374
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
3375
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
3376
+ </fo:block>
3377
+ </xsl:if>
3378
+
3379
+ </fo:block-container>
3380
+ </fo:block-container>
3108
3381
  </xsl:template><xsl:template match="*[local-name() = 'source']">
3109
3382
  <xsl:if test="../*[local-name() = 'author']">
3110
3383
  <xsl:text>, </xsl:text>
@@ -3132,6 +3405,7 @@
3132
3405
  <xsl:if test="@type = 'inline'">
3133
3406
 
3134
3407
 
3408
+
3135
3409
  </xsl:if>
3136
3410
 
3137
3411
 
@@ -3164,6 +3438,7 @@
3164
3438
 
3165
3439
 
3166
3440
 
3441
+
3167
3442
  </xsl:variable>
3168
3443
 
3169
3444
  <xsl:variable name="padding-right">
@@ -3283,6 +3558,21 @@
3283
3558
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
3284
3559
  <!-- 0xA0 to space replacement -->
3285
3560
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
3561
+ </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
3562
+ <fo:block-container margin-left="0mm">
3563
+ <xsl:if test="parent::*[local-name() = 'note']">
3564
+ <xsl:attribute name="margin-left">
3565
+ <xsl:choose>
3566
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3567
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3568
+ </xsl:choose>
3569
+ </xsl:attribute>
3570
+
3571
+ </xsl:if>
3572
+ <fo:block-container margin-left="0mm">
3573
+ <xsl:apply-templates select="." mode="ul_ol"/>
3574
+ </fo:block-container>
3575
+ </fo:block-container>
3286
3576
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
3287
3577
  <!-- <row>
3288
3578
  <date>05-07-2013</date>
@@ -3315,7 +3605,28 @@
3315
3605
  <fo:block><xsl:apply-templates/></fo:block>
3316
3606
  </fo:table-cell>
3317
3607
  </xsl:template><xsl:template name="processBibitem">
3608
+
3609
+
3318
3610
 
3611
+
3612
+ </xsl:template><xsl:template name="processBibitemDocId">
3613
+ <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')]"/>
3614
+ <xsl:choose>
3615
+ <xsl:when test="normalize-space($_doc_ident) != ''">
3616
+ <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"/>
3617
+ <xsl:if test="$type != '' and not(contains($_doc_ident, $type))">
3618
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3619
+ </xsl:if>
3620
+ <xsl:value-of select="$_doc_ident"/>
3621
+ </xsl:when>
3622
+ <xsl:otherwise>
3623
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]/@type"/>
3624
+ <xsl:if test="$type != ''">
3625
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
3626
+ </xsl:if>
3627
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
3628
+ </xsl:otherwise>
3629
+ </xsl:choose>
3319
3630
  </xsl:template><xsl:template name="processPersonalAuthor">
3320
3631
  <xsl:choose>
3321
3632
  <xsl:when test="*[local-name() = 'name']/*[local-name() = 'completename']">