metanorma-csa 1.8.9 → 1.8.13

Sign up to get free protection for your applications and to get access to all the features.
@@ -86,12 +86,12 @@
86
86
  <fo:flow flow-name="xsl-region-body">
87
87
 
88
88
  <fo:block-container width="136mm" margin-bottom="12pt">
89
- <fo:block font-size="36pt" font-weight="bold" color="rgb(54, 59, 74)">
89
+ <fo:block font-size="36pt" font-weight="bold" color="rgb(54, 59, 74)" role="H1">
90
90
  <xsl:value-of select="/csa:csa-standard/csa:bibdata/csa:title[@language = 'en']"/>
91
91
  </fo:block>
92
92
  </fo:block-container>
93
93
 
94
- <fo:block font-size="26pt" color="rgb(55, 60, 75)">
94
+ <fo:block font-size="26pt" color="rgb(55, 60, 75)" role="H2">
95
95
  <xsl:value-of select="/csa:csa-standard/csa:bibdata/csa:title[@language = 'en' and @type = 'subtitle']"/>
96
96
  </fo:block>
97
97
 
@@ -145,7 +145,7 @@
145
145
  <xsl:with-param name="name" select="'title-acknowledgements'"/>
146
146
  </xsl:call-template>
147
147
  </xsl:variable>
148
- <fo:block font-size="26pt" margin-bottom="18pt"><xsl:value-of select="$title-acknowledgements"/></fo:block>
148
+ <fo:block font-size="26pt" margin-bottom="18pt" role="H1"><xsl:value-of select="$title-acknowledgements"/></fo:block>
149
149
 
150
150
  <xsl:variable name="persons">
151
151
  <xsl:for-each select="/csa:csa-standard/csa:bibdata/csa:contributor[csa:person]">
@@ -206,11 +206,11 @@
206
206
  <xsl:with-param name="name" select="'title-toc'"/>
207
207
  </xsl:call-template>
208
208
  </xsl:variable>
209
- <fo:block font-size="26pt" color="black" margin-top="2pt" margin-bottom="30pt"><xsl:value-of select="$title-toc"/></fo:block>
209
+ <fo:block font-size="26pt" color="black" margin-top="2pt" margin-bottom="30pt" role="H1"><xsl:value-of select="$title-toc"/></fo:block>
210
210
 
211
- <fo:block margin-left="-3mm">
211
+ <fo:block margin-left="-3mm" role="TOC">
212
212
  <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']">
213
- <fo:block>
213
+ <fo:block role="TOCI">
214
214
  <fo:list-block>
215
215
  <xsl:attribute name="provisional-distance-between-starts">
216
216
  <xsl:choose>
@@ -315,7 +315,10 @@
315
315
 
316
316
 
317
317
  <xsl:template match="csa:license-statement//csa:title">
318
- <fo:block text-align="center" font-weight="bold" margin-top="4pt">
318
+ <xsl:variable name="level">
319
+ <xsl:call-template name="getLevel"/>
320
+ </xsl:variable>
321
+ <fo:block text-align="center" font-weight="bold" margin-top="4pt" role="H{$level}">
319
322
  <xsl:apply-templates/>
320
323
  </fo:block>
321
324
  </xsl:template>
@@ -336,7 +339,10 @@
336
339
  </xsl:template>
337
340
 
338
341
  <xsl:template match="csa:copyright-statement//csa:title">
339
- <fo:block font-weight="bold" text-align="center">
342
+ <xsl:variable name="level">
343
+ <xsl:call-template name="getLevel"/>
344
+ </xsl:variable>
345
+ <fo:block font-weight="bold" text-align="center" role="H{$level}">
340
346
  <xsl:apply-templates/>
341
347
  </fo:block>
342
348
  </xsl:template>
@@ -366,7 +372,10 @@
366
372
  </xsl:template>
367
373
 
368
374
  <xsl:template match="csa:legal-statement//csa:title">
369
- <fo:block text-align="center" font-weight="bold" padding-top="2mm" margin-bottom="6pt">
375
+ <xsl:variable name="level">
376
+ <xsl:call-template name="getLevel"/>
377
+ </xsl:variable>
378
+ <fo:block text-align="center" font-weight="bold" padding-top="2mm" margin-bottom="6pt" role="H{$level}">
370
379
  <xsl:apply-templates/>
371
380
  </fo:block>
372
381
  </xsl:template>
@@ -402,8 +411,9 @@
402
411
  <xsl:otherwise>black</xsl:otherwise>
403
412
  </xsl:choose>
404
413
  </xsl:variable>
405
- <fo:block font-size="12pt" text-align="center" margin-bottom="12pt" keep-with-next="always" color="{$color}">
414
+ <fo:block font-size="12pt" text-align="center" margin-bottom="12pt" keep-with-next="always" color="{$color}" role="H{$level}">
406
415
  <xsl:apply-templates/>
416
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
407
417
  </fo:block>
408
418
  </xsl:template>
409
419
 
@@ -454,6 +464,7 @@
454
464
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
455
465
  <xsl:attribute name="color"><xsl:value-of select="$color"/></xsl:attribute>
456
466
  <xsl:attribute name="line-height">120%</xsl:attribute>
467
+ <xsl:attribute name="role">H<xsl:value-of select="$level"/></xsl:attribute>
457
468
 
458
469
  <xsl:if test="$level = 2">
459
470
  <fo:inline padding-right="1mm">
@@ -462,7 +473,8 @@
462
473
  </xsl:if>
463
474
 
464
475
  <xsl:apply-templates/>
465
-
476
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
477
+
466
478
  </xsl:element>
467
479
 
468
480
  </xsl:template>
@@ -718,7 +730,10 @@
718
730
  <xsl:otherwise>12pt</xsl:otherwise>
719
731
  </xsl:choose>
720
732
  </xsl:variable>
721
- <fo:block font-size="{$font-size}">
733
+ <xsl:variable name="levelTerm">
734
+ <xsl:call-template name="getLevelTermName"/>
735
+ </xsl:variable>
736
+ <fo:block font-size="{$font-size}" role="H{$levelTerm}">
722
737
  <fo:block font-weight="bold" keep-with-next="always">
723
738
  <xsl:apply-templates select="ancestor::csa:term/csa:name" mode="presentation"/>
724
739
  </fo:block>
@@ -860,12 +875,12 @@
860
875
  </xsl:template>
861
876
 
862
877
  <xsl:template name="insertHeaderFooter">
863
- <fo:static-content flow-name="header">
878
+ <fo:static-content flow-name="header" role="artifact">
864
879
  <fo:block-container height="2.5mm" background-color="{$color-header-document}">
865
880
  <fo:block font-size="1pt"> </fo:block>
866
881
  </fo:block-container>
867
882
  </fo:static-content>
868
- <fo:static-content flow-name="footer">
883
+ <fo:static-content flow-name="footer" role="artifact">
869
884
  <fo:block-container font-family="Azo Sans Lt" font-size="10.1pt" height="100%" display-align="after"> <!-- 11.5pt -->
870
885
  <fo:block padding-bottom="13mm" text-align="right" color="rgb(144, 144, 144)">
871
886
  <fo:inline padding-right="7mm"><xsl:value-of select="$copyright"/></fo:inline>
@@ -1054,6 +1069,7 @@
1054
1069
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
1055
1070
  <xsl:attribute name="white-space">pre</xsl:attribute>
1056
1071
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
1072
+ <xsl:attribute name="role">Code</xsl:attribute>
1057
1073
 
1058
1074
 
1059
1075
  <xsl:attribute name="font-family">Source Code Pro</xsl:attribute>
@@ -1080,8 +1096,13 @@
1080
1096
 
1081
1097
  </xsl:attribute-set><xsl:attribute-set name="requirement-label-style">
1082
1098
 
1083
- </xsl:attribute-set><xsl:attribute-set name="requirement-subject-style">
1084
- </xsl:attribute-set><xsl:attribute-set name="requirement-inherit-style">
1099
+ </xsl:attribute-set><xsl:attribute-set name="subject-style">
1100
+ </xsl:attribute-set><xsl:attribute-set name="inherit-style">
1101
+ </xsl:attribute-set><xsl:attribute-set name="description-style">
1102
+ </xsl:attribute-set><xsl:attribute-set name="specification-style">
1103
+ </xsl:attribute-set><xsl:attribute-set name="measurement-target-style">
1104
+ </xsl:attribute-set><xsl:attribute-set name="verification-style">
1105
+ </xsl:attribute-set><xsl:attribute-set name="import-style">
1085
1106
  </xsl:attribute-set><xsl:attribute-set name="recommendation-style">
1086
1107
 
1087
1108
 
@@ -1255,6 +1276,11 @@
1255
1276
 
1256
1277
 
1257
1278
 
1279
+ </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
1280
+
1281
+
1282
+
1283
+
1258
1284
  </xsl:attribute-set><xsl:attribute-set name="note-p-style">
1259
1285
 
1260
1286
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
@@ -1288,7 +1314,8 @@
1288
1314
 
1289
1315
 
1290
1316
 
1291
- </xsl:attribute-set><xsl:attribute-set name="quote-style">
1317
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
1318
+ <xsl:attribute name="role">BlockQuote</xsl:attribute>
1292
1319
 
1293
1320
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1294
1321
  <xsl:attribute name="margin-left">13mm</xsl:attribute>
@@ -1427,13 +1454,20 @@
1427
1454
 
1428
1455
  </xsl:attribute-set><xsl:attribute-set name="list-style">
1429
1456
 
1430
- </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
1457
+ </xsl:attribute-set><xsl:attribute-set name="toc-style">
1458
+ <xsl:attribute name="line-height">135%</xsl:attribute>
1459
+ </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:template name="OLD_processPrefaceSectionsDefault_Contents">
1431
1460
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1432
1461
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1433
1462
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1434
1463
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1435
1464
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1436
- </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1465
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
1466
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
1467
+ <xsl:sort select="@displayorder" data-type="number"/>
1468
+ <xsl:apply-templates select="." mode="contents"/>
1469
+ </xsl:for-each>
1470
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
1437
1471
  <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1438
1472
 
1439
1473
  <!-- Normative references -->
@@ -1446,13 +1480,33 @@
1446
1480
  <!-- Bibliography -->
1447
1481
  <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
1448
1482
 
1449
- </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1483
+ </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1484
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
1485
+ <xsl:sort select="@displayorder" data-type="number"/>
1486
+ <xsl:apply-templates select="." mode="contents"/>
1487
+ </xsl:for-each>
1488
+
1489
+ <xsl:for-each select="/*/*[local-name()='annex']">
1490
+ <xsl:sort select="@displayorder" data-type="number"/>
1491
+ <xsl:apply-templates select="." mode="contents"/>
1492
+ </xsl:for-each>
1493
+
1494
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
1495
+ <xsl:sort select="@displayorder" data-type="number"/>
1496
+ <xsl:apply-templates select="." mode="contents"/>
1497
+ </xsl:for-each>
1498
+ </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
1450
1499
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1451
1500
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1452
1501
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1453
1502
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1454
1503
  <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1455
- </xsl:template><xsl:template name="processMainSectionsDefault">
1504
+ </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1505
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
1506
+ <xsl:sort select="@displayorder" data-type="number"/>
1507
+ <xsl:apply-templates select="."/>
1508
+ </xsl:for-each>
1509
+ </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
1456
1510
  <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1457
1511
 
1458
1512
  <!-- Normative references -->
@@ -1464,6 +1518,22 @@
1464
1518
  <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1465
1519
  <!-- Bibliography -->
1466
1520
  <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1521
+ </xsl:template><xsl:template name="processMainSectionsDefault">
1522
+ <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
1523
+ <xsl:sort select="@displayorder" data-type="number"/>
1524
+ <xsl:apply-templates select="."/>
1525
+
1526
+ </xsl:for-each>
1527
+
1528
+ <xsl:for-each select="/*/*[local-name()='annex']">
1529
+ <xsl:sort select="@displayorder" data-type="number"/>
1530
+ <xsl:apply-templates select="."/>
1531
+ </xsl:for-each>
1532
+
1533
+ <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]">
1534
+ <xsl:sort select="@displayorder" data-type="number"/>
1535
+ <xsl:apply-templates select="."/>
1536
+ </xsl:for-each>
1467
1537
  </xsl:template><xsl:template match="text()">
1468
1538
  <xsl:value-of select="."/>
1469
1539
  </xsl:template><xsl:template match="*[local-name()='br']">
@@ -1494,7 +1564,9 @@
1494
1564
 
1495
1565
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1496
1566
 
1497
-
1567
+
1568
+
1569
+
1498
1570
 
1499
1571
 
1500
1572
 
@@ -2294,9 +2366,8 @@
2294
2366
 
2295
2367
  <!-- Table's note name (NOTE, for example) -->
2296
2368
 
2297
- <fo:inline padding-right="2mm">
2369
+ <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
2298
2370
 
2299
-
2300
2371
 
2301
2372
 
2302
2373
 
@@ -2904,6 +2975,8 @@
2904
2975
  <xsl:if test="$font-size != ''">
2905
2976
  <xsl:attribute name="font-size">
2906
2977
  <xsl:choose>
2978
+ <xsl:when test="$font-size = 'inherit'"><xsl:value-of select="$font-size"/></xsl:when>
2979
+ <xsl:when test="contains($font-size, '%')"><xsl:value-of select="$font-size"/></xsl:when>
2907
2980
  <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
2908
2981
  <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
2909
2982
  </xsl:choose>
@@ -3338,16 +3411,68 @@
3338
3411
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
3339
3412
  </xsl:call-template>
3340
3413
 
3414
+
3415
+
3341
3416
  <xsl:variable name="mathml">
3342
3417
  <xsl:apply-templates select="." mode="mathml"/>
3343
3418
  </xsl:variable>
3344
3419
  <fo:instream-foreign-object fox:alt-text="Math">
3345
3420
 
3346
3421
 
3422
+ <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
3423
+ <xsl:variable name="comment_text_">
3424
+ <xsl:choose>
3425
+ <xsl:when test="normalize-space($comment_text_following) != ''">
3426
+ <xsl:value-of select="$comment_text_following"/>
3427
+ </xsl:when>
3428
+ <xsl:otherwise>
3429
+ <xsl:value-of select="normalize-space(translate(.,' ⁢',' '))"/>
3430
+ </xsl:otherwise>
3431
+ </xsl:choose>
3432
+ </xsl:variable>
3433
+ <xsl:variable name="comment_text" select="java:org.metanorma.fop.Util.unescape($comment_text_)"/>
3434
+
3435
+ <xsl:if test="normalize-space($comment_text) != ''">
3436
+ <!-- put Mathin Alternate Text -->
3437
+ <xsl:attribute name="fox:alt-text">
3438
+ <xsl:value-of select="java:org.metanorma.fop.Util.unescape($comment_text)"/>
3439
+ </xsl:attribute>
3440
+ </xsl:if>
3441
+
3442
+ <xsl:variable name="mathml_content">
3443
+ <xsl:apply-templates select="." mode="mathml_actual_text"/>
3444
+ </xsl:variable>
3445
+ <!-- put MathML in Actual Text -->
3446
+ <xsl:attribute name="fox:actual-text">
3447
+ <xsl:value-of select="$mathml_content"/>
3448
+ </xsl:attribute>
3449
+
3450
+
3347
3451
  <!-- <xsl:copy-of select="."/> -->
3348
3452
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
3349
3453
  </fo:instream-foreign-object>
3350
3454
  </fo:inline>
3455
+ </xsl:template><xsl:template match="mathml:*" mode="mathml_actual_text">
3456
+ <!-- <xsl:text>a+b</xsl:text> -->
3457
+ <xsl:text>&lt;</xsl:text>
3458
+ <xsl:value-of select="local-name()"/>
3459
+ <xsl:if test="local-name() = 'math'">
3460
+ <xsl:text> xmlns="http://www.w3.org/1998/Math/MathML"</xsl:text>
3461
+ </xsl:if>
3462
+ <xsl:for-each select="@*">
3463
+ <xsl:text> </xsl:text>
3464
+ <xsl:value-of select="local-name()"/>
3465
+ <xsl:text>="</xsl:text>
3466
+ <xsl:value-of select="."/>
3467
+ <xsl:text>"</xsl:text>
3468
+ </xsl:for-each>
3469
+ <xsl:text>&gt;</xsl:text>
3470
+ <xsl:apply-templates mode="mathml_actual_text"/>
3471
+ <xsl:text>&lt;/</xsl:text>
3472
+ <xsl:value-of select="local-name()"/>
3473
+ <xsl:text>&gt;</xsl:text>
3474
+ </xsl:template><xsl:template match="text()" mode="mathml_actual_text">
3475
+ <xsl:value-of select="normalize-space()"/>
3351
3476
  </xsl:template><xsl:template match="@*|node()" mode="mathml">
3352
3477
  <xsl:copy>
3353
3478
  <xsl:apply-templates select="@*|node()" mode="mathml"/>
@@ -3409,7 +3534,10 @@
3409
3534
  </fo:block>
3410
3535
  <xsl:apply-templates/>
3411
3536
  </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
3412
- <fo:inline><xsl:apply-templates/></fo:inline>
3537
+ <xsl:variable name="level">
3538
+ <xsl:call-template name="getLevel"/>
3539
+ </xsl:variable>
3540
+ <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
3413
3541
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
3414
3542
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
3415
3543
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -3444,9 +3572,10 @@
3444
3572
 
3445
3573
  </xsl:variable>
3446
3574
 
3575
+ <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
3447
3576
  <xsl:choose>
3448
- <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:text>—</xsl:text></xsl:when>
3449
- <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:text> — </xsl:text></xsl:otherwise>
3577
+ <xsl:when test="$lang = 'zh'"><xsl:text>、</xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text>—</xsl:text></xsl:if></xsl:when>
3578
+ <xsl:otherwise><xsl:text>, </xsl:text><xsl:value-of select="$title-modified"/><xsl:if test="normalize-space($text) != ''"><xsl:text> — </xsl:text></xsl:if></xsl:otherwise>
3450
3579
  </xsl:choose>
3451
3580
  <xsl:apply-templates/>
3452
3581
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
@@ -3594,7 +3723,10 @@
3594
3723
  </fo:block>
3595
3724
  </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
3596
3725
  <xsl:if test="normalize-space() != ''">
3597
- <fo:inline>
3726
+ <xsl:variable name="level">
3727
+ <xsl:call-template name="getLevelTermName"/>
3728
+ </xsl:variable>
3729
+ <fo:inline role="H{$level}">
3598
3730
  <xsl:apply-templates/>
3599
3731
  <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
3600
3732
  <xsl:text>.</xsl:text>
@@ -3895,6 +4027,13 @@
3895
4027
  </xsl:attribute>
3896
4028
  <xsl:apply-templates mode="svg_update"/>
3897
4029
  </xsl:copy>
4030
+ </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][*[local-name() = 'svg']]" priority="3">
4031
+ <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
4032
+ <xsl:for-each select="*[local-name() = 'svg']">
4033
+ <xsl:call-template name="image_svg">
4034
+ <xsl:with-param name="name" select="$name"/>
4035
+ </xsl:call-template>
4036
+ </xsl:for-each>
3898
4037
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'image'][@mimetype = 'image/svg+xml' and @src[not(starts-with(., 'data:image/'))]]" priority="2">
3899
4038
  <xsl:variable name="svg_content" select="document(@src)"/>
3900
4039
  <xsl:variable name="name" select="ancestor::*[local-name() = 'figure']/*[local-name() = 'name']"/>
@@ -3999,7 +4138,7 @@
3999
4138
  </fo:basic-link>
4000
4139
  </fo:block>
4001
4140
  </fo:block-container>
4002
- </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">
4141
+ </xsl:template><xsl:template match="*[local-name() = 'emf']"/><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">
4003
4142
  <xsl:apply-templates mode="contents"/>
4004
4143
  <xsl:text> </xsl:text>
4005
4144
  </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">
@@ -4225,6 +4364,7 @@
4225
4364
  </xsl:when>
4226
4365
  <xsl:otherwise>
4227
4366
  <xsl:apply-templates/>
4367
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'variant-title'][@type = 'sub']" mode="subtitle"/>
4228
4368
  </xsl:otherwise>
4229
4369
  </xsl:choose>
4230
4370
  </fo:block>
@@ -4297,12 +4437,16 @@
4297
4437
  <xsl:if test="$font-size != ''">
4298
4438
  <xsl:attribute name="font-size">
4299
4439
  <xsl:choose>
4440
+ <xsl:when test="$font-size = 'inherit'"><xsl:value-of select="$font-size"/></xsl:when>
4441
+ <xsl:when test="contains($font-size, '%')"><xsl:value-of select="$font-size"/></xsl:when>
4300
4442
  <xsl:when test="ancestor::*[local-name()='note']"><xsl:value-of select="$font-size * 0.91"/>pt</xsl:when>
4301
4443
  <xsl:otherwise><xsl:value-of select="$font-size"/>pt</xsl:otherwise>
4302
4444
  </xsl:choose>
4303
4445
  </xsl:attribute>
4304
4446
  </xsl:if>
4305
4447
 
4448
+
4449
+
4306
4450
  <xsl:apply-templates/>
4307
4451
  </fo:block>
4308
4452
 
@@ -4365,14 +4509,6 @@
4365
4509
  <fo:block>
4366
4510
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
4367
4511
  </fo:block>
4368
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4369
- <fo:block xsl:use-attribute-sets="requirement-subject-style">
4370
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4371
- </fo:block>
4372
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'inherit']">
4373
- <fo:block xsl:use-attribute-sets="requirement-inherit-style">
4374
- <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
4375
- </fo:block>
4376
4512
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
4377
4513
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
4378
4514
  <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
@@ -4389,6 +4525,38 @@
4389
4525
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
4390
4526
  <xsl:apply-templates/>
4391
4527
  </fo:block>
4528
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4529
+ <fo:block xsl:use-attribute-sets="subject-style">
4530
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4531
+ </fo:block>
4532
+ </xsl:template><xsl:template match="*[local-name() = 'subject']">
4533
+ <fo:block xsl:use-attribute-sets="subject-style">
4534
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4535
+ </fo:block>
4536
+ </xsl:template><xsl:template match="*[local-name() = 'inherit'] | *[local-name() = 'component'][@class = 'inherit']">
4537
+ <fo:block xsl:use-attribute-sets="inherit-style">
4538
+ <xsl:text>Dependency </xsl:text><xsl:apply-templates/>
4539
+ </fo:block>
4540
+ </xsl:template><xsl:template match="*[local-name() = 'description'] | *[local-name() = 'component'][@class = 'description']">
4541
+ <fo:block xsl:use-attribute-sets="description-style">
4542
+ <xsl:apply-templates/>
4543
+ </fo:block>
4544
+ </xsl:template><xsl:template match="*[local-name() = 'specification'] | *[local-name() = 'component'][@class = 'specification']">
4545
+ <fo:block xsl:use-attribute-sets="specification-style">
4546
+ <xsl:apply-templates/>
4547
+ </fo:block>
4548
+ </xsl:template><xsl:template match="*[local-name() = 'measurement-target'] | *[local-name() = 'component'][@class = 'measurement-target']">
4549
+ <fo:block xsl:use-attribute-sets="measurement-target-style">
4550
+ <xsl:apply-templates/>
4551
+ </fo:block>
4552
+ </xsl:template><xsl:template match="*[local-name() = 'verification'] | *[local-name() = 'component'][@class = 'verification']">
4553
+ <fo:block xsl:use-attribute-sets="verification-style">
4554
+ <xsl:apply-templates/>
4555
+ </fo:block>
4556
+ </xsl:template><xsl:template match="*[local-name() = 'import'] | *[local-name() = 'component'][@class = 'import']">
4557
+ <fo:block xsl:use-attribute-sets="import-style">
4558
+ <xsl:apply-templates/>
4559
+ </fo:block>
4392
4560
  </xsl:template><xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
4393
4561
  <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
4394
4562
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
@@ -4654,14 +4822,15 @@
4654
4822
  </xsl:if>
4655
4823
  </xsl:template><xsl:variable name="localized.source">
4656
4824
  <xsl:call-template name="getLocalizedString">
4657
- <xsl:with-param name="key">source</xsl:with-param>
4658
- </xsl:call-template>
4825
+ <xsl:with-param name="key">source</xsl:with-param>
4826
+ </xsl:call-template>
4659
4827
  </xsl:variable><xsl:template match="*[local-name() = 'origin']">
4660
4828
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
4661
4829
  <xsl:if test="normalize-space(@citeas) = ''">
4662
4830
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="@bibitemid"/></xsl:attribute>
4663
4831
  </xsl:if>
4664
4832
 
4833
+
4665
4834
  <fo:inline>
4666
4835
 
4667
4836
 
@@ -4669,6 +4838,7 @@
4669
4838
 
4670
4839
 
4671
4840
 
4841
+
4672
4842
  <xsl:call-template name="getTitle">
4673
4843
  <xsl:with-param name="name" select="'title-source'"/>
4674
4844
  </xsl:call-template>
@@ -4680,6 +4850,7 @@
4680
4850
  <fo:inline xsl:use-attribute-sets="origin-style">
4681
4851
  <xsl:apply-templates/>
4682
4852
  </fo:inline>
4853
+
4683
4854
  </fo:basic-link>
4684
4855
  </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
4685
4856
  <fo:inline><xsl:apply-templates/></fo:inline>
@@ -4746,6 +4917,9 @@
4746
4917
 
4747
4918
  </xsl:if>
4748
4919
 
4920
+ <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
4921
+ <xsl:variable name="text" select="normalize-space()"/>
4922
+
4749
4923
 
4750
4924
 
4751
4925
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
@@ -4758,7 +4932,9 @@
4758
4932
 
4759
4933
 
4760
4934
  </xsl:if>
4761
-
4935
+
4936
+
4937
+
4762
4938
  <xsl:apply-templates/>
4763
4939
  </fo:basic-link>
4764
4940
 
@@ -5091,6 +5267,7 @@
5091
5267
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']" priority="4">
5092
5268
  <xsl:variable name="level" select="count(ancestor::*[local-name() = 'ul'])"/>
5093
5269
  <fo:block start-indent="{5 * $level}mm" text-indent="-5mm">
5270
+
5094
5271
  <xsl:apply-templates/>
5095
5272
  </fo:block>
5096
5273
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
@@ -5259,6 +5436,97 @@
5259
5436
  <fo:block-container border="1pt solid black" width="50%">
5260
5437
  <fo:block> </fo:block>
5261
5438
  </fo:block-container>
5439
+ </xsl:template><xsl:template match="*[local-name() = 'toc']">
5440
+ <xsl:param name="colwidths"/>
5441
+ <xsl:variable name="colwidths_">
5442
+ <xsl:choose>
5443
+ <xsl:when test="not($colwidths)">
5444
+ <xsl:variable name="toc_table_simple">
5445
+ <tbody>
5446
+ <xsl:apply-templates mode="toc_table_width"/>
5447
+ </tbody>
5448
+ </xsl:variable>
5449
+ <xsl:variable name="cols-count" select="count(xalan:nodeset($toc_table_simple)/*/tr[1]/td)"/>
5450
+ <xsl:call-template name="calculate-column-widths">
5451
+ <xsl:with-param name="cols-count" select="$cols-count"/>
5452
+ <xsl:with-param name="table" select="$toc_table_simple"/>
5453
+ </xsl:call-template>
5454
+ </xsl:when>
5455
+ <xsl:otherwise>
5456
+ <xsl:copy-of select="$colwidths"/>
5457
+ </xsl:otherwise>
5458
+ </xsl:choose>
5459
+ </xsl:variable>
5460
+ <fo:block role="TOCI" space-after="16pt">
5461
+ <fo:table width="100%" table-layout="fixed">
5462
+ <xsl:for-each select="xalan:nodeset($colwidths_)/column">
5463
+ <fo:table-column column-width="proportional-column-width({.})"/>
5464
+ </xsl:for-each>
5465
+ <fo:table-body>
5466
+ <xsl:apply-templates/>
5467
+ </fo:table-body>
5468
+ </fo:table>
5469
+ </fo:block>
5470
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
5471
+ <fo:table-row min-height="5mm">
5472
+ <xsl:apply-templates/>
5473
+ </fo:table-row>
5474
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']/*[local-name() = 'p']">
5475
+ <xsl:apply-templates/>
5476
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'xref']" priority="3">
5477
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>&#8220;9th CGPM, 1948:<tab/>decision to establish the SI&#8221;</xref> -->
5478
+ <xsl:variable name="target" select="@target"/>
5479
+ <xsl:for-each select="*[local-name() = 'tab']">
5480
+ <xsl:variable name="current_id" select="generate-id()"/>
5481
+ <fo:table-cell>
5482
+ <fo:block>
5483
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
5484
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
5485
+ <xsl:choose>
5486
+ <xsl:when test="self::text()"><xsl:value-of select="."/></xsl:when>
5487
+ <xsl:otherwise><xsl:apply-templates select="."/></xsl:otherwise>
5488
+ </xsl:choose>
5489
+ </xsl:for-each>
5490
+ </fo:basic-link>
5491
+ </fo:block>
5492
+ </fo:table-cell>
5493
+ </xsl:for-each>
5494
+ <!-- last column - for page numbers -->
5495
+ <fo:table-cell text-align="right" font-size="10pt" font-weight="bold" font-family="Arial">
5496
+ <fo:block>
5497
+ <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
5498
+ <fo:page-number-citation ref-id="{$target}"/>
5499
+ </fo:basic-link>
5500
+ </fo:block>
5501
+ </fo:table-cell>
5502
+ </xsl:template><xsl:template match="*" mode="toc_table_width">
5503
+ <xsl:apply-templates mode="toc_table_width"/>
5504
+ </xsl:template><xsl:template match="*[local-name() = 'clause'][@type = 'toc']/*[local-name() = 'title']" mode="toc_table_width"/><xsl:template match="*[local-name() = 'clause'][not(@type = 'toc')]/*[local-name() = 'title']" mode="toc_table_width"/><xsl:template match="*[local-name() = 'li']" mode="toc_table_width">
5505
+ <tr>
5506
+ <xsl:apply-templates mode="toc_table_width"/>
5507
+ </tr>
5508
+ </xsl:template><xsl:template match="*[local-name() = 'xref']" mode="toc_table_width">
5509
+ <!-- <xref target="cgpm9th1948r6">1.6.3<tab/>&#8220;9th CGPM, 1948:<tab/>decision to establish the SI&#8221;</xref> -->
5510
+ <xsl:for-each select="*[local-name() = 'tab']">
5511
+ <xsl:variable name="current_id" select="generate-id()"/>
5512
+ <td>
5513
+ <xsl:for-each select="following-sibling::node()[not(self::*[local-name() = 'tab']) and preceding-sibling::*[local-name() = 'tab'][1][generate-id() = $current_id]]">
5514
+ <xsl:copy-of select="."/>
5515
+ </xsl:for-each>
5516
+ </td>
5517
+ </xsl:for-each>
5518
+ <td>333</td> <!-- page number, just for fill -->
5519
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
5520
+ <fo:inline padding-right="5mm"> </fo:inline>
5521
+ <fo:inline><xsl:apply-templates/></fo:inline>
5522
+ </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
5523
+ <fo:inline padding-right="2.5mm" baseline-shift="5%">
5524
+ <fo:instream-foreign-object content-height="2mm" content-width="2mm" fox:alt-text="Quad">
5525
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" viewBox="0 0 2 2">
5526
+ <rect x="0" y="0" width="2" height="2" fill="black"/>
5527
+ </svg>
5528
+ </fo:instream-foreign-object>
5529
+ </fo:inline>
5262
5530
  </xsl:template><xsl:template name="convertDate">
5263
5531
  <xsl:param name="date"/>
5264
5532
  <xsl:param name="format" select="'short'"/>
@@ -5497,6 +5765,26 @@
5497
5765
  <xsl:value-of select="$level"/>
5498
5766
  </xsl:otherwise>
5499
5767
  </xsl:choose>
5768
+ </xsl:template><xsl:template name="getLevelTermName">
5769
+ <xsl:choose>
5770
+ <xsl:when test="normalize-space(../@depth) != ''">
5771
+ <xsl:value-of select="../@depth"/>
5772
+ </xsl:when>
5773
+ <xsl:otherwise>
5774
+ <xsl:variable name="title_level_">
5775
+ <xsl:for-each select="../preceding-sibling::*[local-name() = 'title'][1]">
5776
+ <xsl:call-template name="getLevel"/>
5777
+ </xsl:for-each>
5778
+ </xsl:variable>
5779
+ <xsl:variable name="title_level" select="normalize-space($title_level_)"/>
5780
+ <xsl:choose>
5781
+ <xsl:when test="$title_level != ''"><xsl:value-of select="$title_level + 1"/></xsl:when>
5782
+ <xsl:otherwise>
5783
+ <xsl:call-template name="getLevel"/>
5784
+ </xsl:otherwise>
5785
+ </xsl:choose>
5786
+ </xsl:otherwise>
5787
+ </xsl:choose>
5500
5788
  </xsl:template><xsl:template name="split">
5501
5789
  <xsl:param name="pText" select="."/>
5502
5790
  <xsl:param name="sep" select="','"/>