metanorma-ogc 2.3.9 → 2.3.11

Sign up to get free protection for your applications and to get access to all the features.
@@ -423,174 +423,24 @@
423
423
  </fo:block>
424
424
  </fo:block-container>
425
425
 
426
- <fo:block color="{$color_blue}">
426
+ <!-- Contents, Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
427
427
 
428
- <xsl:variable name="title-toc">
429
- <xsl:call-template name="getTitle">
430
- <xsl:with-param name="name" select="'title-toc'"/>
431
- </xsl:call-template>
432
- </xsl:variable>
433
-
434
- <fo:block-container margin-left="-18mm">
435
- <fo:block-container margin-left="0mm">
436
- <fo:block margin-bottom="40pt">
437
- <fo:block font-size="33pt" margin-bottom="4pt" role="H1">
438
- <xsl:call-template name="addLetterSpacing">
439
- <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($title-toc))"/>
440
- <xsl:with-param name="letter-spacing" select="1.1"/>
441
- </xsl:call-template>
442
- </fo:block>
443
- <fo:block-container width="22.5mm" border-bottom="2pt solid {$color_design}">
444
- <fo:block margin-top="4pt"> </fo:block>
445
- </fo:block-container>
446
- </fo:block>
447
- </fo:block-container>
448
- </fo:block-container>
449
-
450
- <fo:block-container line-height="130%">
451
- <fo:block role="TOC">
452
- <xsl:for-each select="$contents//item[@display = 'true' and normalize-space(@id) != '']">
453
-
454
- <fo:block role="TOCI">
455
- <xsl:if test="@level = 1">
456
- <xsl:attribute name="margin-top">14pt</xsl:attribute>
457
- </xsl:if>
458
- <xsl:if test="@level = 1 or @parent = 'annex'">
459
- <xsl:attribute name="font-size">12pt</xsl:attribute>
460
- </xsl:if>
461
- <xsl:if test="@level &gt;= 2"> <!-- and not(@parent = 'annex') -->
462
- <xsl:attribute name="font-size">10pt</xsl:attribute>
463
- </xsl:if>
428
+ <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
429
+ <xsl:sort select="@displayorder" data-type="number"/>
464
430
 
465
- <xsl:choose>
466
- <xsl:when test="@level = 1">
467
- <fo:list-block provisional-distance-between-starts="8mm">
468
- <xsl:if test="@type = 'annex'">
469
- <xsl:attribute name="provisional-distance-between-starts">0mm</xsl:attribute>
470
- </xsl:if>
471
- <fo:list-item>
472
- <fo:list-item-label end-indent="label-end()">
473
- <fo:block>
474
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
475
- </fo:block>
476
- </fo:list-item-label>
477
- <fo:list-item-body start-indent="body-start()">
478
- <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
479
- <fo:basic-link internal-destination="{@id}">
480
- <xsl:call-template name="setAltText">
481
- <xsl:with-param name="value" select="text()"/>
482
- </xsl:call-template>
483
- <xsl:variable name="sectionTitle">
484
- <xsl:apply-templates select="title"/>
485
- </xsl:variable>
486
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($sectionTitle))"/>
487
- <xsl:text> </xsl:text>
488
- <fo:inline keep-together.within-line="always">
489
- <fo:leader leader-pattern="dots"/>
490
- <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
491
- </fo:inline>
492
- </fo:basic-link>
493
- </fo:block>
494
- </fo:list-item-body>
495
- </fo:list-item>
496
- </fo:list-block>
497
- </xsl:when>
498
- <xsl:otherwise>
499
- <xsl:variable name="margin-left">
500
- <xsl:choose>
501
- <xsl:when test="number(@level) != 'NaN'"><xsl:value-of select="(@level - 1) * 8"/></xsl:when>
502
- <xsl:otherwise>8</xsl:otherwise>
503
- </xsl:choose>
504
- </xsl:variable>
505
- <fo:block text-align-last="justify" margin-left="{$margin-left}mm">
506
- <fo:basic-link internal-destination="{@id}">
507
- <xsl:call-template name="setAltText">
508
- <xsl:with-param name="value" select="text()"/>
509
- </xsl:call-template>
510
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
511
- <xsl:text> </xsl:text>
512
- <xsl:apply-templates select="title"/>
513
- <xsl:text> </xsl:text>
514
- <fo:inline keep-together.within-line="always">
515
- <fo:leader leader-pattern="dots"/>
516
- <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
517
- </fo:inline>
518
- </fo:basic-link>
519
- </fo:block>
520
- </xsl:otherwise>
521
- </xsl:choose>
522
-
523
- </fo:block>
524
- </xsl:for-each>
525
- </fo:block>
526
- </fo:block-container>
527
-
528
- <!-- List of Tables -->
529
- <xsl:if test="$contents//tables/table">
530
- <xsl:call-template name="insertListOf_Title">
531
- <xsl:with-param name="title" select="$title-list-tables"/>
532
- </xsl:call-template>
533
- <fo:block-container line-height="130%">
534
- <xsl:for-each select="$contents//tables/table">
535
- <xsl:call-template name="insertListOf_Item"/>
536
- </xsl:for-each>
537
- </fo:block-container>
431
+ <xsl:if test="local-name() = 'foreword' or (local-name() = 'clause' and @type = 'security') or (local-name() = 'clause' and @type = 'submitting_orgs') or local-name() = 'introduction'">
432
+ <fo:block break-after="page"/>
538
433
  </xsl:if>
539
434
 
540
- <!-- List of Figures -->
541
- <xsl:if test="$contents//figures/figure">
542
- <xsl:call-template name="insertListOf_Title">
543
- <xsl:with-param name="title" select="$title-list-figures"/>
544
- </xsl:call-template>
545
- <fo:block-container line-height="130%">
546
- <xsl:for-each select="$contents//figures/figure">
547
- <xsl:call-template name="insertListOf_Item"/>
548
- </xsl:for-each>
549
- </fo:block-container>
550
- </xsl:if>
551
-
552
- <!-- List of Recommendations -->
553
- <xsl:if test="//ogc:table[.//ogc:p[@class = 'RecommendationTitle']]">
554
- <xsl:call-template name="insertListOf_Title">
555
- <xsl:with-param name="title" select="$title-list-recommendations"/>
556
- </xsl:call-template>
557
- <fo:block-container line-height="130%">
558
- <xsl:for-each select="xalan:nodeset($toc_recommendations)/*[normalize-space(@id) != '']">
559
- <fo:block text-align-last="justify" margin-top="6pt" role="TOCI">
560
- <fo:basic-link internal-destination="{@id}">
561
- <xsl:call-template name="setAltText">
562
- <xsl:with-param name="value" select="@alt-text"/>
563
- </xsl:call-template>
564
- <xsl:copy-of select="title/node()"/>
565
- <xsl:text> </xsl:text>
566
- <fo:inline keep-together.within-line="always">
567
- <fo:leader leader-pattern="dots"/>
568
- <fo:page-number-citation ref-id="{@id}"/>
569
- </fo:inline>
570
- </fo:basic-link>
571
- </fo:block>
572
- </xsl:for-each>
573
- </fo:block-container>
574
- </xsl:if>
575
-
576
- </fo:block>
577
-
578
- <fo:block break-after="page"/>
579
-
580
- <fo:block line-height="125%">
581
- <!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
582
-
583
- <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
584
- <xsl:sort select="@displayorder" data-type="number"/>
585
-
586
- <xsl:if test="local-name() = 'foreword' or (local-name() = 'clause' and @type = 'security') or (local-name() = 'clause' and @type = 'submitting_orgs') or local-name() = 'introduction'">
587
- <fo:block break-after="page"/>
435
+ <fo:block>
436
+ <xsl:if test="not(local-name() = 'clause' and @type = 'toc')">
437
+ <xsl:attribute name="line-height">125%</xsl:attribute>
588
438
  </xsl:if>
589
439
 
590
440
  <xsl:apply-templates select="."/>
591
- </xsl:for-each>
441
+ </fo:block>
442
+ </xsl:for-each>
592
443
 
593
- </fo:block>
594
444
  </fo:flow>
595
445
  </fo:page-sequence>
596
446
 
@@ -656,6 +506,170 @@
656
506
  </fo:block>
657
507
  </xsl:template>
658
508
 
509
+ <xsl:template match="ogc:preface/ogc:clause[@type = 'toc']" priority="4">
510
+ <fo:block color="{$color_blue}">
511
+
512
+ <xsl:apply-templates/>
513
+
514
+ <xsl:if test="count(*) = 1 and *[local-name() = 'title']"> <!-- if there isn't user ToC -->
515
+
516
+ <fo:block-container line-height="130%">
517
+ <fo:block role="TOC">
518
+ <xsl:for-each select="$contents//item[@display = 'true' and normalize-space(@id) != '']">
519
+
520
+ <fo:block role="TOCI">
521
+ <xsl:if test="@level = 1">
522
+ <xsl:attribute name="margin-top">14pt</xsl:attribute>
523
+ </xsl:if>
524
+ <xsl:if test="@level = 1 or @parent = 'annex'">
525
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
526
+ </xsl:if>
527
+ <xsl:if test="@level &gt;= 2"> <!-- and not(@parent = 'annex') -->
528
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
529
+ </xsl:if>
530
+
531
+ <xsl:choose>
532
+ <xsl:when test="@level = 1">
533
+ <fo:list-block provisional-distance-between-starts="8mm">
534
+ <xsl:if test="@type = 'annex'">
535
+ <xsl:attribute name="provisional-distance-between-starts">0mm</xsl:attribute>
536
+ </xsl:if>
537
+ <fo:list-item>
538
+ <fo:list-item-label end-indent="label-end()">
539
+ <fo:block>
540
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
541
+ </fo:block>
542
+ </fo:list-item-label>
543
+ <fo:list-item-body start-indent="body-start()">
544
+ <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
545
+ <fo:basic-link internal-destination="{@id}">
546
+ <xsl:call-template name="setAltText">
547
+ <xsl:with-param name="value" select="text()"/>
548
+ </xsl:call-template>
549
+ <xsl:variable name="sectionTitle">
550
+ <xsl:apply-templates select="title"/>
551
+ </xsl:variable>
552
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($sectionTitle))"/>
553
+ <xsl:text> </xsl:text>
554
+ <fo:inline keep-together.within-line="always">
555
+ <fo:leader leader-pattern="dots"/>
556
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
557
+ </fo:inline>
558
+ </fo:basic-link>
559
+ </fo:block>
560
+ </fo:list-item-body>
561
+ </fo:list-item>
562
+ </fo:list-block>
563
+ </xsl:when>
564
+ <xsl:otherwise>
565
+ <xsl:variable name="margin-left">
566
+ <xsl:choose>
567
+ <xsl:when test="number(@level) != 'NaN'"><xsl:value-of select="(@level - 1) * 8"/></xsl:when>
568
+ <xsl:otherwise>8</xsl:otherwise>
569
+ </xsl:choose>
570
+ </xsl:variable>
571
+ <fo:block text-align-last="justify" margin-left="{$margin-left}mm">
572
+ <fo:basic-link internal-destination="{@id}">
573
+ <xsl:call-template name="setAltText">
574
+ <xsl:with-param name="value" select="text()"/>
575
+ </xsl:call-template>
576
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@section))"/>
577
+ <xsl:text> </xsl:text>
578
+ <xsl:apply-templates select="title"/>
579
+ <xsl:text> </xsl:text>
580
+ <fo:inline keep-together.within-line="always">
581
+ <fo:leader leader-pattern="dots"/>
582
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
583
+ </fo:inline>
584
+ </fo:basic-link>
585
+ </fo:block>
586
+ </xsl:otherwise>
587
+ </xsl:choose>
588
+
589
+ </fo:block>
590
+ </xsl:for-each>
591
+ </fo:block>
592
+ </fo:block-container>
593
+
594
+ <!-- List of Tables -->
595
+ <xsl:if test="$contents//tables/table">
596
+ <xsl:call-template name="insertListOf_Title">
597
+ <xsl:with-param name="title" select="$title-list-tables"/>
598
+ </xsl:call-template>
599
+ <fo:block-container line-height="130%">
600
+ <xsl:for-each select="$contents//tables/table">
601
+ <xsl:call-template name="insertListOf_Item"/>
602
+ </xsl:for-each>
603
+ </fo:block-container>
604
+ </xsl:if>
605
+
606
+ <!-- List of Figures -->
607
+ <xsl:if test="$contents//figures/figure">
608
+ <xsl:call-template name="insertListOf_Title">
609
+ <xsl:with-param name="title" select="$title-list-figures"/>
610
+ </xsl:call-template>
611
+ <fo:block-container line-height="130%">
612
+ <xsl:for-each select="$contents//figures/figure">
613
+ <xsl:call-template name="insertListOf_Item"/>
614
+ </xsl:for-each>
615
+ </fo:block-container>
616
+ </xsl:if>
617
+
618
+ <!-- List of Recommendations -->
619
+ <xsl:if test="//ogc:table[.//ogc:p[@class = 'RecommendationTitle']]">
620
+ <xsl:call-template name="insertListOf_Title">
621
+ <xsl:with-param name="title" select="$title-list-recommendations"/>
622
+ </xsl:call-template>
623
+ <fo:block-container line-height="130%">
624
+ <xsl:for-each select="xalan:nodeset($toc_recommendations)/*[normalize-space(@id) != '']">
625
+ <fo:block text-align-last="justify" margin-top="6pt" role="TOCI">
626
+ <fo:basic-link internal-destination="{@id}">
627
+ <xsl:call-template name="setAltText">
628
+ <xsl:with-param name="value" select="@alt-text"/>
629
+ </xsl:call-template>
630
+ <xsl:copy-of select="title/node()"/>
631
+ <xsl:text> </xsl:text>
632
+ <fo:inline keep-together.within-line="always">
633
+ <fo:leader leader-pattern="dots"/>
634
+ <fo:page-number-citation ref-id="{@id}"/>
635
+ </fo:inline>
636
+ </fo:basic-link>
637
+ </fo:block>
638
+ </xsl:for-each>
639
+ </fo:block-container>
640
+ </xsl:if>
641
+ </xsl:if>
642
+ </fo:block>
643
+
644
+ <fo:block break-after="page"/>
645
+
646
+ </xsl:template>
647
+
648
+ <xsl:template match="ogc:preface/ogc:clause[@type = 'toc']/ogc:title" priority="3">
649
+ <xsl:variable name="title-toc">
650
+ <xsl:apply-templates/>
651
+ <!-- <xsl:call-template name="getTitle">
652
+ <xsl:with-param name="name" select="'title-toc'"/>
653
+ </xsl:call-template> -->
654
+ </xsl:variable>
655
+
656
+ <fo:block-container margin-left="-18mm">
657
+ <fo:block-container margin-left="0mm">
658
+ <fo:block margin-bottom="40pt">
659
+ <fo:block font-size="33pt" margin-bottom="4pt" role="H1">
660
+ <xsl:call-template name="addLetterSpacing">
661
+ <xsl:with-param name="text" select="java:toUpperCase(java:java.lang.String.new($title-toc))"/>
662
+ <xsl:with-param name="letter-spacing" select="1.1"/>
663
+ </xsl:call-template>
664
+ </fo:block>
665
+ <fo:block-container width="22.5mm" border-bottom="2pt solid {$color_design}">
666
+ <fo:block margin-top="4pt"> </fo:block>
667
+ </fo:block-container>
668
+ </fo:block>
669
+ </fo:block-container>
670
+ </fo:block-container>
671
+ </xsl:template>
672
+
659
673
  <!-- Lato font doesn't contain 'thin space' glyph -->
660
674
  <xsl:template match="text()" priority="1">
661
675
  <xsl:value-of select="translate(., $thin_space, ' ')"/>
@@ -667,11 +681,15 @@
667
681
 
668
682
  <xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text()" priority="2">
669
683
  <xsl:variable name="content">
670
- <xsl:call-template name="add-zero-spaces"/>
684
+ <xsl:call-template name="add-zero-spaces-java"/>
671
685
  </xsl:variable>
672
686
  <!-- add zero-width space in the words like 'adeOfAbstractTransportaonSpace' to split it in the table's cell -->
673
687
  <xsl:variable name="content2" select="java:replaceAll(java:java.lang.String.new($content),'([a-z]{2,})([A-Z])(.?)','$1​$2$3')"/>
674
- <xsl:value-of select="translate($content2, $thin_space, ' ')"/>
688
+
689
+ <!-- add zero-width space (#x200B) before character '(' if preceding and following are word chars -->
690
+ <xsl:variable name="content3" select="java:replaceAll(java:java.lang.String.new($content2), '(\w)(\()(\w)', '$1​$2$3')"/>
691
+
692
+ <xsl:value-of select="translate($content3, $thin_space, ' ')"/>
675
693
  </xsl:template>
676
694
 
677
695
  <xsl:template match="node()" mode="sections">
@@ -739,7 +757,7 @@
739
757
  <!-- ============================= -->
740
758
 
741
759
  <!-- element with title -->
742
- <xsl:template match="*[ogc:title]" mode="contents">
760
+ <xsl:template match="*[ogc:title][not(@type = 'toc')]" mode="contents">
743
761
  <xsl:variable name="level">
744
762
  <xsl:call-template name="getLevel">
745
763
  <xsl:with-param name="depth" select="ogc:title/@depth"/>
@@ -1883,6 +1901,10 @@
1883
1901
 
1884
1902
  </xsl:attribute-set>
1885
1903
 
1904
+ <xsl:template name="refine_link-style">
1905
+
1906
+ </xsl:template> <!-- refine_link-style -->
1907
+
1886
1908
  <xsl:attribute-set name="sourcecode-container-style">
1887
1909
 
1888
1910
  </xsl:attribute-set>
@@ -1898,6 +1920,14 @@
1898
1920
 
1899
1921
  </xsl:attribute-set>
1900
1922
 
1923
+ <xsl:template name="refine_sourcecode-style">
1924
+
1925
+ <xsl:if test="parent::*[local-name() = 'example']">
1926
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
1927
+ </xsl:if>
1928
+
1929
+ </xsl:template> <!-- refine_sourcecode-style -->
1930
+
1901
1931
  <xsl:attribute-set name="pre-style">
1902
1932
  <xsl:attribute name="font-family">Courier New, <xsl:value-of select="$font_noto_sans_mono"/></xsl:attribute>
1903
1933
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
@@ -2020,6 +2050,10 @@
2020
2050
 
2021
2051
  </xsl:attribute-set> <!-- example-style -->
2022
2052
 
2053
+ <xsl:template name="refine_example-style">
2054
+
2055
+ </xsl:template> <!-- refine_example-style -->
2056
+
2023
2057
  <xsl:attribute-set name="example-body-style">
2024
2058
 
2025
2059
  </xsl:attribute-set> <!-- example-body-style -->
@@ -2036,6 +2070,10 @@
2036
2070
 
2037
2071
  </xsl:attribute-set> <!-- example-p-style -->
2038
2072
 
2073
+ <xsl:template name="refine_example-p-style">
2074
+
2075
+ </xsl:template> <!-- refine_example-p-style -->
2076
+
2039
2077
  <xsl:attribute-set name="termexample-name-style">
2040
2078
 
2041
2079
  <xsl:attribute name="padding-right">10mm</xsl:attribute>
@@ -2063,12 +2101,29 @@
2063
2101
 
2064
2102
  </xsl:attribute-set> <!-- table-container-style -->
2065
2103
 
2104
+ <xsl:template name="refine_table-container-style">
2105
+ <xsl:param name="margin-side"/>
2106
+
2107
+ <!-- <xsl:if test="ancestor::*[local-name()='sections']"> -->
2108
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
2109
+ <!-- </xsl:if> -->
2110
+
2111
+ <!-- end table block-container attributes -->
2112
+ </xsl:template> <!-- refine_table-container-style -->
2113
+
2066
2114
  <xsl:attribute-set name="table-style">
2067
2115
  <xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
2068
2116
  <xsl:attribute name="table-layout">fixed</xsl:attribute>
2069
2117
 
2070
2118
  </xsl:attribute-set><!-- table-style -->
2071
2119
 
2120
+ <xsl:template name="refine_table-style">
2121
+ <xsl:param name="margin-side"/>
2122
+
2123
+ <xsl:call-template name="setBordersTableArray"/>
2124
+
2125
+ </xsl:template> <!-- refine_table-style -->
2126
+
2072
2127
  <xsl:attribute-set name="table-name-style">
2073
2128
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
2074
2129
 
@@ -2080,6 +2135,11 @@
2080
2135
 
2081
2136
  </xsl:attribute-set> <!-- table-name-style -->
2082
2137
 
2138
+ <xsl:template name="refine_table-name-style">
2139
+ <xsl:param name="continued"/>
2140
+
2141
+ </xsl:template> <!-- refine_table-name-style -->
2142
+
2083
2143
  <xsl:attribute-set name="table-row-style">
2084
2144
  <xsl:attribute name="min-height">4mm</xsl:attribute>
2085
2145
 
@@ -2095,14 +2155,38 @@
2095
2155
 
2096
2156
  </xsl:attribute-set>
2097
2157
 
2158
+ <xsl:template name="refine_table-header-row-style">
2159
+
2160
+ <xsl:call-template name="setBordersTableArray"/>
2161
+
2162
+ </xsl:template> <!-- refine_table-header-row-style -->
2163
+
2098
2164
  <xsl:attribute-set name="table-footer-row-style" use-attribute-sets="table-row-style">
2099
2165
 
2100
2166
  </xsl:attribute-set>
2101
2167
 
2168
+ <xsl:template name="refine_table-footer-row-style">
2169
+
2170
+ </xsl:template> <!-- refine_table-footer-row-style -->
2171
+
2102
2172
  <xsl:attribute-set name="table-body-row-style" use-attribute-sets="table-row-style">
2103
2173
 
2104
2174
  </xsl:attribute-set>
2105
2175
 
2176
+ <xsl:template name="refine_table-body-row-style">
2177
+
2178
+ <xsl:call-template name="setBordersTableArray"/>
2179
+
2180
+ <xsl:variable name="number"><xsl:number/></xsl:variable>
2181
+ <xsl:attribute name="background-color">
2182
+ <xsl:choose>
2183
+ <xsl:when test="$number mod 2 = 0">rgb(252, 246, 222)</xsl:when>
2184
+ <xsl:otherwise>rgb(254, 252, 245)</xsl:otherwise>
2185
+ </xsl:choose>
2186
+ </xsl:attribute>
2187
+
2188
+ </xsl:template> <!-- refine_table-body-row-style -->
2189
+
2106
2190
  <xsl:attribute-set name="table-header-cell-style">
2107
2191
  <xsl:attribute name="font-weight">bold</xsl:attribute>
2108
2192
  <xsl:attribute name="padding-left">1mm</xsl:attribute>
@@ -2115,6 +2199,24 @@
2115
2199
 
2116
2200
  </xsl:attribute-set> <!-- table-header-cell-style -->
2117
2201
 
2202
+ <xsl:template name="refine_table-header-cell-style">
2203
+
2204
+ <xsl:call-template name="setBordersTableArray"/>
2205
+
2206
+ <xsl:if test="starts-with(ancestor::*[local-name() = 'table'][1]/@type, 'recommend') and normalize-space(@align) = ''">
2207
+ <xsl:call-template name="setTextAlignment">
2208
+ <xsl:with-param name="default">left</xsl:with-param>
2209
+ </xsl:call-template>
2210
+ </xsl:if>
2211
+
2212
+ <xsl:if test="$lang = 'ar'">
2213
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
2214
+ </xsl:if>
2215
+
2216
+ <xsl:call-template name="setTableCellAttributes"/>
2217
+
2218
+ </xsl:template> <!-- refine_table-header-cell-style -->
2219
+
2118
2220
  <xsl:attribute-set name="table-cell-style">
2119
2221
  <xsl:attribute name="display-align">center</xsl:attribute>
2120
2222
  <xsl:attribute name="padding-left">1mm</xsl:attribute>
@@ -2126,6 +2228,18 @@
2126
2228
 
2127
2229
  </xsl:attribute-set> <!-- table-cell-style -->
2128
2230
 
2231
+ <xsl:template name="refine_table-cell-style">
2232
+
2233
+ <xsl:if test="$lang = 'ar'">
2234
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
2235
+ </xsl:if>
2236
+
2237
+ <!-- bsi -->
2238
+
2239
+ <xsl:call-template name="setBordersTableArray"/>
2240
+
2241
+ </xsl:template> <!-- refine_table-cell-style -->
2242
+
2129
2243
  <xsl:attribute-set name="table-footer-cell-style">
2130
2244
  <xsl:attribute name="border">solid black 1pt</xsl:attribute>
2131
2245
  <xsl:attribute name="padding-left">1mm</xsl:attribute>
@@ -2136,12 +2250,20 @@
2136
2250
 
2137
2251
  </xsl:attribute-set> <!-- table-footer-cell-style -->
2138
2252
 
2253
+ <xsl:template name="refine_table-footer-cell-style">
2254
+
2255
+ </xsl:template> <!-- refine_table-footer-cell-style -->
2256
+
2139
2257
  <xsl:attribute-set name="table-note-style">
2140
2258
  <xsl:attribute name="font-size">10pt</xsl:attribute>
2141
2259
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2142
2260
 
2143
2261
  </xsl:attribute-set><!-- table-note-style -->
2144
2262
 
2263
+ <xsl:template name="refine_table-note-style">
2264
+
2265
+ </xsl:template> <!-- refine_table-note-style -->
2266
+
2145
2267
  <xsl:attribute-set name="table-fn-style">
2146
2268
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2147
2269
 
@@ -2205,6 +2327,15 @@
2205
2327
 
2206
2328
  </xsl:attribute-set>
2207
2329
 
2330
+ <xsl:template name="refine_dt-cell-style">
2331
+
2332
+ <xsl:if test="not(ancestor::ogc:sourcecode)">
2333
+ <!-- <xsl:attribute name="border-left">1pt solid <xsl:value-of select="$color_design"/></xsl:attribute> -->
2334
+ <xsl:attribute name="background-color"><xsl:value-of select="$color_dl_dt"/></xsl:attribute>
2335
+ </xsl:if>
2336
+
2337
+ </xsl:template> <!-- refine_dt-cell-style -->
2338
+
2208
2339
  <xsl:attribute-set name="dt-block-style">
2209
2340
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
2210
2341
 
@@ -2212,6 +2343,17 @@
2212
2343
 
2213
2344
  </xsl:attribute-set>
2214
2345
 
2346
+ <xsl:template name="refine_dt-block-style">
2347
+
2348
+ <xsl:if test="ancestor::ogc:sourcecode">
2349
+ <xsl:attribute name="margin-bottom">2pt</xsl:attribute>
2350
+ </xsl:if>
2351
+ <xsl:if test="not(following-sibling::ogc:dt)"> <!-- last dt -->
2352
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
2353
+ </xsl:if>
2354
+
2355
+ </xsl:template> <!-- refine_dt-block-style -->
2356
+
2215
2357
  <xsl:attribute-set name="dl-name-style">
2216
2358
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
2217
2359
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
@@ -2228,6 +2370,14 @@
2228
2370
 
2229
2371
  </xsl:attribute-set>
2230
2372
 
2373
+ <xsl:template name="refine_dd-cell-style">
2374
+
2375
+ <xsl:if test="not(ancestor::ogc:sourcecode)">
2376
+ <xsl:attribute name="background-color"><xsl:value-of select="$color_dl_dd"/></xsl:attribute>
2377
+ </xsl:if>
2378
+
2379
+ </xsl:template> <!-- refine_dd-cell-style -->
2380
+
2231
2381
  <!-- ========================== -->
2232
2382
  <!-- END Definition's list styles -->
2233
2383
  <!-- ========================== -->
@@ -2250,7 +2400,6 @@
2250
2400
  </xsl:attribute-set>
2251
2401
 
2252
2402
  <xsl:attribute-set name="xref-style">
2253
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
2254
2403
 
2255
2404
  </xsl:attribute-set>
2256
2405
 
@@ -2258,6 +2407,12 @@
2258
2407
 
2259
2408
  </xsl:attribute-set>
2260
2409
 
2410
+ <xsl:template name="refine_eref-style">
2411
+ <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
2412
+ <xsl:variable name="text" select="normalize-space()"/>
2413
+
2414
+ </xsl:template> <!-- refine_eref-style -->
2415
+
2261
2416
  <xsl:attribute-set name="note-style">
2262
2417
 
2263
2418
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
@@ -2265,6 +2420,14 @@
2265
2420
 
2266
2421
  </xsl:attribute-set>
2267
2422
 
2423
+ <xsl:template name="refine_note-style">
2424
+
2425
+ <xsl:if test="ancestor::ogc:ul or ancestor::ogc:ol and not(ancestor::ogc:note[1]/following-sibling::*)">
2426
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2427
+ </xsl:if>
2428
+
2429
+ </xsl:template>
2430
+
2268
2431
  <xsl:variable name="note-body-indent">10mm</xsl:variable>
2269
2432
  <xsl:variable name="note-body-indent-table">5mm</xsl:variable>
2270
2433
 
@@ -2275,11 +2438,19 @@
2275
2438
 
2276
2439
  </xsl:attribute-set>
2277
2440
 
2441
+ <xsl:template name="refine_note-name-style">
2442
+
2443
+ </xsl:template> <!-- refine_note-name-style -->
2444
+
2278
2445
  <xsl:attribute-set name="table-note-name-style">
2279
2446
  <xsl:attribute name="padding-right">2mm</xsl:attribute>
2280
2447
 
2281
2448
  </xsl:attribute-set>
2282
2449
 
2450
+ <xsl:template name="refine_table-note-name-style">
2451
+
2452
+ </xsl:template> <!-- refine_table-note-name-style -->
2453
+
2283
2454
  <xsl:attribute-set name="note-p-style">
2284
2455
 
2285
2456
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
@@ -2294,6 +2465,10 @@
2294
2465
 
2295
2466
  </xsl:attribute-set>
2296
2467
 
2468
+ <xsl:template name="refine_termnote-style">
2469
+
2470
+ </xsl:template> <!-- refine_termnote-style -->
2471
+
2297
2472
  <xsl:attribute-set name="termnote-name-style">
2298
2473
 
2299
2474
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -2301,6 +2476,10 @@
2301
2476
 
2302
2477
  </xsl:attribute-set>
2303
2478
 
2479
+ <xsl:template name="refine_termnote-name-style">
2480
+
2481
+ </xsl:template>
2482
+
2304
2483
  <xsl:attribute-set name="termnote-p-style">
2305
2484
 
2306
2485
  <xsl:attribute name="space-before">4pt</xsl:attribute>
@@ -2316,6 +2495,10 @@
2316
2495
 
2317
2496
  </xsl:attribute-set>
2318
2497
 
2498
+ <xsl:template name="refine_quote-style">
2499
+
2500
+ </xsl:template>
2501
+
2319
2502
  <xsl:attribute-set name="quote-source-style">
2320
2503
  <xsl:attribute name="text-align">right</xsl:attribute>
2321
2504
 
@@ -2330,6 +2513,10 @@
2330
2513
 
2331
2514
  </xsl:attribute-set>
2332
2515
 
2516
+ <xsl:template name="refine_termsource-style">
2517
+
2518
+ </xsl:template> <!-- refine_termsource-style -->
2519
+
2333
2520
  <xsl:attribute-set name="termsource-text-style">
2334
2521
 
2335
2522
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
@@ -2372,6 +2559,10 @@
2372
2559
 
2373
2560
  </xsl:attribute-set>
2374
2561
 
2562
+ <xsl:template name="refine_figure-name-style">
2563
+
2564
+ </xsl:template> <!-- refine_figure-name-style -->
2565
+
2375
2566
  <xsl:attribute-set name="figure-source-style">
2376
2567
 
2377
2568
  </xsl:attribute-set>
@@ -2390,6 +2581,10 @@
2390
2581
 
2391
2582
  </xsl:attribute-set> <!-- formula-stem-block-style -->
2392
2583
 
2584
+ <xsl:template name="refine_formula-stem-block-style">
2585
+
2586
+ </xsl:template> <!-- refine_formula-stem-block-style -->
2587
+
2393
2588
  <xsl:attribute-set name="formula-stem-number-style">
2394
2589
  <xsl:attribute name="text-align">right</xsl:attribute>
2395
2590
 
@@ -2404,6 +2599,10 @@
2404
2599
 
2405
2600
  </xsl:attribute-set>
2406
2601
 
2602
+ <xsl:template name="refine_image-style">
2603
+
2604
+ </xsl:template>
2605
+
2407
2606
  <xsl:attribute-set name="figure-pseudocode-p-style">
2408
2607
 
2409
2608
  </xsl:attribute-set>
@@ -2496,6 +2695,10 @@
2496
2695
 
2497
2696
  </xsl:attribute-set>
2498
2697
 
2698
+ <xsl:template name="refine_mathml-style">
2699
+
2700
+ </xsl:template>
2701
+
2499
2702
  <xsl:attribute-set name="list-style">
2500
2703
 
2501
2704
  <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
@@ -2504,6 +2707,10 @@
2504
2707
 
2505
2708
  </xsl:attribute-set> <!-- list-style -->
2506
2709
 
2710
+ <xsl:template name="refine_list-style">
2711
+
2712
+ </xsl:template> <!-- refine_list-style -->
2713
+
2507
2714
  <xsl:attribute-set name="list-name-style">
2508
2715
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
2509
2716
 
@@ -2516,16 +2723,36 @@
2516
2723
 
2517
2724
  </xsl:attribute-set>
2518
2725
 
2726
+ <xsl:template name="refine_list-item-style">
2727
+
2728
+ </xsl:template> <!-- refine_list-item-style -->
2729
+
2519
2730
  <xsl:attribute-set name="list-item-label-style">
2520
2731
 
2521
2732
  </xsl:attribute-set>
2522
2733
 
2734
+ <xsl:template name="refine_list-item-label-style">
2735
+
2736
+ </xsl:template> <!-- refine_list-item-label-style -->
2737
+
2523
2738
  <xsl:attribute-set name="list-item-body-style">
2524
2739
 
2525
2740
  <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
2526
2741
 
2527
2742
  </xsl:attribute-set>
2528
2743
 
2744
+ <xsl:template name="refine_list-item-body-style">
2745
+
2746
+ <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2747
+ <xsl:if test="ancestor::ogc:table[not(@class)]">
2748
+ <xsl:attribute name="margin-bottom">1mm</xsl:attribute>
2749
+ </xsl:if>
2750
+ <xsl:if test="not(following-sibling::*) and not(../following-sibling::*)">
2751
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
2752
+ </xsl:if>
2753
+
2754
+ </xsl:template> <!-- refine_list-item-body-style -->
2755
+
2529
2756
  <xsl:attribute-set name="toc-style">
2530
2757
  <xsl:attribute name="line-height">135%</xsl:attribute>
2531
2758
  </xsl:attribute-set>
@@ -2538,6 +2765,10 @@
2538
2765
 
2539
2766
  </xsl:attribute-set>
2540
2767
 
2768
+ <xsl:template name="refine_fn-reference-style">
2769
+
2770
+ </xsl:template> <!-- refine_fn-reference-style -->
2771
+
2541
2772
  <xsl:attribute-set name="fn-style">
2542
2773
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
2543
2774
  </xsl:attribute-set>
@@ -2564,6 +2795,10 @@
2564
2795
 
2565
2796
  </xsl:attribute-set>
2566
2797
 
2798
+ <xsl:template name="refine_fn-body-style">
2799
+
2800
+ </xsl:template> <!-- refine_fn-body-style -->
2801
+
2567
2802
  <xsl:attribute-set name="fn-body-num-style">
2568
2803
  <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
2569
2804
 
@@ -2572,6 +2807,10 @@
2572
2807
 
2573
2808
  </xsl:attribute-set> <!-- fn-body-num-style -->
2574
2809
 
2810
+ <xsl:template name="refine_fn-body-num-style">
2811
+
2812
+ </xsl:template> <!-- refine_fn-body-num-style -->
2813
+
2575
2814
  <!-- admonition -->
2576
2815
  <xsl:attribute-set name="admonition-style">
2577
2816
 
@@ -3242,11 +3481,9 @@
3242
3481
 
3243
3482
  <fo:block-container xsl:use-attribute-sets="table-container-style">
3244
3483
 
3245
- <!-- <xsl:if test="ancestor::*[local-name()='sections']"> -->
3246
- <xsl:attribute name="font-size">9pt</xsl:attribute>
3247
- <!-- </xsl:if> -->
3248
-
3249
- <!-- end table block-container attributes -->
3484
+ <xsl:call-template name="refine_table-container-style">
3485
+ <xsl:with-param name="margin-side" select="$margin-side"/>
3486
+ </xsl:call-template>
3250
3487
 
3251
3488
  <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
3252
3489
 
@@ -3273,7 +3510,9 @@
3273
3510
 
3274
3511
  <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
3275
3512
 
3276
- <xsl:call-template name="setBordersTableArray"/>
3513
+ <xsl:call-template name="refine_table-style">
3514
+ <xsl:with-param name="margin-side" select="$margin-side"/>
3515
+ </xsl:call-template>
3277
3516
 
3278
3517
  </xsl:element>
3279
3518
  </xsl:variable>
@@ -3295,7 +3534,7 @@
3295
3534
  </xsl:attribute>
3296
3535
  </xsl:for-each>
3297
3536
 
3298
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
3537
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
3299
3538
  <xsl:if test="$isNoteOrFnExist = 'true'">
3300
3539
  <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
3301
3540
  </xsl:if>
@@ -3339,7 +3578,7 @@
3339
3578
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
3340
3579
  </xsl:when>
3341
3580
  <xsl:otherwise>
3342
- <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'dl') and not(local-name() = 'source') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer, note, source and dl which render separaterely -->
3581
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'example') and not(local-name() = 'dl') and not(local-name() = 'source') and not(local-name() = 'p') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer, note, source and dl which render separaterely -->
3343
3582
  </xsl:otherwise>
3344
3583
  </xsl:choose>
3345
3584
 
@@ -3426,6 +3665,10 @@
3426
3665
 
3427
3666
  <fo:block xsl:use-attribute-sets="table-name-style">
3428
3667
 
3668
+ <xsl:call-template name="refine_table-name-style">
3669
+ <xsl:with-param name="continued" select="$continued"/>
3670
+ </xsl:call-template>
3671
+
3429
3672
  <xsl:choose>
3430
3673
  <xsl:when test="$continued = 'true'">
3431
3674
 
@@ -3808,6 +4051,8 @@
3808
4051
  <fo:table-row>
3809
4052
  <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">
3810
4053
 
4054
+ <xsl:call-template name="refine_table-header-title-style"/>
4055
+
3811
4056
  <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
3812
4057
  <xsl:with-param name="continued">true</xsl:with-param>
3813
4058
  </xsl:apply-templates>
@@ -3820,6 +4065,10 @@
3820
4065
  </fo:table-row>
3821
4066
  </xsl:template> <!-- table-header-title -->
3822
4067
 
4068
+ <xsl:template name="refine_table-header-title-style">
4069
+
4070
+ </xsl:template> <!-- refine_table-header-title-style -->
4071
+
3823
4072
  <xsl:template match="*[local-name()='thead']" mode="process_tbody">
3824
4073
  <fo:table-body>
3825
4074
  <xsl:apply-templates/>
@@ -3844,7 +4093,7 @@
3844
4093
  <xsl:param name="colwidths"/>
3845
4094
  <xsl:param name="colgroup"/>
3846
4095
 
3847
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source']"/>
4096
+ <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='example'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
3848
4097
 
3849
4098
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
3850
4099
 
@@ -3904,6 +4153,8 @@
3904
4153
  <fo:table-row>
3905
4154
  <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
3906
4155
 
4156
+ <xsl:call-template name="refine_table-footer-cell-style"/>
4157
+
3907
4158
  <xsl:call-template name="setBordersTableArray"/>
3908
4159
 
3909
4160
  <!-- fn will be processed inside 'note' processing -->
@@ -3912,8 +4163,10 @@
3912
4163
 
3913
4164
  <!-- except gb and bsi -->
3914
4165
 
4166
+ <xsl:apply-templates select="../*[local-name()='p']"/>
3915
4167
  <xsl:apply-templates select="../*[local-name()='dl']"/>
3916
4168
  <xsl:apply-templates select="../*[local-name()='note']"/>
4169
+ <xsl:apply-templates select="../*[local-name()='example']"/>
3917
4170
  <xsl:apply-templates select="../*[local-name()='source']"/>
3918
4171
 
3919
4172
  <xsl:variable name="isDisplayRowSeparator">
@@ -3922,7 +4175,7 @@
3922
4175
 
3923
4176
  <!-- horizontal row separator -->
3924
4177
  <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
3925
- <xsl:if test="../*[local-name()='note'] and normalize-space($table_fn_block) != ''">
4178
+ <xsl:if test="(../*[local-name()='note'] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
3926
4179
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
3927
4180
 
3928
4181
  <xsl:call-template name="setBordersTableArray"/>
@@ -4043,7 +4296,7 @@
4043
4296
  <xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
4044
4297
  <fo:table-row xsl:use-attribute-sets="table-header-row-style">
4045
4298
 
4046
- <xsl:call-template name="setBordersTableArray"/>
4299
+ <xsl:call-template name="refine_table-header-row-style"/>
4047
4300
 
4048
4301
  <xsl:call-template name="setTableRowAttributes"/>
4049
4302
 
@@ -4077,6 +4330,8 @@
4077
4330
  <xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
4078
4331
  <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
4079
4332
 
4333
+ <xsl:call-template name="refine_table-footer-row-style"/>
4334
+
4080
4335
  <xsl:call-template name="setTableRowAttributes"/>
4081
4336
  <xsl:apply-templates/>
4082
4337
  </fo:table-row>
@@ -4090,17 +4345,10 @@
4090
4345
  <xsl:attribute name="keep-with-next">always</xsl:attribute>
4091
4346
  </xsl:if>
4092
4347
 
4093
- <xsl:call-template name="setBordersTableArray"/>
4094
-
4095
- <xsl:variable name="number"><xsl:number/></xsl:variable>
4096
- <xsl:attribute name="background-color">
4097
- <xsl:choose>
4098
- <xsl:when test="$number mod 2 = 0">rgb(252, 246, 222)</xsl:when>
4099
- <xsl:otherwise>rgb(254, 252, 245)</xsl:otherwise>
4100
- </xsl:choose>
4101
- </xsl:attribute>
4348
+ <xsl:call-template name="refine_table-body-row-style"/>
4102
4349
 
4103
4350
  <xsl:call-template name="setTableRowAttributes"/>
4351
+
4104
4352
  <xsl:apply-templates/>
4105
4353
  </fo:table-row>
4106
4354
  </xsl:template>
@@ -4119,19 +4367,7 @@
4119
4367
  <xsl:with-param name="default">center</xsl:with-param>
4120
4368
  </xsl:call-template>
4121
4369
 
4122
- <xsl:call-template name="setBordersTableArray"/>
4123
-
4124
- <xsl:if test="starts-with(ancestor::*[local-name() = 'table'][1]/@type, 'recommend') and normalize-space(@align) = ''">
4125
- <xsl:call-template name="setTextAlignment">
4126
- <xsl:with-param name="default">left</xsl:with-param>
4127
- </xsl:call-template>
4128
- </xsl:if>
4129
-
4130
- <xsl:if test="$lang = 'ar'">
4131
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
4132
- </xsl:if>
4133
-
4134
- <xsl:call-template name="setTableCellAttributes"/>
4370
+ <xsl:call-template name="refine_table-header-cell-style"/>
4135
4371
 
4136
4372
  <fo:block>
4137
4373
  <xsl:apply-templates/>
@@ -4173,13 +4409,7 @@
4173
4409
  <xsl:with-param name="default">left</xsl:with-param>
4174
4410
  </xsl:call-template>
4175
4411
 
4176
- <xsl:if test="$lang = 'ar'">
4177
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
4178
- </xsl:if>
4179
-
4180
- <!-- bsi -->
4181
-
4182
- <xsl:call-template name="setBordersTableArray"/>
4412
+ <xsl:call-template name="refine_table-cell-style"/>
4183
4413
 
4184
4414
  <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
4185
4415
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
@@ -4206,13 +4436,17 @@
4206
4436
  </fo:table-cell>
4207
4437
  </xsl:template> <!-- td -->
4208
4438
 
4209
- <xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
4439
+ <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name() = 'example']" priority="2">
4210
4440
 
4211
4441
  <fo:block xsl:use-attribute-sets="table-note-style">
4212
4442
 
4213
- <!-- Table's note name (NOTE, for example) -->
4443
+ <xsl:call-template name="refine_table-note-style"/>
4444
+
4445
+ <!-- Table's note/example name (NOTE, for example) -->
4214
4446
  <fo:inline xsl:use-attribute-sets="table-note-name-style">
4215
4447
 
4448
+ <xsl:call-template name="refine_table-note-name-style"/>
4449
+
4216
4450
  <xsl:apply-templates select="*[local-name() = 'name']"/>
4217
4451
 
4218
4452
  </fo:inline>
@@ -4222,7 +4456,7 @@
4222
4456
 
4223
4457
  </xsl:template> <!-- table/note -->
4224
4458
 
4225
- <xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" priority="2">
4459
+ <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name()='example']/*[local-name()='p']" priority="2">
4226
4460
  <xsl:apply-templates/>
4227
4461
  </xsl:template>
4228
4462
 
@@ -4240,6 +4474,14 @@
4240
4474
  <!-- list of footnotes to calculate actual footnotes number -->
4241
4475
  <xsl:variable name="p_fn_">
4242
4476
  <xsl:call-template name="get_fn_list"/>
4477
+ <!-- <xsl:choose>
4478
+ <xsl:when test="$namespace = 'jis'">
4479
+ <xsl:call-template name="get_fn_list_for_element"/>
4480
+ </xsl:when>
4481
+ <xsl:otherwise>
4482
+ <xsl:call-template name="get_fn_list"/>
4483
+ </xsl:otherwise>
4484
+ </xsl:choose> -->
4243
4485
  </xsl:variable>
4244
4486
  <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
4245
4487
 
@@ -4264,7 +4506,14 @@
4264
4506
 
4265
4507
  </xsl:variable>
4266
4508
 
4267
- <xsl:variable name="ref_id" select="concat('footnote_', $lang, '_', $reference, '_', $current_fn_number)"/>
4509
+ <xsl:variable name="ref_id">
4510
+ <xsl:choose>
4511
+ <xsl:when test="normalize-space(@ref_id) != ''"><xsl:value-of select="@ref_id"/></xsl:when>
4512
+ <xsl:otherwise>
4513
+ <xsl:value-of select="concat('footnote_', $lang, '_', $reference, '_', $current_fn_number)"/>
4514
+ </xsl:otherwise>
4515
+ </xsl:choose>
4516
+ </xsl:variable>
4268
4517
  <xsl:variable name="footnote_inline">
4269
4518
  <fo:inline>
4270
4519
 
@@ -4290,7 +4539,7 @@
4290
4539
  <xsl:call-template name="insert_basic_link">
4291
4540
  <xsl:with-param name="element">
4292
4541
  <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
4293
- <xsl:value-of select="$current_fn_number_text"/>
4542
+ <xsl:copy-of select="$current_fn_number_text"/>
4294
4543
  </fo:basic-link>
4295
4544
  </xsl:with-param>
4296
4545
  </xsl:call-template>
@@ -4310,8 +4559,12 @@
4310
4559
 
4311
4560
  <fo:block xsl:use-attribute-sets="fn-body-style">
4312
4561
 
4562
+ <xsl:call-template name="refine_fn-body-style"/>
4563
+
4313
4564
  <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
4314
4565
 
4566
+ <xsl:call-template name="refine_fn-body-num-style"/>
4567
+
4315
4568
  <xsl:value-of select="$current_fn_number_text"/>
4316
4569
  </fo:inline>
4317
4570
  <xsl:apply-templates/>
@@ -4363,6 +4616,28 @@
4363
4616
  </xsl:choose>
4364
4617
  </xsl:template>
4365
4618
 
4619
+ <xsl:template name="get_fn_list_for_element">
4620
+ <xsl:choose>
4621
+ <xsl:when test="@current_fn_number"> <!-- footnote reference number calculated already -->
4622
+ <fn gen_id="{generate-id(.)}">
4623
+ <xsl:copy-of select="@*"/>
4624
+ <xsl:copy-of select="node()"/>
4625
+ </fn>
4626
+ </xsl:when>
4627
+ <xsl:otherwise>
4628
+ <xsl:for-each select="ancestor::*[local-name() = 'ul' or local-name() = 'ol'][1]">
4629
+ <xsl:variable name="element_id" select="@id"/>
4630
+ <xsl:for-each select=".//*[local-name() = 'fn'][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
4631
+ <!-- copy unique fn -->
4632
+ <fn gen_id="{generate-id(.)}">
4633
+ <xsl:copy-of select="@*"/>
4634
+ <xsl:copy-of select="node()"/>
4635
+ </fn>
4636
+ </xsl:for-each>
4637
+ </xsl:for-each>
4638
+ </xsl:otherwise>
4639
+ </xsl:choose>
4640
+ </xsl:template>
4366
4641
  <!-- ============================ -->
4367
4642
  <!-- table's footnotes rendering -->
4368
4643
  <!-- ============================ -->
@@ -4543,6 +4818,8 @@
4543
4818
  <xsl:template match="*[local-name()='fn']">
4544
4819
  <fo:inline xsl:use-attribute-sets="fn-reference-style">
4545
4820
 
4821
+ <xsl:call-template name="refine_fn-reference-style"/>
4822
+
4546
4823
  <fo:basic-link internal-destination="{@reference}_{ancestor::*[@id][1]/@id}" fox:alt-text="{@reference}"> <!-- @reference | ancestor::*[local-name()='clause'][1]/@id-->
4547
4824
 
4548
4825
  <xsl:attribute name="internal-destination">
@@ -4647,6 +4924,8 @@
4647
4924
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
4648
4925
  <fo:block margin-bottom="12pt" text-align="left">
4649
4926
 
4927
+ <xsl:call-template name="refine_dl_formula_where_style"/>
4928
+
4650
4929
  <!-- <xsl:variable name="title-where">
4651
4930
  <xsl:call-template name="getLocalizedString">
4652
4931
  <xsl:with-param name="key">where</xsl:with-param>
@@ -4660,6 +4939,8 @@
4660
4939
  <xsl:when test="$parent = 'figure' and (not(../@class) or ../@class !='pseudocode')"> <!-- definition list in a figure -->
4661
4940
  <fo:block font-weight="bold" text-align="left" margin-bottom="12pt" keep-with-next="always">
4662
4941
 
4942
+ <xsl:call-template name="refine_figure_key_style"/>
4943
+
4663
4944
  <xsl:variable name="title-key">
4664
4945
  <xsl:call-template name="getLocalizedString">
4665
4946
  <xsl:with-param name="key">key</xsl:with-param>
@@ -4674,12 +4955,16 @@
4674
4955
  <xsl:if test="$onlyOneComponent = 'false'">
4675
4956
  <fo:block>
4676
4957
 
4958
+ <xsl:call-template name="refine_multicomponent_style"/>
4959
+
4677
4960
  <xsl:if test="ancestor::*[local-name() = 'dd' or local-name() = 'td']">
4678
4961
  <xsl:attribute name="margin-top">0</xsl:attribute>
4679
4962
  </xsl:if>
4680
4963
 
4681
4964
  <fo:block>
4682
4965
 
4966
+ <xsl:call-template name="refine_multicomponent_block_style"/>
4967
+
4683
4968
  <xsl:apply-templates select="*[local-name() = 'name']">
4684
4969
  <xsl:with-param name="process">true</xsl:with-param>
4685
4970
  </xsl:apply-templates>
@@ -4837,6 +5122,24 @@
4837
5122
 
4838
5123
  </xsl:template> <!-- END: dl -->
4839
5124
 
5125
+ <xsl:template name="refine_dl_formula_where_style">
5126
+
5127
+ </xsl:template> <!-- refine_dl_formula_where_style -->
5128
+
5129
+ <xsl:template name="refine_figure_key_style">
5130
+
5131
+ </xsl:template> <!-- refine_figure_key_style -->
5132
+
5133
+ <xsl:template name="refine_multicomponent_style">
5134
+ <xsl:variable name="parent" select="local-name(..)"/>
5135
+
5136
+ </xsl:template> <!-- refine_multicomponent_style -->
5137
+
5138
+ <xsl:template name="refine_multicomponent_block_style">
5139
+ <xsl:variable name="parent" select="local-name(..)"/>
5140
+
5141
+ </xsl:template> <!-- refine_multicomponent_block_style -->
5142
+
4840
5143
  <!-- ignore 'p' with 'where' in formula, before 'dl' -->
4841
5144
  <xsl:template match="*[local-name() = 'formula']/*[local-name() = 'p' and @keep-with-next = 'true' and following-sibling::*[1][local-name() = 'dl']]"/>
4842
5145
 
@@ -5063,10 +5366,7 @@
5063
5366
 
5064
5367
  </xsl:if>
5065
5368
 
5066
- <xsl:if test="not(ancestor::ogc:sourcecode)">
5067
- <!-- <xsl:attribute name="border-left">1pt solid <xsl:value-of select="$color_design"/></xsl:attribute> -->
5068
- <xsl:attribute name="background-color"><xsl:value-of select="$color_dl_dt"/></xsl:attribute>
5069
- </xsl:if>
5369
+ <xsl:call-template name="refine_dt-cell-style"/>
5070
5370
 
5071
5371
  <fo:block xsl:use-attribute-sets="dt-block-style">
5072
5372
  <xsl:copy-of select="@id"/>
@@ -5075,12 +5375,7 @@
5075
5375
  <xsl:attribute name="margin-top">0</xsl:attribute>
5076
5376
  </xsl:if>
5077
5377
 
5078
- <xsl:if test="ancestor::ogc:sourcecode">
5079
- <xsl:attribute name="margin-bottom">2pt</xsl:attribute>
5080
- </xsl:if>
5081
- <xsl:if test="not(following-sibling::ogc:dt)"> <!-- last dt -->
5082
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
5083
- </xsl:if>
5378
+ <xsl:call-template name="refine_dt-block-style"/>
5084
5379
 
5085
5380
  <xsl:apply-templates>
5086
5381
  <xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
@@ -5101,9 +5396,7 @@
5101
5396
  <xsl:attribute name="border">0.1pt solid black</xsl:attribute>
5102
5397
  </xsl:if>
5103
5398
 
5104
- <xsl:if test="not(ancestor::ogc:sourcecode)">
5105
- <xsl:attribute name="background-color"><xsl:value-of select="$color_dl_dd"/></xsl:attribute>
5106
- </xsl:if>
5399
+ <xsl:call-template name="refine_dd-cell-style"/>
5107
5400
 
5108
5401
  <fo:block>
5109
5402
 
@@ -5255,12 +5548,18 @@
5255
5548
  <xsl:param name="split_keep-within-line"/>
5256
5549
  <fo:inline font-weight="bold">
5257
5550
 
5551
+ <xsl:call-template name="refine_strong_style"/>
5552
+
5258
5553
  <xsl:apply-templates>
5259
5554
  <xsl:with-param name="split_keep-within-line" select="$split_keep-within-line"/>
5260
5555
  </xsl:apply-templates>
5261
5556
  </fo:inline>
5262
5557
  </xsl:template>
5263
5558
 
5559
+ <xsl:template name="refine_strong_style">
5560
+
5561
+ </xsl:template>
5562
+
5264
5563
  <xsl:template match="*[local-name()='padding']">
5265
5564
  <fo:inline padding-right="{@value}"> </fo:inline>
5266
5565
  </xsl:template>
@@ -5732,7 +6031,10 @@
5732
6031
  </xsl:choose>
5733
6032
  </xsl:variable>
5734
6033
 
5735
- <xsl:value-of select="$text9"/>
6034
+ <!-- replace sequence #x200B and space TO space -->
6035
+ <xsl:variable name="text10" select="java:replaceAll(java:java.lang.String.new($text9), '\u200b ', ' ')"/>
6036
+
6037
+ <xsl:value-of select="$text10"/>
5736
6038
  </xsl:template>
5737
6039
 
5738
6040
  <xsl:template name="add-zero-spaces-link-java">
@@ -6407,6 +6709,11 @@
6407
6709
 
6408
6710
  <fo:inline xsl:use-attribute-sets="mathml-style">
6409
6711
 
6712
+ <!-- DEBUG -->
6713
+ <!-- <xsl:copy-of select="ancestor::*[local-name() = 'stem']/@font-family"/> -->
6714
+
6715
+ <xsl:call-template name="refine_mathml-style"/>
6716
+
6410
6717
  <xsl:if test="$isGenerateTableIF = 'true' and ancestor::*[local-name() = 'td' or local-name() = 'th' or local-name() = 'dl'] and not(following-sibling::node()[not(self::comment())][normalize-space() != ''])"> <!-- math in table cell, and math is last element -->
6411
6718
  <!-- <xsl:attribute name="padding-right">1mm</xsl:attribute> -->
6412
6719
  </xsl:if>
@@ -6511,6 +6818,8 @@
6511
6818
 
6512
6819
  <fo:instream-foreign-object fox:alt-text="Math">
6513
6820
 
6821
+ <xsl:call-template name="refine_mathml_insteam_object_style"/>
6822
+
6514
6823
  <!-- put MathML in Actual Text -->
6515
6824
  <!-- DEBUG: mathml_content=<xsl:value-of select="$mathml_content"/> -->
6516
6825
  <xsl:attribute name="fox:actual-text">
@@ -6531,6 +6840,10 @@
6531
6840
  </fo:instream-foreign-object>
6532
6841
  </xsl:template>
6533
6842
 
6843
+ <xsl:template name="refine_mathml_insteam_object_style">
6844
+
6845
+ </xsl:template> <!-- refine_mathml_insteam_object_style -->
6846
+
6534
6847
  <xsl:template match="mathml:*" mode="mathml_actual_text">
6535
6848
  <!-- <xsl:text>a+b</xsl:text> -->
6536
6849
  <xsl:text>&lt;</xsl:text>
@@ -6675,6 +6988,8 @@
6675
6988
  <xsl:template match="*[local-name() = 'stem'][@type = 'AsciiMath'][count(*) = 0]/text() | *[local-name() = 'stem'][@type = 'AsciiMath'][*[local-name() = 'asciimath']]" priority="3">
6676
6989
  <fo:inline xsl:use-attribute-sets="mathml-style">
6677
6990
 
6991
+ <xsl:call-template name="refine_mathml-style"/>
6992
+
6678
6993
  <xsl:choose>
6679
6994
  <xsl:when test="self::text()"><xsl:value-of select="."/></xsl:when>
6680
6995
  <xsl:otherwise>
@@ -6719,6 +7034,8 @@
6719
7034
  <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
6720
7035
  </xsl:if>
6721
7036
 
7037
+ <xsl:call-template name="refine_link-style"/>
7038
+
6722
7039
  <xsl:choose>
6723
7040
  <xsl:when test="$target_text = ''">
6724
7041
  <xsl:apply-templates/>
@@ -6810,6 +7127,9 @@
6810
7127
  <xsl:call-template name="insert_basic_link">
6811
7128
  <xsl:with-param name="element">
6812
7129
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
7130
+ <xsl:if test="string-length(normalize-space()) &lt; 30 and not(contains(normalize-space(), 'http://')) and not(contains(normalize-space(), 'https://')) and not(ancestor::*[local-name() = 'table' or local-name() = 'dl'])">
7131
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
7132
+ </xsl:if>
6813
7133
  <xsl:if test="parent::*[local-name() = 'add']">
6814
7134
  <xsl:call-template name="append_add-style"/>
6815
7135
  </xsl:if>
@@ -6871,6 +7191,8 @@
6871
7191
  <fo:table-cell display-align="center">
6872
7192
  <fo:block xsl:use-attribute-sets="formula-stem-block-style">
6873
7193
 
7194
+ <xsl:call-template name="refine_formula-stem-block-style"/>
7195
+
6874
7196
  <xsl:apply-templates/>
6875
7197
  </fo:block>
6876
7198
  </fo:table-cell>
@@ -6912,16 +7234,18 @@
6912
7234
 
6913
7235
  <xsl:call-template name="setBlockSpanAll"/>
6914
7236
 
6915
- <xsl:if test="ancestor::ogc:ul or ancestor::ogc:ol and not(ancestor::ogc:note[1]/following-sibling::*)">
6916
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
6917
- </xsl:if>
7237
+ <xsl:call-template name="refine_note-style"/>
6918
7238
 
6919
7239
  <fo:block-container margin-left="0mm" margin-right="0mm">
6920
7240
 
6921
7241
  <fo:block>
6922
7242
 
7243
+ <xsl:call-template name="refine_note_block_style"/>
7244
+
6923
7245
  <fo:inline xsl:use-attribute-sets="note-name-style">
6924
7246
 
7247
+ <xsl:call-template name="refine_note-name-style"/>
7248
+
6925
7249
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
6926
7250
  <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
6927
7251
  <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
@@ -6947,6 +7271,10 @@
6947
7271
 
6948
7272
  </xsl:template>
6949
7273
 
7274
+ <xsl:template name="refine_note_block_style">
7275
+
7276
+ </xsl:template>
7277
+
6950
7278
  <xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
6951
7279
  <xsl:variable name="num"><xsl:number/></xsl:variable>
6952
7280
  <xsl:choose>
@@ -6968,12 +7296,16 @@
6968
7296
 
6969
7297
  <xsl:call-template name="setBlockSpanAll"/>
6970
7298
 
7299
+ <xsl:call-template name="refine_termnote-style"/>
7300
+
6971
7301
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
6972
7302
 
6973
7303
  <xsl:if test="not(*[local-name() = 'name']/following-sibling::node()[1][self::text()][normalize-space()=''])">
6974
7304
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
6975
7305
  </xsl:if>
6976
7306
 
7307
+ <xsl:call-template name="refine_termnote-name-style"/>
7308
+
6977
7309
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
6978
7310
  <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
6979
7311
  <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
@@ -7147,6 +7479,8 @@
7147
7479
  <xsl:otherwise>
7148
7480
  <fo:block xsl:use-attribute-sets="image-style">
7149
7481
 
7482
+ <xsl:call-template name="refine_image-style"/>
7483
+
7150
7484
  <xsl:variable name="src">
7151
7485
  <xsl:call-template name="image_src"/>
7152
7486
  </xsl:variable>
@@ -8014,6 +8348,8 @@
8014
8348
  <xsl:if test="normalize-space() != ''">
8015
8349
  <fo:block xsl:use-attribute-sets="figure-name-style">
8016
8350
 
8351
+ <xsl:call-template name="refine_figure-name-style"/>
8352
+
8017
8353
  <xsl:apply-templates/>
8018
8354
  </fo:block>
8019
8355
  </xsl:if>
@@ -8286,9 +8622,7 @@
8286
8622
  </xsl:attribute>
8287
8623
  </xsl:for-each>
8288
8624
 
8289
- <xsl:if test="parent::*[local-name() = 'example']">
8290
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
8291
- </xsl:if>
8625
+ <xsl:call-template name="refine_sourcecode-style"/>
8292
8626
 
8293
8627
  <!-- remove margin between rows in the table with sourcecode line numbers -->
8294
8628
  <xsl:if test="ancestor::*[local-name() = 'sourcecode'][@linenums = 'true'] and ancestor::*[local-name() = 'tr'][1]/following-sibling::*[local-name() = 'tr']">
@@ -9020,6 +9354,8 @@
9020
9354
 
9021
9355
  <xsl:call-template name="setBlockSpanAll"/>
9022
9356
 
9357
+ <xsl:call-template name="refine_example-style"/>
9358
+
9023
9359
  <xsl:variable name="fo_element">
9024
9360
  <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl'] or *[not(local-name() = 'name')][1][local-name() = 'sourcecode']">block</xsl:if>
9025
9361
  inline
@@ -9130,6 +9466,12 @@
9130
9466
 
9131
9467
  </xsl:template>
9132
9468
 
9469
+ <xsl:template match="*[local-name() = 'table']/*[local-name() = 'example']/*[local-name() = 'name']">
9470
+ <fo:inline xsl:use-attribute-sets="example-name-style">
9471
+ <xsl:apply-templates/>
9472
+ </fo:inline>
9473
+ </xsl:template>
9474
+
9133
9475
  <xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
9134
9476
  <xsl:param name="fo_element">block</xsl:param>
9135
9477
 
@@ -9147,6 +9489,8 @@
9147
9489
  </xsl:if>
9148
9490
  <fo:block xsl:use-attribute-sets="example-p-style">
9149
9491
 
9492
+ <xsl:call-template name="refine_example-p-style"/>
9493
+
9150
9494
  <xsl:apply-templates/>
9151
9495
  </fo:block>
9152
9496
  </fo:block-container>
@@ -9163,6 +9507,7 @@
9163
9507
  </xsl:otherwise>
9164
9508
  </xsl:choose>
9165
9509
  </xsl:template> <!-- example/p -->
9510
+
9166
9511
  <!-- ====== -->
9167
9512
  <!-- ====== -->
9168
9513
 
@@ -9174,6 +9519,8 @@
9174
9519
  <xsl:template match="*[local-name() = 'termsource']" name="termsource">
9175
9520
  <fo:block xsl:use-attribute-sets="termsource-style">
9176
9521
 
9522
+ <xsl:call-template name="refine_termsource-style"/>
9523
+
9177
9524
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
9178
9525
  <xsl:variable name="termsource_text">
9179
9526
  <xsl:apply-templates/>
@@ -9289,6 +9636,8 @@
9289
9636
  <fo:block-container margin-left="0mm">
9290
9637
  <fo:block-container xsl:use-attribute-sets="quote-style">
9291
9638
 
9639
+ <xsl:call-template name="refine_quote-style"/>
9640
+
9292
9641
  <fo:block-container margin-left="0mm" margin-right="0mm">
9293
9642
  <fo:block role="BlockQuote">
9294
9643
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
@@ -9363,8 +9712,7 @@
9363
9712
 
9364
9713
  </xsl:if>
9365
9714
 
9366
- <xsl:variable name="citeas" select="java:replaceAll(java:java.lang.String.new(@citeas),'^\[?(.+?)\]?$','$1')"/> <!-- remove leading and trailing brackets -->
9367
- <xsl:variable name="text" select="normalize-space()"/>
9715
+ <xsl:call-template name="refine_eref-style"/>
9368
9716
 
9369
9717
  <xsl:call-template name="insert_basic_link">
9370
9718
  <xsl:with-param name="element">
@@ -9374,6 +9722,8 @@
9374
9722
  </xsl:if>
9375
9723
  <xsl:if test="@type = 'inline'">
9376
9724
 
9725
+ <xsl:call-template name="refine_basic_link_style"/>
9726
+
9377
9727
  </xsl:if>
9378
9728
 
9379
9729
  <xsl:choose>
@@ -9406,6 +9756,11 @@
9406
9756
  </xsl:otherwise>
9407
9757
  </xsl:choose>
9408
9758
  </xsl:template>
9759
+
9760
+ <xsl:template name="refine_basic_link_style">
9761
+
9762
+ </xsl:template> <!-- refine_basic_link_style -->
9763
+
9409
9764
  <!-- ====== -->
9410
9765
  <!-- END eref -->
9411
9766
  <!-- ====== -->
@@ -9549,16 +9904,22 @@
9549
9904
  <fo:block>
9550
9905
  <xsl:call-template name="setId"/>
9551
9906
 
9552
- <xsl:variable name="pos"><xsl:number count="ogc:sections/ogc:clause[not(@type='scope') and not(@type='conformance')]"/></xsl:variable> <!-- | ogc:sections/ogc:terms -->
9553
- <xsl:if test="$pos &gt;= 2">
9554
- <xsl:attribute name="space-before">18pt</xsl:attribute>
9555
- </xsl:if>
9907
+ <xsl:call-template name="sections_element_style"/>
9556
9908
 
9557
9909
  <xsl:apply-templates/>
9558
9910
  </fo:block>
9559
9911
 
9560
9912
  </xsl:template>
9561
9913
 
9914
+ <xsl:template name="sections_element_style">
9915
+
9916
+ <xsl:variable name="pos"><xsl:number count="ogc:sections/ogc:clause[not(@type='scope') and not(@type='conformance')]"/></xsl:variable> <!-- | ogc:sections/ogc:terms -->
9917
+ <xsl:if test="$pos &gt;= 2">
9918
+ <xsl:attribute name="space-before">18pt</xsl:attribute>
9919
+ </xsl:if>
9920
+
9921
+ </xsl:template> <!-- sections_element_style -->
9922
+
9562
9923
  <xsl:template match="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*" priority="2"> <!-- /*/*[local-name() = 'preface']/* -->
9563
9924
  <fo:block break-after="page"/>
9564
9925
  <fo:block>
@@ -9573,10 +9934,16 @@
9573
9934
 
9574
9935
  <xsl:call-template name="setBlockSpanAll"/>
9575
9936
 
9937
+ <xsl:call-template name="refine_clause_style"/>
9938
+
9576
9939
  <xsl:apply-templates/>
9577
9940
  </fo:block>
9578
9941
  </xsl:template>
9579
9942
 
9943
+ <xsl:template name="refine_clause_style">
9944
+
9945
+ </xsl:template> <!-- refine_clause_style -->
9946
+
9580
9947
  <xsl:template match="*[local-name() = 'definitions']">
9581
9948
  <fo:block id="{@id}">
9582
9949
  <xsl:apply-templates/>
@@ -9589,10 +9956,16 @@
9589
9956
 
9590
9957
  <xsl:call-template name="setBlockSpanAll"/>
9591
9958
 
9959
+ <xsl:call-template name="refine_annex_style"/>
9960
+
9592
9961
  </fo:block>
9593
9962
  <xsl:apply-templates/>
9594
9963
  </xsl:template>
9595
9964
 
9965
+ <xsl:template name="refine_annex_style">
9966
+
9967
+ </xsl:template>
9968
+
9596
9969
  <xsl:template match="*[local-name() = 'review']"> <!-- 'review' will be processed in mn2pdf/review.xsl -->
9597
9970
  <!-- comment 2019-11-29 -->
9598
9971
  <!-- <fo:block font-weight="bold">Review:</fo:block>
@@ -9669,6 +10042,9 @@
9669
10042
  <xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
9670
10043
  </xsl:choose>
9671
10044
  </xsl:when>
10045
+ <xsl:when test="local-name(..) = 'ol' and @label"> <!-- for ordered lists 'ol', and if there is @label, for instance label="1.1.2" -->
10046
+ <xsl:value-of select="@label"/>
10047
+ </xsl:when>
9672
10048
  <xsl:otherwise> <!-- for ordered lists 'ol' -->
9673
10049
 
9674
10050
  <!-- Example: for BSI <?list-start 2?> -->
@@ -9726,10 +10102,10 @@
9726
10102
  <xsl:when test="$type = 'arabic'">
9727
10103
  1.
9728
10104
  </xsl:when>
9729
- <xsl:when test="$type = 'alphabet'">
10105
+ <xsl:when test="$type = 'alphabet' or $type = 'alphabetic'">
9730
10106
  a)
9731
10107
  </xsl:when>
9732
- <xsl:when test="$type = 'alphabet_upper'">
10108
+ <xsl:when test="$type = 'alphabet_upper' or $type = 'alphabetic_upper'">
9733
10109
  A)
9734
10110
  </xsl:when>
9735
10111
  <xsl:when test="$type = 'roman'">
@@ -9757,6 +10133,8 @@
9757
10133
  </xsl:choose>
9758
10134
  </xsl:attribute>
9759
10135
 
10136
+ <xsl:call-template name="refine_list_container_style"/>
10137
+
9760
10138
  <fo:block-container margin-left="0mm">
9761
10139
  <fo:block>
9762
10140
  <xsl:apply-templates select="." mode="list"/>
@@ -9774,6 +10152,10 @@
9774
10152
  </xsl:choose>
9775
10153
  </xsl:template>
9776
10154
 
10155
+ <xsl:template name="refine_list_container_style">
10156
+
10157
+ </xsl:template> <!-- refine_list_container_style -->
10158
+
9777
10159
  <xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
9778
10160
 
9779
10161
  <xsl:apply-templates select="*[local-name() = 'name']">
@@ -9784,7 +10166,7 @@
9784
10166
 
9785
10167
  <xsl:variable name="provisional_distance_between_starts_">
9786
10168
  <attributes xsl:use-attribute-sets="list-style">
9787
-
10169
+ <xsl:call-template name="refine_list-style_provisional-distance-between-starts"/>
9788
10170
  </attributes>
9789
10171
  </xsl:variable>
9790
10172
  <xsl:variable name="provisional_distance_between_starts" select="normalize-space(xalan:nodeset($provisional_distance_between_starts_)/attributes/@provisional-distance-between-starts)"/>
@@ -9820,6 +10202,8 @@
9820
10202
  <addon><xsl:value-of select="$addon"/></addon> -->
9821
10203
  </xsl:if>
9822
10204
 
10205
+ <xsl:call-template name="refine_list-style"/>
10206
+
9823
10207
  <xsl:if test="*[local-name() = 'name']">
9824
10208
  <xsl:attribute name="margin-top">0pt</xsl:attribute>
9825
10209
  </xsl:if>
@@ -9832,6 +10216,10 @@
9832
10216
  <xsl:apply-templates select="./*[local-name() = 'note']"/>
9833
10217
  </xsl:template>
9834
10218
 
10219
+ <xsl:template name="refine_list-style_provisional-distance-between-starts">
10220
+
10221
+ </xsl:template> <!-- refine_list-style_provisional-distance-between-starts -->
10222
+
9835
10223
  <xsl:template match="*[local-name() = 'ol' or local-name() = 'ul']/*[local-name() = 'name']">
9836
10224
  <xsl:param name="process">false</xsl:param>
9837
10225
  <xsl:if test="$process = 'true'">
@@ -9845,27 +10233,26 @@
9845
10233
  <fo:list-item xsl:use-attribute-sets="list-item-style">
9846
10234
  <xsl:copy-of select="@id"/>
9847
10235
 
10236
+ <xsl:call-template name="refine_list-item-style"/>
10237
+
9848
10238
  <fo:list-item-label end-indent="label-end()">
9849
10239
  <fo:block xsl:use-attribute-sets="list-item-label-style">
9850
10240
 
10241
+ <xsl:call-template name="refine_list-item-label-style"/>
10242
+
9851
10243
  <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
9852
10244
  <xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
9853
10245
  <xsl:call-template name="append_add-style"/>
9854
10246
  </xsl:if>
9855
10247
 
9856
10248
  <xsl:call-template name="getListItemFormat"/>
10249
+
9857
10250
  </fo:block>
9858
10251
  </fo:list-item-label>
9859
10252
  <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
9860
10253
  <fo:block>
9861
10254
 
9862
- <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
9863
- <xsl:if test="ancestor::ogc:table[not(@class)]">
9864
- <xsl:attribute name="margin-bottom">1mm</xsl:attribute>
9865
- </xsl:if>
9866
- <xsl:if test="not(following-sibling::*) and not(../following-sibling::*)">
9867
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
9868
- </xsl:if>
10255
+ <xsl:call-template name="refine_list-item-body-style"/>
9869
10256
 
9870
10257
  <xsl:apply-templates/>
9871
10258
 
@@ -10184,6 +10571,7 @@
10184
10571
 
10185
10572
  <fo:block id="{@id}">
10186
10573
  <xsl:apply-templates/>
10574
+
10187
10575
  </fo:block>
10188
10576
  </xsl:template>
10189
10577
 
@@ -10203,6 +10591,7 @@
10203
10591
 
10204
10592
  <fo:block id="{@id}" xsl:use-attribute-sets="references-non-normative-style">
10205
10593
  <xsl:apply-templates/>
10594
+
10206
10595
  </fo:block>
10207
10596
 
10208
10597
  </xsl:template> <!-- references -->
@@ -10781,6 +11170,9 @@
10781
11170
  </xsl:copy>
10782
11171
  </xsl:template>
10783
11172
 
11173
+ <!-- prevent empty thead processing in XSL-FO, remove it -->
11174
+ <xsl:template match="*[local-name() = 'table']/*[local-name() = 'thead'][count(*) = 0]" mode="update_xml_step1"/>
11175
+
10784
11176
  <xsl:template name="add_id">
10785
11177
  <xsl:if test="not(@id)">
10786
11178
  <!-- add @id - first element with @id plus '_element_name' -->
@@ -11065,6 +11457,14 @@
11065
11457
  <xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure')] and not(ancestor::*[local-name() = 'name']))]" mode="linear_xml" name="linear_xml_fn">
11066
11458
  <xsl:variable name="p_fn_">
11067
11459
  <xsl:call-template name="get_fn_list"/>
11460
+ <!-- <xsl:choose>
11461
+ <xsl:when test="$namespace = 'jis'">
11462
+ <xsl:call-template name="get_fn_list_for_element"/>
11463
+ </xsl:when>
11464
+ <xsl:otherwise>
11465
+ <xsl:call-template name="get_fn_list"/>
11466
+ </xsl:otherwise>
11467
+ </xsl:choose> -->
11068
11468
  </xsl:variable>
11069
11469
  <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
11070
11470
  <xsl:variable name="gen_id" select="generate-id(.)"/>
@@ -11079,8 +11479,14 @@
11079
11479
  <xsl:attribute name="current_fn_number">
11080
11480
  <xsl:value-of select="$current_fn_number"/>
11081
11481
  </xsl:attribute>
11482
+ <xsl:variable name="skip_footnote_body_" select="not($p_fn//fn[@gen_id = $gen_id] and (1 = 1))"/>
11082
11483
  <xsl:attribute name="skip_footnote_body"> <!-- false for repeatable footnote -->
11083
- <xsl:value-of select="not($p_fn//fn[@gen_id = $gen_id] and (1 = 1))"/>
11484
+
11485
+ <xsl:value-of select="$skip_footnote_body_"/>
11486
+
11487
+ </xsl:attribute>
11488
+ <xsl:attribute name="ref_id">
11489
+ <xsl:value-of select="concat('footnote_', $lang, '_', $reference, '_', $current_fn_number)"/>
11084
11490
  </xsl:attribute>
11085
11491
  <xsl:apply-templates select="node()" mode="linear_xml"/>
11086
11492
  </xsl:copy>