metanorma-iec 1.4.3 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/rake.yml +4 -32
  3. data/.gitignore +14 -0
  4. data/Gemfile +6 -0
  5. data/lib/isodoc/iec/base_convert.rb +25 -26
  6. data/lib/isodoc/iec/html/htmlstyle.css +56 -21
  7. data/lib/isodoc/iec/html/htmlstyle.scss +38 -7
  8. data/lib/isodoc/iec/html/scripts.html +0 -1
  9. data/lib/isodoc/iec/html/wordstyle.css +13 -11
  10. data/lib/isodoc/iec/html/wordstyle.scss +13 -11
  11. data/lib/isodoc/iec/html_convert.rb +2 -1
  12. data/lib/isodoc/iec/i18n-fr.yaml +1 -1
  13. data/lib/isodoc/iec/iec.international-standard.xsl +1770 -1324
  14. data/lib/isodoc/iec/presentation_xml_convert.rb +162 -1
  15. data/lib/isodoc/iec/word_convert.rb +2 -0
  16. data/lib/isodoc/iec/xref.rb +9 -8
  17. data/lib/{asciidoctor → metanorma}/iec/basicdoc.rng +0 -0
  18. data/lib/{asciidoctor → metanorma}/iec/biblio.rng +0 -0
  19. data/lib/{asciidoctor → metanorma}/iec/converter.rb +23 -2
  20. data/lib/{asciidoctor → metanorma}/iec/front.rb +1 -1
  21. data/lib/{asciidoctor → metanorma}/iec/iec.rng +48 -0
  22. data/lib/{asciidoctor → metanorma}/iec/iec_intro_en.xml +0 -0
  23. data/lib/{asciidoctor → metanorma}/iec/iec_intro_fr.xml +0 -0
  24. data/lib/{asciidoctor → metanorma}/iec/isodoc.rng +49 -2
  25. data/lib/{asciidoctor → metanorma}/iec/isostandard.rng +14 -0
  26. data/lib/{asciidoctor → metanorma}/iec/reqt.rng +0 -0
  27. data/lib/metanorma/iec/version.rb +1 -1
  28. data/lib/metanorma-iec.rb +1 -1
  29. data/metanorma-iec.gemspec +1 -1
  30. data/spec/isodoc/i18n_spec.rb +2 -2
  31. data/spec/isodoc/iev_spec.rb +334 -100
  32. data/spec/isodoc/postproc_spec.rb +2 -5
  33. data/spec/isodoc/ref_spec.rb +359 -353
  34. data/spec/isodoc/terms_spec.rb +14 -21
  35. data/spec/{asciidoctor → metanorma}/base_spec.rb +1 -1
  36. data/spec/{asciidoctor → metanorma}/blocks_spec.rb +1 -1
  37. data/spec/{asciidoctor → metanorma}/cleanup_spec.rb +1 -1
  38. data/spec/{asciidoctor → metanorma}/iev_spec.rb +1 -1
  39. data/spec/{asciidoctor → metanorma}/inline_spec.rb +1 -1
  40. data/spec/{asciidoctor → metanorma}/lists_spec.rb +1 -1
  41. data/spec/{asciidoctor → metanorma}/section_spec.rb +1 -1
  42. data/spec/{asciidoctor → metanorma}/validate_spec.rb +1 -1
  43. data/spec/spec_helper.rb +2 -2
  44. metadata +23 -23
@@ -7,6 +7,8 @@
7
7
  <xsl:variable name="images" select="document($svg_images)"/>
8
8
  <xsl:param name="basepath"/>
9
9
 
10
+ <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
11
+
10
12
 
11
13
 
12
14
  <xsl:param name="additionalXMLs" select="''"/> <!-- iec-rice.fr.xml -->
@@ -137,6 +139,7 @@
137
139
  <contents>
138
140
  <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
139
141
  <xsl:call-template name="processMainSectionsDefault_Contents"/>
142
+ <xsl:apply-templates select="//iec:indexsect" mode="contents"/>
140
143
  <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name']]">
141
144
  <figure id="{@id}">
142
145
  <title><xsl:value-of select="*[local-name() = 'name']/text()"/></title>
@@ -157,11 +160,13 @@
157
160
  <xsl:call-template name="getLang"/>
158
161
  </xsl:variable>
159
162
 
163
+ <xsl:variable name="isIEV" select="normalize-space((//iec:iec-standard/iec:bibdata/iec:title[@language = 'en' and @type = 'title-main'] = 'International Electrotechnical Vocabulary') and 1 = 1)"/>
164
+
160
165
  <xsl:template match="/">
161
166
  <xsl:call-template name="namespaceCheck"/>
162
167
  <!-- https://stackoverflow.com/questions/25261949/xsl-fo-letter-spacing-with-text-align -->
163
168
  <!-- https://xmlgraphics.apache.org/fop/knownissues.html -->
164
- <fo:root font-family="Arial, Times New Roman, STIX Two Math, Source Han Sans" font-size="10pt" xml:lang="{$lang}">
169
+ <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}">
165
170
  <fo:layout-master-set>
166
171
  <!-- cover pages -->
167
172
  <fo:simple-page-master master-name="cover" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
@@ -497,24 +502,34 @@
497
502
  <fo:block font-size="9pt" color="{$color_blue}" line-height="150%">
498
503
  <fo:block-container width="40mm">
499
504
  <fo:block>
500
- <!-- <xsl:variable name="publisher" select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:contributor[iec:role/@type = 'publisher']/iec:organization/iec:name))"/> -->
501
- <!-- <xsl:value-of select="$publisher"/> -->
502
- <xsl:value-of select="(//iec:iec-standard)[1]/iec:localized-strings/iec:localized-string[@key='IEC' and @language=$lang]"/>
505
+ <xsl:call-template name="getLocalizedString">
506
+ <xsl:with-param name="key">IEC</xsl:with-param>
507
+ <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
508
+ </xsl:call-template>
503
509
  </fo:block>
504
510
  </fo:block-container>
505
511
  </fo:block>
506
- <xsl:if test="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='IEC' and @language=$lang_second]">
512
+
513
+ <xsl:variable name="IEC_lang_second">
514
+ <xsl:call-template name="getLocalizedString">
515
+ <xsl:with-param name="key">IEC</xsl:with-param>
516
+ <xsl:with-param name="lang"><xsl:value-of select="$lang_second"/></xsl:with-param>
517
+ </xsl:call-template>
518
+ </xsl:variable>
519
+
520
+ <xsl:if test="normalize-space($IEC_lang_second) != ''">
507
521
  <fo:block font-size="9pt" line-height="150%" margin-top="8pt">
508
522
  <fo:block-container width="40mm">
509
523
  <fo:block>
510
524
  <!-- <xsl:value-of select="'COMMISSION ELECTROTECHNIQUE INTERNATIONALE'"/> -->
511
- <xsl:value-of select="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='IEC' and @language=$lang_second]"/>
525
+ <xsl:value-of select="$IEC_lang_second"/>
512
526
  </fo:block>
513
527
  </fo:block-container>
514
528
  </fo:block>
515
529
  </xsl:if>
516
530
  </fo:block-container>
517
531
 
532
+ <xsl:variable name="price_code_value" select="//iec:iec-standard/iec:bibdata/iec:ext/iec:price-code"/>
518
533
  <fo:table table-layout="fixed" width="102%" margin-top="-9mm" margin-bottom="2mm">
519
534
  <fo:table-column column-width="148mm"/>
520
535
  <fo:table-column column-width="16mm"/>
@@ -522,29 +537,34 @@
522
537
  <fo:table-row border-bottom="0.5pt solid {$color_gray}" height="16mm">
523
538
  <fo:table-cell font-size="8pt" text-align="right" display-align="center">
524
539
  <fo:block>
525
- <fo:block color="{$color_blue}" margin-bottom="3pt">
526
- <!-- PRICE CODE -->
527
- <xsl:variable name="price_code">
528
- <!-- <xsl:call-template name="getLocalizedString">
529
- <xsl:with-param name="key">price-code</xsl:with-param>
530
- </xsl:call-template> -->
531
- <xsl:value-of select="(//iec:iec-standard)[1]/iec:localized-strings/iec:localized-string[@key='price-code' and @language=$lang]"/>
532
- </xsl:variable>
533
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
534
- </fo:block>
535
- <!-- <xsl:if test="$lang != 'fr'">
536
- <fo:block>CODE PRIX</fo:block>
537
- </xsl:if> -->
538
- <fo:block>
539
- <xsl:variable name="price_code">
540
- <xsl:value-of select="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='price-code' and @language=$lang_second]"/>
541
- </xsl:variable>
542
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
543
- </fo:block>
540
+ <xsl:if test="normalize-space($price_code_value) != ''">
541
+ <fo:block color="{$color_blue}" margin-bottom="3pt">
542
+ <!-- PRICE CODE -->
543
+ <xsl:variable name="price_code">
544
+ <xsl:call-template name="getLocalizedString">
545
+ <xsl:with-param name="key">price-code</xsl:with-param>
546
+ <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
547
+ </xsl:call-template>
548
+ </xsl:variable>
549
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
550
+ </fo:block>
551
+ <!-- <xsl:if test="$lang != 'fr'">
552
+ <fo:block>CODE PRIX</fo:block>
553
+ </xsl:if> -->
554
+ <fo:block>
555
+ <xsl:variable name="price_code">
556
+ <xsl:call-template name="getLocalizedString">
557
+ <xsl:with-param name="key">price-code</xsl:with-param>
558
+ <xsl:with-param name="lang"><xsl:value-of select="$lang_second"/></xsl:with-param>
559
+ </xsl:call-template>
560
+ </xsl:variable>
561
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($price_code))"/>
562
+ </fo:block>
563
+ </xsl:if>
544
564
  </fo:block>
545
565
  </fo:table-cell>
546
566
  <fo:table-cell font-size="25pt" font-weight="bold" color="{$color_gray}" text-align="right" display-align="center">
547
- <fo:block padding-top="1mm"><xsl:value-of select="//iec:iec-standard/iec:bibdata/iec:ext/iec:price-code"/></fo:block>
567
+ <fo:block padding-top="1mm"><xsl:value-of select="$price_code_value"/></fo:block>
548
568
  </fo:table-cell>
549
569
  </fo:table-row>
550
570
  </fo:table-body>
@@ -1088,6 +1108,9 @@
1088
1108
  <xsl:if test="$num = '1'">
1089
1109
  <xsl:attribute name="initial-page-number">2</xsl:attribute>
1090
1110
  </xsl:if>
1111
+ <xsl:if test="$isIEV = 'true'">
1112
+ <xsl:attribute name="format">I</xsl:attribute>
1113
+ </xsl:if>
1091
1114
 
1092
1115
  <xsl:call-template name="insertHeaderFooter"/>
1093
1116
  <fo:flow flow-name="xsl-region-body">
@@ -1370,7 +1393,13 @@
1370
1393
  <xsl:text> — </xsl:text>
1371
1394
  <xsl:value-of select="$linebreak"/>
1372
1395
  <xsl:if test="$part != ''">
1373
- <xsl:variable name="localized_part" select="(//iec:iec-standard)[1]/iec:localized-strings/iec:localized-string[@key='locality.part' and @language=$lang]"/>
1396
+ <xsl:variable name="localized_part">
1397
+ <xsl:call-template name="getLocalizedString">
1398
+ <xsl:with-param name="key">locality.part</xsl:with-param>
1399
+ <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
1400
+ </xsl:call-template>
1401
+ </xsl:variable>
1402
+
1374
1403
  <!-- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($localized_part),'#',$part)"/> -->
1375
1404
  <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1376
1405
  <!-- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
@@ -1396,10 +1425,17 @@
1396
1425
  <xsl:value-of select="$linebreak"/>
1397
1426
  <xsl:if test="$part != ''">
1398
1427
 
1428
+ <xsl:variable name="locality_part_lang_second">
1429
+ <xsl:call-template name="getLocalizedString">
1430
+ <xsl:with-param name="key">locality.part</xsl:with-param>
1431
+ <xsl:with-param name="lang"><xsl:value-of select="$lang_second"/></xsl:with-param>
1432
+ </xsl:call-template>
1433
+ </xsl:variable>
1434
+
1399
1435
  <xsl:choose>
1400
- <xsl:when test="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='locality.part' and @language=$lang_second]">
1436
+ <xsl:when test="normalize-space($locality_part_lang_second)">
1401
1437
  <xsl:variable name="localized_part">
1402
- <xsl:value-of select="(//iec:iec-standard)[2]/iec:localized-strings/iec:localized-string[@key='locality.part' and @language=$lang_second]"/>
1438
+ <xsl:value-of select="$locality_part_lang_second"/>
1403
1439
  </xsl:variable>
1404
1440
  <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1405
1441
  </xsl:when>
@@ -1426,8 +1462,8 @@
1426
1462
  <fo:block role="TOC">
1427
1463
  <fo:block font-size="12pt" text-align="center" margin-bottom="22pt" role="H1">
1428
1464
  <xsl:variable name="title-toc">
1429
- <xsl:call-template name="getTitle">
1430
- <xsl:with-param name="name" select="'title-toc'"/>
1465
+ <xsl:call-template name="getLocalizedString">
1466
+ <xsl:with-param name="key">table_of_contents</xsl:with-param>
1431
1467
  </xsl:call-template>
1432
1468
  </xsl:variable>
1433
1469
  <xsl:call-template name="addLetterSpacing">
@@ -1445,9 +1481,15 @@
1445
1481
  <xsl:if test="@level = 2">
1446
1482
  <xsl:attribute name="margin-bottom">3pt</xsl:attribute>
1447
1483
  </xsl:if>
1448
- <xsl:if test="@level = 3">
1484
+ <xsl:if test="@level &gt;= 3">
1449
1485
  <xsl:attribute name="margin-bottom">2pt</xsl:attribute>
1450
1486
  </xsl:if>
1487
+ <xsl:if test="@type = 'indexsect'">
1488
+ <xsl:attribute name="space-before">16pt</xsl:attribute>
1489
+ </xsl:if>
1490
+ <xsl:if test="@type = 'references'">
1491
+ <xsl:attribute name="space-before">5pt</xsl:attribute>
1492
+ </xsl:if>
1451
1493
  <!-- <xsl:if test="@level &gt;= 2 and @section != ''">
1452
1494
  <xsl:attribute name="margin-left">5mm</xsl:attribute>
1453
1495
  </xsl:if> -->
@@ -1457,8 +1499,9 @@
1457
1499
  <fo:list-block>
1458
1500
  <xsl:attribute name="margin-left">
1459
1501
  <xsl:choose>
1502
+ <xsl:when test="title/@variant-title = 'true'">0mm</xsl:when>
1460
1503
  <xsl:when test="@level = 2">8mm</xsl:when>
1461
- <xsl:when test="@level = 3">23mm</xsl:when>
1504
+ <xsl:when test="@level &gt;= 3"><xsl:value-of select="(@level - 2) * 23"/>mm</xsl:when>
1462
1505
  <xsl:otherwise>0mm</xsl:otherwise>
1463
1506
  </xsl:choose>
1464
1507
  </xsl:attribute>
@@ -1467,7 +1510,7 @@
1467
1510
  <xsl:when test="@section = ''">0mm</xsl:when>
1468
1511
  <xsl:when test="@level = 1">8mm</xsl:when>
1469
1512
  <xsl:when test="@level = 2">15mm</xsl:when>
1470
- <xsl:when test="@level = 3">19mm</xsl:when>
1513
+ <xsl:when test="@level &gt;= 3"><xsl:value-of select="(@level - 2) * 19"/>mm</xsl:when>
1471
1514
  <xsl:otherwise>0mm</xsl:otherwise>
1472
1515
  </xsl:choose>
1473
1516
  </xsl:attribute>
@@ -1536,8 +1579,12 @@
1536
1579
  <xsl:param name="lang" select="$lang"/>
1537
1580
  <fo:block break-after="page"/>
1538
1581
  <fo:block-container font-size="12pt" text-align="center" margin-bottom="18pt">
1539
- <!-- <fo:block><xsl:value-of select="java:toUpperCase(java:java.lang.String.new(/iec:iec-standard/iec:bibdata/iec:contributor/iec:organization/iec:name))"/></fo:block> -->
1540
- <fo:block><xsl:value-of select="/iec:iec-standard/iec:localized-strings/iec:localized-string[@key='IEC' and @language=$lang]"/></fo:block>
1582
+ <fo:block>
1583
+ <xsl:call-template name="getLocalizedString">
1584
+ <xsl:with-param name="key">IEC</xsl:with-param>
1585
+ <xsl:with-param name="lang"><xsl:value-of select="$lang"/></xsl:with-param>
1586
+ </xsl:call-template>
1587
+ </fo:block>
1541
1588
  <fo:block>___________</fo:block>
1542
1589
  <fo:block> </fo:block>
1543
1590
  <fo:block font-weight="bold" role="H1">
@@ -1552,9 +1599,13 @@
1552
1599
  <fo:block>
1553
1600
  <xsl:if test="$part != ''">
1554
1601
  <!-- Example: Part 1: Riz -->
1555
- <!-- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang]),'#',$part)"/> -->
1556
- <xsl:variable name="localized_part" select="//iec:iec-standard/iec:localized-strings/iec:localized-string[@key='locality.part' and @language = $lang]"/>
1557
- <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1602
+ <xsl:variable name="localized_part">
1603
+ <xsl:call-template name="getLocalizedString">
1604
+ <xsl:with-param name="key">Part.sg</xsl:with-param>
1605
+ <xsl:with-param name="lang" select="$lang"/>
1606
+ </xsl:call-template>
1607
+ </xsl:variable>
1608
+ <xsl:value-of select="concat($localized_part ,' ', $part, ': ')"/>
1558
1609
  </xsl:if>
1559
1610
  <xsl:value-of select="$title-part"/>
1560
1611
  </fo:block>
@@ -1570,7 +1621,10 @@
1570
1621
  <xsl:template name="insertBodypages">
1571
1622
  <xsl:param name="lang" select="'en'"/>
1572
1623
  <!-- BODY -->
1573
- <fo:page-sequence master-reference="document" force-page-count="no-force">
1624
+ <fo:page-sequence master-reference="document" force-page-count="no-force">
1625
+ <xsl:if test="$isIEV = 'true'">
1626
+ <xsl:attribute name="initial-page-number">1</xsl:attribute>
1627
+ </xsl:if>
1574
1628
  <fo:static-content flow-name="xsl-footnote-separator">
1575
1629
  <fo:block>
1576
1630
  <fo:leader leader-pattern="rule" leader-length="30%"/>
@@ -1594,8 +1648,12 @@
1594
1648
  <fo:block>
1595
1649
  <xsl:if test="$part != ''">
1596
1650
  <!-- Example: Part 1: Rice -->
1597
- <!-- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang = $lang]),'#',$part)"/> -->
1598
- <xsl:variable name="localized_part" select="//iec:iec-standard/iec:localized-strings/iec:localized-string[@key='locality.part' and @language = $lang]"/>
1651
+ <xsl:variable name="localized_part">
1652
+ <xsl:call-template name="getLocalizedString">
1653
+ <xsl:with-param name="key">Part.sg</xsl:with-param>
1654
+ <xsl:with-param name="lang" select="$lang"/>
1655
+ </xsl:call-template>
1656
+ </xsl:variable>
1599
1657
  <xsl:value-of select="concat($localized_part ,' ',$part, ': ')"/>
1600
1658
  </xsl:if>
1601
1659
  <xsl:value-of select="$title-part"/>
@@ -1612,6 +1670,10 @@
1612
1670
 
1613
1671
  </fo:flow>
1614
1672
  </fo:page-sequence>
1673
+
1674
+ <!-- Index -->
1675
+ <xsl:apply-templates select="//iec:indexsect" mode="index"/>
1676
+
1615
1677
  </xsl:template>
1616
1678
 
1617
1679
 
@@ -1643,7 +1705,7 @@
1643
1705
 
1644
1706
  <xsl:template match="iec:feedback-statement/iec:clause[@id = 'boilerplate-cenelec-attention']//text()" priority="3">
1645
1707
  <!-- Example: Attention IEC-CENELEC parallel voting -->
1646
- <xsl:if test="normalize-space() ! = ''">
1708
+ <xsl:if test="normalize-space() != ''">
1647
1709
  <xsl:call-template name="addLetterSpacing">
1648
1710
  <xsl:with-param name="text" select="."/>
1649
1711
  </xsl:call-template>
@@ -1690,9 +1752,6 @@
1690
1752
  <!-- ============================= -->
1691
1753
  <!-- CONTENTS -->
1692
1754
  <!-- ============================= -->
1693
- <xsl:template match="node()" mode="contents">
1694
- <xsl:apply-templates mode="contents"/>
1695
- </xsl:template>
1696
1755
 
1697
1756
  <!-- element with title -->
1698
1757
  <xsl:template match="*[iec:title]" mode="contents">
@@ -1712,7 +1771,7 @@
1712
1771
 
1713
1772
  <xsl:variable name="display">
1714
1773
  <xsl:choose>
1715
- <xsl:when test="$level &gt; 3">false</xsl:when>
1774
+ <xsl:when test="$level &gt; $toc_level">false</xsl:when>
1716
1775
  <xsl:when test="$section = '' and $type = 'clause'">false</xsl:when><!-- don't show clause with number only in title -->
1717
1776
  <xsl:otherwise>true</xsl:otherwise>
1718
1777
  </xsl:choose>
@@ -1733,13 +1792,27 @@
1733
1792
  <xsl:call-template name="getName"/>
1734
1793
  </xsl:variable>
1735
1794
 
1795
+ <xsl:variable name="variant_title">
1796
+ <xsl:copy-of select="iec:variant-title/node()"/>
1797
+ </xsl:variable>
1798
+
1736
1799
  <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" display="{$display}">
1737
1800
  <xsl:if test="$type ='appendix'">
1738
1801
  <xsl:attribute name="section"/>
1739
1802
  </xsl:if>
1803
+ <xsl:if test="$type ='indexsect'">
1804
+ <xsl:attribute name="level">1</xsl:attribute>
1805
+ </xsl:if>
1740
1806
  <title>
1741
1807
  <xsl:choose>
1742
- <xsl:when test="$type = 'foreword' or $type = 'introduction'">
1808
+ <!-- <xsl:when test="$type = 'foreword' or $type = 'introduction'">
1809
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($title))"/>
1810
+ </xsl:when> -->
1811
+ <xsl:when test="normalize-space($variant_title) != ''">
1812
+ <xsl:attribute name="variant-title">true</xsl:attribute>
1813
+ <xsl:apply-templates select="xalan:nodeset($variant_title)" mode="contents_item"/>
1814
+ </xsl:when>
1815
+ <xsl:when test="$type = 'indexsect'">
1743
1816
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($title))"/>
1744
1817
  </xsl:when>
1745
1818
  <xsl:when test="$type = 'appendix'">
@@ -1750,7 +1823,9 @@
1750
1823
  </xsl:otherwise>
1751
1824
  </xsl:choose>
1752
1825
  </title>
1753
- <xsl:apply-templates mode="contents"/>
1826
+ <xsl:if test="$type != 'indexsect'">
1827
+ <xsl:apply-templates mode="contents"/>
1828
+ </xsl:if>
1754
1829
  </item>
1755
1830
 
1756
1831
  </xsl:if>
@@ -1839,7 +1914,7 @@
1839
1914
 
1840
1915
  <!-- copyright text in footer internal footer -->
1841
1916
  <xsl:template match="iec:copyright-statement//iec:p[not(@id)]//text()">
1842
- <xsl:if test="normalize-space() ! = ''">
1917
+ <xsl:if test="normalize-space() != ''">
1843
1918
  <xsl:call-template name="addLetterSpacing">
1844
1919
  <xsl:with-param name="text" select="normalize-space(.)"/>
1845
1920
  </xsl:call-template>
@@ -1850,7 +1925,8 @@
1850
1925
  <xsl:template match="iec:iec-standard/iec:preface/iec:foreword" priority="3">
1851
1926
  <fo:block id="{@id}" margin-bottom="12pt" font-size="12pt" text-align="center">
1852
1927
  <xsl:call-template name="addLetterSpacing">
1853
- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(iec:title))"/>
1928
+ <!-- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(iec:title))"/> -->
1929
+ <xsl:with-param name="text" select="iec:title"/>
1854
1930
  </xsl:call-template>
1855
1931
  </fo:block>
1856
1932
  <fo:block font-size="8.2pt" text-align="justify"> <!-- margin-left="6.3mm" -->
@@ -1910,7 +1986,8 @@
1910
1986
  </xsl:template>
1911
1987
  <xsl:template match="iec:introduction/iec:title/text()">
1912
1988
  <xsl:call-template name="addLetterSpacing">
1913
- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(.))"/>
1989
+ <!-- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new(.))"/> -->
1990
+ <xsl:with-param name="text" select="."/>
1914
1991
  </xsl:call-template>
1915
1992
  </xsl:template>
1916
1993
 
@@ -1934,7 +2011,7 @@
1934
2011
  </xsl:template>
1935
2012
 
1936
2013
 
1937
- <xsl:template match="iec:title">
2014
+ <xsl:template match="iec:title" name="title">
1938
2015
 
1939
2016
  <xsl:variable name="level">
1940
2017
  <xsl:call-template name="getLevel"/>
@@ -1983,7 +2060,7 @@
1983
2060
  <!-- ====== -->
1984
2061
 
1985
2062
 
1986
- <xsl:template match="iec:p">
2063
+ <xsl:template match="iec:p" name="paragraph">
1987
2064
  <xsl:param name="inline" select="'false'"/>
1988
2065
  <xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
1989
2066
  <xsl:variable name="element-name">
@@ -2030,6 +2107,7 @@
2030
2107
  <!-- <xsl:if test="ancestor::iec:dl and ancestor::iec:figure">
2031
2108
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2032
2109
  </xsl:if> -->
2110
+ <xsl:apply-templates select="@language"/>
2033
2111
  <xsl:apply-templates/>
2034
2112
  </xsl:element>
2035
2113
  </xsl:when>
@@ -2052,37 +2130,6 @@
2052
2130
  </xsl:if> -->
2053
2131
  </xsl:template>
2054
2132
 
2055
- <!--
2056
- <fn reference="1">
2057
- <p id="_8e5cf917-f75a-4a49-b0aa-1714cb6cf954">Formerly denoted as 15 % (m/m).</p>
2058
- </fn>
2059
- -->
2060
- <xsl:template match="iec:p/iec:fn" priority="2">
2061
- <fo:footnote>
2062
- <xsl:variable name="number">
2063
- <xsl:number level="any" count="iec:p/iec:fn"/>
2064
- </xsl:variable>
2065
- <xsl:variable name="lang">
2066
- <xsl:call-template name="getLang"/>
2067
- </xsl:variable>
2068
- <fo:inline font-size="8pt" keep-with-previous.within-line="always" baseline-shift="15%"> <!-- font-size="80%" vertical-align="super"-->
2069
- <fo:basic-link internal-destination="{$lang}_footnote_{@reference}" fox:alt-text="footnote {@reference}">
2070
- <!-- <xsl:value-of select="@reference"/> -->
2071
- <xsl:value-of select="$number + count(//iec:bibitem/iec:note)"/><!-- <xsl:text>)</xsl:text> -->
2072
- </fo:basic-link>
2073
- </fo:inline>
2074
- <fo:footnote-body>
2075
- <fo:block font-size="8pt" margin-bottom="5pt">
2076
- <fo:inline id="{$lang}_footnote_{@reference}" keep-with-next.within-line="always" baseline-shift="15%" padding-right="3mm"> <!-- padding-right="3mm" font-size="60%" alignment-baseline="hanging" -->
2077
- <xsl:value-of select="$number + count(//iec:bibitem/iec:note)"/><!-- <xsl:text>)</xsl:text> -->
2078
- </fo:inline>
2079
- <!-- <xsl:for-each select="iec:p"> -->
2080
- <xsl:apply-templates/>
2081
- <!-- </xsl:for-each> -->
2082
- </fo:block>
2083
- </fo:footnote-body>
2084
- </fo:footnote>
2085
- </xsl:template>
2086
2133
 
2087
2134
  <xsl:template match="iec:p/iec:fn/iec:p">
2088
2135
  <xsl:apply-templates/>
@@ -2096,55 +2143,6 @@
2096
2143
  <fo:block margin-bottom="10pt"><xsl:apply-templates/></fo:block>
2097
2144
  </xsl:template>
2098
2145
 
2099
-
2100
-
2101
-
2102
- <xsl:template match="iec:bibitem">
2103
- <fo:block id="{@id}" margin-top="5pt" margin-bottom="10pt"> <!-- letter-spacing="0.4pt" -->
2104
- <!-- iec:docidentifier -->
2105
- <xsl:if test="iec:docidentifier">
2106
- <xsl:choose>
2107
- <xsl:when test="iec:docidentifier/@type = 'metanorma'"/>
2108
- <xsl:otherwise><fo:inline><xsl:value-of select="iec:docidentifier"/></fo:inline></xsl:otherwise>
2109
- </xsl:choose>
2110
- </xsl:if>
2111
- <xsl:apply-templates select="iec:note"/>
2112
- <xsl:if test="iec:docidentifier">, </xsl:if>
2113
- <fo:inline font-style="italic">
2114
- <xsl:choose>
2115
- <xsl:when test="iec:title[@type = 'main' and @language = 'en']">
2116
- <xsl:value-of select="iec:title[@type = 'main' and @language = 'en']"/>
2117
- </xsl:when>
2118
- <xsl:otherwise>
2119
- <xsl:value-of select="iec:title"/>
2120
- </xsl:otherwise>
2121
- </xsl:choose>
2122
- </fo:inline>
2123
- </fo:block>
2124
- </xsl:template>
2125
-
2126
-
2127
- <xsl:template match="iec:bibitem/iec:note" priority="2">
2128
- <fo:footnote>
2129
- <xsl:variable name="number">
2130
- <xsl:number level="any" count="iec:bibitem/iec:note"/>
2131
- </xsl:variable>
2132
- <fo:inline font-size="8pt" keep-with-previous.within-line="always" baseline-shift="15%"> <!--font-size="85%" vertical-align="super"60% -->
2133
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
2134
- <xsl:value-of select="$number"/><!-- <xsl:text>)</xsl:text> -->
2135
- </fo:basic-link>
2136
- </fo:inline>
2137
- <fo:footnote-body>
2138
- <fo:block font-size="8pt" margin-bottom="5pt">
2139
- <fo:inline id="{generate-id()}" keep-with-next.within-line="always" baseline-shift="15%" padding-right="3mm"><!-- padding-right="9mm" alignment-baseline="hanging" font-size="60%" -->
2140
- <xsl:value-of select="$number"/><!-- <xsl:text>)</xsl:text> -->
2141
- </fo:inline>
2142
- <xsl:apply-templates/>
2143
- </fo:block>
2144
- </fo:footnote-body>
2145
- </fo:footnote>
2146
- </xsl:template>
2147
-
2148
2146
 
2149
2147
 
2150
2148
  <xsl:template match="iec:ul | iec:ol" mode="ul_ol">
@@ -2165,12 +2163,11 @@
2165
2163
  <xsl:template match="iec:li">
2166
2164
  <fo:list-item>
2167
2165
  <fo:list-item-label end-indent="label-end()">
2168
- <xsl:if test="local-name(..) = 'ul'">
2169
- <xsl:attribute name="font-size">10pt</xsl:attribute>
2170
- </xsl:if>
2171
2166
  <fo:block>
2172
2167
  <xsl:choose>
2173
- <xsl:when test="local-name(..) = 'ul'">•</xsl:when> <!-- &#x2014; dash -->
2168
+ <xsl:when test="local-name(..) = 'ul'">
2169
+ <xsl:call-template name="setULLabel"/>
2170
+ </xsl:when>
2174
2171
  <xsl:otherwise> <!-- for ordered lists -->
2175
2172
  <xsl:choose>
2176
2173
  <xsl:when test="../@type = 'arabic'">
@@ -2222,9 +2219,14 @@
2222
2219
  <xsl:call-template name="getLevelTermName"/>
2223
2220
  </xsl:variable>
2224
2221
  <fo:block line-height="1.1" space-before="14pt" role="H{$levelTerm}">
2225
- <fo:block font-weight="bold" keep-with-next="always">
2226
- <xsl:apply-templates select="ancestor::iec:term[1]/iec:name" mode="presentation"/>
2227
- </fo:block>
2222
+ <xsl:if test="preceding-sibling::*[1][self::iec:preferred]">
2223
+ <xsl:attribute name="space-before">1pt</xsl:attribute>
2224
+ </xsl:if>
2225
+ <xsl:if test="parent::iec:term and not(preceding-sibling::iec:preferred)"> <!-- if first preffered in term, then display term's name -->
2226
+ <fo:block font-weight="bold" keep-with-next="always">
2227
+ <xsl:apply-templates select="ancestor::iec:term[1]/iec:name"/>
2228
+ </fo:block>
2229
+ </xsl:if>
2228
2230
  <fo:block font-weight="bold" keep-with-next="always">
2229
2231
  <xsl:call-template name="setStyle_preferred"/>
2230
2232
  <xsl:apply-templates/>
@@ -2232,77 +2234,6 @@
2232
2234
  </fo:block>
2233
2235
  </xsl:template>
2234
2236
 
2235
-
2236
- <xsl:template match="iec:references[not(@normative='true')]">
2237
- <fo:block break-after="page"/>
2238
- <fo:block id="{@id}">
2239
- <xsl:apply-templates/>
2240
- </fo:block>
2241
- <fo:block-container text-align="center" margin-top="10mm">
2242
- <fo:block>_____________</fo:block>
2243
- </fo:block-container>
2244
- </xsl:template>
2245
-
2246
-
2247
- <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
2248
- <xsl:template match="iec:references[not(@normative='true')]/iec:bibitem">
2249
- <fo:list-block margin-top="5pt" margin-bottom="14pt" provisional-distance-between-starts="12mm"> <!-- provisional-distance-between-starts="0mm" -->
2250
- <fo:list-item>
2251
- <fo:list-item-label end-indent="label-end()">
2252
- <fo:block id="{@id}">
2253
- <xsl:number format="[1]"/>
2254
- </fo:block>
2255
- </fo:list-item-label>
2256
- <fo:list-item-body start-indent="body-start()">
2257
- <fo:block>
2258
- <xsl:if test="iec:docidentifier">
2259
- <xsl:choose>
2260
- <xsl:when test="iec:docidentifier/@type = 'metanorma'"/>
2261
- <xsl:otherwise><fo:inline><xsl:value-of select="iec:docidentifier"/>, </fo:inline></xsl:otherwise>
2262
- </xsl:choose>
2263
- </xsl:if>
2264
- <xsl:choose>
2265
- <xsl:when test="iec:title[@type = 'main' and @language = 'en']">
2266
- <xsl:apply-templates select="iec:title[@type = 'main' and @language = 'en']"/>
2267
- </xsl:when>
2268
- <xsl:otherwise>
2269
- <xsl:apply-templates select="iec:title"/>
2270
- </xsl:otherwise>
2271
- </xsl:choose>
2272
- <xsl:apply-templates select="iec:formattedref"/>
2273
- </fo:block>
2274
- </fo:list-item-body>
2275
- </fo:list-item>
2276
- </fo:list-block>
2277
- </xsl:template>
2278
-
2279
- <xsl:template match="iec:references[not(@normative='true')]/iec:bibitem" mode="contents"/>
2280
-
2281
- <xsl:template match="iec:references[not(@normative='true')]/iec:bibitem/iec:title">
2282
- <fo:inline font-style="italic">
2283
- <xsl:apply-templates/>
2284
- </fo:inline>
2285
- </xsl:template>
2286
-
2287
-
2288
-
2289
-
2290
- <xsl:template match="iec:admonition">
2291
- <fo:block-container border="0.5pt solid black" margin-left="-2mm" margin-right="-2mm" space-before="18pt" space-after="12pt">
2292
- <fo:block-container margin-left="0mm" margin-right="0mm" font-weight="bold" padding="1mm" padding-top="2mm">
2293
- <fo:block text-align="justify">
2294
- <fo:inline><xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@type))"/> – </fo:inline>
2295
- <xsl:apply-templates/>
2296
- </fo:block>
2297
- </fo:block-container>
2298
- </fo:block-container>
2299
- <!-- <fo:block font-weight="bold">
2300
- <fo:block text-align="center" margin-top="5pt" margin-bottom="10pt">
2301
- <xsl:value-of select="translate(@type, $lower, $upper)"/>
2302
- </fo:block>
2303
- <xsl:apply-templates />
2304
- </fo:block> -->
2305
- </xsl:template>
2306
2237
 
2307
2238
  <xsl:template match="iec:admonition//iec:p//text()">
2308
2239
  <xsl:call-template name="addLetterSpacing">
@@ -2327,7 +2258,7 @@
2327
2258
  </fo:table-cell>
2328
2259
  <fo:table-cell display-align="center">
2329
2260
  <fo:block text-align="right" margin-right="-10mm">
2330
- <xsl:apply-templates select="../iec:name" mode="presentation"/>
2261
+ <xsl:apply-templates select="../iec:name" mode="formula_number"/>
2331
2262
  </fo:block>
2332
2263
  </fo:table-cell>
2333
2264
  </fo:table-row>
@@ -2336,7 +2267,63 @@
2336
2267
  </fo:block>
2337
2268
  </xsl:template>
2338
2269
 
2270
+ <!-- =================== -->
2271
+ <!-- Index processing -->
2272
+ <!-- =================== -->
2273
+
2274
+ <xsl:template match="iec:indexsect"/>
2275
+ <xsl:template match="iec:indexsect" mode="index">
2276
+
2277
+ <fo:page-sequence master-reference="document" force-page-count="no-force">
2278
+ <xsl:call-template name="insertHeaderFooter"/>
2279
+ <fo:flow flow-name="xsl-region-body">
2280
+ <fo:block id="{@id}" span="all">
2281
+ <xsl:apply-templates select="iec:title"/>
2282
+ </fo:block>
2283
+ <fo:block role="Index">
2284
+ <xsl:apply-templates select="*[not(local-name() = 'title')]"/>
2285
+ </fo:block>
2286
+ </fo:flow>
2287
+ </fo:page-sequence>
2288
+ </xsl:template>
2289
+
2290
+ <xsl:template match="iec:indexsect/iec:title" priority="4">
2291
+ <fo:block font-size="12pt" font-weight="bold" margin-bottom="84pt" role="H1">
2292
+ <!-- Index -->
2293
+ <xsl:apply-templates/>
2294
+ </fo:block>
2295
+ </xsl:template>
2296
+
2297
+ <xsl:template match="iec:indexsect/iec:title/text()" priority="4">
2298
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
2299
+ </xsl:template>
2339
2300
 
2301
+ <xsl:template match="iec:indexsect/iec:clause/iec:title" priority="4">
2302
+ <!-- Letter A, B, C, ... -->
2303
+ <fo:block font-size="10pt" font-weight="bold" margin-bottom="3pt" keep-with-next="always">
2304
+ <xsl:apply-templates/>
2305
+ </fo:block>
2306
+ </xsl:template>
2307
+
2308
+ <xsl:template match="iec:indexsect//iec:li/text()">
2309
+ <!-- to split by '_' and other chars -->
2310
+ <xsl:call-template name="add-zero-spaces-java"/>
2311
+ </xsl:template>
2312
+
2313
+ <xsl:template match="iec:xref[@pagenumber = 'true']" priority="2">
2314
+ <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
2315
+ <fo:inline>
2316
+ <xsl:if test="@id">
2317
+ <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
2318
+ </xsl:if>
2319
+ <fo:page-number-citation ref-id="{@target}"/>
2320
+ </fo:inline>
2321
+ </fo:basic-link>
2322
+ </xsl:template>
2323
+
2324
+ <!-- =================== -->
2325
+ <!-- End of Index processing -->
2326
+ <!-- =================== -->
2340
2327
 
2341
2328
  <xsl:template name="insertHeaderFooter">
2342
2329
  <fo:static-content flow-name="header-even" role="artifact">
@@ -2500,55 +2487,32 @@
2500
2487
  </xsl:copy>
2501
2488
  </xsl:template> -->
2502
2489
 
2503
- <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
2504
-
2505
- <title-annex lang="en">Annex </title-annex>
2506
- <title-annex lang="fr">Annexe </title-annex>
2507
-
2508
- <title-annex lang="zh">Annex </title-annex>
2509
-
2510
-
2490
+ <xsl:variable name="titles_">
2511
2491
 
2512
2492
  <title-edition lang="en">
2513
2493
 
2514
- <xsl:text>Edition </xsl:text>
2515
-
2516
-
2494
+ <xsl:text>Edition </xsl:text>
2495
+
2517
2496
  </title-edition>
2518
2497
 
2519
2498
  <title-edition lang="fr">
2520
-
2521
- <xsl:text>Édition </xsl:text>
2522
-
2499
+ <xsl:text>Édition </xsl:text>
2523
2500
  </title-edition>
2524
2501
 
2525
-
2502
+ <!-- These titles of Table of contents renders different than determined in localized-strings -->
2526
2503
  <title-toc lang="en">
2527
2504
 
2528
- <xsl:text>Contents</xsl:text>
2529
-
2530
2505
 
2531
2506
 
2532
2507
  </title-toc>
2533
2508
  <title-toc lang="fr">
2509
+ <xsl:text>Sommaire</xsl:text>
2510
+ </title-toc>
2511
+ <title-toc lang="zh">
2534
2512
 
2535
- <xsl:text>Sommaire</xsl:text>
2536
-
2537
-
2538
- </title-toc>
2539
-
2540
- <title-toc lang="zh">Contents</title-toc>
2541
-
2542
-
2543
-
2544
- <title-page lang="en">Page</title-page>
2545
- <title-page lang="fr">Page</title-page>
2546
-
2547
- <title-key lang="en">Key</title-key>
2548
- <title-key lang="fr">Légende</title-key>
2549
-
2550
- <title-where lang="en">where</title-where>
2551
- <title-where lang="fr">où</title-where>
2513
+ <xsl:text>Contents</xsl:text>
2514
+
2515
+ </title-toc>
2552
2516
 
2553
2517
  <title-descriptors lang="en">Descriptors</title-descriptors>
2554
2518
 
@@ -2568,32 +2532,9 @@
2568
2532
  </title-part>
2569
2533
  <title-part lang="zh">第 # 部分:</title-part>
2570
2534
 
2571
- <title-subpart lang="en">
2572
-
2573
- </title-subpart>
2574
- <title-subpart lang="fr">
2575
-
2576
- </title-subpart>
2577
-
2578
- <title-modified lang="en">modified</title-modified>
2579
- <title-modified lang="fr">modifiée</title-modified>
2580
-
2581
- <title-modified lang="zh">modified</title-modified>
2582
-
2583
-
2584
-
2585
- <title-source lang="en">
2586
-
2587
- <xsl:text>SOURCE</xsl:text>
2588
-
2589
-
2590
- </title-source>
2591
-
2592
- <title-keywords lang="en">Keywords</title-keywords>
2535
+ <title-subpart lang="en">Sub-part #</title-subpart>
2536
+ <title-subpart lang="fr">Partie de sub #</title-subpart>
2593
2537
 
2594
- <title-deprecated lang="en">DEPRECATED</title-deprecated>
2595
- <title-deprecated lang="fr">DEPRECATED</title-deprecated>
2596
-
2597
2538
  <title-list-tables lang="en">List of Tables</title-list-tables>
2598
2539
 
2599
2540
  <title-list-figures lang="en">List of Figures</title-list-figures>
@@ -2602,41 +2543,12 @@
2602
2543
 
2603
2544
  <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
2604
2545
 
2605
- <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
2606
-
2607
- <title-abstract lang="en">Abstract</title-abstract>
2608
-
2609
2546
  <title-summary lang="en">Summary</title-summary>
2610
2547
 
2611
- <title-in lang="en">in </title-in>
2612
-
2613
- <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
2614
- <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
2615
-
2616
- <title-completion-date lang="en">Completion date for this manuscript</title-completion-date>
2617
- <title-completion-date lang="zh">本稿完成日期</title-completion-date>
2618
-
2619
- <title-issuance-date lang="en">Issuance Date: #</title-issuance-date>
2620
- <title-issuance-date lang="zh"># 发布</title-issuance-date>
2621
-
2622
- <title-implementation-date lang="en">Implementation Date: #</title-implementation-date>
2623
- <title-implementation-date lang="zh"># 实施</title-implementation-date>
2624
-
2625
- <title-obligation-normative lang="en">normative</title-obligation-normative>
2626
- <title-obligation-normative lang="zh">规范性附录</title-obligation-normative>
2627
-
2628
- <title-caution lang="en">CAUTION</title-caution>
2629
- <title-caution lang="zh">注意</title-caution>
2630
-
2631
- <title-warning lang="en">WARNING</title-warning>
2632
- <title-warning lang="zh">警告</title-warning>
2633
-
2634
- <title-amendment lang="en">AMENDMENT</title-amendment>
2635
-
2636
2548
  <title-continued lang="en">(continued)</title-continued>
2637
2549
  <title-continued lang="fr">(continué)</title-continued>
2638
2550
 
2639
- </xsl:variable><xsl:variable name="bibdata">
2551
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
2640
2552
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
2641
2553
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
2642
2554
  </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
@@ -2665,12 +2577,32 @@
2665
2577
  </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">
2666
2578
 
2667
2579
 
2580
+
2581
+
2582
+
2583
+
2584
+ <xsl:attribute name="font-family">Arial, Times New Roman, STIX Two Math, Source Han Sans</xsl:attribute>
2585
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+
2594
+
2595
+
2596
+
2668
2597
  </xsl:attribute-set><xsl:attribute-set name="link-style">
2669
2598
 
2670
2599
 
2671
2600
 
2672
2601
 
2673
2602
 
2603
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-container-style">
2604
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2605
+
2674
2606
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
2675
2607
  <xsl:attribute name="white-space">pre</xsl:attribute>
2676
2608
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
@@ -2679,15 +2611,22 @@
2679
2611
 
2680
2612
 
2681
2613
 
2614
+
2615
+
2682
2616
  <xsl:attribute name="font-family">Courier New</xsl:attribute>
2683
2617
  <xsl:attribute name="margin-top">5pt</xsl:attribute>
2684
2618
  <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
2685
2619
 
2686
2620
 
2621
+
2622
+
2623
+
2687
2624
 
2688
2625
 
2689
2626
 
2690
2627
 
2628
+
2629
+
2691
2630
  </xsl:attribute-set><xsl:attribute-set name="permission-style">
2692
2631
 
2693
2632
  </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
@@ -2731,6 +2670,10 @@
2731
2670
 
2732
2671
 
2733
2672
 
2673
+ <xsl:attribute name="space-before">8pt</xsl:attribute>
2674
+ <xsl:attribute name="space-after">8pt</xsl:attribute>
2675
+
2676
+
2734
2677
 
2735
2678
 
2736
2679
 
@@ -2743,7 +2686,11 @@
2743
2686
 
2744
2687
 
2745
2688
 
2689
+ <xsl:attribute name="margin-left">10mm</xsl:attribute>
2690
+
2691
+
2746
2692
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
2693
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2747
2694
 
2748
2695
 
2749
2696
 
@@ -2768,6 +2715,9 @@
2768
2715
 
2769
2716
 
2770
2717
 
2718
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
2719
+
2720
+
2771
2721
 
2772
2722
 
2773
2723
 
@@ -2788,13 +2738,67 @@
2788
2738
 
2789
2739
  </xsl:attribute-set><xsl:variable name="table-border_">
2790
2740
 
2791
- </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-name-style">
2792
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
2793
-
2741
+ </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
2742
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2743
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2794
2744
 
2795
2745
 
2796
2746
 
2797
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2747
+
2748
+
2749
+
2750
+
2751
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2752
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+ </xsl:attribute-set><xsl:attribute-set name="table-style">
2769
+ <xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
2770
+ <xsl:attribute name="table-layout">fixed</xsl:attribute>
2771
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2772
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2773
+
2774
+
2775
+
2776
+
2777
+
2778
+
2779
+
2780
+ <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
2781
+
2782
+
2783
+
2784
+
2785
+
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+
2793
+
2794
+
2795
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
2796
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2797
+
2798
+
2799
+
2800
+
2801
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2798
2802
  <xsl:attribute name="text-align">center</xsl:attribute>
2799
2803
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2800
2804
  <xsl:attribute name="space-before">12pt</xsl:attribute>
@@ -2809,48 +2813,554 @@
2809
2813
 
2810
2814
 
2811
2815
 
2816
+ </xsl:attribute-set><xsl:attribute-set name="table-row-style">
2817
+ <xsl:attribute name="min-height">4mm</xsl:attribute>
2818
+
2819
+
2820
+
2821
+
2822
+ </xsl:attribute-set><xsl:attribute-set name="table-header-row-style" use-attribute-sets="table-row-style">
2823
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2824
+
2825
+
2826
+
2827
+ <xsl:attribute name="border-top">solid black 0.5pt</xsl:attribute>
2828
+ <xsl:attribute name="border-bottom">solid black 0.5pt</xsl:attribute>
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-row-style" use-attribute-sets="table-row-style">
2837
+
2838
+
2839
+ <xsl:attribute name="border-left">solid black 0.5pt</xsl:attribute>
2840
+ <xsl:attribute name="border-right">solid black 0.5pt</xsl:attribute>
2841
+
2842
+
2843
+ </xsl:attribute-set><xsl:attribute-set name="table-body-row-style" use-attribute-sets="table-row-style">
2844
+
2845
+ </xsl:attribute-set><xsl:attribute-set name="table-header-cell-style">
2846
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2847
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2848
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2849
+ <xsl:attribute name="display-align">center</xsl:attribute>
2850
+
2851
+
2852
+
2853
+
2854
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2855
+ <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
2856
+ <xsl:attribute name="text-align">center</xsl:attribute>
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+ </xsl:attribute-set><xsl:attribute-set name="table-cell-style">
2868
+ <xsl:attribute name="display-align">center</xsl:attribute>
2869
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2870
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+ <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
2877
+ <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2812
2887
  </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
2888
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2889
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
2890
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
2891
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+
2899
+ <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+ </xsl:attribute-set><xsl:attribute-set name="table-note-style">
2906
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
2907
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2908
+
2909
+
2910
+
2911
+
2912
+
2913
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2914
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2915
+
2916
+
2917
+
2918
+
2919
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-style">
2920
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
2927
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
2928
+ <xsl:attribute name="text-indent">-6mm</xsl:attribute>
2929
+ <xsl:attribute name="margin-left">6mm</xsl:attribute>
2930
+
2931
+
2932
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
2933
+ <xsl:attribute name="font-size">80%</xsl:attribute>
2934
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
2935
+
2936
+
2937
+
2938
+
2939
+
2940
+
2941
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
2942
+ <xsl:attribute name="font-size">70%</xsl:attribute>
2943
+
2944
+
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+ </xsl:attribute-set><xsl:attribute-set name="fn-container-body-style">
2951
+ <xsl:attribute name="text-indent">0</xsl:attribute>
2952
+ <xsl:attribute name="start-indent">0</xsl:attribute>
2953
+
2954
+
2955
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-body-style">
2956
+
2957
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-number-style">
2958
+ <xsl:attribute name="font-size">80%</xsl:attribute>
2959
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
2960
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
2961
+
2962
+ <xsl:attribute name="baseline-shift">65%</xsl:attribute>
2963
+
2964
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-body-style">
2965
+ <xsl:attribute name="text-align">justify</xsl:attribute>
2966
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2967
+
2968
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
2969
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2970
+
2971
+ </xsl:attribute-set><xsl:attribute-set name="dt-row-style">
2972
+
2973
+
2974
+ </xsl:attribute-set><xsl:attribute-set name="dt-style">
2975
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
2976
+
2977
+
2978
+
2979
+
2980
+ <xsl:attribute name="margin-top">0pt</xsl:attribute>
2981
+
2982
+
2983
+
2984
+
2985
+
2986
+
2813
2987
 
2814
2988
  </xsl:attribute-set><xsl:attribute-set name="appendix-style">
2815
2989
 
2816
2990
 
2817
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2818
- <xsl:attribute name="margin-top">5pt</xsl:attribute>
2819
- <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
2991
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2992
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
2993
+ <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
2994
+
2995
+
2996
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
2997
+
2998
+
2999
+ <xsl:attribute name="margin-top">14pt</xsl:attribute>
3000
+ <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
3001
+
3002
+
3003
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
3004
+
3005
+
3006
+
3007
+
3008
+
3009
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
3017
+
3018
+
3019
+
3020
+
3021
+
3022
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
3023
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
3024
+ <xsl:attribute name="margin-bottom">9pt</xsl:attribute>
3025
+
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+
3034
+
3035
+
3036
+
3037
+ </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">
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+ <xsl:attribute name="padding-right">6mm</xsl:attribute>
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+
3052
+
3053
+ </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
3054
+ <xsl:attribute name="padding-right">2mm</xsl:attribute>
3055
+
3056
+
3057
+
3058
+
3059
+ </xsl:attribute-set><xsl:attribute-set name="note-p-style">
3060
+
3061
+
3062
+
3063
+
3064
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
3065
+
3066
+
3067
+
3068
+
3069
+
3070
+
3071
+
3072
+
3073
+
3074
+
3075
+ </xsl:attribute-set><xsl:attribute-set name="termnote-style">
3076
+
3077
+
3078
+
3079
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
3080
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
3081
+ <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+ </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
3088
+
3089
+
3090
+
3091
+
3092
+ </xsl:attribute-set><xsl:attribute-set name="quote-style">
3093
+ <xsl:attribute name="role">BlockQuote</xsl:attribute>
3094
+
3095
+
3096
+
3097
+
3098
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
3099
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
3100
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
3101
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
3102
+
3103
+
3104
+
3105
+
3106
+ </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
3107
+
3108
+
3109
+
3110
+ <xsl:attribute name="text-align">right</xsl:attribute>
3111
+ <xsl:attribute name="margin-top">15pt</xsl:attribute>
3112
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
3113
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
3114
+
3115
+ </xsl:attribute-set><xsl:attribute-set name="termsource-style">
3116
+
3117
+
3118
+
3119
+ <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
3120
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+ </xsl:attribute-set><xsl:attribute-set name="termsource-text-style">
3127
+
3128
+
3129
+ </xsl:attribute-set><xsl:attribute-set name="origin-style">
3130
+
3131
+
3132
+
3133
+
3134
+ </xsl:attribute-set><xsl:attribute-set name="term-style">
3135
+
3136
+ </xsl:attribute-set><xsl:attribute-set name="figure-style">
3137
+
3138
+ </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
3139
+
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3147
+ <xsl:attribute name="text-align">center</xsl:attribute>
3148
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
3149
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3150
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+
3157
+
3158
+
3159
+
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+ </xsl:attribute-set><xsl:attribute-set name="formula-style">
3166
+
3167
+ </xsl:attribute-set><xsl:attribute-set name="image-style">
3168
+ <xsl:attribute name="text-align">center</xsl:attribute>
3169
+
3170
+
3171
+
3172
+
3173
+
3174
+
3175
+ </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
3176
+
3177
+ </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
3178
+
3179
+
3180
+
3181
+
3182
+ <xsl:attribute name="width">75%</xsl:attribute>
3183
+ <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
3184
+ <xsl:attribute name="scaling">uniform</xsl:attribute>
3185
+
3186
+
3187
+
3188
+ </xsl:attribute-set><xsl:attribute-set name="tt-style">
3189
+
3190
+
3191
+ <xsl:attribute name="font-family">Courier New</xsl:attribute>
3192
+
3193
+
3194
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
3195
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
3196
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3197
+ <xsl:attribute name="text-align">center</xsl:attribute>
3198
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3199
+ <xsl:attribute name="keep-with-previous">always</xsl:attribute>
3200
+
3201
+ </xsl:attribute-set><xsl:attribute-set name="domain-style">
3202
+
3203
+ </xsl:attribute-set><xsl:attribute-set name="admitted-style">
3204
+
3205
+
3206
+
3207
+ </xsl:attribute-set><xsl:attribute-set name="deprecates-style">
3208
+
3209
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
3210
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
3211
+ <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
3212
+
3213
+
3214
+ </xsl:attribute-set><xsl:attribute-set name="definition-style">
3215
+
3216
+
3217
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3218
+
3219
+
3220
+ </xsl:attribute-set><xsl:variable name="color-added-text">
3221
+ <xsl:text>rgb(0, 255, 0)</xsl:text>
3222
+ </xsl:variable><xsl:attribute-set name="add-style">
3223
+ <xsl:attribute name="color">red</xsl:attribute>
3224
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
3225
+ <!-- <xsl:attribute name="color">black</xsl:attribute>
3226
+ <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
3227
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
3228
+ <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
3229
+ </xsl:attribute-set><xsl:variable name="color-deleted-text">
3230
+ <xsl:text>red</xsl:text>
3231
+ </xsl:variable><xsl:attribute-set name="del-style">
3232
+ <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
3233
+ <xsl:attribute name="text-decoration">line-through</xsl:attribute>
3234
+ </xsl:attribute-set><xsl:attribute-set name="mathml-style">
3235
+ <xsl:attribute name="font-family">STIX Two Math</xsl:attribute>
3236
+
3237
+
3238
+ </xsl:attribute-set><xsl:attribute-set name="list-style">
3239
+
3240
+ </xsl:attribute-set><xsl:attribute-set name="toc-style">
3241
+ <xsl:attribute name="line-height">135%</xsl:attribute>
3242
+ </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
3243
+ <xsl:attribute name="font-size">80%</xsl:attribute>
3244
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
3245
+
3246
+
3247
+
3248
+
3249
+
3250
+
3251
+
3252
+
3253
+ </xsl:attribute-set><xsl:attribute-set name="fn-style">
3254
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
3255
+ </xsl:attribute-set><xsl:attribute-set name="fn-num-style">
3256
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
3257
+
3258
+
3259
+
3260
+
3261
+
3262
+
3263
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
3264
+ <xsl:attribute name="baseline-shift">15%</xsl:attribute>
3265
+
3266
+
3267
+
3268
+
3269
+
3270
+
3271
+
3272
+
3273
+
3274
+
3275
+
3276
+ </xsl:attribute-set><xsl:attribute-set name="fn-body-style">
3277
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
3278
+ <xsl:attribute name="font-style">normal</xsl:attribute>
3279
+ <xsl:attribute name="text-indent">0</xsl:attribute>
3280
+ <xsl:attribute name="start-indent">0</xsl:attribute>
3281
+
3282
+
3283
+
3284
+
3285
+
3286
+
3287
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
3288
+ <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
3289
+
3290
+
3291
+
3292
+
3293
+
3294
+
3295
+
3296
+
3297
+
3298
+
3299
+
3300
+
3301
+
3302
+ </xsl:attribute-set><xsl:attribute-set name="fn-body-num-style">
3303
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
3304
+
3305
+
3306
+
3307
+
3308
+
3309
+
3310
+ <xsl:attribute name="baseline-shift">15%</xsl:attribute>
3311
+ <xsl:attribute name="padding-right">3mm</xsl:attribute>
3312
+
3313
+
3314
+
3315
+
3316
+
3317
+
3318
+
3319
+
3320
+
3321
+
3322
+
3323
+
3324
+ </xsl:attribute-set><xsl:attribute-set name="admonition-style">
3325
+
3326
+
2820
3327
 
2821
3328
 
2822
- </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
2823
3329
 
3330
+ <xsl:attribute name="border">0.5pt solid black</xsl:attribute>
3331
+ <xsl:attribute name="margin-left">-2mm</xsl:attribute>
3332
+ <xsl:attribute name="margin-right">-2mm</xsl:attribute>
3333
+ <xsl:attribute name="space-before">18pt</xsl:attribute>
3334
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
2824
3335
 
2825
- <xsl:attribute name="margin-top">14pt</xsl:attribute>
2826
- <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
2827
3336
 
2828
3337
 
2829
- </xsl:attribute-set><xsl:attribute-set name="xref-style">
2830
3338
 
2831
3339
 
2832
3340
 
2833
3341
 
2834
3342
 
2835
- </xsl:attribute-set><xsl:attribute-set name="eref-style">
2836
3343
 
2837
3344
 
3345
+ </xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
2838
3346
 
2839
3347
 
2840
3348
 
3349
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
3350
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
3351
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3352
+ <xsl:attribute name="padding">1mm</xsl:attribute>
3353
+ <xsl:attribute name="padding-top">2mm</xsl:attribute>
2841
3354
 
2842
- </xsl:attribute-set><xsl:attribute-set name="note-style">
2843
3355
 
2844
3356
 
2845
3357
 
2846
3358
 
2847
3359
 
2848
- <xsl:attribute name="font-size">8pt</xsl:attribute>
2849
- <xsl:attribute name="margin-top">5pt</xsl:attribute>
2850
- <xsl:attribute name="margin-bottom">9pt</xsl:attribute>
2851
-
2852
3360
 
2853
3361
 
3362
+ </xsl:attribute-set><xsl:attribute-set name="admonition-name-style">
3363
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2854
3364
 
2855
3365
 
2856
3366
 
@@ -2860,13 +3370,12 @@
2860
3370
 
2861
3371
 
2862
3372
 
2863
- </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">
2864
3373
 
2865
3374
 
2866
3375
 
2867
3376
 
3377
+ </xsl:attribute-set><xsl:attribute-set name="admonition-p-style">
2868
3378
 
2869
- <xsl:attribute name="padding-right">6mm</xsl:attribute>
2870
3379
 
2871
3380
 
2872
3381
 
@@ -2876,18 +3385,16 @@
2876
3385
 
2877
3386
 
2878
3387
 
2879
- </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
2880
3388
 
3389
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-style">
2881
3390
 
2882
3391
 
2883
3392
 
2884
- </xsl:attribute-set><xsl:attribute-set name="note-p-style">
2885
3393
 
2886
3394
 
2887
3395
 
2888
-
2889
3396
  <xsl:attribute name="margin-top">5pt</xsl:attribute>
2890
-
3397
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2891
3398
 
2892
3399
 
2893
3400
 
@@ -2897,192 +3404,125 @@
2897
3404
 
2898
3405
 
2899
3406
 
2900
- </xsl:attribute-set><xsl:attribute-set name="termnote-style">
2901
3407
 
2902
3408
 
2903
3409
 
2904
- <xsl:attribute name="font-size">8pt</xsl:attribute>
2905
- <xsl:attribute name="margin-top">5pt</xsl:attribute>
2906
- <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
2907
3410
 
3411
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-style">
3412
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
3413
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2908
3414
 
2909
3415
 
2910
3416
 
2911
3417
 
2912
- </xsl:attribute-set><xsl:attribute-set name="termnote-name-style">
3418
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
3419
+ <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
2913
3420
 
2914
-
2915
3421
 
2916
3422
 
2917
- </xsl:attribute-set><xsl:attribute-set name="quote-style">
2918
- <xsl:attribute name="role">BlockQuote</xsl:attribute>
2919
3423
 
2920
3424
 
2921
3425
 
2922
3426
 
2923
- <xsl:attribute name="margin-top">5pt</xsl:attribute>
2924
- <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2925
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
2926
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
2927
3427
 
3428
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-style">
2928
3429
 
2929
3430
 
2930
3431
 
2931
- </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
2932
3432
 
2933
-
3433
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-style">
3434
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
3435
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2934
3436
 
2935
- <xsl:attribute name="text-align">right</xsl:attribute>
2936
- <xsl:attribute name="margin-top">15pt</xsl:attribute>
2937
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
2938
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
2939
-
2940
- </xsl:attribute-set><xsl:attribute-set name="termsource-style">
2941
3437
 
2942
3438
 
2943
3439
 
2944
- <xsl:attribute name="margin-bottom">8pt</xsl:attribute>
2945
- <xsl:attribute name="keep-with-previous">always</xsl:attribute>
3440
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
3441
+ <xsl:attribute name="margin-bottom">14pt</xsl:attribute>
2946
3442
 
2947
3443
 
2948
3444
 
2949
3445
 
2950
3446
 
2951
- </xsl:attribute-set><xsl:attribute-set name="origin-style">
2952
3447
 
2953
3448
 
2954
3449
 
3450
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-body-style">
2955
3451
 
2956
- </xsl:attribute-set><xsl:attribute-set name="term-style">
2957
3452
 
2958
- </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
3453
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-body-style">
2959
3454
 
2960
3455
 
2961
-
3456
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-style">
3457
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
3458
+ <xsl:attribute name="font-size">65%</xsl:attribute>
2962
3459
 
2963
3460
 
2964
3461
 
2965
-
2966
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2967
- <xsl:attribute name="text-align">center</xsl:attribute>
2968
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
2969
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2970
- <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2971
3462
 
2972
3463
 
2973
3464
 
3465
+ <xsl:attribute name="font-size">8pt</xsl:attribute>
3466
+ <xsl:attribute name="baseline-shift">15%</xsl:attribute>
2974
3467
 
2975
3468
 
2976
3469
 
2977
3470
 
2978
3471
 
2979
3472
 
2980
-
2981
3473
 
2982
3474
 
2983
3475
 
2984
-
2985
- </xsl:attribute-set><xsl:attribute-set name="formula-style">
2986
3476
 
2987
- </xsl:attribute-set><xsl:attribute-set name="image-style">
2988
- <xsl:attribute name="text-align">center</xsl:attribute>
2989
3477
 
3478
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-number-style">
3479
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
2990
3480
 
2991
3481
 
2992
3482
 
2993
3483
 
2994
3484
 
2995
- </xsl:attribute-set><xsl:attribute-set name="figure-pseudocode-p-style">
2996
3485
 
2997
- </xsl:attribute-set><xsl:attribute-set name="image-graphic-style">
3486
+ <xsl:attribute name="baseline-shift">15%</xsl:attribute>
3487
+ <xsl:attribute name="padding-right">3mm</xsl:attribute>
2998
3488
 
2999
3489
 
3000
3490
 
3001
3491
 
3002
- <xsl:attribute name="width">75%</xsl:attribute>
3003
- <xsl:attribute name="content-height">scale-to-fit</xsl:attribute>
3004
- <xsl:attribute name="scaling">uniform</xsl:attribute>
3005
3492
 
3006
-
3007
-
3008
- </xsl:attribute-set><xsl:attribute-set name="tt-style">
3009
3493
 
3010
3494
 
3011
- <xsl:attribute name="font-family">Courier New</xsl:attribute>
3012
3495
 
3013
3496
 
3014
- </xsl:attribute-set><xsl:attribute-set name="sourcecode-name-style">
3015
- <xsl:attribute name="font-size">11pt</xsl:attribute>
3016
- <xsl:attribute name="font-weight">bold</xsl:attribute>
3017
- <xsl:attribute name="text-align">center</xsl:attribute>
3018
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3019
- <xsl:attribute name="keep-with-previous">always</xsl:attribute>
3020
3497
 
3021
- </xsl:attribute-set><xsl:attribute-set name="domain-style">
3022
-
3023
- </xsl:attribute-set><xsl:attribute-set name="admitted-style">
3498
+
3499
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-body-style">
3500
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3501
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
3502
+ <xsl:attribute name="start-indent">0pt</xsl:attribute>
3024
3503
 
3025
3504
 
3026
3505
 
3027
- </xsl:attribute-set><xsl:attribute-set name="deprecates-style">
3028
3506
 
3029
3507
  <xsl:attribute name="font-size">8pt</xsl:attribute>
3030
- <xsl:attribute name="margin-top">5pt</xsl:attribute>
3031
3508
  <xsl:attribute name="margin-bottom">5pt</xsl:attribute>
3032
3509
 
3033
3510
 
3034
- </xsl:attribute-set><xsl:attribute-set name="definition-style">
3035
3511
 
3036
3512
 
3037
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
3038
3513
 
3039
3514
 
3040
- </xsl:attribute-set><xsl:variable name="color-added-text">
3041
- <xsl:text>rgb(0, 255, 0)</xsl:text>
3042
- </xsl:variable><xsl:attribute-set name="add-style">
3043
- <xsl:attribute name="color">red</xsl:attribute>
3044
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
3045
- <!-- <xsl:attribute name="color">black</xsl:attribute>
3046
- <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
3047
- <xsl:attribute name="padding-top">1mm</xsl:attribute>
3048
- <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
3049
- </xsl:attribute-set><xsl:variable name="color-deleted-text">
3050
- <xsl:text>red</xsl:text>
3051
- </xsl:variable><xsl:attribute-set name="del-style">
3052
- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
3053
- <xsl:attribute name="text-decoration">line-through</xsl:attribute>
3054
- </xsl:attribute-set><xsl:attribute-set name="mathml-style">
3055
- <xsl:attribute name="font-family">STIX Two Math</xsl:attribute>
3056
3515
 
3057
3516
 
3058
- </xsl:attribute-set><xsl:attribute-set name="list-style">
3517
+ </xsl:attribute-set><xsl:attribute-set name="references-non-normative-style">
3059
3518
 
3060
- </xsl:attribute-set><xsl:attribute-set name="toc-style">
3061
- <xsl:attribute name="line-height">135%</xsl:attribute>
3062
- </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">
3063
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
3064
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
3065
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
3066
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
3067
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
3068
- </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
3519
+
3520
+
3521
+ </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:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
3069
3522
  <xsl:for-each select="/*/*[local-name()='preface']/*">
3070
3523
  <xsl:sort select="@displayorder" data-type="number"/>
3071
3524
  <xsl:apply-templates select="." mode="contents"/>
3072
3525
  </xsl:for-each>
3073
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
3074
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
3075
-
3076
- <!-- Normative references -->
3077
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]" mode="contents"/>
3078
- <!-- Terms and definitions -->
3079
- <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"/>
3080
- <!-- Another main sections -->
3081
- <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"/>
3082
- <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
3083
- <!-- Bibliography -->
3084
- <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"/>
3085
-
3086
3526
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
3087
3527
 
3088
3528
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
@@ -3099,29 +3539,11 @@
3099
3539
  <xsl:sort select="@displayorder" data-type="number"/>
3100
3540
  <xsl:apply-templates select="." mode="contents"/>
3101
3541
  </xsl:for-each>
3102
- </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
3103
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
3104
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
3105
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
3106
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
3107
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
3108
3542
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
3109
3543
  <xsl:for-each select="/*/*[local-name()='preface']/*">
3110
3544
  <xsl:sort select="@displayorder" data-type="number"/>
3111
3545
  <xsl:apply-templates select="."/>
3112
3546
  </xsl:for-each>
3113
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
3114
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
3115
-
3116
- <!-- Normative references -->
3117
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
3118
- <!-- Terms and definitions -->
3119
- <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']]"/>
3120
- <!-- Another main sections -->
3121
- <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'])]"/>
3122
- <xsl:apply-templates select="/*/*[local-name()='annex']"/>
3123
- <!-- Bibliography -->
3124
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
3125
3547
  </xsl:template><xsl:template name="processMainSectionsDefault">
3126
3548
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
3127
3549
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -3158,43 +3580,19 @@
3158
3580
  <xsl:call-template name="getSimpleTable"/>
3159
3581
  </xsl:variable>
3160
3582
 
3161
- <!-- <xsl:if test="$namespace = 'bipm'">
3162
- <fo:block>&#xA0;</fo:block>
3163
- </xsl:if> -->
3164
-
3165
3583
 
3166
3584
  <!-- Display table's name before table as standalone block -->
3167
3585
  <!-- $namespace = 'iso' or -->
3168
3586
 
3169
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3170
-
3171
-
3172
-
3173
-
3587
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- table's title rendered before table -->
3588
+
3174
3589
 
3175
- <xsl:call-template name="fn_name_display"/>
3176
3590
 
3591
+ <xsl:call-template name="table_name_fn_display"/>
3177
3592
 
3178
3593
 
3179
3594
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>
3180
3595
 
3181
- <!-- <xsl:variable name="cols-count">
3182
- <xsl:choose>
3183
- <xsl:when test="*[local-name()='thead']">
3184
- <xsl:call-template name="calculate-columns-numbers">
3185
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
3186
- </xsl:call-template>
3187
- </xsl:when>
3188
- <xsl:otherwise>
3189
- <xsl:call-template name="calculate-columns-numbers">
3190
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
3191
- </xsl:call-template>
3192
- </xsl:otherwise>
3193
- </xsl:choose>
3194
- </xsl:variable> -->
3195
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
3196
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
3197
-
3198
3596
  <xsl:variable name="colwidths">
3199
3597
  <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
3200
3598
  <xsl:call-template name="calculate-column-widths">
@@ -3205,17 +3603,8 @@
3205
3603
  </xsl:variable>
3206
3604
  <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
3207
3605
 
3208
- <!-- <xsl:variable name="colwidths2">
3209
- <xsl:call-template name="calculate-column-widths">
3210
- <xsl:with-param name="cols-count" select="$cols-count"/>
3211
- </xsl:call-template>
3212
- </xsl:variable> -->
3213
-
3214
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
3215
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
3216
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
3217
3606
 
3218
- <xsl:variable name="margin-left">
3607
+ <xsl:variable name="margin-side">
3219
3608
  <xsl:choose>
3220
3609
  <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
3221
3610
  <xsl:otherwise>0</xsl:otherwise>
@@ -3223,71 +3612,71 @@
3223
3612
  </xsl:variable>
3224
3613
 
3225
3614
 
3226
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
3615
+ <fo:block-container xsl:use-attribute-sets="table-container-style">
3616
+
3227
3617
 
3618
+ <xsl:attribute name="margin-left"><xsl:value-of select="-$margin-side"/>mm</xsl:attribute>
3619
+ <xsl:attribute name="margin-right"><xsl:value-of select="-$margin-side"/>mm</xsl:attribute>
3620
+
3621
+
3228
3622
 
3623
+
3229
3624
 
3625
+
3230
3626
 
3231
- <xsl:attribute name="font-size">8pt</xsl:attribute>
3232
- <xsl:attribute name="space-after">12pt</xsl:attribute>
3233
3627
  <xsl:if test="ancestor::*[local-name() = 'preface']">
3234
3628
  <xsl:attribute name="space-after">16pt</xsl:attribute>
3235
3629
  </xsl:if>
3236
-
3237
-
3238
-
3239
-
3240
-
3241
-
3242
-
3243
-
3244
3630
 
3245
3631
 
3246
3632
 
3633
+
3247
3634
 
3248
3635
 
3249
3636
 
3250
3637
 
3251
3638
 
3639
+ <!-- end table block-container attributes -->
3252
3640
 
3253
3641
  <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
3254
3642
 
3255
3643
 
3644
+ <xsl:variable name="table_width_default">100%</xsl:variable>
3256
3645
  <xsl:variable name="table_width">
3257
3646
  <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
3258
- 100%
3259
-
3260
-
3647
+ <xsl:value-of select="$table_width_default"/>
3261
3648
  </xsl:variable>
3262
3649
 
3650
+
3263
3651
  <xsl:variable name="table_attributes">
3264
- <attribute name="table-layout">fixed</attribute>
3265
- <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
3266
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
3267
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
3268
-
3269
-
3270
-
3271
-
3272
-
3273
- <attribute name="border">0.5pt solid black</attribute>
3274
-
3275
-
3276
-
3277
-
3278
-
3279
-
3280
-
3281
-
3282
-
3283
-
3652
+
3653
+ <xsl:element name="table_attributes" use-attribute-sets="table-style">
3654
+ <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
3655
+
3656
+
3657
+ <xsl:attribute name="margin-left"><xsl:value-of select="$margin-side"/>mm</xsl:attribute>
3658
+ <xsl:attribute name="margin-right"><xsl:value-of select="$margin-side"/>mm</xsl:attribute>
3659
+
3660
+
3661
+
3662
+
3663
+
3664
+
3665
+
3666
+
3667
+
3668
+
3669
+
3670
+
3671
+
3672
+ </xsl:element>
3284
3673
  </xsl:variable>
3285
3674
 
3286
3675
 
3287
- <fo:table id="{@id}" table-omit-footer-at-break="true">
3676
+ <fo:table id="{@id}">
3288
3677
 
3289
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3290
- <xsl:attribute name="{@name}">
3678
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
3679
+ <xsl:attribute name="{local-name()}">
3291
3680
  <xsl:value-of select="."/>
3292
3681
  </xsl:attribute>
3293
3682
  </xsl:for-each>
@@ -3298,7 +3687,6 @@
3298
3687
  </xsl:if>
3299
3688
 
3300
3689
 
3301
-
3302
3690
  <xsl:choose>
3303
3691
  <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
3304
3692
  <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
@@ -3324,7 +3712,7 @@
3324
3712
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
3325
3713
  </xsl:when>
3326
3714
  <xsl:otherwise>
3327
- <xsl:apply-templates/>
3715
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3328
3716
  </xsl:otherwise>
3329
3717
  </xsl:choose>
3330
3718
 
@@ -3339,25 +3727,6 @@
3339
3727
  </xsl:call-template>
3340
3728
  </xsl:for-each>
3341
3729
 
3342
- <!-- insert footer as table -->
3343
- <!-- <fo:table>
3344
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
3345
- <xsl:attribute name="{@name}">
3346
- <xsl:value-of select="."/>
3347
- </xsl:attribute>
3348
- </xsl:for-each>
3349
-
3350
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
3351
- <xsl:choose>
3352
- <xsl:when test=". = 1 or . = 0">
3353
- <fo:table-column column-width="proportional-column-width(2)"/>
3354
- </xsl:when>
3355
- <xsl:otherwise>
3356
- <fo:table-column column-width="proportional-column-width({.})"/>
3357
- </xsl:otherwise>
3358
- </xsl:choose>
3359
- </xsl:for-each>
3360
- </fo:table>-->
3361
3730
 
3362
3731
 
3363
3732
 
@@ -3418,18 +3787,17 @@
3418
3787
  </xsl:otherwise>
3419
3788
  </xsl:choose>
3420
3789
 
3421
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
3790
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
3422
3791
  <xsl:param name="continued"/>
3423
3792
  <xsl:if test="normalize-space() != ''">
3424
3793
  <fo:block xsl:use-attribute-sets="table-name-style">
3425
-
3794
+
3426
3795
 
3427
3796
 
3428
3797
 
3429
3798
 
3430
3799
  <xsl:choose>
3431
3800
  <xsl:when test="$continued = 'true'">
3432
- <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->
3433
3801
 
3434
3802
  </xsl:when>
3435
3803
  <xsl:otherwise>
@@ -3492,13 +3860,6 @@
3492
3860
  <xsl:for-each select="xalan:nodeset($table)/*/tr">
3493
3861
  <xsl:variable name="td_text">
3494
3862
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
3495
-
3496
- <!-- <xsl:if test="$namespace = 'bipm'">
3497
- <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
3498
- <word><xsl:value-of select="normalize-space(.)"/></word>
3499
- </xsl:for-each>
3500
- </xsl:if> -->
3501
-
3502
3863
  </xsl:variable>
3503
3864
  <xsl:variable name="words">
3504
3865
  <xsl:variable name="string_with_added_zerospaces">
@@ -3535,7 +3896,6 @@
3535
3896
  </xsl:otherwise>
3536
3897
  </xsl:choose>
3537
3898
  </xsl:variable>
3538
-
3539
3899
 
3540
3900
  <column>
3541
3901
  <xsl:for-each select="xalan:nodeset($widths)//width">
@@ -3571,7 +3931,6 @@
3571
3931
  <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
3572
3932
  </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
3573
3933
  <xsl:param name="cols-count"/>
3574
- <!-- font-weight="bold" -->
3575
3934
  <fo:table-header>
3576
3935
 
3577
3936
 
@@ -3583,13 +3942,12 @@
3583
3942
  <fo:table-row>
3584
3943
  <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">
3585
3944
 
3586
- <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
3945
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
3587
3946
  <xsl:with-param name="continued">true</xsl:with-param>
3588
3947
  </xsl:apply-templates>
3589
3948
 
3590
3949
 
3591
3950
 
3592
-
3593
3951
  </fo:table-cell>
3594
3952
  </fo:table-row>
3595
3953
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
@@ -3605,76 +3963,6 @@
3605
3963
  <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3606
3964
  </fo:table-footer>
3607
3965
  </xsl:if>
3608
- </xsl:template><xsl:template name="insertTableFooter2">
3609
- <xsl:param name="cols-count"/>
3610
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
3611
- <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
3612
-
3613
- <fo:table-footer>
3614
-
3615
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
3616
-
3617
- <!-- if there are note(s) or fn(s) then create footer row -->
3618
- <xsl:if test="$isNoteOrFnExist = 'true'">
3619
-
3620
-
3621
-
3622
- <fo:table-row>
3623
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3624
-
3625
-
3626
- <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
3627
-
3628
-
3629
- <!-- fn will be processed inside 'note' processing -->
3630
-
3631
- <xsl:if test="../*[local-name()='note']">
3632
- <fo:block margin-bottom="6pt"> </fo:block>
3633
- </xsl:if>
3634
-
3635
-
3636
-
3637
-
3638
-
3639
-
3640
- <!-- except gb -->
3641
-
3642
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3643
-
3644
-
3645
- <!-- show Note under table in preface (ex. abstract) sections -->
3646
- <!-- empty, because notes show at page side in main sections -->
3647
- <!-- <xsl:if test="$namespace = 'bipm'">
3648
- <xsl:choose>
3649
- <xsl:when test="ancestor::*[local-name()='preface']">
3650
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3651
- </xsl:when>
3652
- <xsl:otherwise>
3653
- <fo:block/>
3654
- </xsl:otherwise>
3655
- </xsl:choose>
3656
- </xsl:if> -->
3657
-
3658
-
3659
- <!-- horizontal row separator -->
3660
-
3661
- <xsl:if test="../*[local-name()='note']">
3662
- <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
3663
- <fo:block font-size="1pt"> </fo:block>
3664
- </fo:block-container>
3665
- </xsl:if>
3666
-
3667
-
3668
- <!-- fn processing -->
3669
- <xsl:call-template name="fn_display"/>
3670
-
3671
- </fo:table-cell>
3672
- </fo:table-row>
3673
-
3674
- </xsl:if>
3675
- </fo:table-footer>
3676
-
3677
- </xsl:if>
3678
3966
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
3679
3967
  <xsl:param name="table_attributes"/>
3680
3968
  <xsl:param name="colwidths"/>
@@ -3700,17 +3988,18 @@
3700
3988
  </xsl:variable>
3701
3989
 
3702
3990
  <fo:table keep-with-previous="always">
3703
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
3991
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
3992
+ <xsl:variable name="name" select="local-name()"/>
3704
3993
  <xsl:choose>
3705
- <xsl:when test="@name = 'border-top'">
3706
- <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
3994
+ <xsl:when test="$name = 'border-top'">
3995
+ <xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
3707
3996
  </xsl:when>
3708
- <xsl:when test="@name = 'border'">
3709
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
3997
+ <xsl:when test="$name = 'border'">
3998
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3710
3999
  <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
3711
4000
  </xsl:when>
3712
4001
  <xsl:otherwise>
3713
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
4002
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
3714
4003
  </xsl:otherwise>
3715
4004
  </xsl:choose>
3716
4005
  </xsl:for-each>
@@ -3739,11 +4028,10 @@
3739
4028
 
3740
4029
  <fo:table-body>
3741
4030
  <fo:table-row>
3742
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
3743
-
4031
+ <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
3744
4032
 
3745
4033
 
3746
- <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
4034
+
3747
4035
 
3748
4036
 
3749
4037
  <!-- fn will be processed inside 'note' processing -->
@@ -3757,29 +4045,13 @@
3757
4045
 
3758
4046
 
3759
4047
 
3760
-
3761
-
3762
-
3763
4048
  <!-- for BSI (not PAS) display Notes before footnotes -->
3764
4049
 
3765
4050
 
3766
- <!-- except gb -->
3767
-
3768
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3769
-
4051
+ <!-- except gb and bsi -->
3770
4052
 
3771
- <!-- <xsl:if test="$namespace = 'bipm'">
3772
- <xsl:choose>
3773
- <xsl:when test="ancestor::*[local-name()='preface']">
3774
- show Note under table in preface (ex. abstract) sections
3775
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
3776
- </xsl:when>
3777
- <xsl:otherwise>
3778
- empty, because notes show at page side in main sections
3779
- <fo:block/>
3780
- </xsl:otherwise>
3781
- </xsl:choose>
3782
- </xsl:if> -->
4053
+ <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
4054
+
3783
4055
 
3784
4056
 
3785
4057
  <!-- horizontal row separator -->
@@ -3792,8 +4064,7 @@
3792
4064
 
3793
4065
 
3794
4066
  <!-- fn processing -->
3795
- <xsl:call-template name="fn_display"/>
3796
-
4067
+ <xsl:call-template name="table_fn_display"/>
3797
4068
 
3798
4069
  <!-- for PAS display Notes after footnotes -->
3799
4070
 
@@ -3835,92 +4106,62 @@
3835
4106
 
3836
4107
 
3837
4108
  <xsl:apply-templates/>
3838
- <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
3839
-
4109
+
3840
4110
  </fo:table-body>
3841
4111
 
3842
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
3843
- <xsl:choose>
3844
- <xsl:when test="substring-after(., '—') != ''">
3845
- <xsl:text>—</xsl:text><xsl:value-of select="substring-after(., '—')"/>
3846
- </xsl:when>
3847
- <xsl:otherwise>
3848
- <xsl:value-of select="."/>
3849
- </xsl:otherwise>
3850
- </xsl:choose>
3851
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="presentation_name">
3852
- <xsl:apply-templates mode="presentation_name"/>
3853
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/node()" mode="presentation_name">
3854
- <xsl:apply-templates select="."/>
4112
+ </xsl:template><xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
4113
+ <fo:table-row xsl:use-attribute-sets="table-header-row-style">
4114
+
4115
+
4116
+
4117
+
4118
+
4119
+
4120
+
4121
+ <xsl:call-template name="setTableRowAttributes"/>
4122
+
4123
+ <xsl:apply-templates/>
4124
+ </fo:table-row>
4125
+ </xsl:template><xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
4126
+ <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
4127
+
4128
+ <xsl:call-template name="setTableRowAttributes"/>
4129
+ <xsl:apply-templates/>
4130
+ </fo:table-row>
3855
4131
  </xsl:template><xsl:template match="*[local-name()='tr']">
3856
- <xsl:variable name="parent-name" select="local-name(..)"/>
3857
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
3858
- <fo:table-row min-height="4mm">
3859
- <xsl:if test="$parent-name = 'thead'">
3860
- <xsl:attribute name="font-weight">bold</xsl:attribute>
3861
-
3862
-
3863
-
3864
-
3865
-
3866
- <xsl:attribute name="border-top">solid black 0.5pt</xsl:attribute>
3867
- <xsl:attribute name="border-bottom">solid black 0.5pt</xsl:attribute>
3868
-
3869
-
3870
-
3871
-
3872
- </xsl:if>
3873
- <xsl:if test="$parent-name = 'tfoot'">
3874
-
3875
-
3876
-
3877
- <xsl:attribute name="border-left">solid black 0.5pt</xsl:attribute>
3878
- <xsl:attribute name="border-right">solid black 0.5pt</xsl:attribute>
3879
-
3880
- </xsl:if>
3881
-
3882
-
3883
-
3884
-
3885
-
3886
-
3887
-
3888
-
3889
-
3890
-
3891
- <!-- <xsl:if test="$namespace = 'bipm'">
3892
- <xsl:attribute name="height">8mm</xsl:attribute>
3893
- </xsl:if> -->
3894
-
4132
+ <fo:table-row xsl:use-attribute-sets="table-body-row-style">
4133
+
4134
+
4135
+
4136
+
4137
+
4138
+ <xsl:call-template name="setTableRowAttributes"/>
3895
4139
  <xsl:apply-templates/>
3896
4140
  </fo:table-row>
4141
+ </xsl:template><xsl:template name="setTableRowAttributes">
4142
+
4143
+
4144
+
4145
+
4146
+
4147
+
4148
+
4149
+
3897
4150
  </xsl:template><xsl:template match="*[local-name()='th']">
3898
- <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
3899
- <xsl:attribute name="text-align">
3900
- <xsl:choose>
3901
- <xsl:when test="@align">
3902
- <xsl:call-template name="setAlignment"/>
3903
- <!-- <xsl:value-of select="@align"/> -->
3904
- </xsl:when>
3905
- <xsl:otherwise>center</xsl:otherwise>
3906
- </xsl:choose>
3907
- </xsl:attribute>
4151
+ <fo:table-cell xsl:use-attribute-sets="table-header-cell-style"> <!-- text-align="{@align}" -->
4152
+ <xsl:call-template name="setTextAlignment">
4153
+ <xsl:with-param name="default">center</xsl:with-param>
4154
+ </xsl:call-template>
4155
+
3908
4156
 
3909
4157
 
3910
- <xsl:attribute name="padding-top">1mm</xsl:attribute>
3911
4158
 
4159
+
3912
4160
 
3913
- <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
4161
+ <xsl:attribute name="text-align">center</xsl:attribute>
3914
4162
  <xsl:if test="ancestor::*[local-name()='preface']">
3915
4163
  <xsl:attribute name="font-weight">normal</xsl:attribute>
3916
4164
  </xsl:if>
3917
- <xsl:attribute name="text-align">center</xsl:attribute>
3918
-
3919
-
3920
-
3921
-
3922
-
3923
-
3924
4165
 
3925
4166
 
3926
4167
 
@@ -3929,21 +4170,25 @@
3929
4170
  <xsl:if test="$lang = 'ar'">
3930
4171
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
3931
4172
  </xsl:if>
3932
- <xsl:if test="@colspan">
3933
- <xsl:attribute name="number-columns-spanned">
3934
- <xsl:value-of select="@colspan"/>
3935
- </xsl:attribute>
3936
- </xsl:if>
3937
- <xsl:if test="@rowspan">
3938
- <xsl:attribute name="number-rows-spanned">
3939
- <xsl:value-of select="@rowspan"/>
3940
- </xsl:attribute>
3941
- </xsl:if>
3942
- <xsl:call-template name="display-align"/>
4173
+
4174
+ <xsl:call-template name="setTableCellAttributes"/>
4175
+
3943
4176
  <fo:block>
3944
4177
  <xsl:apply-templates/>
3945
4178
  </fo:block>
3946
4179
  </fo:table-cell>
4180
+ </xsl:template><xsl:template name="setTableCellAttributes">
4181
+ <xsl:if test="@colspan">
4182
+ <xsl:attribute name="number-columns-spanned">
4183
+ <xsl:value-of select="@colspan"/>
4184
+ </xsl:attribute>
4185
+ </xsl:if>
4186
+ <xsl:if test="@rowspan">
4187
+ <xsl:attribute name="number-rows-spanned">
4188
+ <xsl:value-of select="@rowspan"/>
4189
+ </xsl:attribute>
4190
+ </xsl:if>
4191
+ <xsl:call-template name="display-align"/>
3947
4192
  </xsl:template><xsl:template name="display-align">
3948
4193
  <xsl:if test="@valign">
3949
4194
  <xsl:attribute name="display-align">
@@ -3956,33 +4201,22 @@
3956
4201
  </xsl:attribute>
3957
4202
  </xsl:if>
3958
4203
  </xsl:template><xsl:template match="*[local-name()='td']">
3959
- <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
3960
- <xsl:attribute name="text-align">
3961
- <xsl:choose>
3962
- <xsl:when test="@align">
3963
- <xsl:call-template name="setAlignment"/>
3964
- <!-- <xsl:value-of select="@align"/> -->
3965
- </xsl:when>
3966
- <xsl:otherwise>left</xsl:otherwise>
3967
- </xsl:choose>
3968
- </xsl:attribute>
4204
+ <fo:table-cell xsl:use-attribute-sets="table-cell-style"> <!-- text-align="{@align}" -->
4205
+ <xsl:call-template name="setTextAlignment">
4206
+ <xsl:with-param name="default">left</xsl:with-param>
4207
+ </xsl:call-template>
4208
+
3969
4209
  <xsl:if test="$lang = 'ar'">
3970
4210
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
3971
4211
  </xsl:if>
3972
- <!-- and ancestor::*[local-name() = 'thead'] -->
3973
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
3974
-
3975
4212
 
3976
4213
 
3977
4214
 
4215
+ <!-- bsi -->
3978
4216
 
3979
- <xsl:if test="ancestor::*[local-name() = 'tfoot']">
3980
- <xsl:attribute name="border">solid black 0</xsl:attribute>
3981
- </xsl:if>
3982
4217
 
3983
4218
 
3984
4219
 
3985
- <xsl:attribute name="border">solid black 0.5pt</xsl:attribute>
3986
4220
  <xsl:if test="ancestor::*[local-name()='preface']">
3987
4221
  <xsl:attribute name="text-align">center</xsl:attribute>
3988
4222
  </xsl:if>
@@ -3991,65 +4225,150 @@
3991
4225
 
3992
4226
 
3993
4227
 
4228
+
4229
+
3994
4230
 
3995
4231
 
3996
4232
 
3997
4233
 
3998
4234
 
3999
- <xsl:if test=".//*[local-name() = 'table']">
4235
+ <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
4000
4236
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
4001
4237
  </xsl:if>
4002
- <xsl:if test="@colspan">
4003
- <xsl:attribute name="number-columns-spanned">
4004
- <xsl:value-of select="@colspan"/>
4005
- </xsl:attribute>
4006
- </xsl:if>
4007
- <xsl:if test="@rowspan">
4008
- <xsl:attribute name="number-rows-spanned">
4009
- <xsl:value-of select="@rowspan"/>
4010
- </xsl:attribute>
4011
- </xsl:if>
4012
- <xsl:call-template name="display-align"/>
4238
+
4239
+ <xsl:call-template name="setTableCellAttributes"/>
4240
+
4013
4241
  <fo:block>
4014
-
4242
+
4243
+
4244
+
4015
4245
  <xsl:apply-templates/>
4016
4246
  </fo:block>
4017
4247
  </fo:table-cell>
4018
4248
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
4249
+
4250
+ <fo:block xsl:use-attribute-sets="table-note-style">
4251
+
4252
+
4253
+
4254
+
4019
4255
 
4020
-
4021
- <fo:block font-size="10pt" margin-bottom="12pt">
4022
-
4256
+ <!-- Table's note name (NOTE, for example) -->
4257
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
4023
4258
 
4024
4259
 
4025
4260
 
4026
- <xsl:attribute name="font-size">8pt</xsl:attribute>
4027
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
4028
4261
 
4029
4262
 
4030
4263
 
4031
4264
 
4032
-
4033
- <!-- Table's note name (NOTE, for example) -->
4034
-
4035
- <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
4036
-
4037
-
4038
-
4039
-
4265
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4040
4266
 
4041
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4042
-
4043
- </fo:inline>
4044
-
4045
-
4046
-
4047
- <xsl:apply-templates mode="process"/>
4048
- </fo:block>
4267
+ </fo:inline>
4268
+
4269
+
4270
+
4271
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]" mode="process"/>
4272
+ </fo:block>
4049
4273
 
4050
4274
  </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='name']" mode="process"/><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
4051
4275
  <xsl:apply-templates/>
4052
- </xsl:template><xsl:template name="fn_display">
4276
+ </xsl:template><xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" priority="2" name="fn">
4277
+
4278
+ <!-- list of footnotes to calculate actual footnotes number -->
4279
+ <xsl:variable name="p_fn_">
4280
+ <xsl:choose>
4281
+ <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
4282
+ <fn gen_id="{generate-id(.)}">
4283
+ <xsl:copy-of select="@*"/>
4284
+ <xsl:copy-of select="node()"/>
4285
+ </fn>
4286
+ </xsl:when>
4287
+ <xsl:otherwise>
4288
+ <!-- itetation for:
4289
+ footnotes in bibdata/title
4290
+ footnotes in bibliography
4291
+ footnotes in document's body (except table's head/body/foot and figure text)
4292
+ -->
4293
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
4294
+ <fn gen_id="{generate-id(.)}">
4295
+ <xsl:copy-of select="@*"/>
4296
+ <xsl:copy-of select="node()"/>
4297
+ </fn>
4298
+ </xsl:for-each>
4299
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
4300
+ <xsl:sort select="@displayorder" data-type="number"/>
4301
+ <xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
4302
+ <!-- copy unique fn -->
4303
+ <fn gen_id="{generate-id(.)}">
4304
+ <xsl:copy-of select="@*"/>
4305
+ <xsl:copy-of select="node()"/>
4306
+ </fn>
4307
+ </xsl:for-each>
4308
+ </xsl:for-each>
4309
+ </xsl:otherwise>
4310
+ </xsl:choose>
4311
+ </xsl:variable>
4312
+ <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
4313
+
4314
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
4315
+ <xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
4316
+ <xsl:variable name="reference" select="@reference"/>
4317
+ <!-- fn sequence number in document -->
4318
+ <xsl:variable name="current_fn_number">
4319
+ <xsl:choose>
4320
+ <xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
4321
+ <xsl:otherwise>
4322
+ <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1"/>
4323
+ </xsl:otherwise>
4324
+ </xsl:choose>
4325
+ </xsl:variable>
4326
+ <xsl:variable name="current_fn_number_text">
4327
+ <xsl:value-of select="$current_fn_number"/>
4328
+
4329
+
4330
+ </xsl:variable>
4331
+
4332
+ <xsl:variable name="ref_id" select="concat('footnote_', $lang, '_', $reference, '_', $current_fn_number)"/>
4333
+ <xsl:variable name="footnote_inline">
4334
+ <fo:inline xsl:use-attribute-sets="fn-num-style">
4335
+
4336
+ <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
4337
+ <xsl:value-of select="$current_fn_number_text"/>
4338
+ </fo:basic-link>
4339
+ </fo:inline>
4340
+ </xsl:variable>
4341
+ <!-- DEBUG: p_fn=<xsl:copy-of select="$p_fn"/>
4342
+ gen_id=<xsl:value-of select="$gen_id"/> -->
4343
+ <xsl:choose>
4344
+ <xsl:when test="normalize-space(@skip_footnote_body) = 'true'">
4345
+ <xsl:copy-of select="$footnote_inline"/>
4346
+ </xsl:when>
4347
+ <xsl:when test="$p_fn//fn[@gen_id = $gen_id] or normalize-space(@skip_footnote_body) = 'false'">
4348
+ <fo:footnote xsl:use-attribute-sets="fn-style">
4349
+ <xsl:copy-of select="$footnote_inline"/>
4350
+ <fo:footnote-body>
4351
+
4352
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
4353
+
4354
+ <fo:block xsl:use-attribute-sets="fn-body-style">
4355
+
4356
+
4357
+ <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
4358
+
4359
+ <xsl:value-of select="$current_fn_number_text"/>
4360
+ </fo:inline>
4361
+ <xsl:apply-templates/>
4362
+ </fo:block>
4363
+ </fo:block-container>
4364
+ </fo:footnote-body>
4365
+ </fo:footnote>
4366
+ </xsl:when>
4367
+ <xsl:otherwise>
4368
+ <xsl:copy-of select="$footnote_inline"/>
4369
+ </xsl:otherwise>
4370
+ </xsl:choose>
4371
+ </xsl:template><xsl:template name="table_fn_display">
4053
4372
  <xsl:variable name="references">
4054
4373
 
4055
4374
  <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
@@ -4060,39 +4379,26 @@
4060
4379
  <xsl:for-each select="xalan:nodeset($references)//fn">
4061
4380
  <xsl:variable name="reference" select="@reference"/>
4062
4381
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
4063
- <fo:block margin-bottom="12pt">
4382
+ <fo:block xsl:use-attribute-sets="table-fn-style">
4064
4383
 
4065
4384
 
4066
4385
 
4067
-
4068
-
4069
- <xsl:attribute name="font-size">8pt</xsl:attribute>
4070
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
4071
- <xsl:attribute name="text-indent">-6mm</xsl:attribute>
4072
- <xsl:attribute name="margin-left">6mm</xsl:attribute>
4073
-
4074
-
4075
-
4076
- <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
4386
+ <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
4077
4387
 
4078
4388
 
4079
4389
 
4080
4390
 
4081
- <xsl:attribute name="baseline-shift">30%</xsl:attribute>
4082
- <xsl:attribute name="font-size">70%</xsl:attribute>
4083
4391
 
4392
+ <xsl:value-of select="@reference"/>
4084
4393
 
4085
4394
 
4086
4395
 
4087
4396
 
4088
- <xsl:value-of select="@reference"/>
4089
4397
 
4090
4398
 
4091
4399
 
4092
4400
  </fo:inline>
4093
- <fo:inline>
4094
-
4095
- <!-- <xsl:apply-templates /> -->
4401
+ <fo:inline xsl:use-attribute-sets="table-fn-body-style">
4096
4402
  <xsl:copy-of select="./node()"/>
4097
4403
  </fo:inline>
4098
4404
  </fo:block>
@@ -4104,15 +4410,7 @@
4104
4410
 
4105
4411
  <xsl:apply-templates/>
4106
4412
  </fn>
4107
- </xsl:template><xsl:template name="fn_name_display">
4108
- <!-- <xsl:variable name="references">
4109
- <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
4110
- <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
4111
- <xsl:apply-templates />
4112
- </fn>
4113
- </xsl:for-each>
4114
- </xsl:variable>
4115
- $references=<xsl:copy-of select="$references"/> -->
4413
+ </xsl:template><xsl:template name="table_name_fn_display">
4116
4414
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
4117
4415
  <xsl:variable name="reference" select="@reference"/>
4118
4416
  <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
@@ -4121,9 +4419,7 @@
4121
4419
  </fo:block>
4122
4420
  </xsl:for-each>
4123
4421
  </xsl:template><xsl:template name="fn_display_figure">
4124
- <xsl:variable name="key_iso">
4125
- true <!-- and (not(@class) or @class !='pseudocode') -->
4126
- </xsl:variable>
4422
+
4127
4423
  <xsl:variable name="references">
4128
4424
  <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
4129
4425
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -4131,50 +4427,52 @@
4131
4427
  </fn>
4132
4428
  </xsl:for-each>
4133
4429
  </xsl:variable>
4430
+
4431
+ <xsl:if test="xalan:nodeset($references)//fn">
4134
4432
 
4135
- <!-- current hierarchy is 'figure' element -->
4136
- <xsl:variable name="following_dl_colwidths">
4137
- <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
4138
- <xsl:variable name="html-table">
4139
- <xsl:variable name="doc_ns">
4433
+ <xsl:variable name="key_iso">
4434
+ true
4435
+ </xsl:variable>
4436
+
4437
+ <!-- current hierarchy is 'figure' element -->
4438
+ <xsl:variable name="following_dl_colwidths">
4439
+ <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
4440
+ <xsl:variable name="html-table">
4441
+ <xsl:variable name="doc_ns">
4442
+
4443
+ </xsl:variable>
4444
+ <xsl:variable name="ns">
4445
+ <xsl:choose>
4446
+ <xsl:when test="normalize-space($doc_ns) != ''">
4447
+ <xsl:value-of select="normalize-space($doc_ns)"/>
4448
+ </xsl:when>
4449
+ <xsl:otherwise>
4450
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
4451
+ </xsl:otherwise>
4452
+ </xsl:choose>
4453
+ </xsl:variable>
4140
4454
 
4141
- </xsl:variable>
4142
- <xsl:variable name="ns">
4143
- <xsl:choose>
4144
- <xsl:when test="normalize-space($doc_ns) != ''">
4145
- <xsl:value-of select="normalize-space($doc_ns)"/>
4146
- </xsl:when>
4147
- <xsl:otherwise>
4148
- <xsl:value-of select="substring-before(name(/*), '-')"/>
4149
- </xsl:otherwise>
4150
- </xsl:choose>
4151
- </xsl:variable>
4152
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
4153
- <!-- <xsl:element name="{$ns}:table"> -->
4154
4455
  <xsl:for-each select="*[local-name() = 'dl'][1]">
4155
4456
  <tbody>
4156
4457
  <xsl:apply-templates mode="dl"/>
4157
4458
  </tbody>
4158
4459
  </xsl:for-each>
4159
- <!-- </xsl:element> -->
4160
- </xsl:variable>
4161
-
4162
- <xsl:call-template name="calculate-column-widths">
4163
- <xsl:with-param name="cols-count" select="2"/>
4164
- <xsl:with-param name="table" select="$html-table"/>
4165
- </xsl:call-template>
4166
-
4167
- </xsl:if>
4168
- </xsl:variable>
4169
-
4170
-
4171
- <xsl:variable name="maxlength_dt">
4172
- <xsl:for-each select="*[local-name() = 'dl'][1]">
4173
- <xsl:call-template name="getMaxLength_dt"/>
4174
- </xsl:for-each>
4175
- </xsl:variable>
4176
-
4177
- <xsl:if test="xalan:nodeset($references)//fn">
4460
+ </xsl:variable>
4461
+
4462
+ <xsl:call-template name="calculate-column-widths">
4463
+ <xsl:with-param name="cols-count" select="2"/>
4464
+ <xsl:with-param name="table" select="$html-table"/>
4465
+ </xsl:call-template>
4466
+
4467
+ </xsl:if>
4468
+ </xsl:variable>
4469
+
4470
+ <xsl:variable name="maxlength_dt">
4471
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
4472
+ <xsl:call-template name="getMaxLength_dt"/>
4473
+ </xsl:for-each>
4474
+ </xsl:variable>
4475
+
4178
4476
  <fo:block>
4179
4477
  <fo:table width="95%" table-layout="fixed">
4180
4478
  <xsl:if test="normalize-space($key_iso) = 'true'">
@@ -4203,27 +4501,16 @@
4203
4501
  <fo:table-row>
4204
4502
  <fo:table-cell>
4205
4503
  <fo:block>
4206
- <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
4207
-
4208
- <!-- <xsl:attribute name="font-family">Times New Roman</xsl:attribute> -->
4209
- <xsl:attribute name="baseline-shift">65%</xsl:attribute>
4210
-
4504
+ <fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
4211
4505
  <xsl:value-of select="@reference"/>
4212
4506
  </fo:inline>
4213
4507
  </fo:block>
4214
4508
  </fo:table-cell>
4215
4509
  <fo:table-cell>
4216
- <fo:block text-align="justify" margin-bottom="12pt">
4217
-
4218
- <xsl:attribute name="margin-top">5pt</xsl:attribute>
4219
-
4510
+ <fo:block xsl:use-attribute-sets="figure-fn-body-style">
4220
4511
  <xsl:if test="normalize-space($key_iso) = 'true'">
4221
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
4512
+
4222
4513
  </xsl:if>
4223
-
4224
- <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
4225
-
4226
- <!-- <xsl:apply-templates /> -->
4227
4514
  <xsl:copy-of select="./node()"/>
4228
4515
  </fo:block>
4229
4516
  </fo:table-cell>
@@ -4236,24 +4523,17 @@
4236
4523
  </xsl:if>
4237
4524
 
4238
4525
  </xsl:template><xsl:template match="*[local-name()='fn']">
4239
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
4240
- <fo:inline font-size="80%" keep-with-previous.within-line="always">
4526
+ <fo:inline xsl:use-attribute-sets="fn-reference-style">
4527
+
4241
4528
 
4242
4529
 
4243
4530
 
4244
4531
  <xsl:if test="ancestor::*[local-name()='table']">
4245
4532
  <xsl:attribute name="font-weight">normal</xsl:attribute>
4246
- <!-- <xsl:attribute name="alignment-baseline">hanging</xsl:attribute> -->
4247
4533
  <xsl:attribute name="baseline-shift">15%</xsl:attribute>
4248
4534
  </xsl:if>
4249
4535
 
4250
4536
 
4251
-
4252
-
4253
-
4254
-
4255
-
4256
-
4257
4537
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
4258
4538
 
4259
4539
 
@@ -4262,6 +4542,8 @@
4262
4542
 
4263
4543
  </fo:basic-link>
4264
4544
  </fo:inline>
4545
+ </xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
4546
+ <fo:inline><xsl:value-of select="."/></fo:inline>
4265
4547
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
4266
4548
  <fo:inline>
4267
4549
  <xsl:apply-templates/>
@@ -4271,10 +4553,10 @@
4271
4553
  <xsl:variable name="isDeleted" select="@deleted"/>
4272
4554
  <fo:block-container>
4273
4555
 
4274
- <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
4275
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
4276
- </xsl:if>
4277
-
4556
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
4557
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
4558
+ </xsl:if>
4559
+
4278
4560
 
4279
4561
  <xsl:if test="parent::*[local-name() = 'note']">
4280
4562
  <xsl:attribute name="margin-left">
@@ -4291,11 +4573,11 @@
4291
4573
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
4292
4574
  </xsl:call-template>
4293
4575
 
4294
- <fo:block-container>
4295
-
4296
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
4297
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
4576
+ <fo:block-container margin-left="0mm">
4577
+
4298
4578
 
4579
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
4580
+
4299
4581
 
4300
4582
  <xsl:variable name="parent" select="local-name(..)"/>
4301
4583
 
@@ -4308,30 +4590,26 @@
4308
4590
  <xsl:choose>
4309
4591
  <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
4310
4592
 
4311
- <fo:block text-align="left">
4312
-
4313
- <xsl:attribute name="margin-bottom">15pt</xsl:attribute>
4314
-
4315
-
4316
- <xsl:variable name="title-where">
4593
+ <fo:block text-align="left">
4317
4594
 
4595
+ <xsl:attribute name="margin-bottom">15pt</xsl:attribute>
4318
4596
 
4319
- <xsl:call-template name="getTitle">
4320
- <xsl:with-param name="name" select="'title-where'"/>
4597
+
4598
+ <xsl:variable name="title-where">
4599
+ <xsl:call-template name="getLocalizedString">
4600
+ <xsl:with-param name="key">where</xsl:with-param>
4321
4601
  </xsl:call-template>
4602
+ </xsl:variable>
4603
+ <xsl:value-of select="$title-where"/>
4604
+ </fo:block>
4605
+ <fo:block>
4322
4606
 
4323
- </xsl:variable>
4324
- <xsl:value-of select="$title-where"/>
4325
- </fo:block>
4326
- <fo:block>
4327
-
4328
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
4329
-
4330
- <xsl:text> </xsl:text>
4331
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
4332
- </fo:block>
4333
-
4334
-
4607
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
4608
+
4609
+ <xsl:text> </xsl:text>
4610
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
4611
+ </fo:block>
4612
+
4335
4613
  </xsl:when>
4336
4614
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
4337
4615
  <fo:block margin-bottom="12pt" text-align="left">
@@ -4342,12 +4620,9 @@
4342
4620
 
4343
4621
 
4344
4622
  <xsl:variable name="title-where">
4345
-
4346
-
4347
- <xsl:call-template name="getTitle">
4348
- <xsl:with-param name="name" select="'title-where'"/>
4349
- </xsl:call-template>
4350
-
4623
+ <xsl:call-template name="getLocalizedString">
4624
+ <xsl:with-param name="key">where</xsl:with-param>
4625
+ </xsl:call-template>
4351
4626
  </xsl:variable>
4352
4627
  <xsl:value-of select="$title-where"/>
4353
4628
  </fo:block>
@@ -4362,12 +4637,9 @@
4362
4637
 
4363
4638
 
4364
4639
  <xsl:variable name="title-key">
4365
-
4366
-
4367
- <xsl:call-template name="getTitle">
4368
- <xsl:with-param name="name" select="'title-key'"/>
4369
- </xsl:call-template>
4370
-
4640
+ <xsl:call-template name="getLocalizedString">
4641
+ <xsl:with-param name="key">key</xsl:with-param>
4642
+ </xsl:call-template>
4371
4643
  </xsl:variable>
4372
4644
  <xsl:value-of select="$title-key"/>
4373
4645
  </fo:block>
@@ -4389,9 +4661,7 @@
4389
4661
  <fo:table width="95%" table-layout="fixed">
4390
4662
 
4391
4663
  <xsl:choose>
4392
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
4393
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
4394
- </xsl:when>
4664
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
4395
4665
  <xsl:when test="normalize-space($key_iso) = 'true'">
4396
4666
  <xsl:attribute name="font-size">10pt</xsl:attribute>
4397
4667
 
@@ -4414,12 +4684,9 @@
4414
4684
  </xsl:otherwise>
4415
4685
  </xsl:choose>
4416
4686
  </xsl:variable>
4417
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
4418
- <!-- <xsl:element name="{$ns}:table"> -->
4419
- <tbody>
4420
- <xsl:apply-templates mode="dl"/>
4421
- </tbody>
4422
- <!-- </xsl:element> -->
4687
+ <tbody>
4688
+ <xsl:apply-templates mode="dl"/>
4689
+ </tbody>
4423
4690
  </xsl:variable>
4424
4691
  <!-- html-table<xsl:copy-of select="$html-table"/> -->
4425
4692
  <xsl:variable name="colwidths">
@@ -4499,8 +4766,6 @@
4499
4766
  </xsl:for-each>
4500
4767
  </xsl:otherwise>
4501
4768
  </xsl:choose>
4502
- <!-- <fo:table-column column-width="15%"/>
4503
- <fo:table-column column-width="85%"/> -->
4504
4769
  </xsl:otherwise>
4505
4770
  </xsl:choose>
4506
4771
  </xsl:template><xsl:template name="getMaxLength_dt">
@@ -4515,12 +4780,6 @@
4515
4780
  </xsl:for-each>
4516
4781
  </xsl:variable>
4517
4782
  <xsl:variable name="maxLength">
4518
- <!-- <xsl:for-each select="*[local-name()='dt']">
4519
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
4520
- <xsl:if test="position() = 1">
4521
- <xsl:value-of select="string-length(normalize-space(.))"/>
4522
- </xsl:if>
4523
- </xsl:for-each> -->
4524
4783
  <xsl:for-each select="xalan:nodeset($lengths)/length">
4525
4784
  <xsl:sort select="." data-type="number" order="descending"/>
4526
4785
  <xsl:if test="position() = 1">
@@ -4546,12 +4805,12 @@
4546
4805
  <xsl:if test="normalize-space($key_iso) = 'true'">
4547
4806
  <xsl:attribute name="margin-top">0</xsl:attribute>
4548
4807
  </xsl:if>
4549
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4808
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
4550
4809
  </fo:block>
4551
4810
  </fo:table-cell>
4552
4811
  <fo:table-cell>
4553
4812
  <fo:block>
4554
- <xsl:apply-templates/>
4813
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4555
4814
  </fo:block>
4556
4815
  </fo:table-cell>
4557
4816
  </fo:table-row>
@@ -4562,83 +4821,41 @@
4562
4821
  </td>
4563
4822
  <td>
4564
4823
 
4565
-
4566
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4567
-
4824
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4825
+
4568
4826
  </td>
4569
4827
  </tr>
4570
4828
 
4571
4829
  </xsl:template><xsl:template match="*[local-name()='dt']">
4572
4830
  <xsl:param name="key_iso"/>
4573
4831
 
4574
- <fo:table-row>
4575
-
4576
-
4832
+ <fo:table-row xsl:use-attribute-sets="dt-row-style">
4577
4833
  <fo:table-cell>
4578
4834
 
4579
- <fo:block margin-top="6pt">
4835
+ <fo:block xsl:use-attribute-sets="dt-style">
4580
4836
  <xsl:copy-of select="@id"/>
4581
4837
 
4582
-
4583
- <xsl:attribute name="margin-top">0pt</xsl:attribute>
4584
-
4585
4838
  <xsl:if test="normalize-space($key_iso) = 'true'">
4586
4839
  <xsl:attribute name="margin-top">0</xsl:attribute>
4587
-
4588
- <xsl:attribute name="margin-top">0pt</xsl:attribute>
4589
-
4590
4840
  </xsl:if>
4591
4841
 
4592
4842
 
4593
4843
 
4594
-
4595
-
4596
-
4597
-
4598
4844
  <xsl:apply-templates/>
4599
- <!-- <xsl:if test="$namespace = 'gb'">
4600
- <xsl:if test="ancestor::*[local-name()='formula']">
4601
- <xsl:text>—</xsl:text>
4602
- </xsl:if>
4603
- </xsl:if> -->
4604
4845
  </fo:block>
4605
4846
  </fo:table-cell>
4606
4847
  <fo:table-cell>
4607
4848
  <fo:block>
4608
4849
 
4609
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
4610
- <xsl:if test="local-name(*[1]) != 'stem'">
4611
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4612
- </xsl:if>
4613
- </xsl:if> -->
4614
-
4615
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4616
-
4850
+
4851
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4617
4852
  </fo:block>
4618
4853
  </fo:table-cell>
4619
4854
  </fo:table-row>
4620
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
4621
- <xsl:if test="local-name(*[1]) = 'stem'">
4622
- <fo:table-row>
4623
- <fo:table-cell>
4624
- <fo:block margin-top="6pt">
4625
- <xsl:if test="normalize-space($key_iso) = 'true'">
4626
- <xsl:attribute name="margin-top">0</xsl:attribute>
4627
- </xsl:if>
4628
- <xsl:text>&#xA0;</xsl:text>
4629
- </fo:block>
4630
- </fo:table-cell>
4631
- <fo:table-cell>
4632
- <fo:block>
4633
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
4634
- </fo:block>
4635
- </fo:table-cell>
4636
- </fo:table-row>
4637
- </xsl:if>
4638
- </xsl:if> -->
4639
4855
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
4640
4856
  <xsl:apply-templates/>
4641
4857
  </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
4858
+ <xsl:apply-templates select="@language"/>
4642
4859
  <xsl:apply-templates/>
4643
4860
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
4644
4861
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
@@ -4663,6 +4880,7 @@
4663
4880
  </fo:inline>
4664
4881
  </xsl:template><xsl:template match="*[local-name()='tt']">
4665
4882
  <fo:inline xsl:use-attribute-sets="tt-style">
4883
+
4666
4884
  <xsl:variable name="_font-size">
4667
4885
 
4668
4886
 
@@ -4699,7 +4917,22 @@
4699
4917
  <xsl:apply-templates/>
4700
4918
  </fo:inline>
4701
4919
  </xsl:template><xsl:template match="*[local-name()='add']">
4920
+ <xsl:param name="skip">true</xsl:param>
4702
4921
  <xsl:choose>
4922
+ <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
4923
+ <xsl:choose>
4924
+ <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab'])) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
4925
+ <xsl:otherwise>
4926
+ <fo:inline>
4927
+ <xsl:call-template name="insertTag">
4928
+ <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
4929
+ <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
4930
+ <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
4931
+ </xsl:call-template>
4932
+ </fo:inline>
4933
+ </xsl:otherwise>
4934
+ </xsl:choose>
4935
+ </xsl:when>
4703
4936
  <xsl:when test="@amendment">
4704
4937
  <fo:inline>
4705
4938
  <xsl:call-template name="insertTag">
@@ -4734,7 +4967,6 @@
4734
4967
  </fo:inline>
4735
4968
  </xsl:otherwise>
4736
4969
  </xsl:choose>
4737
-
4738
4970
  </xsl:template><xsl:template name="insertTag">
4739
4971
  <xsl:param name="type"/>
4740
4972
  <xsl:param name="kind"/>
@@ -4742,22 +4974,20 @@
4742
4974
  <xsl:variable name="add_width" select="string-length($value) * 20"/>
4743
4975
  <xsl:variable name="maxwidth" select="60 + $add_width"/>
4744
4976
  <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
4745
- <!-- <xsl:attribute name="width">7mm</xsl:attribute>
4746
- <xsl:attribute name="content-height">100%</xsl:attribute> -->
4747
4977
  <xsl:attribute name="height">5mm</xsl:attribute>
4748
4978
  <xsl:attribute name="content-width">100%</xsl:attribute>
4749
4979
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
4750
4980
  <xsl:attribute name="scaling">uniform</xsl:attribute>
4751
4981
  <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
4752
4982
  <g>
4753
- <xsl:if test="$type = 'closing'">
4983
+ <xsl:if test="$type = 'closing' or $type = 'end'">
4754
4984
  <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
4755
4985
  </xsl:if>
4756
4986
  <polyline points="0,0 {$maxwidth},0 {$maxwidth + 30},40 {$maxwidth},80 0,80 " stroke="black" stroke-width="5" fill="white"/>
4757
4987
  <line x1="0" y1="0" x2="0" y2="80" stroke="black" stroke-width="20"/>
4758
4988
  </g>
4759
4989
  <text font-family="Arial" x="15" y="57" font-size="40pt">
4760
- <xsl:if test="$type = 'closing'">
4990
+ <xsl:if test="$type = 'closing' or $type = 'end'">
4761
4991
  <xsl:attribute name="x">25</xsl:attribute>
4762
4992
  </xsl:if>
4763
4993
  <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
@@ -4961,14 +5191,6 @@
4961
5191
 
4962
5192
  <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
4963
5193
 
4964
- <!-- <xsl:choose>
4965
- <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
4966
-
4967
- </xsl:when>
4968
- <xsl:otherwise>
4969
- <xsl:copy-of select="current()"/>
4970
- </xsl:otherwise>
4971
- </xsl:choose> -->
4972
5194
  </xsl:variable>
4973
5195
  <xsl:copy-of select="$simple-table"/>
4974
5196
  </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
@@ -5087,8 +5309,6 @@
5087
5309
  <xsl:choose>
5088
5310
  <xsl:when test="contains($str2, ' ')">
5089
5311
  <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
5090
- <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
5091
- <xsl:value-of select="substring($substr, 2)"/> -->
5092
5312
  <xsl:call-template name="capitalize">
5093
5313
  <xsl:with-param name="str" select="$substr"/>
5094
5314
  </xsl:call-template>
@@ -5098,8 +5318,6 @@
5098
5318
  </xsl:call-template>
5099
5319
  </xsl:when>
5100
5320
  <xsl:otherwise>
5101
- <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
5102
- <xsl:value-of select="substring($str2, 2)"/> -->
5103
5321
  <xsl:call-template name="capitalize">
5104
5322
  <xsl:with-param name="str" select="$str2"/>
5105
5323
  </xsl:call-template>
@@ -5127,6 +5345,7 @@
5127
5345
  <xsl:apply-templates select="." mode="mathml"/>
5128
5346
  </xsl:variable>
5129
5347
  <fo:instream-foreign-object fox:alt-text="Math">
5348
+
5130
5349
 
5131
5350
 
5132
5351
  <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
@@ -5158,7 +5377,7 @@
5158
5377
  </xsl:attribute>
5159
5378
 
5160
5379
 
5161
- <!-- <xsl:copy-of select="."/> -->
5380
+
5162
5381
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
5163
5382
  </fo:instream-foreign-object>
5164
5383
  </fo:inline>
@@ -5215,12 +5434,16 @@
5215
5434
  </xsl:variable>
5216
5435
  <fo:inline xsl:use-attribute-sets="link-style">
5217
5436
 
5437
+
5438
+
5439
+
5218
5440
  <xsl:if test="ancestor::*[local-name()='feedback-statement']">
5219
5441
  <xsl:attribute name="color">blue</xsl:attribute>
5220
5442
  </xsl:if>
5221
5443
 
5222
5444
 
5223
5445
 
5446
+
5224
5447
  <xsl:choose>
5225
5448
  <xsl:when test="$target_text = ''">
5226
5449
  <xsl:apply-templates/>
@@ -5254,9 +5477,9 @@
5254
5477
  <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
5255
5478
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
5256
5479
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
5257
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
5480
+ <xsl:apply-templates select="*[local-name()='name']"/>
5258
5481
  </fo:block>
5259
- <xsl:apply-templates/>
5482
+ <xsl:apply-templates select="node()[not(local-name()='name')]"/>
5260
5483
  </xsl:template><xsl:template match="*[local-name() = 'callout']">
5261
5484
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
5262
5485
  </xsl:template><xsl:template match="*[local-name() = 'annotation']">
@@ -5276,25 +5499,8 @@
5276
5499
  <xsl:if test="not(preceding-sibling::*[local-name() = 'p'])"><xsl:value-of select="$callout"/></xsl:if>
5277
5500
  <xsl:apply-templates/>
5278
5501
  </fo:inline>
5279
- </xsl:template><xsl:template match="*[local-name() = 'modification']">
5280
- <xsl:variable name="title-modified">
5281
-
5282
-
5283
- <xsl:call-template name="getTitle">
5284
- <xsl:with-param name="name" select="'title-modified'"/>
5285
- </xsl:call-template>
5286
-
5287
- </xsl:variable>
5288
-
5289
- <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
5290
- <xsl:choose>
5291
- <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>
5292
- <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>
5293
- </xsl:choose>
5294
- <xsl:apply-templates/>
5295
5502
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
5296
5503
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
5297
-
5298
5504
  <xsl:apply-templates/>
5299
5505
  </fo:basic-link>
5300
5506
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -5322,49 +5528,64 @@
5322
5528
  <fo:inline>
5323
5529
  <xsl:apply-templates/>
5324
5530
  </fo:inline>
5325
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
5531
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="formula_number"> <!-- show by demand -->
5326
5532
  <xsl:if test="normalize-space() != ''">
5327
5533
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
5328
5534
  </xsl:if>
5329
5535
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
5330
5536
 
5331
5537
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
5538
+
5539
+
5540
+
5541
+
5332
5542
 
5333
5543
 
5334
5544
 
5335
5545
 
5546
+
5547
+
5336
5548
 
5337
5549
  <fo:block-container margin-left="0mm">
5550
+
5338
5551
 
5339
5552
 
5340
5553
 
5554
+
5341
5555
 
5342
-
5343
-
5344
-
5345
-
5346
- <fo:block>
5347
-
5348
-
5349
-
5350
-
5351
-
5556
+ <fo:block>
5557
+
5558
+
5352
5559
 
5353
- <fo:inline xsl:use-attribute-sets="note-name-style">
5354
5560
 
5355
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5356
- </fo:inline>
5357
- <xsl:apply-templates/>
5358
- </fo:block>
5359
-
5360
-
5561
+
5562
+
5563
+
5564
+ <fo:inline xsl:use-attribute-sets="note-name-style">
5565
+
5566
+
5567
+
5568
+ <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
5569
+ <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
5570
+ <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
5571
+ <xsl:with-param name="skip">false</xsl:with-param>
5572
+ </xsl:apply-templates>
5573
+ </xsl:if>
5574
+
5575
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5576
+
5577
+ </fo:inline>
5578
+
5579
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5580
+ </fo:block>
5581
+
5361
5582
  </fo:block-container>
5362
5583
  </fo:block-container>
5363
5584
 
5364
5585
  </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
5365
5586
  <xsl:variable name="num"><xsl:number/></xsl:variable>
5366
5587
  <xsl:choose>
5367
- <xsl:when test="$num = 1">
5588
+ <xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
5368
5589
  <fo:inline xsl:use-attribute-sets="note-p-style">
5369
5590
  <xsl:apply-templates/>
5370
5591
  </fo:inline>
@@ -5379,12 +5600,16 @@
5379
5600
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
5380
5601
 
5381
5602
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
5603
+
5604
+
5605
+
5606
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5382
5607
 
5383
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5384
5608
  </fo:inline>
5385
- <xsl:apply-templates/>
5609
+
5610
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5386
5611
  </fo:block>
5387
- </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">
5612
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']">
5388
5613
  <xsl:param name="sfx"/>
5389
5614
  <xsl:variable name="suffix">
5390
5615
  <xsl:choose>
@@ -5401,7 +5626,7 @@
5401
5626
  <xsl:apply-templates/>
5402
5627
  <xsl:value-of select="$suffix"/>
5403
5628
  </xsl:if>
5404
- </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
5629
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']">
5405
5630
  <xsl:param name="sfx"/>
5406
5631
  <xsl:variable name="suffix">
5407
5632
  <xsl:choose>
@@ -5428,25 +5653,23 @@
5428
5653
  <xsl:apply-templates/>
5429
5654
  </fo:block>
5430
5655
  </xsl:template><xsl:template match="*[local-name() = 'term']">
5431
- <!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
5432
5656
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
5433
5657
 
5434
5658
 
5659
+
5660
+
5435
5661
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])">
5436
5662
 
5437
5663
  </xsl:if>
5438
- <xsl:apply-templates/>
5664
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5439
5665
  </fo:block>
5440
- </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
5666
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
5441
5667
  <xsl:if test="normalize-space() != ''">
5442
5668
  <xsl:variable name="level">
5443
5669
  <xsl:call-template name="getLevelTermName"/>
5444
5670
  </xsl:variable>
5445
5671
  <fo:inline role="H{$level}">
5446
5672
  <xsl:apply-templates/>
5447
- <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
5448
- <xsl:text>.</xsl:text>
5449
- </xsl:if> -->
5450
5673
  </fo:inline>
5451
5674
  </xsl:if>
5452
5675
  </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
@@ -5459,9 +5682,10 @@
5459
5682
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
5460
5683
  </xsl:call-template>
5461
5684
 
5462
- <fo:block>
5463
-
5464
- <xsl:apply-templates/>
5685
+
5686
+
5687
+ <fo:block xsl:use-attribute-sets="figure-style">
5688
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5465
5689
  </fo:block>
5466
5690
  <xsl:call-template name="fn_display_figure"/>
5467
5691
  <xsl:for-each select="*[local-name() = 'note']">
@@ -5469,14 +5693,15 @@
5469
5693
  </xsl:for-each>
5470
5694
 
5471
5695
 
5472
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5696
+ <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
5697
+
5473
5698
 
5474
5699
  </fo:block-container>
5475
5700
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
5476
5701
  <fo:block id="{@id}">
5477
- <xsl:apply-templates/>
5702
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
5478
5703
  </fo:block>
5479
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
5704
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
5480
5705
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
5481
5706
  <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
5482
5707
  <xsl:apply-templates/>
@@ -5583,9 +5808,7 @@
5583
5808
  <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
5584
5809
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
5585
5810
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
5586
- <!-- width=<xsl:value-of select="$width"/> -->
5587
5811
  <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
5588
- <!-- height=<xsl:value-of select="$height"/> -->
5589
5812
  <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
5590
5813
  <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
5591
5814
  <xsl:call-template name="svg_cross">
@@ -5855,7 +6078,7 @@
5855
6078
  </fo:basic-link>
5856
6079
  </fo:block>
5857
6080
  </fo:block-container>
5858
- </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">
6081
+ </xsl:template><xsl:template match="*[local-name() = 'emf']"/><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">
5859
6082
  <xsl:apply-templates mode="contents"/>
5860
6083
  <xsl:text> </xsl:text>
5861
6084
  </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'] | *[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="bookmarks">
@@ -5867,11 +6090,58 @@
5867
6090
  <xsl:value-of select="."/>
5868
6091
  </xsl:template><xsl:template match="node()" mode="contents">
5869
6092
  <xsl:apply-templates mode="contents"/>
6093
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="2" mode="contents">
6094
+ <xsl:variable name="level">
6095
+ <xsl:call-template name="getLevel">
6096
+ <xsl:with-param name="depth" select="@depth"/>
6097
+ </xsl:call-template>
6098
+ </xsl:variable>
6099
+
6100
+ <xsl:variable name="section">
6101
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
6102
+ </xsl:variable>
6103
+
6104
+ <xsl:variable name="type">floating-title</xsl:variable>
6105
+
6106
+ <xsl:variable name="display">
6107
+ <xsl:choose>
6108
+ <xsl:when test="normalize-space(@id) = ''">false</xsl:when>
6109
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
6110
+ <xsl:otherwise>false</xsl:otherwise>
6111
+ </xsl:choose>
6112
+ </xsl:variable>
6113
+
6114
+ <xsl:variable name="skip">false</xsl:variable>
6115
+
6116
+ <xsl:if test="$skip = 'false'">
6117
+
6118
+ <xsl:variable name="title">
6119
+ <xsl:choose>
6120
+ <xsl:when test="*[local-name() = 'tab']">
6121
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
6122
+ </xsl:when>
6123
+ <xsl:otherwise>
6124
+ <xsl:copy-of select="node()"/>
6125
+ </xsl:otherwise>
6126
+ </xsl:choose>
6127
+ </xsl:variable>
6128
+
6129
+ <xsl:variable name="root">
6130
+ <xsl:if test="ancestor-or-self::*[local-name() = 'preface']">preface</xsl:if>
6131
+ <xsl:if test="ancestor-or-self::*[local-name() = 'annex']">annex</xsl:if>
6132
+ </xsl:variable>
6133
+
6134
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
6135
+ <title>
6136
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
6137
+ </title>
6138
+ </item>
6139
+ </xsl:if>
5870
6140
  </xsl:template><xsl:template match="node()" mode="bookmarks">
5871
6141
  <xsl:apply-templates mode="bookmarks"/>
5872
6142
  </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
5873
6143
  <xsl:apply-templates select="."/>
5874
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
6144
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'references']/*[local-name() = 'bibitem']" mode="contents"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
5875
6145
  <xsl:apply-templates mode="bookmarks"/>
5876
6146
  </xsl:template><xsl:template name="addBookmarks">
5877
6147
  <xsl:param name="contents"/>
@@ -5961,8 +6231,6 @@
5961
6231
 
5962
6232
 
5963
6233
 
5964
-
5965
-
5966
6234
  </fo:bookmark-tree>
5967
6235
  </xsl:if>
5968
6236
  </xsl:template><xsl:template name="insertFigureBookmarks">
@@ -6033,7 +6301,7 @@
6033
6301
  <xsl:apply-templates mode="bookmark"/>
6034
6302
  </xsl:otherwise>
6035
6303
  </xsl:choose>
6036
- </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">
6304
+ </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']">
6037
6305
  <xsl:if test="normalize-space() != ''">
6038
6306
  <fo:block xsl:use-attribute-sets="figure-name-style">
6039
6307
 
@@ -6042,16 +6310,13 @@
6042
6310
  </fo:block>
6043
6311
  </xsl:if>
6044
6312
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fn']" priority="2"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'note']"/><xsl:template match="*[local-name() = 'title']" mode="contents_item">
6045
- <xsl:apply-templates mode="contents_item"/>
6313
+ <xsl:param name="mode">bookmarks</xsl:param>
6314
+ <xsl:apply-templates mode="contents_item">
6315
+ <xsl:with-param name="mode" select="$mode"/>
6316
+ </xsl:apply-templates>
6046
6317
  <!-- <xsl:text> </xsl:text> -->
6047
6318
  </xsl:template><xsl:template name="getSection">
6048
6319
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
6049
- <!--
6050
- <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
6051
- <xsl:value-of select="."/>
6052
- </xsl:for-each>
6053
- -->
6054
-
6055
6320
  </xsl:template><xsl:template name="getName">
6056
6321
  <xsl:choose>
6057
6322
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -6115,9 +6380,26 @@
6115
6380
  <xsl:copy-of select="."/>
6116
6381
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
6117
6382
  <xsl:text> </xsl:text>
6383
+ </xsl:template><xsl:template match="*[local-name() = 'name']" mode="contents_item">
6384
+ <xsl:param name="mode">bookmarks</xsl:param>
6385
+ <xsl:apply-templates mode="contents_item">
6386
+ <xsl:with-param name="mode" select="$mode"/>
6387
+ </xsl:apply-templates>
6388
+ </xsl:template><xsl:template match="*[local-name() = 'add']" mode="contents_item">
6389
+ <xsl:param name="mode">bookmarks</xsl:param>
6390
+ <xsl:choose>
6391
+ <xsl:when test="starts-with(text(), $ace_tag)">
6392
+ <xsl:if test="$mode = 'contents'">
6393
+ <xsl:copy>
6394
+ <xsl:apply-templates mode="contents_item"/>
6395
+ </xsl:copy>
6396
+ </xsl:if>
6397
+ </xsl:when>
6398
+ <xsl:otherwise><xsl:apply-templates mode="contents_item"/></xsl:otherwise>
6399
+ </xsl:choose>
6118
6400
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
6119
6401
 
6120
- <fo:block-container margin-left="0mm">
6402
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
6121
6403
  <xsl:copy-of select="@id"/>
6122
6404
 
6123
6405
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -6154,6 +6436,7 @@
6154
6436
 
6155
6437
 
6156
6438
  </xsl:variable>
6439
+
6157
6440
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
6158
6441
  <xsl:if test="$font-size != ''">
6159
6442
  <xsl:attribute name="font-size">
@@ -6170,11 +6453,11 @@
6170
6453
 
6171
6454
 
6172
6455
 
6173
- <xsl:apply-templates/>
6456
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6174
6457
  </fo:block>
6175
6458
 
6176
6459
 
6177
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6460
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
6178
6461
 
6179
6462
 
6180
6463
 
@@ -6188,7 +6471,7 @@
6188
6471
  <xsl:call-template name="add-zero-spaces-java">
6189
6472
  <xsl:with-param name="text" select="$text"/>
6190
6473
  </xsl:call-template>
6191
- </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
6474
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
6192
6475
  <xsl:if test="normalize-space() != ''">
6193
6476
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
6194
6477
  <xsl:apply-templates/>
@@ -6196,10 +6479,10 @@
6196
6479
  </xsl:if>
6197
6480
  </xsl:template><xsl:template match="*[local-name() = 'permission']">
6198
6481
  <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
6199
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6200
- <xsl:apply-templates/>
6482
+ <xsl:apply-templates select="*[local-name()='name']"/>
6483
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6201
6484
  </fo:block>
6202
- </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
6485
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']">
6203
6486
  <xsl:if test="normalize-space() != ''">
6204
6487
  <fo:block xsl:use-attribute-sets="permission-name-style">
6205
6488
  <xsl:apply-templates/>
@@ -6212,13 +6495,13 @@
6212
6495
  </fo:block>
6213
6496
  </xsl:template><xsl:template match="*[local-name() = 'requirement']">
6214
6497
  <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
6215
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6216
- <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
6217
- <xsl:apply-templates select="@obligation" mode="presentation"/>
6218
- <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
6219
- <xsl:apply-templates/>
6498
+ <xsl:apply-templates select="*[local-name()='name']"/>
6499
+ <xsl:apply-templates select="*[local-name()='label']"/>
6500
+ <xsl:apply-templates select="@obligation"/>
6501
+ <xsl:apply-templates select="*[local-name()='subject']"/>
6502
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'label') and not(local-name() = 'subject')]"/>
6220
6503
  </fo:block>
6221
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
6504
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']">
6222
6505
  <xsl:if test="normalize-space() != ''">
6223
6506
  <fo:block xsl:use-attribute-sets="requirement-name-style">
6224
6507
 
@@ -6226,20 +6509,24 @@
6226
6509
 
6227
6510
  </fo:block>
6228
6511
  </xsl:if>
6229
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
6512
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']">
6230
6513
  <fo:block xsl:use-attribute-sets="requirement-label-style">
6231
6514
  <xsl:apply-templates/>
6232
6515
  </fo:block>
6233
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
6516
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation">
6234
6517
  <fo:block>
6235
6518
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
6236
6519
  </fo:block>
6520
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2">
6521
+ <fo:block xsl:use-attribute-sets="subject-style">
6522
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
6523
+ </fo:block>
6237
6524
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
6238
6525
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
6239
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6240
- <xsl:apply-templates/>
6526
+ <xsl:apply-templates select="*[local-name()='name']"/>
6527
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6241
6528
  </fo:block>
6242
- </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
6529
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']">
6243
6530
  <xsl:if test="normalize-space() != ''">
6244
6531
  <fo:block xsl:use-attribute-sets="recommendation-name-style">
6245
6532
  <xsl:apply-templates/>
@@ -6250,10 +6537,6 @@
6250
6537
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
6251
6538
  <xsl:apply-templates/>
6252
6539
  </fo:block>
6253
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
6254
- <fo:block xsl:use-attribute-sets="subject-style">
6255
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
6256
- </fo:block>
6257
6540
  </xsl:template><xsl:template match="*[local-name() = 'subject']">
6258
6541
  <fo:block xsl:use-attribute-sets="subject-style">
6259
6542
  <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
@@ -6297,8 +6580,6 @@
6297
6580
  </xsl:variable>
6298
6581
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
6299
6582
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
6300
- <!-- <fo:table-column column-width="35mm"/>
6301
- <fo:table-column column-width="115mm"/> -->
6302
6583
  <fo:table-column column-width="30%"/>
6303
6584
  <fo:table-column column-width="70%"/>
6304
6585
  </xsl:if>
@@ -6308,7 +6589,7 @@
6308
6589
  <xsl:if test=".//*[local-name() = 'fn']">
6309
6590
  <xsl:for-each select="*[local-name() = 'tbody']">
6310
6591
  <fo:block font-size="90%" border-bottom="1pt solid black">
6311
- <xsl:call-template name="fn_display"/>
6592
+ <xsl:call-template name="table_fn_display"/>
6312
6593
  </fo:block>
6313
6594
  </xsl:for-each>
6314
6595
  </xsl:if>
@@ -6325,7 +6606,6 @@
6325
6606
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
6326
6607
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
6327
6608
  <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
6328
- <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
6329
6609
  <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
6330
6610
  </xsl:if>
6331
6611
  <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
@@ -6338,34 +6618,11 @@
6338
6618
  </fo:table-row>
6339
6619
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
6340
6620
  <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
6341
- <xsl:attribute name="text-align">
6342
- <xsl:choose>
6343
- <xsl:when test="@align">
6344
- <xsl:value-of select="@align"/>
6345
- </xsl:when>
6346
- <xsl:otherwise>left</xsl:otherwise>
6347
- </xsl:choose>
6348
- </xsl:attribute>
6349
- <xsl:if test="@colspan">
6350
- <xsl:attribute name="number-columns-spanned">
6351
- <xsl:value-of select="@colspan"/>
6352
- </xsl:attribute>
6353
- </xsl:if>
6354
- <xsl:if test="@rowspan">
6355
- <xsl:attribute name="number-rows-spanned">
6356
- <xsl:value-of select="@rowspan"/>
6357
- </xsl:attribute>
6358
- </xsl:if>
6359
- <xsl:call-template name="display-align"/>
6621
+ <xsl:call-template name="setTextAlignment">
6622
+ <xsl:with-param name="default">left</xsl:with-param>
6623
+ </xsl:call-template>
6360
6624
 
6361
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
6362
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6363
- <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
6364
- </xsl:if>
6365
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
6366
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6367
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
6368
- </xsl:if> -->
6625
+ <xsl:call-template name="setTableCellAttributes"/>
6369
6626
 
6370
6627
  <fo:block>
6371
6628
  <xsl:apply-templates/>
@@ -6377,37 +6634,15 @@
6377
6634
  <xsl:attribute name="padding">0mm</xsl:attribute>
6378
6635
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
6379
6636
  </xsl:if>
6380
- <xsl:attribute name="text-align">
6381
- <xsl:choose>
6382
- <xsl:when test="@align">
6383
- <xsl:value-of select="@align"/>
6384
- </xsl:when>
6385
- <xsl:otherwise>left</xsl:otherwise>
6386
- </xsl:choose>
6387
- </xsl:attribute>
6637
+ <xsl:call-template name="setTextAlignment">
6638
+ <xsl:with-param name="default">left</xsl:with-param>
6639
+ </xsl:call-template>
6640
+
6388
6641
  <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
6389
6642
  <xsl:attribute name="font-weight">bold</xsl:attribute>
6390
6643
  </xsl:if>
6391
- <xsl:if test="@colspan">
6392
- <xsl:attribute name="number-columns-spanned">
6393
- <xsl:value-of select="@colspan"/>
6394
- </xsl:attribute>
6395
- </xsl:if>
6396
- <xsl:if test="@rowspan">
6397
- <xsl:attribute name="number-rows-spanned">
6398
- <xsl:value-of select="@rowspan"/>
6399
- </xsl:attribute>
6400
- </xsl:if>
6401
- <xsl:call-template name="display-align"/>
6402
6644
 
6403
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
6404
- <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
6405
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
6406
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
6407
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
6408
- </xsl:if>
6409
- </xsl:if> -->
6410
- <!-- 2nd line and below -->
6645
+ <xsl:call-template name="setTableCellAttributes"/>
6411
6646
 
6412
6647
  <fo:block>
6413
6648
  <xsl:apply-templates/>
@@ -6419,15 +6654,15 @@
6419
6654
  <xsl:apply-templates/>
6420
6655
  </fo:block>
6421
6656
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
6422
- <fo:block> <!-- margin-bottom="10pt" -->
6657
+ <fo:block>
6423
6658
  <xsl:apply-templates/>
6424
6659
  </fo:block>
6425
6660
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
6426
6661
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
6427
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6428
- <xsl:apply-templates/>
6662
+ <xsl:apply-templates select="*[local-name()='name']"/>
6663
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6429
6664
  </fo:block>
6430
- </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
6665
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
6431
6666
  <xsl:if test="normalize-space() != ''">
6432
6667
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
6433
6668
  <xsl:apply-templates/>
@@ -6451,42 +6686,52 @@
6451
6686
  <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
6452
6687
 
6453
6688
 
6454
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
6455
-
6456
- <xsl:variable name="element">
6457
-
6458
- inline
6459
- <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
6689
+ <xsl:variable name="fo_element">
6690
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl']">block</xsl:if>
6691
+
6692
+ <xsl:choose>
6693
+ <!-- if example contains only one (except 'name') element (paragraph for example), then display it on the same line as EXAMPLE title -->
6694
+ <xsl:when test="count(*[not(local-name() = 'name')]) = 1">inline</xsl:when>
6695
+ <xsl:otherwise>block</xsl:otherwise>
6696
+ </xsl:choose>
6697
+
6460
6698
  </xsl:variable>
6461
6699
 
6700
+ <!-- display 'EXAMPLE' -->
6701
+ <xsl:apply-templates select="*[local-name()='name']">
6702
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6703
+ </xsl:apply-templates>
6704
+
6462
6705
  <xsl:choose>
6463
- <xsl:when test="contains(normalize-space($element), 'block')">
6464
- <fo:block xsl:use-attribute-sets="example-body-style">
6465
- <xsl:apply-templates/>
6466
- </fo:block>
6706
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
6707
+ <fo:block-container xsl:use-attribute-sets="example-body-style">
6708
+ <fo:block-container margin-left="0mm" margin-right="0mm">
6709
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
6710
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6711
+ </xsl:apply-templates>
6712
+ </fo:block-container>
6713
+ </fo:block-container>
6467
6714
  </xsl:when>
6468
6715
  <xsl:otherwise>
6469
6716
  <fo:inline>
6470
- <xsl:apply-templates/>
6717
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
6718
+ <xsl:with-param name="fo_element" select="$fo_element"/>
6719
+ </xsl:apply-templates>
6471
6720
  </fo:inline>
6472
6721
  </xsl:otherwise>
6473
6722
  </xsl:choose>
6474
6723
 
6475
6724
  </fo:block>
6476
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
6477
-
6478
- <xsl:variable name="element">
6479
-
6480
- inline
6481
- <xsl:if test="following-sibling::*[1][local-name() = 'table']">block</xsl:if>
6482
- </xsl:variable>
6725
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
6726
+ <xsl:param name="fo_element">block</xsl:param>
6727
+
6483
6728
  <xsl:choose>
6484
6729
  <xsl:when test="ancestor::*[local-name() = 'appendix']">
6485
6730
  <fo:inline>
6486
6731
  <xsl:apply-templates/>
6487
6732
  </fo:inline>
6488
6733
  </xsl:when>
6489
- <xsl:when test="contains(normalize-space($element), 'block')">
6734
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
6490
6735
  <fo:block xsl:use-attribute-sets="example-name-style">
6491
6736
  <xsl:apply-templates/>
6492
6737
  </fo:block>
@@ -6499,14 +6744,15 @@
6499
6744
  </xsl:choose>
6500
6745
 
6501
6746
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
6747
+ <xsl:param name="fo_element">block</xsl:param>
6748
+
6502
6749
  <xsl:variable name="num"><xsl:number/></xsl:variable>
6503
6750
  <xsl:variable name="element">
6504
- block
6505
-
6506
6751
 
6752
+ <xsl:value-of select="$fo_element"/>
6507
6753
  </xsl:variable>
6508
6754
  <xsl:choose>
6509
- <xsl:when test="normalize-space($element) = 'block'">
6755
+ <xsl:when test="starts-with(normalize-space($element), 'block')">
6510
6756
  <fo:block xsl:use-attribute-sets="example-p-style">
6511
6757
 
6512
6758
  <xsl:apply-templates/>
@@ -6521,66 +6767,70 @@
6521
6767
  </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
6522
6768
  <fo:block xsl:use-attribute-sets="termsource-style">
6523
6769
 
6770
+
6771
+
6524
6772
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
6525
6773
  <xsl:variable name="termsource_text">
6526
6774
  <xsl:apply-templates/>
6527
6775
  </xsl:variable>
6528
-
6529
- <xsl:choose>
6776
+ <xsl:copy-of select="$termsource_text"/>
6777
+ <!-- <xsl:choose>
6530
6778
  <xsl:when test="starts-with(normalize-space($termsource_text), '[')">
6531
- <!-- <xsl:apply-templates /> -->
6532
6779
  <xsl:copy-of select="$termsource_text"/>
6533
6780
  </xsl:when>
6534
6781
  <xsl:otherwise>
6535
-
6536
-
6782
+ <xsl:if test="$namespace = 'bsi'">
6783
+ <xsl:choose>
6784
+ <xsl:when test="$document_type = 'PAS' and starts-with(*[local-name() = 'origin']/@citeas, '[')"><xsl:text>{</xsl:text></xsl:when>
6785
+ <xsl:otherwise><xsl:text>[</xsl:text></xsl:otherwise>
6786
+ </xsl:choose>
6787
+ </xsl:if>
6788
+ <xsl:if test="$namespace = 'gb' or $namespace = 'iso' or $namespace = 'iec' or $namespace = 'itu' or $namespace = 'unece' or $namespace = 'unece-rec' or $namespace = 'nist-cswp' or $namespace = 'nist-sp' or $namespace = 'ogc-white-paper' or $namespace = 'csa' or $namespace = 'csd' or $namespace = 'm3d' or $namespace = 'iho' or $namespace = 'bipm' or $namespace = 'jcgm'">
6537
6789
  <xsl:text>[</xsl:text>
6538
-
6539
- <!-- <xsl:apply-templates /> -->
6790
+ </xsl:if>
6540
6791
  <xsl:copy-of select="$termsource_text"/>
6541
-
6542
-
6792
+ <xsl:if test="$namespace = 'bsi'">
6793
+ <xsl:choose>
6794
+ <xsl:when test="$document_type = 'PAS' and starts-with(*[local-name() = 'origin']/@citeas, '[')"><xsl:text>}</xsl:text></xsl:when>
6795
+ <xsl:otherwise><xsl:text>]</xsl:text></xsl:otherwise>
6796
+ </xsl:choose>
6797
+ </xsl:if>
6798
+ <xsl:if test="$namespace = 'gb' or $namespace = 'iso' or $namespace = 'iec' or $namespace = 'itu' or $namespace = 'unece' or $namespace = 'unece-rec' or $namespace = 'nist-cswp' or $namespace = 'nist-sp' or $namespace = 'ogc-white-paper' or $namespace = 'csa' or $namespace = 'csd' or $namespace = 'm3d' or $namespace = 'iho' or $namespace = 'bipm' or $namespace = 'jcgm'">
6543
6799
  <xsl:text>]</xsl:text>
6544
-
6800
+ </xsl:if>
6545
6801
  </xsl:otherwise>
6546
- </xsl:choose>
6802
+ </xsl:choose> -->
6547
6803
  </fo:block>
6548
6804
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
6549
6805
  <xsl:if test="normalize-space() != ''">
6550
6806
  <xsl:value-of select="."/>
6551
6807
  </xsl:if>
6552
- </xsl:template><xsl:variable name="localized.source">
6553
- <xsl:call-template name="getLocalizedString">
6554
- <xsl:with-param name="key">source</xsl:with-param>
6555
- </xsl:call-template>
6556
- </xsl:variable><xsl:template match="*[local-name() = 'origin']">
6808
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/*[local-name() = 'strong'][1][following-sibling::*[1][local-name() = 'origin']]/text()">
6809
+ <fo:inline xsl:use-attribute-sets="termsource-text-style">
6810
+ <xsl:value-of select="."/>
6811
+ </fo:inline>
6812
+ </xsl:template><xsl:template match="*[local-name() = 'origin']">
6557
6813
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
6558
6814
  <xsl:if test="normalize-space(@citeas) = ''">
6559
6815
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="@bibitemid"/></xsl:attribute>
6560
6816
  </xsl:if>
6561
-
6562
-
6563
- <fo:inline>
6564
-
6565
-
6566
-
6567
-
6568
-
6569
-
6570
-
6571
- <xsl:call-template name="getTitle">
6572
- <xsl:with-param name="name" select="'title-source'"/>
6573
- </xsl:call-template>
6574
- <xsl:text>: </xsl:text>
6575
-
6576
-
6577
- </fo:inline>
6578
-
6579
6817
  <fo:inline xsl:use-attribute-sets="origin-style">
6580
6818
  <xsl:apply-templates/>
6581
6819
  </fo:inline>
6582
-
6583
- </fo:basic-link>
6820
+ </fo:basic-link>
6821
+ </xsl:template><xsl:template match="*[local-name() = 'modification']">
6822
+ <xsl:variable name="title-modified">
6823
+ <xsl:call-template name="getLocalizedString">
6824
+ <xsl:with-param name="key">modified</xsl:with-param>
6825
+ </xsl:call-template>
6826
+ </xsl:variable>
6827
+
6828
+ <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
6829
+ <xsl:choose>
6830
+ <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>
6831
+ <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>
6832
+ </xsl:choose>
6833
+ <xsl:apply-templates/>
6584
6834
  </xsl:template><xsl:template match="*[local-name() = 'modification']/*[local-name() = 'p']">
6585
6835
  <fo:inline><xsl:apply-templates/></fo:inline>
6586
6836
  </xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
@@ -6599,7 +6849,6 @@
6599
6849
  <fo:block-container margin-left="0mm">
6600
6850
 
6601
6851
  <fo:block xsl:use-attribute-sets="quote-style">
6602
- <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
6603
6852
 
6604
6853
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
6605
6854
  </fo:block>
@@ -6642,15 +6891,13 @@
6642
6891
  </xsl:variable>
6643
6892
 
6644
6893
  <xsl:choose>
6645
- <xsl:when test="normalize-space($bibitemid) != ''">
6894
+ <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
6646
6895
  <fo:inline xsl:use-attribute-sets="eref-style">
6647
6896
  <xsl:if test="@type = 'footnote'">
6648
-
6649
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6650
- <xsl:attribute name="font-size">80%</xsl:attribute>
6651
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
6652
- <xsl:attribute name="vertical-align">super</xsl:attribute>
6653
-
6897
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6898
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
6899
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
6900
+ <xsl:attribute name="font-size">80%</xsl:attribute>
6654
6901
 
6655
6902
  </xsl:if>
6656
6903
 
@@ -6667,7 +6914,6 @@
6667
6914
 
6668
6915
 
6669
6916
 
6670
-
6671
6917
  </xsl:if>
6672
6918
 
6673
6919
 
@@ -6727,8 +6973,6 @@
6727
6973
  </xsl:choose>
6728
6974
  </xsl:variable>
6729
6975
 
6730
- <!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
6731
-
6732
6976
  <xsl:choose>
6733
6977
  <xsl:when test="$lang = 'zh'">
6734
6978
  <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
@@ -6763,12 +7007,9 @@
6763
7007
  </fo:block>
6764
7008
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
6765
7009
  <xsl:variable name="title-deprecated">
6766
-
6767
- <xsl:call-template name="getLocalizedString">
6768
- <xsl:with-param name="key">deprecated</xsl:with-param>
6769
- </xsl:call-template>
6770
-
6771
-
7010
+ <xsl:call-template name="getLocalizedString">
7011
+ <xsl:with-param name="key">deprecated</xsl:with-param>
7012
+ </xsl:call-template>
6772
7013
  </xsl:variable>
6773
7014
  <fo:block xsl:use-attribute-sets="deprecates-style">
6774
7015
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -6777,6 +7018,8 @@
6777
7018
  <xsl:if test="*[local-name() = 'strong']">
6778
7019
  <xsl:attribute name="font-weight">normal</xsl:attribute>
6779
7020
  </xsl:if>
7021
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']/text()[contains(., ';')] | *[local-name() = 'preferred']/*[local-name() = 'strong']/text()[contains(., ';')]">
7022
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), ';', $linebreak)"/>
6780
7023
  </xsl:template><xsl:template match="*[local-name() = 'definition']">
6781
7024
  <fo:block xsl:use-attribute-sets="definition-style">
6782
7025
  <xsl:apply-templates/>
@@ -6785,7 +7028,6 @@
6785
7028
  <xsl:apply-templates/>
6786
7029
  </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p'][1]">
6787
7030
  <fo:inline> <xsl:apply-templates/></fo:inline>
6788
- <!-- <fo:block>&#xA0;</fo:block> -->
6789
7031
  <fo:block/>
6790
7032
  </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
6791
7033
 
@@ -6821,11 +7063,6 @@
6821
7063
  <xsl:apply-templates/>
6822
7064
  </fo:block>
6823
7065
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
6824
- <fo:block id="{@id}">
6825
- <xsl:apply-templates/>
6826
- </fo:block>
6827
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
6828
-
6829
7066
  <fo:block id="{@id}">
6830
7067
  <xsl:apply-templates/>
6831
7068
  </fo:block>
@@ -6842,6 +7079,53 @@
6842
7079
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
6843
7080
  <!-- 0xA0 to space replacement -->
6844
7081
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
7082
+ </xsl:template><xsl:variable name="ul_labels_">
7083
+
7084
+
7085
+
7086
+
7087
+
7088
+ <label level="1" font-size="10pt">•</label>
7089
+ <label level="2" font-size="10pt">—</label><!-- em dash -->
7090
+ <label level="3" font-size="75%">o</label> <!-- white circle -->
7091
+
7092
+
7093
+
7094
+
7095
+
7096
+
7097
+
7098
+
7099
+
7100
+
7101
+
7102
+
7103
+
7104
+ </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
7105
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
7106
+ <xsl:variable name="list_level">
7107
+ <xsl:choose>
7108
+ <xsl:when test="$list_level_ &lt;= 3"><xsl:value-of select="$list_level_"/></xsl:when>
7109
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 3"/></xsl:otherwise>
7110
+ </xsl:choose>
7111
+ </xsl:variable>
7112
+ <xsl:choose>
7113
+ <xsl:when test="$ul_labels/label[not(@level)]"> <!-- one label for all levels -->
7114
+ <xsl:apply-templates select="$ul_labels/label[not(@level)]" mode="ul_labels"/>
7115
+ </xsl:when>
7116
+ <xsl:when test="$list_level mod 3 = 0">
7117
+ <xsl:apply-templates select="$ul_labels/label[@level = 3]" mode="ul_labels"/>
7118
+ </xsl:when>
7119
+ <xsl:when test="$list_level mod 2 = 0">
7120
+ <xsl:apply-templates select="$ul_labels/label[@level = 2]" mode="ul_labels"/>
7121
+ </xsl:when>
7122
+ <xsl:otherwise>
7123
+ <xsl:apply-templates select="$ul_labels/label[@level = 1]" mode="ul_labels"/>
7124
+ </xsl:otherwise>
7125
+ </xsl:choose>
7126
+ </xsl:template><xsl:template match="label" mode="ul_labels">
7127
+ <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
7128
+ <xsl:value-of select="."/>
6845
7129
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
6846
7130
  <xsl:choose>
6847
7131
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -7048,20 +7332,107 @@
7048
7332
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
7049
7333
  <fo:block><xsl:apply-templates/></fo:block>
7050
7334
  </fo:table-cell>
7051
- </xsl:template><xsl:template name="processBibitem">
7335
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][starts-with(@id, 'hidden_bibitem_')]" priority="3"/><xsl:template match="*[local-name() = 'references'][@normative='true']" priority="2">
7336
+
7337
+
7338
+
7339
+ <fo:block id="{@id}">
7340
+ <xsl:apply-templates/>
7341
+ </fo:block>
7342
+ </xsl:template><xsl:template match="*[local-name() = 'references']">
7343
+ <xsl:if test="not(ancestor::*[local-name() = 'annex'])">
7344
+
7345
+ <fo:block break-after="page"/>
7346
+
7347
+ </xsl:if>
7348
+
7349
+ <!-- <xsl:if test="ancestor::*[local-name() = 'annex']">
7350
+ <xsl:if test="$namespace = 'csa' or $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'itu'">
7351
+ <fo:block break-after="page"/>
7352
+ </xsl:if>
7353
+ </xsl:if> -->
7354
+
7355
+ <fo:block id="{@id}" xsl:use-attribute-sets="references-non-normative-style">
7356
+ <xsl:apply-templates/>
7357
+ </fo:block>
7052
7358
 
7053
7359
 
7054
7360
 
7055
-
7056
7361
 
7362
+ <!-- horizontal line -->
7363
+ <fo:block-container text-align="center" margin-top="10mm">
7364
+ <fo:block>_____________</fo:block>
7365
+ </fo:block-container>
7057
7366
 
7058
-
7367
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']">
7368
+ <xsl:call-template name="bibitem"/>
7369
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
7059
7370
 
7371
+ <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
7372
+ <xsl:call-template name="processBibitem"/>
7373
+ </fo:block>
7374
+
7375
+
7376
+ </xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" priority="2">
7377
+
7378
+ <!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
7379
+ $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
7380
+ <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
7381
+ <fo:list-block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-style">
7382
+ <fo:list-item>
7383
+ <fo:list-item-label end-indent="label-end()">
7384
+ <fo:block>
7385
+ <fo:inline>
7386
+
7387
+ <xsl:value-of select="*[local-name()='docidentifier'][@type = 'metanorma-ordinal']"/>
7388
+ <xsl:if test="not(*[local-name()='docidentifier'][@type = 'metanorma-ordinal'])">
7389
+ <xsl:number format="[1]"/>
7390
+ </xsl:if>
7391
+
7392
+ </fo:inline>
7393
+ </fo:block>
7394
+ </fo:list-item-label>
7395
+ <fo:list-item-body start-indent="body-start()">
7396
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style">
7397
+ <xsl:call-template name="processBibitem"/>
7398
+ </fo:block>
7399
+ </fo:list-item-body>
7400
+ </fo:list-item>
7401
+ </fo:list-block>
7402
+
7060
7403
 
7404
+ </xsl:template><xsl:template name="processBibitem">
7061
7405
 
7062
7406
 
7407
+ <!-- start bibitem processing -->
7408
+ <xsl:if test=".//*[local-name() = 'fn']">
7409
+ <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
7410
+ </xsl:if>
7411
+ <xsl:variable name="docidentifier">
7412
+ <xsl:choose>
7413
+ <xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
7414
+ <xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma-ordinal')]"/></xsl:otherwise>
7415
+ </xsl:choose>
7416
+ </xsl:variable>
7417
+ <fo:inline><xsl:value-of select="$docidentifier"/></fo:inline>
7418
+ <xsl:apply-templates select="*[local-name() = 'note']"/>
7419
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
7420
+ <xsl:choose>
7421
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $lang]">
7422
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $lang]"/>
7423
+ </xsl:when>
7424
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
7425
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
7426
+ </xsl:when>
7427
+ <xsl:otherwise>
7428
+ <xsl:apply-templates select="*[local-name() = 'title']"/>
7429
+ </xsl:otherwise>
7430
+ </xsl:choose>
7431
+ <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
7432
+ <!-- end bibitem processing -->
7433
+
7063
7434
  </xsl:template><xsl:template name="processBibitemDocId">
7064
- <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')]"/>
7435
+ <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'metanorma-ordinal' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
7065
7436
  <xsl:choose>
7066
7437
  <xsl:when test="normalize-space($_doc_ident) != ''">
7067
7438
  <!-- <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"/>
@@ -7075,7 +7446,7 @@
7075
7446
  <xsl:if test="$type != ''">
7076
7447
  <xsl:value-of select="$type"/><xsl:text> </xsl:text>
7077
7448
  </xsl:if> -->
7078
- <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
7449
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma') and not(@type = 'metanorma-ordinal')]"/>
7079
7450
  </xsl:otherwise>
7080
7451
  </xsl:choose>
7081
7452
  </xsl:template><xsl:template name="processPersonalAuthor">
@@ -7116,6 +7487,48 @@
7116
7487
  <xsl:value-of select="substring(.,1,1)"/>
7117
7488
  </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
7118
7489
  <fo:inline><xsl:apply-templates/></fo:inline>
7490
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'title']" priority="2">
7491
+ <!-- <fo:inline><xsl:apply-templates /></fo:inline> -->
7492
+ <fo:inline font-style="italic"> <!-- BIPM BSI CSD CSA GB IEC IHO ISO ITU JCGM -->
7493
+ <xsl:apply-templates/>
7494
+ </fo:inline>
7495
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
7496
+ <fo:footnote>
7497
+ <xsl:variable name="number">
7498
+
7499
+ <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
7500
+
7501
+ </xsl:variable>
7502
+ <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
7503
+ <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
7504
+ <xsl:value-of select="$number"/>
7505
+
7506
+ </fo:basic-link>
7507
+ </fo:inline>
7508
+ <fo:footnote-body>
7509
+ <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
7510
+ <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
7511
+ <xsl:value-of select="$number"/>
7512
+
7513
+ </fo:inline>
7514
+ <xsl:apply-templates/>
7515
+ </fo:block>
7516
+ </fo:footnote-body>
7517
+ </fo:footnote>
7518
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'edition']"> <!-- for iho -->
7519
+ <xsl:text> edition </xsl:text>
7520
+ <xsl:value-of select="."/>
7521
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'uri']"> <!-- for iho -->
7522
+ <xsl:text> (</xsl:text>
7523
+ <fo:inline xsl:use-attribute-sets="link-style">
7524
+ <fo:basic-link external-destination="." fox:alt-text=".">
7525
+ <xsl:value-of select="."/>
7526
+ </fo:basic-link>
7527
+ </fo:inline>
7528
+ <xsl:text>)</xsl:text>
7529
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'docidentifier']"/><xsl:template match="*[local-name() = 'formattedref']">
7530
+
7531
+ <xsl:apply-templates/>
7119
7532
  </xsl:template><xsl:template match="*[local-name() = 'form']">
7120
7533
  <fo:block>
7121
7534
  <xsl:apply-templates/>
@@ -7180,7 +7593,18 @@
7180
7593
  <fo:block-container border="1pt solid black" width="50%">
7181
7594
  <fo:block> </fo:block>
7182
7595
  </fo:block-container>
7183
- </xsl:template><xsl:template match="*[local-name() = 'toc']">
7596
+ </xsl:template><xsl:variable name="toc_level">
7597
+ <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
7598
+ <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
7599
+ <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
7600
+ <xsl:choose>
7601
+ <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
7602
+ <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
7603
+ <xsl:otherwise><!-- default value -->
7604
+ 3
7605
+ </xsl:otherwise>
7606
+ </xsl:choose>
7607
+ </xsl:variable><xsl:template match="*[local-name() = 'toc']">
7184
7608
  <xsl:param name="colwidths"/>
7185
7609
  <xsl:variable name="colwidths_">
7186
7610
  <xsl:choose>
@@ -7260,7 +7684,7 @@
7260
7684
  </td>
7261
7685
  </xsl:for-each>
7262
7686
  <td>333</td> <!-- page number, just for fill -->
7263
- </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
7687
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
7264
7688
  <fo:inline padding-right="5mm"> </fo:inline>
7265
7689
  <fo:inline><xsl:apply-templates/></fo:inline>
7266
7690
  </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
@@ -7271,6 +7695,62 @@
7271
7695
  </svg>
7272
7696
  </fo:instream-foreign-object>
7273
7697
  </fo:inline>
7698
+ </xsl:template><xsl:template match="@language">
7699
+ <xsl:copy-of select="."/>
7700
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
7701
+ <xsl:call-template name="title"/>
7702
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']">
7703
+
7704
+
7705
+
7706
+
7707
+
7708
+ <!-- text in the box -->
7709
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="admonition-style">
7710
+
7711
+
7712
+
7713
+
7714
+
7715
+ <fo:block-container xsl:use-attribute-sets="admonition-container-style">
7716
+
7717
+
7718
+ <fo:block text-align="justify">
7719
+ <fo:inline>
7720
+ <xsl:call-template name="displayAdmonitionName"/>
7721
+ <xsl:text> – </xsl:text>
7722
+ </fo:inline>
7723
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
7724
+ </fo:block>
7725
+
7726
+ </fo:block-container>
7727
+
7728
+ </fo:block-container>
7729
+
7730
+ </xsl:template><xsl:template name="displayAdmonitionName">
7731
+
7732
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
7733
+ <xsl:if test="not(*[local-name() = 'name'])">
7734
+ <xsl:apply-templates select="@type"/>
7735
+ </xsl:if>
7736
+
7737
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'name']">
7738
+ <xsl:apply-templates/>
7739
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/@type">
7740
+ <xsl:variable name="admonition_type_">
7741
+ <xsl:call-template name="getLocalizedString">
7742
+ <xsl:with-param name="key">admonition.<xsl:value-of select="."/></xsl:with-param>
7743
+ </xsl:call-template>
7744
+ </xsl:variable>
7745
+ <xsl:variable name="admonition_type" select="normalize-space(java:toUpperCase(java:java.lang.String.new($admonition_type_)))"/>
7746
+ <xsl:value-of select="$admonition_type"/>
7747
+ <xsl:if test="$admonition_type = ''">
7748
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
7749
+ </xsl:if>
7750
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'p']">
7751
+ <!-- processing for admonition/p found in the template for 'p' -->
7752
+ <xsl:call-template name="paragraph"/>
7753
+
7274
7754
  </xsl:template><xsl:template name="convertDate">
7275
7755
  <xsl:param name="date"/>
7276
7756
  <xsl:param name="format" select="'short'"/>
@@ -7279,78 +7759,39 @@
7279
7759
  <xsl:variable name="day" select="substring($date, 9, 2)"/>
7280
7760
  <xsl:variable name="monthStr">
7281
7761
  <xsl:choose>
7282
- <xsl:when test="$month = '01'">January</xsl:when>
7283
- <xsl:when test="$month = '02'">February</xsl:when>
7284
- <xsl:when test="$month = '03'">March</xsl:when>
7285
- <xsl:when test="$month = '04'">April</xsl:when>
7286
- <xsl:when test="$month = '05'">May</xsl:when>
7287
- <xsl:when test="$month = '06'">June</xsl:when>
7288
- <xsl:when test="$month = '07'">July</xsl:when>
7289
- <xsl:when test="$month = '08'">August</xsl:when>
7290
- <xsl:when test="$month = '09'">September</xsl:when>
7291
- <xsl:when test="$month = '10'">October</xsl:when>
7292
- <xsl:when test="$month = '11'">November</xsl:when>
7293
- <xsl:when test="$month = '12'">December</xsl:when>
7294
- </xsl:choose>
7295
- </xsl:variable>
7296
- <xsl:variable name="result">
7297
- <xsl:choose>
7298
- <xsl:when test="$format = 'ddMMyyyy'">
7299
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7300
- <xsl:text> </xsl:text>
7301
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7302
- </xsl:when>
7303
- <xsl:when test="$format = 'ddMM'">
7304
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7305
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7306
- </xsl:when>
7307
- <xsl:when test="$format = 'short' or $day = ''">
7308
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
7309
- </xsl:when>
7310
- <xsl:otherwise>
7311
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
7312
- </xsl:otherwise>
7762
+ <xsl:when test="$month = '01'">january</xsl:when>
7763
+ <xsl:when test="$month = '02'">february</xsl:when>
7764
+ <xsl:when test="$month = '03'">march</xsl:when>
7765
+ <xsl:when test="$month = '04'">april</xsl:when>
7766
+ <xsl:when test="$month = '05'">may</xsl:when>
7767
+ <xsl:when test="$month = '06'">june</xsl:when>
7768
+ <xsl:when test="$month = '07'">july</xsl:when>
7769
+ <xsl:when test="$month = '08'">august</xsl:when>
7770
+ <xsl:when test="$month = '09'">september</xsl:when>
7771
+ <xsl:when test="$month = '10'">october</xsl:when>
7772
+ <xsl:when test="$month = '11'">november</xsl:when>
7773
+ <xsl:when test="$month = '12'">december</xsl:when>
7313
7774
  </xsl:choose>
7314
7775
  </xsl:variable>
7315
- <xsl:value-of select="$result"/>
7316
- </xsl:template><xsl:template name="convertDateLocalized">
7317
- <xsl:param name="date"/>
7318
- <xsl:param name="format" select="'short'"/>
7319
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
7320
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
7321
- <xsl:variable name="day" select="substring($date, 9, 2)"/>
7322
- <xsl:variable name="monthStr">
7323
- <xsl:choose>
7324
- <xsl:when test="$month = '01'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_january</xsl:with-param></xsl:call-template></xsl:when>
7325
- <xsl:when test="$month = '02'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_february</xsl:with-param></xsl:call-template></xsl:when>
7326
- <xsl:when test="$month = '03'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_march</xsl:with-param></xsl:call-template></xsl:when>
7327
- <xsl:when test="$month = '04'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_april</xsl:with-param></xsl:call-template></xsl:when>
7328
- <xsl:when test="$month = '05'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_may</xsl:with-param></xsl:call-template></xsl:when>
7329
- <xsl:when test="$month = '06'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_june</xsl:with-param></xsl:call-template></xsl:when>
7330
- <xsl:when test="$month = '07'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_july</xsl:with-param></xsl:call-template></xsl:when>
7331
- <xsl:when test="$month = '08'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_august</xsl:with-param></xsl:call-template></xsl:when>
7332
- <xsl:when test="$month = '09'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_september</xsl:with-param></xsl:call-template></xsl:when>
7333
- <xsl:when test="$month = '10'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_october</xsl:with-param></xsl:call-template></xsl:when>
7334
- <xsl:when test="$month = '11'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_november</xsl:with-param></xsl:call-template></xsl:when>
7335
- <xsl:when test="$month = '12'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_december</xsl:with-param></xsl:call-template></xsl:when>
7336
- </xsl:choose>
7776
+ <xsl:variable name="monthStr_localized">
7777
+ <xsl:if test="normalize-space($monthStr) != ''"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_<xsl:value-of select="$monthStr"/></xsl:with-param></xsl:call-template></xsl:if>
7337
7778
  </xsl:variable>
7338
7779
  <xsl:variable name="result">
7339
7780
  <xsl:choose>
7340
7781
  <xsl:when test="$format = 'ddMMyyyy'">
7341
7782
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7342
7783
  <xsl:text> </xsl:text>
7343
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
7784
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ' , $year))"/>
7344
7785
  </xsl:when>
7345
7786
  <xsl:when test="$format = 'ddMM'">
7346
7787
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
7347
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
7788
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr_localized"/>
7348
7789
  </xsl:when>
7349
7790
  <xsl:when test="$format = 'short' or $day = ''">
7350
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
7791
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $year))"/>
7351
7792
  </xsl:when>
7352
7793
  <xsl:otherwise>
7353
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
7794
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $day, ', ' , $year))"/>
7354
7795
  </xsl:otherwise>
7355
7796
  </xsl:choose>
7356
7797
  </xsl:variable>
@@ -7403,13 +7844,8 @@
7403
7844
  <xsl:variable name="title">
7404
7845
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7405
7846
 
7406
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
7407
-
7408
-
7409
-
7410
-
7411
-
7412
-
7847
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang and @type = 'main']"/>
7848
+
7413
7849
  </xsl:for-each>
7414
7850
  </xsl:variable>
7415
7851
  <xsl:choose>
@@ -7424,21 +7860,18 @@
7424
7860
  <dc:creator>
7425
7861
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
7426
7862
 
7427
- <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
7428
- <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
7429
- <xsl:if test="position() != last()">; </xsl:if>
7430
- </xsl:for-each>
7431
-
7432
-
7433
-
7863
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
7864
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
7865
+ <xsl:if test="position() != last()">; </xsl:if>
7866
+ </xsl:for-each>
7867
+
7434
7868
  </xsl:for-each>
7435
7869
  </dc:creator>
7436
7870
  <dc:description>
7437
7871
  <xsl:variable name="abstract">
7438
7872
 
7439
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
7440
-
7441
-
7873
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
7874
+
7442
7875
  </xsl:variable>
7443
7876
  <xsl:value-of select="normalize-space($abstract)"/>
7444
7877
  </dc:description>
@@ -7458,7 +7891,6 @@
7458
7891
  <xsl:value-of select="../@id"/>
7459
7892
  </xsl:when>
7460
7893
  <xsl:otherwise>
7461
- <!-- <xsl:value-of select="concat(local-name(..), '_', text())"/> -->
7462
7894
  <xsl:value-of select="concat(generate-id(..), '_', text())"/>
7463
7895
  </xsl:otherwise>
7464
7896
  </xsl:choose>
@@ -7484,9 +7916,6 @@
7484
7916
  <xsl:when test="ancestor::*[local-name() = 'preface']">
7485
7917
  <xsl:value-of select="$level_total - 2"/>
7486
7918
  </xsl:when>
7487
- <!-- <xsl:when test="parent::*[local-name() = 'sections']">
7488
- <xsl:value-of select="$level_total - 1"/>
7489
- </xsl:when> -->
7490
7919
  <xsl:when test="ancestor::*[local-name() = 'sections']">
7491
7920
  <xsl:value-of select="$level_total - 1"/>
7492
7921
  </xsl:when>
@@ -7628,9 +8057,15 @@
7628
8057
  </xsl:template><xsl:template name="getLocalizedString">
7629
8058
  <xsl:param name="key"/>
7630
8059
  <xsl:param name="formatted">false</xsl:param>
8060
+ <xsl:param name="lang"/>
7631
8061
 
7632
8062
  <xsl:variable name="curr_lang">
7633
- <xsl:call-template name="getLang"/>
8063
+ <xsl:choose>
8064
+ <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
8065
+ <xsl:otherwise>
8066
+ <xsl:call-template name="getLang"/>
8067
+ </xsl:otherwise>
8068
+ </xsl:choose>
7634
8069
  </xsl:variable>
7635
8070
 
7636
8071
  <xsl:variable name="data_value">
@@ -7670,7 +8105,6 @@
7670
8105
  <xsl:value-of select="$key_"/>
7671
8106
  </xsl:otherwise>
7672
8107
  </xsl:choose>
7673
-
7674
8108
  </xsl:template><xsl:template name="setTrackChangesStyles">
7675
8109
  <xsl:param name="isAdded"/>
7676
8110
  <xsl:param name="isDeleted"/>
@@ -7693,7 +8127,6 @@
7693
8127
  <xsl:if test="local-name() = 'table'">
7694
8128
  <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
7695
8129
  </xsl:if>
7696
- <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
7697
8130
  <xsl:attribute name="padding">2mm</xsl:attribute>
7698
8131
  </xsl:if>
7699
8132
  </xsl:otherwise>
@@ -7713,15 +8146,18 @@
7713
8146
  </xsl:choose>
7714
8147
  </xsl:template><xsl:template name="setTextAlignment">
7715
8148
  <xsl:param name="default">left</xsl:param>
8149
+ <xsl:variable name="align" select="normalize-space(@align)"/>
7716
8150
  <xsl:attribute name="text-align">
7717
8151
  <xsl:choose>
7718
- <xsl:when test="@align and not(@align = 'indent')"><xsl:value-of select="@align"/></xsl:when>
8152
+ <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
8153
+ <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
8154
+ <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
7719
8155
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
7720
8156
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
7721
8157
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
7722
8158
  </xsl:choose>
7723
8159
  </xsl:attribute>
7724
- <xsl:if test="@align = 'indent'">
8160
+ <xsl:if test="$align = 'indent'">
7725
8161
  <xsl:attribute name="margin-left">7mm</xsl:attribute>
7726
8162
  </xsl:if>
7727
8163
  </xsl:template><xsl:template name="number-to-words">
@@ -7820,4 +8256,14 @@
7820
8256
  </xsl:otherwise>
7821
8257
  </xsl:choose>
7822
8258
  </xsl:if>
8259
+ </xsl:template><xsl:template name="setAltText">
8260
+ <xsl:param name="value"/>
8261
+ <xsl:attribute name="fox:alt-text">
8262
+ <xsl:choose>
8263
+ <xsl:when test="normalize-space($value) != ''">
8264
+ <xsl:value-of select="$value"/>
8265
+ </xsl:when>
8266
+ <xsl:otherwise>_</xsl:otherwise>
8267
+ </xsl:choose>
8268
+ </xsl:attribute>
7823
8269
  </xsl:template></xsl:stylesheet>