metanorma-itu 1.2.0 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -63,9 +63,12 @@
63
63
  <xsl:call-template name="getLang"/>
64
64
  </xsl:variable>
65
65
 
66
+ <xsl:variable name="isAmendment" select="normalize-space(/itu:itu-standard/itu:local_bibdata/itu:ext/itu:structuredidentifier/itu:amendment)"/>
67
+ <xsl:variable name="isCorrigendum" select="normalize-space(/itu:itu-standard/itu:local_bibdata/itu:ext/itu:structuredidentifier/itu:corrigendum)"/>
68
+
66
69
  <xsl:template match="/">
67
70
  <xsl:call-template name="namespaceCheck"/>
68
- <fo:root font-family="Times New Roman, STIX2Math" font-size="12pt" xml:lang="{$lang}">
71
+ <fo:root font-family="Times New Roman, STIX Two Math" font-size="12pt" xml:lang="{$lang}">
69
72
  <fo:layout-master-set>
70
73
  <!-- cover page -->
71
74
  <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}" page-height="{$pageHeight}">
@@ -124,6 +127,10 @@
124
127
 
125
128
  <xsl:call-template name="addPDFUAmeta"/>
126
129
 
130
+ <xsl:call-template name="addBookmarks">
131
+ <xsl:with-param name="contents" select="$contents"/>
132
+ </xsl:call-template>
133
+
127
134
  <!-- cover page -->
128
135
  <fo:page-sequence master-reference="cover-page">
129
136
  <fo:flow flow-name="xsl-region-body">
@@ -200,6 +207,16 @@
200
207
  <xsl:value-of select="$title-annex"/><xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:ext/itu:structuredidentifier/itu:annexid"/>
201
208
  </fo:block>
202
209
  </xsl:if>
210
+ <xsl:if test="$isAmendment != ''">
211
+ <fo:block font-size="18pt" font-weight="bold">
212
+ <xsl:value-of select="$isAmendment"/>
213
+ </fo:block>
214
+ </xsl:if>
215
+ <xsl:if test="$isCorrigendum != ''">
216
+ <fo:block font-size="18pt" font-weight="bold">
217
+ <xsl:value-of select="$isCorrigendum"/>
218
+ </fo:block>
219
+ </xsl:if>
203
220
  <fo:block font-size="14pt">
204
221
  <xsl:call-template name="formatDate">
205
222
  <xsl:with-param name="date" select="/itu:itu-standard/itu:bibdata/itu:date[@type = 'published']/itu:on"/>
@@ -240,7 +257,7 @@
240
257
  </fo:table-cell>
241
258
  <fo:table-cell font-size="18pt" number-columns-spanned="3">
242
259
  <fo:block padding-right="2mm" margin-top="6pt">
243
- <xsl:if test="not(/itu:itu-standard/itu:bibdata/itu:title[@type = 'annex' and @language = 'en'])">
260
+ <xsl:if test="not(/itu:itu-standard/itu:bibdata/itu:title[@type = 'annex' and @language = 'en']) and $isAmendment = '' and $isCorrigendum = ''">
244
261
  <xsl:attribute name="font-weight">bold</xsl:attribute>
245
262
  </xsl:if>
246
263
  <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'main' and @language = 'en']"/>
@@ -250,6 +267,24 @@
250
267
  <xsl:value-of select="."/>
251
268
  </fo:block>
252
269
  </xsl:for-each>
270
+ <xsl:if test="$isAmendment != ''">
271
+ <fo:block padding-right="2mm" margin-top="6pt" font-weight="bold">
272
+ <xsl:value-of select="$isAmendment"/>
273
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:title[@type = 'amendment']">
274
+ <xsl:text>: </xsl:text>
275
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'amendment']"/>
276
+ </xsl:if>
277
+ </fo:block>
278
+ </xsl:if>
279
+ <xsl:if test="$isCorrigendum != ''">
280
+ <fo:block padding-right="2mm" margin-top="6pt" font-weight="bold">
281
+ <xsl:value-of select="$isCorrigendum"/>
282
+ <xsl:if test="/itu:itu-standard/itu:bibdata/itu:title[@type = 'corrigendum']">
283
+ <xsl:text>: </xsl:text>
284
+ <xsl:value-of select="/itu:itu-standard/itu:bibdata/itu:title[@type = 'corrigendum']"/>
285
+ </xsl:if>
286
+ </fo:block>
287
+ </xsl:if>
253
288
  </fo:table-cell>
254
289
  </fo:table-row>
255
290
  <fo:table-row height="40mm">
@@ -315,7 +350,7 @@
315
350
  </fo:block>
316
351
  </fo:block-container>
317
352
  <!-- Summary, History ... -->
318
- <xsl:apply-templates select="/itu:itu-standard/itu:preface/node()"/>
353
+ <xsl:call-template name="processPrefaceSectionsDefault"/>
319
354
 
320
355
  <!-- Keywords -->
321
356
  <xsl:if test="/itu:itu-standard/itu:bibdata/itu:keyword">
@@ -352,7 +387,7 @@
352
387
  <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
353
388
  </xsl:if>
354
389
 
355
- <xsl:if test="xalan:nodeset($contents)//item">
390
+ <xsl:if test="xalan:nodeset($contents)//item[@display = 'true']">
356
391
  <fo:block break-after="page"/>
357
392
  <fo:block-container>
358
393
  <xsl:variable name="title-toc">
@@ -368,7 +403,7 @@
368
403
  <fo:block margin-top="6pt" text-align="center" font-weight="bold"><xsl:value-of select="$title-toc"/></fo:block>
369
404
  <fo:block margin-top="6pt" text-align="right" font-weight="bold"><xsl:value-of select="$title-page"/></fo:block>
370
405
 
371
- <xsl:for-each select="xalan:nodeset($contents)//item">
406
+ <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
372
407
  <fo:block>
373
408
  <xsl:if test="@level = 1">
374
409
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
@@ -407,8 +442,8 @@
407
442
  </fo:list-item-label>
408
443
  <fo:list-item-body start-indent="body-start()">
409
444
  <fo:block text-align-last="justify">
410
- <fo:basic-link internal-destination="{@id}" fox:alt-text="text()">
411
- <xsl:apply-templates/>
445
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
446
+ <xsl:apply-templates select="title"/>
412
447
  <fo:inline keep-together.within-line="always">
413
448
  <fo:leader leader-pattern="dots"/>
414
449
  <fo:page-number-citation ref-id="{@id}"/>
@@ -501,26 +536,35 @@
501
536
  </xsl:variable>
502
537
 
503
538
  <xsl:variable name="display">
504
- <xsl:choose>
505
- <xsl:when test="ancestor-or-self::itu:bibitem">false</xsl:when>
506
- <xsl:when test="ancestor-or-self::itu:term">false</xsl:when>
539
+ <xsl:choose>
507
540
  <xsl:when test="$level &gt;= 3">false</xsl:when>
508
541
  <xsl:when test="$section = '' and $type = 'clause' and $level &gt;= 2">false</xsl:when>
509
542
  <xsl:otherwise>true</xsl:otherwise>
510
543
  </xsl:choose>
511
544
  </xsl:variable>
512
545
 
513
- <xsl:if test="$display = 'true'">
546
+ <xsl:variable name="skip">
547
+ <xsl:choose>
548
+ <xsl:when test="ancestor-or-self::itu:bibitem">true</xsl:when>
549
+ <xsl:when test="ancestor-or-self::itu:term">true</xsl:when>
550
+ <xsl:otherwise>false</xsl:otherwise>
551
+ </xsl:choose>
552
+ </xsl:variable>
553
+
554
+ <xsl:if test="$skip = 'false'">
514
555
 
515
556
  <xsl:variable name="title">
516
557
  <xsl:call-template name="getName"/>
517
558
  </xsl:variable>
518
559
 
519
- <item level="{$level}" section="{$section}" type="{$type}">
560
+ <item level="{$level}" section="{$section}" type="{$type}" display="{$display}">
520
561
  <xsl:call-template name="setId"/>
521
- <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
562
+ <title>
563
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
564
+ </title>
565
+ <xsl:apply-templates mode="contents"/>
522
566
  </item>
523
- <xsl:apply-templates mode="contents"/>
567
+
524
568
  </xsl:if>
525
569
 
526
570
  </xsl:template>
@@ -758,7 +802,7 @@
758
802
  </xsl:template>
759
803
 
760
804
  <!-- Bibliography -->
761
- <xsl:template match="itu:references[position() &gt; 1]/itu:title">
805
+ <xsl:template match="itu:references[not(@normative='true')]/itu:title">
762
806
  <fo:block font-size="14pt" font-weight="bold" text-align="center" margin-bottom="18pt">
763
807
  <xsl:apply-templates/>
764
808
  </fo:block>
@@ -979,7 +1023,7 @@
979
1023
  <xsl:template match="itu:docidentifier"/>
980
1024
 
981
1025
 
982
- <xsl:template match="itu:ul | itu:ol | itu:sections/itu:ul | itu:sections/itu:ol">
1026
+ <xsl:template match="itu:ul | itu:ol | itu:sections/itu:ul | itu:sections/itu:ol" mode="ul_ol">
983
1027
  <xsl:if test="preceding-sibling::*[1][local-name() = 'title']">
984
1028
  <fo:block padding-top="-8pt" font-size="1pt"> </fo:block>
985
1029
  </xsl:if>
@@ -992,17 +1036,21 @@
992
1036
  <xsl:template match="itu:ul//itu:note | itu:ol//itu:note" priority="2"/>
993
1037
  <xsl:template match="itu:ul//itu:note | itu:ol//itu:note" mode="process">
994
1038
  <fo:block id="{@id}">
995
- <xsl:apply-templates select="../itu:name" mode="presentation"/>
1039
+ <xsl:apply-templates select="itu:name" mode="presentation"/>
996
1040
  <xsl:apply-templates mode="process"/>
997
1041
  </fo:block>
998
1042
  </xsl:template>
999
- <xsl:template match="itu:ul//itu:note/itu:name | itu:ol//itu:note/itu:name" mode="process"/>
1000
- <xsl:template match="itu:ul//itu:note/itu:p | itu:ol//itu:note/itu:p" mode="process">
1043
+ <xsl:template match="itu:ul//itu:note/itu:name | itu:ol//itu:note/itu:name" mode="process" priority="2"/>
1044
+ <xsl:template match="itu:ul//itu:note/itu:p | itu:ol//itu:note/itu:p" mode="process" priority="2">
1001
1045
  <fo:block font-size="11pt" margin-top="4pt">
1002
1046
  <xsl:apply-templates/>
1003
1047
  </fo:block>
1004
1048
  </xsl:template>
1005
1049
 
1050
+ <xsl:template match="itu:ul//itu:note/* | itu:ol//itu:note/*" mode="process">
1051
+ <xsl:apply-templates select="."/>
1052
+ </xsl:template>
1053
+
1006
1054
  <xsl:template match="itu:li">
1007
1055
  <fo:list-item id="{@id}">
1008
1056
  <fo:list-item-label end-indent="label-end()">
@@ -1105,21 +1153,25 @@
1105
1153
  </xsl:template>
1106
1154
 
1107
1155
  <xsl:template match="mathml:math" priority="2">
1108
- <fo:inline font-family="STIX2Math" font-size="11pt">
1156
+ <fo:inline font-family="STIX Two Math" font-size="11pt">
1157
+ <xsl:variable name="mathml">
1158
+ <xsl:apply-templates select="." mode="mathml"/>
1159
+ </xsl:variable>
1109
1160
  <fo:instream-foreign-object fox:alt-text="Math">
1110
- <xsl:copy-of select="."/>
1161
+ <!-- <xsl:copy-of select="."/> -->
1162
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
1111
1163
  </fo:instream-foreign-object>
1112
1164
  </fo:inline>
1113
1165
  </xsl:template>
1114
1166
 
1115
1167
 
1116
- <xsl:template match="itu:references[1]">
1168
+ <xsl:template match="itu:references[@normative='true']">
1117
1169
  <fo:block id="{@id}">
1118
1170
  <xsl:apply-templates/>
1119
1171
  </fo:block>
1120
1172
  </xsl:template>
1121
1173
 
1122
- <xsl:template match="itu:references[position() &gt; 1]">
1174
+ <xsl:template match="itu:references[not(@normative='true')]">
1123
1175
  <fo:block break-after="page"/>
1124
1176
  <fo:block id="{@id}">
1125
1177
  <xsl:apply-templates/>
@@ -1218,6 +1270,12 @@
1218
1270
 
1219
1271
  </title-edition>
1220
1272
 
1273
+ <title-edition lang="fr">
1274
+
1275
+ <xsl:text>Édition </xsl:text>
1276
+
1277
+ </title-edition>
1278
+
1221
1279
 
1222
1280
  <title-toc lang="en">
1223
1281
 
@@ -1226,7 +1284,12 @@
1226
1284
 
1227
1285
 
1228
1286
  </title-toc>
1229
- <title-toc lang="fr">Sommaire</title-toc>
1287
+ <title-toc lang="fr">
1288
+
1289
+ <xsl:text>Sommaire</xsl:text>
1290
+
1291
+
1292
+ </title-toc>
1230
1293
 
1231
1294
  <title-toc lang="zh">Contents</title-toc>
1232
1295
 
@@ -1260,7 +1323,12 @@
1260
1323
 
1261
1324
 
1262
1325
 
1263
- <title-source lang="en">SOURCE</title-source>
1326
+ <title-source lang="en">
1327
+
1328
+ <xsl:text>SOURCE</xsl:text>
1329
+
1330
+
1331
+ </title-source>
1264
1332
 
1265
1333
  <title-keywords lang="en">Keywords</title-keywords>
1266
1334
 
@@ -1303,12 +1371,25 @@
1303
1371
  <title-warning lang="zh">警告</title-warning>
1304
1372
 
1305
1373
  <title-amendment lang="en">AMENDMENT</title-amendment>
1374
+
1375
+ <title-continued lang="en">(continued)</title-continued>
1376
+ <title-continued lang="fr">(continué)</title-continued>
1377
+
1306
1378
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
1307
1379
  <xsl:param name="name"/>
1308
- <xsl:variable name="lang">
1309
- <xsl:call-template name="getLang"/>
1380
+ <xsl:param name="lang"/>
1381
+ <xsl:variable name="lang_">
1382
+ <xsl:choose>
1383
+ <xsl:when test="$lang != ''">
1384
+ <xsl:value-of select="$lang"/>
1385
+ </xsl:when>
1386
+ <xsl:otherwise>
1387
+ <xsl:call-template name="getLang"/>
1388
+ </xsl:otherwise>
1389
+ </xsl:choose>
1310
1390
  </xsl:variable>
1311
- <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $lang]"/>
1391
+ <xsl:variable name="language" select="normalize-space($lang_)"/>
1392
+ <xsl:variable name="title_" select="$titles/*[local-name() = $name][@lang = $language]"/>
1312
1393
  <xsl:choose>
1313
1394
  <xsl:when test="normalize-space($title_) != ''">
1314
1395
  <xsl:value-of select="$title_"/>
@@ -1317,7 +1398,10 @@
1317
1398
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
1318
1399
  </xsl:otherwise>
1319
1400
  </xsl:choose>
1320
- </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">
1401
+ </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">
1402
+
1403
+ </xsl:attribute-set><xsl:attribute-set name="link-style">
1404
+
1321
1405
 
1322
1406
 
1323
1407
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
@@ -1328,14 +1412,14 @@
1328
1412
 
1329
1413
 
1330
1414
 
1331
- <xsl:attribute name="font-family">Courier</xsl:attribute>
1332
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1415
+ <xsl:attribute name="font-family">Courier</xsl:attribute>
1333
1416
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
1334
1417
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1335
1418
 
1336
1419
 
1337
1420
 
1338
1421
 
1422
+
1339
1423
  </xsl:attribute-set><xsl:attribute-set name="permission-style">
1340
1424
 
1341
1425
  </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
@@ -1380,9 +1464,11 @@
1380
1464
 
1381
1465
 
1382
1466
 
1467
+
1383
1468
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
1384
1469
 
1385
1470
 
1471
+
1386
1472
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
1387
1473
 
1388
1474
 
@@ -1400,6 +1486,9 @@
1400
1486
 
1401
1487
 
1402
1488
 
1489
+
1490
+
1491
+
1403
1492
 
1404
1493
  </xsl:attribute-set><xsl:attribute-set name="example-p-style">
1405
1494
 
@@ -1417,6 +1506,8 @@
1417
1506
 
1418
1507
 
1419
1508
 
1509
+
1510
+
1420
1511
  </xsl:attribute-set><xsl:attribute-set name="termexample-name-style">
1421
1512
 
1422
1513
 
@@ -1438,6 +1529,8 @@
1438
1529
 
1439
1530
 
1440
1531
 
1532
+
1533
+
1441
1534
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1442
1535
 
1443
1536
 
@@ -1451,7 +1544,8 @@
1451
1544
 
1452
1545
  <xsl:attribute name="color">blue</xsl:attribute>
1453
1546
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1454
-
1547
+
1548
+
1455
1549
  </xsl:attribute-set><xsl:attribute-set name="eref-style">
1456
1550
 
1457
1551
 
@@ -1459,6 +1553,7 @@
1459
1553
  <xsl:attribute name="text-decoration">underline</xsl:attribute>
1460
1554
 
1461
1555
 
1556
+
1462
1557
  </xsl:attribute-set><xsl:attribute-set name="note-style">
1463
1558
 
1464
1559
 
@@ -1477,9 +1572,10 @@
1477
1572
 
1478
1573
 
1479
1574
 
1575
+ </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">
1576
+
1480
1577
 
1481
1578
 
1482
- </xsl:attribute-set><xsl:attribute-set name="note-name-style">
1483
1579
 
1484
1580
 
1485
1581
 
@@ -1489,7 +1585,6 @@
1489
1585
 
1490
1586
 
1491
1587
 
1492
-
1493
1588
 
1494
1589
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1495
1590
 
@@ -1515,6 +1610,8 @@
1515
1610
  <xsl:attribute name="margin-top">4pt</xsl:attribute>
1516
1611
 
1517
1612
 
1613
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
1614
+
1518
1615
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1519
1616
 
1520
1617
 
@@ -1541,6 +1638,7 @@
1541
1638
  </xsl:attribute-set><xsl:attribute-set name="origin-style">
1542
1639
 
1543
1640
 
1641
+
1544
1642
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1545
1643
 
1546
1644
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
@@ -1550,6 +1648,7 @@
1550
1648
 
1551
1649
 
1552
1650
 
1651
+
1553
1652
 
1554
1653
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1555
1654
  <xsl:attribute name="text-align">center</xsl:attribute>
@@ -1565,7 +1664,7 @@
1565
1664
 
1566
1665
 
1567
1666
 
1568
-
1667
+
1569
1668
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1570
1669
 
1571
1670
  <xsl:attribute name="margin-top">6pt</xsl:attribute>
@@ -1598,11 +1697,14 @@
1598
1697
  </xsl:attribute-set><xsl:attribute-set name="tt-style">
1599
1698
 
1600
1699
 
1700
+
1601
1701
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
1602
1702
  <xsl:attribute name="font-size">11pt</xsl:attribute>
1603
1703
  <xsl:attribute name="font-weight">bold</xsl:attribute>
1604
1704
  <xsl:attribute name="text-align">center</xsl:attribute>
1605
1705
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1706
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1707
+
1606
1708
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
1607
1709
 
1608
1710
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -1613,7 +1715,43 @@
1613
1715
  </xsl:attribute-set><xsl:attribute-set name="definition-style">
1614
1716
 
1615
1717
 
1616
- </xsl:attribute-set><xsl:template match="text()">
1718
+ </xsl:attribute-set><xsl:template name="processPrefaceSectionsDefault_Contents">
1719
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1720
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1721
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1722
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1723
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1724
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1725
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1726
+
1727
+ <!-- Normative references -->
1728
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']" mode="contents"/>
1729
+ <!-- Terms and definitions -->
1730
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
1731
+ <!-- Another main sections -->
1732
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
1733
+ <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
1734
+ <!-- Bibliography -->
1735
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]" mode="contents"/>
1736
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1737
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1738
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1739
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1740
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1741
+ <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1742
+ </xsl:template><xsl:template name="processMainSectionsDefault">
1743
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1744
+
1745
+ <!-- Normative references -->
1746
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
1747
+ <!-- Terms and definitions -->
1748
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
1749
+ <!-- Another main sections -->
1750
+ <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
1751
+ <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1752
+ <!-- Bibliography -->
1753
+ <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1754
+ </xsl:template><xsl:template match="text()">
1617
1755
  <xsl:value-of select="."/>
1618
1756
  </xsl:template><xsl:template match="*[local-name()='br']">
1619
1757
  <xsl:value-of select="$linebreak"/>
@@ -1632,6 +1770,10 @@
1632
1770
 
1633
1771
 
1634
1772
 
1773
+
1774
+
1775
+ <!-- $namespace = 'iso' or -->
1776
+
1635
1777
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1636
1778
 
1637
1779
 
@@ -1667,6 +1809,7 @@
1667
1809
  <xsl:with-param name="table" select="$simple-table"/>
1668
1810
  </xsl:call-template>
1669
1811
  </xsl:variable>
1812
+ <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1670
1813
 
1671
1814
  <!-- <xsl:variable name="colwidths2">
1672
1815
  <xsl:call-template name="calculate-column-widths">
@@ -1687,35 +1830,61 @@
1687
1830
 
1688
1831
  <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1689
1832
 
1690
- <xsl:attribute name="space-after">6pt</xsl:attribute>
1691
-
1833
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1692
1834
 
1693
1835
 
1836
+ <xsl:attribute name="space-after">6pt</xsl:attribute>
1694
1837
 
1838
+
1839
+
1840
+
1695
1841
 
1696
1842
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
1697
1843
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
1698
1844
  <xsl:attribute name="space-after">18pt</xsl:attribute>
1699
1845
 
1700
1846
 
1847
+
1701
1848
 
1702
1849
 
1703
- <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">
1704
-
1705
-
1706
-
1707
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
1708
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+ <xsl:variable name="table_attributes">
1856
+ <attribute name="table-layout">fixed</attribute>
1857
+ <attribute name="width">100%</attribute>
1858
+ <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1859
+ <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1709
1860
 
1710
1861
 
1711
1862
 
1863
+ <attribute name="margin-left">0mm</attribute>
1864
+ <attribute name="margin-right">0mm</attribute>
1712
1865
 
1713
1866
 
1867
+
1868
+
1869
+
1714
1870
 
1871
+
1715
1872
 
1716
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1873
+ </xsl:variable>
1874
+
1875
+
1876
+ <fo:table id="{@id}" table-omit-footer-at-break="true">
1717
1877
 
1878
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1879
+ <xsl:attribute name="{@name}">
1880
+ <xsl:value-of select="."/>
1881
+ </xsl:attribute>
1882
+ </xsl:for-each>
1718
1883
 
1884
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name']"/>
1885
+ <xsl:if test="$isNoteOrFnExist = 'true'">
1886
+ <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
1887
+ </xsl:if>
1719
1888
 
1720
1889
  <xsl:for-each select="xalan:nodeset($colwidths)//column">
1721
1890
  <xsl:choose>
@@ -1739,6 +1908,33 @@
1739
1908
 
1740
1909
  </fo:table>
1741
1910
 
1911
+ <xsl:for-each select="*[local-name()='tbody']"><!-- select context to tbody -->
1912
+ <xsl:call-template name="insertTableFooterInSeparateTable">
1913
+ <xsl:with-param name="table_attributes" select="$table_attributes"/>
1914
+ <xsl:with-param name="colwidths" select="$colwidths"/>
1915
+ </xsl:call-template>
1916
+ </xsl:for-each>
1917
+
1918
+ <!-- insert footer as table -->
1919
+ <!-- <fo:table>
1920
+ <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
1921
+ <xsl:attribute name="{@name}">
1922
+ <xsl:value-of select="."/>
1923
+ </xsl:attribute>
1924
+ </xsl:for-each>
1925
+
1926
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
1927
+ <xsl:choose>
1928
+ <xsl:when test=". = 1 or . = 0">
1929
+ <fo:table-column column-width="proportional-column-width(2)"/>
1930
+ </xsl:when>
1931
+ <xsl:otherwise>
1932
+ <fo:table-column column-width="proportional-column-width({.})"/>
1933
+ </xsl:otherwise>
1934
+ </xsl:choose>
1935
+ </xsl:for-each>
1936
+ </fo:table>-->
1937
+
1742
1938
 
1743
1939
 
1744
1940
 
@@ -1747,8 +1943,9 @@
1747
1943
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
1748
1944
  <xsl:if test="normalize-space() != ''">
1749
1945
  <fo:block xsl:use-attribute-sets="table-name-style">
1750
- <xsl:apply-templates/>
1751
- </fo:block>
1946
+
1947
+ <xsl:apply-templates/>
1948
+ </fo:block>
1752
1949
  </xsl:if>
1753
1950
  </xsl:template><xsl:template name="calculate-columns-numbers">
1754
1951
  <xsl:param name="table-row"/>
@@ -1802,6 +1999,13 @@
1802
1999
  <xsl:for-each select="xalan:nodeset($table)//tr">
1803
2000
  <xsl:variable name="td_text">
1804
2001
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
2002
+
2003
+ <!-- <xsl:if test="$namespace = 'bipm'">
2004
+ <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
2005
+ <word><xsl:value-of select="normalize-space(.)"/></word>
2006
+ </xsl:for-each>
2007
+ </xsl:if> -->
2008
+
1805
2009
  </xsl:variable>
1806
2010
  <xsl:variable name="words">
1807
2011
  <xsl:variable name="string_with_added_zerospaces">
@@ -1861,13 +2065,31 @@
1861
2065
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
1862
2066
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
1863
2067
  <xsl:value-of select="@target"/>
2068
+ </xsl:template><xsl:template match="*[local-name()='math']" mode="td_text">
2069
+ <xsl:variable name="math_text" select="normalize-space(.)"/>
2070
+ <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
1864
2071
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
1865
2072
  <xsl:param name="cols-count"/>
1866
2073
  <!-- font-weight="bold" -->
1867
- <fo:table-header>
2074
+ <fo:table-header>
1868
2075
 
1869
2076
  <xsl:apply-templates/>
1870
2077
  </fo:table-header>
2078
+ </xsl:template><xsl:template name="table-header-title">
2079
+ <xsl:param name="cols-count"/>
2080
+ <!-- row for title -->
2081
+ <fo:table-row>
2082
+ <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">
2083
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation"/>
2084
+ <xsl:for-each select="ancestor::*[local-name()='table'][1]">
2085
+ <xsl:call-template name="fn_name_display"/>
2086
+ </xsl:for-each>
2087
+ <fo:block text-align="right" font-style="italic">
2088
+ <xsl:text> </xsl:text>
2089
+ <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
2090
+ </fo:block>
2091
+ </fo:table-cell>
2092
+ </fo:table-row>
1871
2093
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
1872
2094
  <fo:table-body>
1873
2095
  <xsl:apply-templates/>
@@ -1875,6 +2097,13 @@
1875
2097
  </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
1876
2098
  <xsl:apply-templates/>
1877
2099
  </xsl:template><xsl:template name="insertTableFooter">
2100
+ <xsl:param name="cols-count"/>
2101
+ <xsl:if test="../*[local-name()='tfoot']">
2102
+ <fo:table-footer>
2103
+ <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
2104
+ </fo:table-footer>
2105
+ </xsl:if>
2106
+ </xsl:template><xsl:template name="insertTableFooter2">
1878
2107
  <xsl:param name="cols-count"/>
1879
2108
  <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1880
2109
  <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
@@ -1900,11 +2129,15 @@
1900
2129
  <!-- fn will be processed inside 'note' processing -->
1901
2130
 
1902
2131
 
1903
- <!-- except gb -->
2132
+
2133
+ <!-- except gb and bipm -->
1904
2134
 
1905
2135
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1906
2136
 
1907
2137
 
2138
+
2139
+
2140
+
1908
2141
  <!-- horizontal row separator -->
1909
2142
 
1910
2143
 
@@ -1918,6 +2151,88 @@
1918
2151
  </fo:table-footer>
1919
2152
 
1920
2153
  </xsl:if>
2154
+ </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
2155
+ <xsl:param name="table_attributes"/>
2156
+ <xsl:param name="colwidths"/>
2157
+
2158
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
2159
+
2160
+ <xsl:if test="$isNoteOrFnExist = 'true'">
2161
+
2162
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($colwidths)//column)"/>
2163
+
2164
+ <fo:table keep-with-previous="always">
2165
+ <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2166
+ <xsl:choose>
2167
+ <xsl:when test="@name = 'border-top'">
2168
+ <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
2169
+ </xsl:when>
2170
+ <xsl:when test="@name = 'border'">
2171
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2172
+ <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
2173
+ </xsl:when>
2174
+ <xsl:otherwise>
2175
+ <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2176
+ </xsl:otherwise>
2177
+ </xsl:choose>
2178
+ </xsl:for-each>
2179
+
2180
+ <xsl:for-each select="xalan:nodeset($colwidths)//column">
2181
+ <xsl:choose>
2182
+ <xsl:when test=". = 1 or . = 0">
2183
+ <fo:table-column column-width="proportional-column-width(2)"/>
2184
+ </xsl:when>
2185
+ <xsl:otherwise>
2186
+ <fo:table-column column-width="proportional-column-width({.})"/>
2187
+ </xsl:otherwise>
2188
+ </xsl:choose>
2189
+ </xsl:for-each>
2190
+
2191
+ <fo:table-body>
2192
+ <fo:table-row>
2193
+ <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2194
+
2195
+
2196
+
2197
+ <xsl:if test="ancestor::*[local-name()='preface']">
2198
+ <xsl:attribute name="border">solid black 0pt</xsl:attribute>
2199
+ </xsl:if>
2200
+
2201
+ <!-- fn will be processed inside 'note' processing -->
2202
+
2203
+
2204
+
2205
+ <!-- except gb and bipm -->
2206
+
2207
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2208
+
2209
+
2210
+ <!-- <xsl:if test="$namespace = 'bipm'">
2211
+ <xsl:choose>
2212
+ <xsl:when test="ancestor::*[local-name()='preface']">
2213
+ show Note under table in preface (ex. abstract) sections
2214
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2215
+ </xsl:when>
2216
+ <xsl:otherwise>
2217
+ empty, because notes show at page side in main sections
2218
+ <fo:block/>
2219
+ </xsl:otherwise>
2220
+ </xsl:choose>
2221
+ </xsl:if> -->
2222
+
2223
+
2224
+ <!-- horizontal row separator -->
2225
+
2226
+
2227
+ <!-- fn processing -->
2228
+ <xsl:call-template name="fn_display"/>
2229
+
2230
+ </fo:table-cell>
2231
+ </fo:table-row>
2232
+ </fo:table-body>
2233
+
2234
+ </fo:table>
2235
+ </xsl:if>
1921
2236
  </xsl:template><xsl:template match="*[local-name()='tbody']">
1922
2237
 
1923
2238
  <xsl:variable name="cols-count">
@@ -1935,6 +2250,8 @@
1935
2250
  </xsl:choose>
1936
2251
  </xsl:variable>
1937
2252
 
2253
+
2254
+
1938
2255
  <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
1939
2256
  <xsl:with-param name="cols-count" select="$cols-count"/>
1940
2257
  </xsl:apply-templates>
@@ -1944,6 +2261,8 @@
1944
2261
  </xsl:call-template>
1945
2262
 
1946
2263
  <fo:table-body>
2264
+
2265
+
1947
2266
  <xsl:apply-templates/>
1948
2267
  <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
1949
2268
 
@@ -1967,10 +2286,20 @@
1967
2286
  </xsl:if>
1968
2287
 
1969
2288
 
2289
+
2290
+
1970
2291
  <xsl:apply-templates/>
1971
2292
  </fo:table-row>
1972
2293
  </xsl:template><xsl:template match="*[local-name()='th']">
1973
2294
  <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2295
+ <xsl:attribute name="text-align">
2296
+ <xsl:choose>
2297
+ <xsl:when test="@align">
2298
+ <xsl:value-of select="@align"/>
2299
+ </xsl:when>
2300
+ <xsl:otherwise>center</xsl:otherwise>
2301
+ </xsl:choose>
2302
+ </xsl:attribute>
1974
2303
 
1975
2304
 
1976
2305
 
@@ -1983,6 +2312,9 @@
1983
2312
 
1984
2313
 
1985
2314
 
2315
+
2316
+
2317
+
1986
2318
  <xsl:if test="@colspan">
1987
2319
  <xsl:attribute name="number-columns-spanned">
1988
2320
  <xsl:value-of select="@colspan"/>
@@ -1993,12 +2325,32 @@
1993
2325
  <xsl:value-of select="@rowspan"/>
1994
2326
  </xsl:attribute>
1995
2327
  </xsl:if>
2328
+ <xsl:call-template name="display-align"/>
1996
2329
  <fo:block>
1997
2330
  <xsl:apply-templates/>
1998
2331
  </fo:block>
1999
2332
  </fo:table-cell>
2333
+ </xsl:template><xsl:template name="display-align">
2334
+ <xsl:if test="@valign">
2335
+ <xsl:attribute name="display-align">
2336
+ <xsl:choose>
2337
+ <xsl:when test="@valign = 'top'">before</xsl:when>
2338
+ <xsl:when test="@valign = 'middle'">center</xsl:when>
2339
+ <xsl:when test="@valign = 'bottom'">after</xsl:when>
2340
+ <xsl:otherwise>before</xsl:otherwise>
2341
+ </xsl:choose>
2342
+ </xsl:attribute>
2343
+ </xsl:if>
2000
2344
  </xsl:template><xsl:template match="*[local-name()='td']">
2001
2345
  <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2346
+ <xsl:attribute name="text-align">
2347
+ <xsl:choose>
2348
+ <xsl:when test="@align">
2349
+ <xsl:value-of select="@align"/>
2350
+ </xsl:when>
2351
+ <xsl:otherwise>left</xsl:otherwise>
2352
+ </xsl:choose>
2353
+ </xsl:attribute>
2002
2354
 
2003
2355
 
2004
2356
  <xsl:if test="ancestor::*[local-name()='preface']">
@@ -2007,7 +2359,9 @@
2007
2359
  <xsl:attribute name="display-align">before</xsl:attribute>
2008
2360
 
2009
2361
 
2010
-
2362
+
2363
+
2364
+
2011
2365
 
2012
2366
 
2013
2367
 
@@ -2023,8 +2377,8 @@
2023
2377
  <xsl:value-of select="@rowspan"/>
2024
2378
  </xsl:attribute>
2025
2379
  </xsl:if>
2026
- <fo:block>
2027
-
2380
+ <xsl:call-template name="display-align"/>
2381
+ <fo:block>
2028
2382
  <xsl:apply-templates/>
2029
2383
  </fo:block>
2030
2384
  </fo:table-cell>
@@ -2036,14 +2390,17 @@
2036
2390
 
2037
2391
 
2038
2392
 
2393
+
2394
+
2039
2395
  <fo:inline padding-right="2mm">
2040
2396
 
2041
2397
 
2042
2398
 
2043
-
2399
+
2044
2400
  <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2045
2401
 
2046
2402
  </fo:inline>
2403
+
2047
2404
  <xsl:apply-templates mode="process"/>
2048
2405
  </fo:block>
2049
2406
 
@@ -2076,6 +2433,7 @@
2076
2433
  <xsl:attribute name="text-indent">-5mm</xsl:attribute>
2077
2434
  <xsl:attribute name="start-indent">5mm</xsl:attribute>
2078
2435
 
2436
+
2079
2437
  <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2080
2438
 
2081
2439
  <xsl:attribute name="vertical-align">super</xsl:attribute>
@@ -2088,8 +2446,10 @@
2088
2446
  <xsl:attribute name="font-size">70%</xsl:attribute>
2089
2447
 
2090
2448
 
2449
+
2091
2450
  <xsl:value-of select="@reference"/>
2092
2451
 
2452
+
2093
2453
  <!-- <xsl:if test="@preface = 'true'"> -->
2094
2454
  <xsl:text>)</xsl:text>
2095
2455
  <!-- </xsl:if> -->
@@ -2097,7 +2457,8 @@
2097
2457
  </fo:inline>
2098
2458
  <fo:inline>
2099
2459
 
2100
- <xsl:apply-templates/>
2460
+ <!-- <xsl:apply-templates /> -->
2461
+ <xsl:copy-of select="./node()"/>
2101
2462
  </fo:inline>
2102
2463
  </fo:block>
2103
2464
  </xsl:if>
@@ -2134,7 +2495,20 @@
2134
2495
  <xsl:variable name="following_dl_colwidths">
2135
2496
  <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2136
2497
  <xsl:variable name="html-table">
2137
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2498
+ <xsl:variable name="doc_ns">
2499
+
2500
+ </xsl:variable>
2501
+ <xsl:variable name="ns">
2502
+ <xsl:choose>
2503
+ <xsl:when test="normalize-space($doc_ns) != ''">
2504
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2505
+ </xsl:when>
2506
+ <xsl:otherwise>
2507
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2508
+ </xsl:otherwise>
2509
+ </xsl:choose>
2510
+ </xsl:variable>
2511
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2138
2512
  <xsl:element name="{$ns}:table">
2139
2513
  <xsl:for-each select="*[local-name() = 'dl'][1]">
2140
2514
  <tbody>
@@ -2199,7 +2573,8 @@
2199
2573
  <xsl:attribute name="margin-bottom">0</xsl:attribute>
2200
2574
  </xsl:if>
2201
2575
 
2202
- <xsl:apply-templates/>
2576
+ <!-- <xsl:apply-templates /> -->
2577
+ <xsl:copy-of select="./node()"/>
2203
2578
  </fo:block>
2204
2579
  </fo:table-cell>
2205
2580
  </fo:table-row>
@@ -2216,13 +2591,17 @@
2216
2591
 
2217
2592
 
2218
2593
 
2594
+
2219
2595
  <xsl:attribute name="vertical-align">super</xsl:attribute>
2220
2596
  <xsl:attribute name="color">blue</xsl:attribute>
2221
2597
 
2222
2598
 
2599
+
2223
2600
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
2224
2601
 
2602
+
2225
2603
  <xsl:value-of select="@reference"/>
2604
+
2226
2605
  </fo:basic-link>
2227
2606
  </fo:inline>
2228
2607
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -2230,124 +2609,151 @@
2230
2609
  <xsl:apply-templates/>
2231
2610
  </fo:inline>
2232
2611
  </xsl:template><xsl:template match="*[local-name()='dl']">
2233
- <xsl:variable name="parent" select="local-name(..)"/>
2234
-
2235
- <xsl:variable name="key_iso">
2236
- <!-- and (not(../@class) or ../@class !='pseudocode') -->
2237
- </xsl:variable>
2238
-
2239
- <xsl:choose>
2240
- <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2612
+ <fo:block-container margin-left="0mm">
2613
+ <xsl:if test="parent::*[local-name() = 'note']">
2614
+ <xsl:attribute name="margin-left">
2615
+ <xsl:choose>
2616
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
2617
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
2618
+ </xsl:choose>
2619
+ </xsl:attribute>
2241
2620
 
2621
+ </xsl:if>
2622
+ <fo:block-container margin-left="0mm">
2623
+
2624
+ <xsl:variable name="parent" select="local-name(..)"/>
2242
2625
 
2243
- <fo:block margin-bottom="12pt" text-align="left">
2244
-
2245
- <xsl:variable name="title-where">
2246
- <xsl:call-template name="getTitle">
2247
- <xsl:with-param name="name" select="'title-where'"/>
2248
- </xsl:call-template>
2249
- </xsl:variable>
2250
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2251
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
2252
- <xsl:text/>
2253
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2254
- </fo:block>
2255
-
2256
- </xsl:when>
2257
- <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2258
- <fo:block margin-bottom="12pt" text-align="left">
2259
-
2260
-
2261
-
2262
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2263
-
2264
-
2265
- <xsl:variable name="title-where">
2266
- <xsl:call-template name="getTitle">
2267
- <xsl:with-param name="name" select="'title-where'"/>
2268
- </xsl:call-template>
2269
- </xsl:variable>
2270
- <xsl:value-of select="$title-where"/>:
2271
- </fo:block>
2272
- </xsl:when>
2273
- <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2274
- <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
2275
-
2276
-
2277
-
2278
- <xsl:variable name="title-key">
2279
- <xsl:call-template name="getTitle">
2280
- <xsl:with-param name="name" select="'title-key'"/>
2281
- </xsl:call-template>
2282
- </xsl:variable>
2283
- <xsl:value-of select="$title-key"/>
2284
- </fo:block>
2285
- </xsl:when>
2286
- </xsl:choose>
2287
-
2288
- <!-- a few components -->
2289
- <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2290
- <fo:block>
2291
-
2292
-
2293
- <xsl:if test="$parent = 'figure' or $parent = 'formula'">
2294
- <xsl:attribute name="margin-left">7.4mm</xsl:attribute>
2295
- </xsl:if>
2296
- <xsl:if test="$parent = 'li'">
2297
- <!-- <xsl:attribute name="margin-left">-4mm</xsl:attribute> -->
2298
- </xsl:if>
2299
-
2626
+ <xsl:variable name="key_iso">
2627
+ <!-- and (not(../@class) or ../@class !='pseudocode') -->
2628
+ </xsl:variable>
2300
2629
 
2630
+ <xsl:choose>
2631
+ <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2632
+
2633
+
2634
+ <fo:block margin-bottom="12pt" text-align="left">
2635
+
2636
+ <xsl:variable name="title-where">
2637
+ <xsl:call-template name="getTitle">
2638
+ <xsl:with-param name="name" select="'title-where'"/>
2639
+ </xsl:call-template>
2640
+ </xsl:variable>
2641
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2642
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
2643
+ <xsl:text/>
2644
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2645
+ </fo:block>
2646
+
2647
+ </xsl:when>
2648
+ <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2649
+ <fo:block margin-bottom="12pt" text-align="left">
2650
+
2651
+
2652
+
2653
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2654
+
2655
+
2656
+ <xsl:variable name="title-where">
2657
+ <xsl:call-template name="getTitle">
2658
+ <xsl:with-param name="name" select="'title-where'"/>
2659
+ </xsl:call-template>
2660
+ </xsl:variable>
2661
+ <xsl:value-of select="$title-where"/>:
2662
+ </fo:block>
2663
+ </xsl:when>
2664
+ <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')">
2665
+ <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
2666
+
2667
+
2668
+
2669
+ <xsl:variable name="title-key">
2670
+ <xsl:call-template name="getTitle">
2671
+ <xsl:with-param name="name" select="'title-key'"/>
2672
+ </xsl:call-template>
2673
+ </xsl:variable>
2674
+ <xsl:value-of select="$title-key"/>
2675
+ </fo:block>
2676
+ </xsl:when>
2677
+ </xsl:choose>
2301
2678
 
2302
- <fo:block>
2303
-
2304
-
2305
-
2306
-
2307
- <fo:table width="95%" table-layout="fixed">
2679
+ <!-- a few components -->
2680
+ <xsl:if test="not($parent = 'formula' and count(*[local-name()='dt']) = 1)">
2681
+ <fo:block>
2308
2682
 
2309
- <xsl:choose>
2310
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2311
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2312
- </xsl:when>
2313
- <xsl:when test="normalize-space($key_iso) = 'true'">
2314
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2683
+
2684
+ <xsl:if test="$parent = 'figure' or $parent = 'formula'">
2685
+ <xsl:attribute name="margin-left">7.4mm</xsl:attribute>
2686
+ </xsl:if>
2687
+ <xsl:if test="$parent = 'li'">
2688
+ <!-- <xsl:attribute name="margin-left">-4mm</xsl:attribute> -->
2689
+ </xsl:if>
2690
+
2691
+
2692
+
2693
+ <fo:block>
2694
+
2695
+
2696
+
2697
+
2698
+ <fo:table width="95%" table-layout="fixed">
2315
2699
 
2316
- </xsl:when>
2317
- </xsl:choose>
2318
- <!-- create virtual html table for dl/[dt and dd] -->
2319
- <xsl:variable name="html-table">
2320
- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/>
2321
- <xsl:element name="{$ns}:table">
2322
- <tbody>
2323
- <xsl:apply-templates mode="dl"/>
2324
- </tbody>
2325
- </xsl:element>
2326
- </xsl:variable>
2327
- <!-- html-table<xsl:copy-of select="$html-table"/> -->
2328
- <xsl:variable name="colwidths">
2329
- <xsl:call-template name="calculate-column-widths">
2330
- <xsl:with-param name="cols-count" select="2"/>
2331
- <xsl:with-param name="table" select="$html-table"/>
2332
- </xsl:call-template>
2333
- </xsl:variable>
2334
- <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2335
- <xsl:variable name="maxlength_dt">
2336
- <xsl:call-template name="getMaxLength_dt"/>
2337
- </xsl:variable>
2338
- <xsl:call-template name="setColumnWidth_dl">
2339
- <xsl:with-param name="colwidths" select="$colwidths"/>
2340
- <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
2341
- </xsl:call-template>
2342
- <fo:table-body>
2343
- <xsl:apply-templates>
2344
- <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2345
- </xsl:apply-templates>
2346
- </fo:table-body>
2347
- </fo:table>
2348
- </fo:block>
2349
- </fo:block>
2350
- </xsl:if>
2700
+ <xsl:choose>
2701
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2702
+ <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2703
+ </xsl:when>
2704
+ <xsl:when test="normalize-space($key_iso) = 'true'">
2705
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2706
+
2707
+ </xsl:when>
2708
+ </xsl:choose>
2709
+ <!-- create virtual html table for dl/[dt and dd] -->
2710
+ <xsl:variable name="html-table">
2711
+ <xsl:variable name="doc_ns">
2712
+
2713
+ </xsl:variable>
2714
+ <xsl:variable name="ns">
2715
+ <xsl:choose>
2716
+ <xsl:when test="normalize-space($doc_ns) != ''">
2717
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2718
+ </xsl:when>
2719
+ <xsl:otherwise>
2720
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2721
+ </xsl:otherwise>
2722
+ </xsl:choose>
2723
+ </xsl:variable>
2724
+ <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2725
+ <xsl:element name="{$ns}:table">
2726
+ <tbody>
2727
+ <xsl:apply-templates mode="dl"/>
2728
+ </tbody>
2729
+ </xsl:element>
2730
+ </xsl:variable>
2731
+ <!-- html-table<xsl:copy-of select="$html-table"/> -->
2732
+ <xsl:variable name="colwidths">
2733
+ <xsl:call-template name="calculate-column-widths">
2734
+ <xsl:with-param name="cols-count" select="2"/>
2735
+ <xsl:with-param name="table" select="$html-table"/>
2736
+ </xsl:call-template>
2737
+ </xsl:variable>
2738
+ <!-- colwidths=<xsl:value-of select="$colwidths"/> -->
2739
+ <xsl:variable name="maxlength_dt">
2740
+ <xsl:call-template name="getMaxLength_dt"/>
2741
+ </xsl:variable>
2742
+ <xsl:call-template name="setColumnWidth_dl">
2743
+ <xsl:with-param name="colwidths" select="$colwidths"/>
2744
+ <xsl:with-param name="maxlength_dt" select="$maxlength_dt"/>
2745
+ </xsl:call-template>
2746
+ <fo:table-body>
2747
+ <xsl:apply-templates>
2748
+ <xsl:with-param name="key_iso" select="normalize-space($key_iso)"/>
2749
+ </xsl:apply-templates>
2750
+ </fo:table-body>
2751
+ </fo:table>
2752
+ </fo:block>
2753
+ </fo:block>
2754
+ </xsl:if>
2755
+ </fo:block-container>
2756
+ </fo:block-container>
2351
2757
  </xsl:template><xsl:template name="setColumnWidth_dl">
2352
2758
  <xsl:param name="colwidths"/>
2353
2759
  <xsl:param name="maxlength_dt"/>
@@ -2444,6 +2850,7 @@
2444
2850
  <xsl:param name="key_iso"/>
2445
2851
 
2446
2852
  <fo:table-row>
2853
+
2447
2854
  <fo:table-cell>
2448
2855
 
2449
2856
  <xsl:if test="ancestor::*[1][local-name() = 'dl']/preceding-sibling::*[1][local-name() = 'formula']">
@@ -2466,6 +2873,7 @@
2466
2873
  </xsl:if>
2467
2874
 
2468
2875
 
2876
+
2469
2877
  <xsl:apply-templates/>
2470
2878
  <!-- <xsl:if test="$namespace = 'gb'">
2471
2879
  <xsl:if test="ancestor::*[local-name()='formula']">
@@ -2479,14 +2887,36 @@
2479
2887
 
2480
2888
  <xsl:attribute name="text-align">justify</xsl:attribute>
2481
2889
 
2482
-
2890
+ <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2891
+ <xsl:if test="local-name(*[1]) != 'stem'">
2892
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2893
+ </xsl:if>
2894
+ </xsl:if> -->
2483
2895
 
2484
2896
  <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2485
2897
 
2486
2898
  </fo:block>
2487
2899
  </fo:table-cell>
2488
2900
  </fo:table-row>
2489
-
2901
+ <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2902
+ <xsl:if test="local-name(*[1]) = 'stem'">
2903
+ <fo:table-row>
2904
+ <fo:table-cell>
2905
+ <fo:block margin-top="6pt">
2906
+ <xsl:if test="normalize-space($key_iso) = 'true'">
2907
+ <xsl:attribute name="margin-top">0</xsl:attribute>
2908
+ </xsl:if>
2909
+ <xsl:text>&#xA0;</xsl:text>
2910
+ </fo:block>
2911
+ </fo:table-cell>
2912
+ <fo:table-cell>
2913
+ <fo:block>
2914
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2915
+ </fo:block>
2916
+ </fo:table-cell>
2917
+ </fo:table-row>
2918
+ </xsl:if>
2919
+ </xsl:if> -->
2490
2920
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
2491
2921
  <xsl:apply-templates/>
2492
2922
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
@@ -2511,6 +2941,31 @@
2511
2941
  </fo:inline>
2512
2942
  </xsl:template><xsl:template match="*[local-name()='tt']">
2513
2943
  <fo:inline xsl:use-attribute-sets="tt-style">
2944
+ <xsl:variable name="_font-size">
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+
2951
+
2952
+
2953
+
2954
+
2955
+
2956
+
2957
+
2958
+
2959
+ </xsl:variable>
2960
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
2961
+ <xsl:if test="$font-size != ''">
2962
+ <xsl:attribute name="font-size">
2963
+ <xsl:choose>
2964
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
2965
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
2966
+ </xsl:choose>
2967
+ </xsl:attribute>
2968
+ </xsl:if>
2514
2969
  <xsl:apply-templates/>
2515
2970
  </fo:inline>
2516
2971
  </xsl:template><xsl:template match="*[local-name()='del']">
@@ -2836,11 +3291,24 @@
2836
3291
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(substring($str, 1, 1)))"/>
2837
3292
  <xsl:value-of select="substring($str, 2)"/>
2838
3293
  </xsl:template><xsl:template match="mathml:math">
2839
- <fo:inline font-family="STIX2Math">
2840
- <fo:instream-foreign-object fox:alt-text="Math">
2841
- <xsl:copy-of select="."/>
2842
- </fo:instream-foreign-object>
3294
+ <fo:inline font-family="STIX Two Math"> <!-- -->
3295
+ <xsl:variable name="mathml">
3296
+ <xsl:apply-templates select="." mode="mathml"/>
3297
+ </xsl:variable>
3298
+ <fo:instream-foreign-object fox:alt-text="Math">
3299
+ <!-- <xsl:copy-of select="."/> -->
3300
+ <xsl:copy-of select="xalan:nodeset($mathml)"/>
3301
+ </fo:instream-foreign-object>
2843
3302
  </fo:inline>
3303
+ </xsl:template><xsl:template match="@*|node()" mode="mathml">
3304
+ <xsl:copy>
3305
+ <xsl:apply-templates select="@*|node()" mode="mathml"/>
3306
+ </xsl:copy>
3307
+ </xsl:template><xsl:template match="mathml:mtext" mode="mathml">
3308
+ <xsl:copy>
3309
+ <!-- replace start and end spaces to non-break space -->
3310
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),'(^ )|( $)',' ')"/>
3311
+ </xsl:copy>
2844
3312
  </xsl:template><xsl:template match="*[local-name()='localityStack']"/><xsl:template match="*[local-name()='link']" name="link">
2845
3313
  <xsl:variable name="target">
2846
3314
  <xsl:choose>
@@ -2917,13 +3385,26 @@
2917
3385
  <xsl:apply-templates/>
2918
3386
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
2919
3387
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
2920
-
3388
+
2921
3389
  <xsl:apply-templates/>
2922
3390
  </fo:basic-link>
2923
3391
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
2924
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
2925
- <xsl:apply-templates/>
2926
- </fo:block>
3392
+ <fo:block-container margin-left="0mm">
3393
+ <xsl:if test="parent::*[local-name() = 'note']">
3394
+ <xsl:attribute name="margin-left">
3395
+ <xsl:choose>
3396
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3397
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3398
+ </xsl:choose>
3399
+ </xsl:attribute>
3400
+
3401
+ </xsl:if>
3402
+ <fo:block-container margin-left="0mm">
3403
+ <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
3404
+ <xsl:apply-templates/>
3405
+ </fo:block>
3406
+ </fo:block-container>
3407
+ </fo:block-container>
2927
3408
  </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'dt']/*[local-name() = 'stem']">
2928
3409
  <fo:inline>
2929
3410
  <xsl:apply-templates/>
@@ -2987,7 +3468,9 @@
2987
3468
  </xsl:choose>
2988
3469
  </xsl:template><xsl:template match="*[local-name() = 'termnote']">
2989
3470
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
2990
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3471
+ <fo:inline xsl:use-attribute-sets="termnote-name-style">
3472
+ <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3473
+ </fo:inline>
2991
3474
  <xsl:apply-templates/>
2992
3475
  </fo:block>
2993
3476
  </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">
@@ -3086,15 +3569,109 @@
3086
3569
 
3087
3570
  <fo:external-graphic src="{$src}" fox:alt-text="Image {@alt}" xsl:use-attribute-sets="image-graphic-style"/>
3088
3571
  </fo:block>
3089
- </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">
3572
+ </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">
3090
3573
  <xsl:apply-templates mode="contents"/>
3091
3574
  <xsl:text> </xsl:text>
3092
- </xsl:template><xsl:template match="text()" mode="contents">
3575
+ </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">
3576
+ <xsl:apply-templates mode="bookmarks"/>
3577
+ <xsl:text> </xsl:text>
3578
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="contents" priority="2">
3579
+ <xsl:value-of select="."/>
3580
+ </xsl:template><xsl:template match="*[local-name() = 'name']/text()" mode="bookmarks" priority="2">
3093
3581
  <xsl:value-of select="."/>
3094
- </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
3582
+ </xsl:template><xsl:template match="node()" mode="contents">
3583
+ <xsl:apply-templates mode="contents"/>
3584
+ </xsl:template><xsl:template match="node()" mode="bookmarks">
3585
+ <xsl:apply-templates mode="bookmarks"/>
3586
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="contents">
3587
+ <xsl:apply-templates select="."/>
3588
+ </xsl:template><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
3589
+ <xsl:apply-templates mode="bookmarks"/>
3590
+ </xsl:template><xsl:template name="addBookmarks">
3591
+ <xsl:param name="contents"/>
3592
+ <xsl:if test="xalan:nodeset($contents)//item">
3593
+ <fo:bookmark-tree>
3594
+ <xsl:choose>
3595
+ <xsl:when test="xalan:nodeset($contents)/doc">
3596
+ <xsl:choose>
3597
+ <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
3598
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
3599
+ <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
3600
+ <fo:bookmark-title>
3601
+ <xsl:variable name="bookmark-title_">
3602
+ <xsl:call-template name="getLangVersion">
3603
+ <xsl:with-param name="lang" select="@lang"/>
3604
+ </xsl:call-template>
3605
+ </xsl:variable>
3606
+ <xsl:choose>
3607
+ <xsl:when test="normalize-space($bookmark-title_) != ''">
3608
+ <xsl:value-of select="normalize-space($bookmark-title_)"/>
3609
+ </xsl:when>
3610
+ <xsl:otherwise>
3611
+ <xsl:choose>
3612
+ <xsl:when test="@lang = 'en'">English</xsl:when>
3613
+ <xsl:when test="@lang = 'fr'">Français</xsl:when>
3614
+ <xsl:when test="@lang = 'de'">Deutsche</xsl:when>
3615
+ <xsl:otherwise><xsl:value-of select="@lang"/> version</xsl:otherwise>
3616
+ </xsl:choose>
3617
+ </xsl:otherwise>
3618
+ </xsl:choose>
3619
+ </fo:bookmark-title>
3620
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
3621
+ </fo:bookmark>
3622
+
3623
+ </xsl:for-each>
3624
+ </xsl:when>
3625
+ <xsl:otherwise>
3626
+ <xsl:for-each select="xalan:nodeset($contents)/doc">
3627
+ <xsl:apply-templates select="contents/item" mode="bookmark"/>
3628
+ </xsl:for-each>
3629
+ </xsl:otherwise>
3630
+ </xsl:choose>
3631
+ </xsl:when>
3632
+ <xsl:otherwise>
3633
+ <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
3634
+ </xsl:otherwise>
3635
+ </xsl:choose>
3636
+
3637
+
3638
+
3639
+
3640
+
3641
+
3642
+
3643
+
3644
+ </fo:bookmark-tree>
3645
+ </xsl:if>
3646
+ </xsl:template><xsl:template name="getLangVersion">
3647
+ <xsl:param name="lang"/>
3648
+ <xsl:choose>
3649
+ <xsl:when test="$lang = 'en'">
3650
+
3651
+
3652
+ </xsl:when>
3653
+ <xsl:when test="$lang = 'fr'">
3654
+
3655
+
3656
+ </xsl:when>
3657
+ <xsl:when test="$lang = 'de'">Deutsche</xsl:when>
3658
+ <xsl:otherwise><xsl:value-of select="$lang"/> version</xsl:otherwise>
3659
+ </xsl:choose>
3660
+ </xsl:template><xsl:template match="item" mode="bookmark">
3661
+ <fo:bookmark internal-destination="{@id}" starting-state="hide">
3662
+ <fo:bookmark-title>
3663
+ <xsl:if test="@section != ''">
3664
+ <xsl:value-of select="@section"/>
3665
+ <xsl:text> </xsl:text>
3666
+ </xsl:if>
3667
+ <xsl:value-of select="normalize-space(title)"/>
3668
+ </fo:bookmark-title>
3669
+ <xsl:apply-templates mode="bookmark"/>
3670
+ </fo:bookmark>
3671
+ </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">
3095
3672
  <xsl:if test="normalize-space() != ''">
3096
3673
  <fo:block xsl:use-attribute-sets="figure-name-style">
3097
-
3674
+
3098
3675
  <xsl:apply-templates/>
3099
3676
  </fo:block>
3100
3677
  </xsl:if>
@@ -3149,7 +3726,7 @@
3149
3726
  <xsl:apply-templates/>
3150
3727
  </xsl:otherwise>
3151
3728
  </xsl:choose>
3152
- </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">
3729
+ </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">
3153
3730
  <xsl:text> </xsl:text>
3154
3731
  </xsl:template><xsl:template match="*[local-name() = 'strong']" mode="contents_item">
3155
3732
  <xsl:copy>
@@ -3158,21 +3735,61 @@
3158
3735
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
3159
3736
  <xsl:text> </xsl:text>
3160
3737
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
3161
- <fo:block xsl:use-attribute-sets="sourcecode-style">
3162
- <xsl:apply-templates/>
3163
- </fo:block>
3164
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3165
- </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()">
3738
+
3739
+ <fo:block-container margin-left="0mm">
3740
+ <xsl:if test="parent::*[local-name() = 'note']">
3741
+ <xsl:attribute name="margin-left">
3742
+ <xsl:choose>
3743
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
3744
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
3745
+ </xsl:choose>
3746
+ </xsl:attribute>
3747
+
3748
+ </xsl:if>
3749
+ <fo:block-container margin-left="0mm">
3750
+
3751
+ <fo:block xsl:use-attribute-sets="sourcecode-style">
3752
+ <xsl:variable name="_font-size">
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+ 10
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3767
+ </xsl:variable>
3768
+ <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
3769
+ <xsl:if test="$font-size != ''">
3770
+ <xsl:attribute name="font-size">
3771
+ <xsl:choose>
3772
+ <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
3773
+ <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
3774
+ </xsl:choose>
3775
+ </xsl:attribute>
3776
+ </xsl:if>
3777
+ <xsl:apply-templates/>
3778
+ </fo:block>
3779
+ <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3780
+
3781
+ </fo:block-container>
3782
+ </fo:block-container>
3783
+ </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
3166
3784
  <xsl:variable name="text">
3167
3785
  <xsl:call-template name="add-zero-spaces-equal"/>
3168
3786
  </xsl:variable>
3169
- <xsl:call-template name="add-zero-spaces">
3787
+ <xsl:call-template name="add-zero-spaces-java">
3170
3788
  <xsl:with-param name="text" select="$text"/>
3171
3789
  </xsl:call-template>
3172
3790
  </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
3173
3791
  <xsl:if test="normalize-space() != ''">
3174
- <fo:block xsl:use-attribute-sets="sourcecode-name-style">
3175
-
3792
+ <fo:block xsl:use-attribute-sets="sourcecode-name-style">
3176
3793
  <xsl:apply-templates/>
3177
3794
  </fo:block>
3178
3795
  </xsl:if>
@@ -3240,6 +3857,145 @@
3240
3857
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
3241
3858
  <xsl:apply-templates/>
3242
3859
  </fo:block>
3860
+ </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3861
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
3862
+ <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3863
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
3864
+ </xsl:if>
3865
+ <fo:block-container margin-left="0mm" margin-right="0mm">
3866
+ <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
3867
+ <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3868
+ <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
3869
+ </xsl:if>
3870
+ <xsl:variable name="simple-table">
3871
+ <xsl:call-template name="getSimpleTable"/>
3872
+ </xsl:variable>
3873
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
3874
+ <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
3875
+ <!-- <fo:table-column column-width="35mm"/>
3876
+ <fo:table-column column-width="115mm"/> -->
3877
+ <fo:table-column column-width="30%"/>
3878
+ <fo:table-column column-width="70%"/>
3879
+ </xsl:if>
3880
+ <xsl:apply-templates mode="requirement"/>
3881
+ </fo:table>
3882
+ <!-- fn processing -->
3883
+ <xsl:if test=".//*[local-name() = 'fn']">
3884
+ <xsl:for-each select="*[local-name() = 'tbody']">
3885
+ <fo:block font-size="90%" border-bottom="1pt solid black">
3886
+ <xsl:call-template name="fn_display"/>
3887
+ </fo:block>
3888
+ </xsl:for-each>
3889
+ </xsl:if>
3890
+ </fo:block-container>
3891
+ </fo:block-container>
3892
+ </xsl:template><xsl:template match="*[local-name()='thead']" mode="requirement">
3893
+ <fo:table-header>
3894
+ <xsl:apply-templates mode="requirement"/>
3895
+ </fo:table-header>
3896
+ </xsl:template><xsl:template match="*[local-name()='tbody']" mode="requirement">
3897
+ <fo:table-body>
3898
+ <xsl:apply-templates mode="requirement"/>
3899
+ </fo:table-body>
3900
+ </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
3901
+ <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
3902
+ <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
3903
+ <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
3904
+ <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
3905
+ </xsl:if>
3906
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
3907
+ <xsl:attribute name="background-color">rgb(252, 246, 222)</xsl:attribute>
3908
+ </xsl:if>
3909
+ <xsl:if test="starts-with(*[local-name()='td'][1], 'Recommendation ')">
3910
+ <xsl:attribute name="background-color">rgb(233, 235, 239)</xsl:attribute>
3911
+ </xsl:if>
3912
+ <xsl:apply-templates mode="requirement"/>
3913
+ </fo:table-row>
3914
+ </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
3915
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
3916
+ <xsl:attribute name="text-align">
3917
+ <xsl:choose>
3918
+ <xsl:when test="@align">
3919
+ <xsl:value-of select="@align"/>
3920
+ </xsl:when>
3921
+ <xsl:otherwise>left</xsl:otherwise>
3922
+ </xsl:choose>
3923
+ </xsl:attribute>
3924
+ <xsl:if test="@colspan">
3925
+ <xsl:attribute name="number-columns-spanned">
3926
+ <xsl:value-of select="@colspan"/>
3927
+ </xsl:attribute>
3928
+ </xsl:if>
3929
+ <xsl:if test="@rowspan">
3930
+ <xsl:attribute name="number-rows-spanned">
3931
+ <xsl:value-of select="@rowspan"/>
3932
+ </xsl:attribute>
3933
+ </xsl:if>
3934
+ <xsl:call-template name="display-align"/>
3935
+
3936
+ <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3937
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3938
+ <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
3939
+ </xsl:if>
3940
+ <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
3941
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3942
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3943
+ </xsl:if> -->
3944
+
3945
+ <fo:block>
3946
+ <xsl:apply-templates/>
3947
+ </fo:block>
3948
+ </fo:table-cell>
3949
+ </xsl:template><xsl:template match="*[local-name()='td']" mode="requirement">
3950
+ <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
3951
+ <xsl:if test="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
3952
+ <xsl:attribute name="padding">0mm</xsl:attribute>
3953
+ <xsl:attribute name="padding-left">0mm</xsl:attribute>
3954
+ </xsl:if>
3955
+ <xsl:attribute name="text-align">
3956
+ <xsl:choose>
3957
+ <xsl:when test="@align">
3958
+ <xsl:value-of select="@align"/>
3959
+ </xsl:when>
3960
+ <xsl:otherwise>left</xsl:otherwise>
3961
+ </xsl:choose>
3962
+ </xsl:attribute>
3963
+ <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
3964
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3965
+ </xsl:if>
3966
+ <xsl:if test="@colspan">
3967
+ <xsl:attribute name="number-columns-spanned">
3968
+ <xsl:value-of select="@colspan"/>
3969
+ </xsl:attribute>
3970
+ </xsl:if>
3971
+ <xsl:if test="@rowspan">
3972
+ <xsl:attribute name="number-rows-spanned">
3973
+ <xsl:value-of select="@rowspan"/>
3974
+ </xsl:attribute>
3975
+ </xsl:if>
3976
+ <xsl:call-template name="display-align"/>
3977
+
3978
+ <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
3979
+ <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
3980
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3981
+ <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
3982
+ <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
3983
+ </xsl:if>
3984
+ </xsl:if> -->
3985
+ <!-- 2nd line and below -->
3986
+
3987
+ <fo:block>
3988
+ <xsl:apply-templates/>
3989
+ </fo:block>
3990
+ </fo:table-cell>
3991
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@class='RecommendationTitle' or @class = 'RecommendationTestTitle']" priority="2">
3992
+ <fo:block font-size="11pt" color="rgb(237, 193, 35)"> <!-- font-weight="bold" margin-bottom="4pt" text-align="center" -->
3993
+ <xsl:apply-templates/>
3994
+ </fo:block>
3995
+ </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
3996
+ <fo:block> <!-- margin-bottom="10pt" -->
3997
+ <xsl:apply-templates/>
3998
+ </fo:block>
3243
3999
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
3244
4000
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
3245
4001
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -3259,12 +4015,13 @@
3259
4015
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3260
4016
 
3261
4017
  <xsl:variable name="element">
3262
- block
4018
+ block
3263
4019
 
4020
+ <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
3264
4021
  </xsl:variable>
3265
4022
 
3266
4023
  <xsl:choose>
3267
- <xsl:when test="normalize-space($element) = 'block'">
4024
+ <xsl:when test="contains(normalize-space($element), 'block')">
3268
4025
  <fo:block xsl:use-attribute-sets="example-body-style">
3269
4026
  <xsl:apply-templates/>
3270
4027
  </fo:block>
@@ -3301,25 +4058,44 @@
3301
4058
  </xsl:otherwise>
3302
4059
  </xsl:choose>
3303
4060
 
3304
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
3305
- <fo:block xsl:use-attribute-sets="example-p-style">
4061
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
4062
+
4063
+ <xsl:variable name="element">
4064
+ block
3306
4065
 
3307
- <xsl:apply-templates/>
3308
- </fo:block>
4066
+ </xsl:variable>
4067
+ <xsl:choose>
4068
+ <xsl:when test="normalize-space($element) = 'block'">
4069
+ <fo:block xsl:use-attribute-sets="example-p-style">
4070
+
4071
+ <xsl:apply-templates/>
4072
+ </fo:block>
4073
+ </xsl:when>
4074
+ <xsl:otherwise>
4075
+ <fo:inline xsl:use-attribute-sets="example-p-style">
4076
+ <xsl:apply-templates/>
4077
+ </fo:inline>
4078
+ </xsl:otherwise>
4079
+ </xsl:choose>
3309
4080
  </xsl:template><xsl:template match="*[local-name() = 'termsource']">
3310
4081
  <fo:block xsl:use-attribute-sets="termsource-style">
3311
4082
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
3312
4083
  <xsl:variable name="termsource_text">
3313
4084
  <xsl:apply-templates/>
3314
4085
  </xsl:variable>
4086
+
3315
4087
  <xsl:choose>
3316
4088
  <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
3317
4089
  <xsl:apply-templates/>
3318
4090
  </xsl:when>
3319
- <xsl:otherwise>
3320
- <xsl:text>[</xsl:text>
3321
- <xsl:apply-templates/>
3322
- <xsl:text>]</xsl:text>
4091
+ <xsl:otherwise>
4092
+
4093
+ <xsl:text>[</xsl:text>
4094
+
4095
+ <xsl:apply-templates/>
4096
+
4097
+ <xsl:text>]</xsl:text>
4098
+
3323
4099
  </xsl:otherwise>
3324
4100
  </xsl:choose>
3325
4101
  </fo:block>
@@ -3340,18 +4116,29 @@
3340
4116
  <xsl:if test="normalize-space() != ''">
3341
4117
  <xsl:value-of select="."/>
3342
4118
  </xsl:if>
3343
- </xsl:template><xsl:template match="*[local-name() = 'quote']">
4119
+ </xsl:template><xsl:template match="*[local-name() = 'quote']">
4120
+ <fo:block-container margin-left="0mm">
4121
+ <xsl:if test="parent::*[local-name() = 'note']">
4122
+ <xsl:if test="not(ancestor::*[local-name() = 'table'])">
4123
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
4124
+ </xsl:if>
4125
+ </xsl:if>
4126
+
4127
+ <fo:block-container margin-left="0mm">
3344
4128
 
3345
- <fo:block xsl:use-attribute-sets="quote-style">
3346
- <xsl:apply-templates select=".//*[local-name() = 'p']"/>
3347
- </fo:block>
3348
- <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
3349
- <fo:block xsl:use-attribute-sets="quote-source-style">
3350
- <!-- — ISO, ISO 7301:2011, Clause 1 -->
3351
- <xsl:apply-templates select="*[local-name() = 'author']"/>
3352
- <xsl:apply-templates select="*[local-name() = 'source']"/>
3353
- </fo:block>
3354
- </xsl:if>
4129
+ <fo:block xsl:use-attribute-sets="quote-style">
4130
+ <xsl:apply-templates select=".//*[local-name() = 'p']"/>
4131
+ </fo:block>
4132
+ <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
4133
+ <fo:block xsl:use-attribute-sets="quote-source-style">
4134
+ <!-- — ISO, ISO 7301:2011, Clause 1 -->
4135
+ <xsl:apply-templates select="*[local-name() = 'author']"/>
4136
+ <xsl:apply-templates select="*[local-name() = 'source']"/>
4137
+ </fo:block>
4138
+ </xsl:if>
4139
+
4140
+ </fo:block-container>
4141
+ </fo:block-container>
3355
4142
  </xsl:template><xsl:template match="*[local-name() = 'source']">
3356
4143
  <xsl:if test="../*[local-name() = 'author']">
3357
4144
  <xsl:text>, </xsl:text>
@@ -3379,6 +4166,7 @@
3379
4166
  <xsl:if test="@type = 'inline'">
3380
4167
 
3381
4168
 
4169
+
3382
4170
  </xsl:if>
3383
4171
 
3384
4172
 
@@ -3419,6 +4207,7 @@
3419
4207
 
3420
4208
 
3421
4209
 
4210
+
3422
4211
  </xsl:variable>
3423
4212
 
3424
4213
  <xsl:variable name="padding-right">
@@ -3509,13 +4298,14 @@
3509
4298
  </xsl:template><xsl:template match="*[local-name() = 'clause']">
3510
4299
  <fo:block>
3511
4300
  <xsl:call-template name="setId"/>
4301
+
3512
4302
  <xsl:apply-templates/>
3513
4303
  </fo:block>
3514
4304
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
3515
4305
  <fo:block id="{@id}">
3516
4306
  <xsl:apply-templates/>
3517
4307
  </fo:block>
3518
- </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@id = '_normative_references' or @id = '_references']">
4308
+ </xsl:template><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
3519
4309
 
3520
4310
  <fo:block id="{@id}">
3521
4311
  <xsl:apply-templates/>
@@ -3533,6 +4323,31 @@
3533
4323
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
3534
4324
  <!-- 0xA0 to space replacement -->
3535
4325
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
4326
+ </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
4327
+ <xsl:choose>
4328
+ <xsl:when test="parent::*[local-name() = 'note']">
4329
+ <fo:block-container>
4330
+ <xsl:attribute name="margin-left">
4331
+ <xsl:choose>
4332
+ <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
4333
+ <xsl:otherwise><xsl:value-of select="$note-body-indent-table"/></xsl:otherwise>
4334
+ </xsl:choose>
4335
+ </xsl:attribute>
4336
+
4337
+
4338
+ <fo:block-container margin-left="0mm">
4339
+ <fo:block>
4340
+ <xsl:apply-templates select="." mode="ul_ol"/>
4341
+ </fo:block>
4342
+ </fo:block-container>
4343
+ </fo:block-container>
4344
+ </xsl:when>
4345
+ <xsl:otherwise>
4346
+ <fo:block>
4347
+ <xsl:apply-templates select="." mode="ul_ol"/>
4348
+ </fo:block>
4349
+ </xsl:otherwise>
4350
+ </xsl:choose>
3536
4351
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
3537
4352
  <!-- <row>
3538
4353
  <date>05-07-2013</date>
@@ -3564,6 +4379,65 @@
3564
4379
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
3565
4380
  <fo:block><xsl:apply-templates/></fo:block>
3566
4381
  </fo:table-cell>
4382
+ </xsl:template><xsl:template name="processBibitem">
4383
+
4384
+
4385
+
4386
+
4387
+ </xsl:template><xsl:template name="processBibitemDocId">
4388
+ <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')]"/>
4389
+ <xsl:choose>
4390
+ <xsl:when test="normalize-space($_doc_ident) != ''">
4391
+ <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"/>
4392
+ <xsl:if test="$type != '' and not(contains($_doc_ident, $type))">
4393
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
4394
+ </xsl:if>
4395
+ <xsl:value-of select="$_doc_ident"/>
4396
+ </xsl:when>
4397
+ <xsl:otherwise>
4398
+ <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]/@type"/>
4399
+ <xsl:if test="$type != ''">
4400
+ <xsl:value-of select="$type"/><xsl:text> </xsl:text>
4401
+ </xsl:if>
4402
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
4403
+ </xsl:otherwise>
4404
+ </xsl:choose>
4405
+ </xsl:template><xsl:template name="processPersonalAuthor">
4406
+ <xsl:choose>
4407
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'completename']">
4408
+ <author>
4409
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'completename']"/>
4410
+ </author>
4411
+ </xsl:when>
4412
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'initial']">
4413
+ <author>
4414
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
4415
+ <xsl:text> </xsl:text>
4416
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'initial']" mode="strip"/>
4417
+ </author>
4418
+ </xsl:when>
4419
+ <xsl:when test="*[local-name() = 'name']/*[local-name() = 'surname'] and *[local-name() = 'name']/*[local-name() = 'forename']">
4420
+ <author>
4421
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'surname']"/>
4422
+ <xsl:text> </xsl:text>
4423
+ <xsl:apply-templates select="*[local-name() = 'name']/*[local-name() = 'forename']" mode="strip"/>
4424
+ </author>
4425
+ </xsl:when>
4426
+ <xsl:otherwise>
4427
+ <xsl:apply-templates/>
4428
+ </xsl:otherwise>
4429
+ </xsl:choose>
4430
+ </xsl:template><xsl:template name="renderDate">
4431
+ <xsl:if test="normalize-space(*[local-name() = 'on']) != ''">
4432
+ <xsl:value-of select="*[local-name() = 'on']"/>
4433
+ </xsl:if>
4434
+ <xsl:if test="normalize-space(*[local-name() = 'from']) != ''">
4435
+ <xsl:value-of select="concat(*[local-name() = 'from'], '–', *[local-name() = 'to'])"/>
4436
+ </xsl:if>
4437
+ </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'initial']/text()" mode="strip">
4438
+ <xsl:value-of select="translate(.,'. ','')"/>
4439
+ </xsl:template><xsl:template match="*[local-name() = 'name']/*[local-name() = 'forename']/text()" mode="strip">
4440
+ <xsl:value-of select="substring(.,1,1)"/>
3567
4441
  </xsl:template><xsl:template name="convertDate">
3568
4442
  <xsl:param name="date"/>
3569
4443
  <xsl:param name="format" select="'short'"/>
@@ -3645,6 +4519,7 @@
3645
4519
 
3646
4520
 
3647
4521
 
4522
+
3648
4523
  <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'title'][@type='main']"/>
3649
4524
 
3650
4525
  </xsl:variable>
@@ -3662,6 +4537,7 @@
3662
4537
  <xsl:value-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']/*[local-name() = 'organization']/*[local-name() = 'name']"/>
3663
4538
 
3664
4539
 
4540
+
3665
4541
  </dc:creator>
3666
4542
  <dc:description>
3667
4543
  <xsl:variable name="abstract">
@@ -3671,6 +4547,7 @@
3671
4547
 
3672
4548
  <xsl:copy-of select="/*/*[local-name() = 'bibdata']/*[local-name() = 'abstract']//text()"/>
3673
4549
 
4550
+
3674
4551
  </xsl:variable>
3675
4552
  <xsl:value-of select="normalize-space($abstract)"/>
3676
4553
  </dc:description>
@@ -3769,7 +4646,9 @@
3769
4646
 
3770
4647
 
3771
4648
 
3772
-
4649
+
4650
+
4651
+
3773
4652
  </xsl:variable>
3774
4653
  <xsl:if test="$documentNS != $XSLNS">
3775
4654
  <xsl:message>[WARNING]: Document namespace: '<xsl:value-of select="$documentNS"/>' doesn't equal to xslt namespace '<xsl:value-of select="$XSLNS"/>'</xsl:message>
@@ -3795,4 +4674,21 @@
3795
4674
  </xsl:otherwise>
3796
4675
  </xsl:choose>
3797
4676
  </xsl:attribute>
4677
+ </xsl:template><xsl:template name="add-letter-spacing">
4678
+ <xsl:param name="text"/>
4679
+ <xsl:param name="letter-spacing" select="'0.15'"/>
4680
+ <xsl:if test="string-length($text) &gt; 0">
4681
+ <xsl:variable name="char" select="substring($text, 1, 1)"/>
4682
+ <fo:inline padding-right="{$letter-spacing}mm">
4683
+ <xsl:if test="$char = '®'">
4684
+ <xsl:attribute name="font-size">58%</xsl:attribute>
4685
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
4686
+ </xsl:if>
4687
+ <xsl:value-of select="$char"/>
4688
+ </fo:inline>
4689
+ <xsl:call-template name="add-letter-spacing">
4690
+ <xsl:with-param name="text" select="substring($text, 2)"/>
4691
+ <xsl:with-param name="letter-spacing" select="$letter-spacing"/>
4692
+ </xsl:call-template>
4693
+ </xsl:if>
3798
4694
  </xsl:template></xsl:stylesheet>