metanorma-ieee 1.0.13 → 1.0.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -3881,21 +3881,32 @@
3881
3881
  <xsl:variable name="titles_">
3882
3882
 
3883
3883
  <!-- These titles of Table of contents renders different than determined in localized-strings -->
3884
- <title-toc lang="en">
3885
-
3884
+ <!-- <title-toc lang="en">
3885
+ <xsl:if test="$namespace = 'csd' or $namespace = 'ieee' or $namespace = 'iho' or $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'unece-rec'">
3886
3886
  <xsl:text>Contents</xsl:text>
3887
-
3888
- </title-toc>
3889
- <title-toc lang="fr">
3887
+ </xsl:if>
3888
+ <xsl:if test="$namespace = 'csa' or $namespace = 'm3d' or $namespace = 'nist-sp' or $namespace = 'ogc-white-paper'">
3889
+ <xsl:text>Table of Contents</xsl:text>
3890
+ </xsl:if>
3891
+ <xsl:if test="$namespace = 'gb'">
3892
+ <xsl:text>Table of contents</xsl:text>
3893
+ </xsl:if>
3894
+ </title-toc> -->
3895
+ <title-toc lang="en">Table of contents</title-toc>
3896
+ <!-- <title-toc lang="fr">
3890
3897
  <xsl:text>Sommaire</xsl:text>
3891
- </title-toc>
3892
- <title-toc lang="zh">
3893
-
3898
+ </title-toc> -->
3899
+ <!-- <title-toc lang="zh">
3900
+ <xsl:choose>
3901
+ <xsl:when test="$namespace = 'gb'">
3902
+ <xsl:text>目次</xsl:text>
3903
+ </xsl:when>
3904
+ <xsl:otherwise>
3894
3905
  <xsl:text>Contents</xsl:text>
3895
-
3896
- </title-toc>
3897
-
3898
- <title-descriptors lang="en">Descriptors</title-descriptors>
3906
+ </xsl:otherwise>
3907
+ </xsl:choose>
3908
+ </title-toc> -->
3909
+ <title-toc lang="zh">目次</title-toc>
3899
3910
 
3900
3911
  <title-part lang="en">
3901
3912
 
@@ -3911,20 +3922,6 @@
3911
3922
  <title-subpart lang="en">Sub-part #</title-subpart>
3912
3923
  <title-subpart lang="fr">Partie de sub #</title-subpart>
3913
3924
 
3914
- <title-list-tables lang="en">List of Tables</title-list-tables>
3915
-
3916
- <title-list-figures lang="en">List of Figures</title-list-figures>
3917
-
3918
- <title-table-figures lang="en">Table of Figures</title-table-figures>
3919
-
3920
- <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
3921
-
3922
- <title-summary lang="en">Summary</title-summary>
3923
-
3924
- <title-continued lang="ru">(продолжение)</title-continued>
3925
- <title-continued lang="en">(continued)</title-continued>
3926
- <title-continued lang="fr">(continué)</title-continued>
3927
-
3928
3925
  </xsl:variable>
3929
3926
  <xsl:variable name="titles" select="xalan:nodeset($titles_)"/>
3930
3927
 
@@ -3932,8 +3929,8 @@
3932
3929
  <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
3933
3930
  <xsl:value-of select="$toc_table_title"/>
3934
3931
  <xsl:if test="normalize-space($toc_table_title) = ''">
3935
- <xsl:call-template name="getTitle">
3936
- <xsl:with-param name="name" select="'title-list-tables'"/>
3932
+ <xsl:call-template name="getLocalizedString">
3933
+ <xsl:with-param name="key">toc_tables</xsl:with-param>
3937
3934
  </xsl:call-template>
3938
3935
  </xsl:if>
3939
3936
  </xsl:variable>
@@ -3942,8 +3939,8 @@
3942
3939
  <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
3943
3940
  <xsl:value-of select="$toc_figure_title"/>
3944
3941
  <xsl:if test="normalize-space($toc_figure_title) = ''">
3945
- <xsl:call-template name="getTitle">
3946
- <xsl:with-param name="name" select="'title-list-figures'"/>
3942
+ <xsl:call-template name="getLocalizedString">
3943
+ <xsl:with-param name="key">toc_figures</xsl:with-param>
3947
3944
  </xsl:call-template>
3948
3945
  </xsl:if>
3949
3946
  </xsl:variable>
@@ -3952,8 +3949,8 @@
3952
3949
  <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'metanorma-extension']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
3953
3950
  <xsl:value-of select="$toc_requirement_title"/>
3954
3951
  <xsl:if test="normalize-space($toc_requirement_title) = ''">
3955
- <xsl:call-template name="getTitle">
3956
- <xsl:with-param name="name" select="'title-list-recommendations'"/>
3952
+ <xsl:call-template name="getLocalizedString">
3953
+ <xsl:with-param name="key">toc_recommendations</xsl:with-param>
3957
3954
  </xsl:call-template>
3958
3955
  </xsl:if>
3959
3956
  </xsl:variable>
@@ -4748,6 +4745,7 @@
4748
4745
  </xsl:attribute-set>
4749
4746
 
4750
4747
  <xsl:attribute-set name="figure-block-style">
4748
+ <xsl:attribute name="role">SKIP</xsl:attribute>
4751
4749
 
4752
4750
  <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
4753
4751
 
@@ -4758,6 +4756,7 @@
4758
4756
  </xsl:attribute-set>
4759
4757
 
4760
4758
  <xsl:attribute-set name="figure-name-style">
4759
+ <xsl:attribute name="role">Caption</xsl:attribute>
4761
4760
 
4762
4761
  <xsl:attribute name="font-family">Arial</xsl:attribute>
4763
4762
  <xsl:attribute name="font-weight">bold</xsl:attribute>
@@ -4811,6 +4810,7 @@
4811
4810
  </xsl:template>
4812
4811
 
4813
4812
  <xsl:attribute-set name="image-style">
4813
+ <xsl:attribute name="role">SKIP</xsl:attribute>
4814
4814
  <xsl:attribute name="text-align">center</xsl:attribute>
4815
4815
 
4816
4816
  </xsl:attribute-set>
@@ -5088,6 +5088,13 @@
5088
5088
 
5089
5089
  </xsl:attribute-set> <!-- bibitem-non-normative-list-style -->
5090
5090
 
5091
+ <xsl:attribute-set name="bibitem-non-normative-list-item-style">
5092
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
5093
+
5094
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
5095
+
5096
+ </xsl:attribute-set>
5097
+
5091
5098
  <!-- bibitem in bibliography section (references/@normative="false"), list body -->
5092
5099
  <xsl:attribute-set name="bibitem-normative-list-body-style">
5093
5100
 
@@ -5487,14 +5494,14 @@
5487
5494
  <xsl:value-of select="$sep"/><xsl:value-of select="$zero_width_space"/>
5488
5495
  </xsl:when>
5489
5496
  <xsl:otherwise>
5490
- <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
5497
+ <fo:inline keep-together.within-line="always" role="SKIP"><xsl:apply-templates/></fo:inline>
5491
5498
  </xsl:otherwise>
5492
5499
  </xsl:choose>
5493
5500
  </xsl:for-each>
5494
5501
  </xsl:when>
5495
5502
 
5496
5503
  <xsl:otherwise>
5497
- <fo:inline keep-together.within-line="always"><xsl:apply-templates/></fo:inline>
5504
+ <fo:inline keep-together.within-line="always" role="SKIP"><xsl:apply-templates/></fo:inline>
5498
5505
  </xsl:otherwise>
5499
5506
 
5500
5507
  </xsl:choose>
@@ -5504,7 +5511,7 @@
5504
5511
  <!-- Preface boilerplate sections processing -->
5505
5512
  <!-- ================================= -->
5506
5513
  <xsl:template match="*[local-name()='copyright-statement']">
5507
- <fo:block xsl:use-attribute-sets="copyright-statement-style">
5514
+ <fo:block xsl:use-attribute-sets="copyright-statement-style" role="SKIP">
5508
5515
  <xsl:apply-templates/>
5509
5516
  </fo:block>
5510
5517
  </xsl:template> <!-- copyright-statement -->
@@ -5672,7 +5679,7 @@
5672
5679
  </xsl:choose>
5673
5680
  </xsl:variable>
5674
5681
 
5675
- <fo:block-container xsl:use-attribute-sets="table-container-style">
5682
+ <fo:block-container xsl:use-attribute-sets="table-container-style" role="SKIP">
5676
5683
 
5677
5684
  <xsl:call-template name="refine_table-container-style">
5678
5685
  <xsl:with-param name="margin-side" select="$margin-side"/>
@@ -6424,13 +6431,13 @@
6424
6431
  <fo:table-body>
6425
6432
 
6426
6433
  <xsl:variable name="title_continued_">
6427
- <xsl:call-template name="getTitle">
6428
- <xsl:with-param name="name" select="'title-continued'"/>
6434
+ <xsl:call-template name="getLocalizedString">
6435
+ <xsl:with-param name="key">continued</xsl:with-param>
6429
6436
  </xsl:call-template>
6430
6437
  </xsl:variable>
6431
-
6438
+ <xsl:variable name="title_continued_in_parenthesis" select="concat('(',$title_continued_,')')"/>
6432
6439
  <xsl:variable name="title_continued">
6433
- <xsl:value-of select="$title_continued_"/>
6440
+ <xsl:value-of select="$title_continued_in_parenthesis"/>
6434
6441
 
6435
6442
  </xsl:variable>
6436
6443
 
@@ -6738,7 +6745,7 @@
6738
6745
  </xsl:choose>
6739
6746
  </xsl:variable>
6740
6747
  <xsl:variable name="footnote_inline">
6741
- <fo:inline>
6748
+ <fo:inline role="Reference">
6742
6749
 
6743
6750
  <xsl:variable name="fn_styles">
6744
6751
  <xsl:choose>
@@ -6761,7 +6768,7 @@
6761
6768
 
6762
6769
  <xsl:call-template name="insert_basic_link">
6763
6770
  <xsl:with-param name="element">
6764
- <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}">
6771
+ <fo:basic-link internal-destination="{$ref_id}" fox:alt-text="footnote {$current_fn_number}" role="Lbl">
6765
6772
  <xsl:copy-of select="$current_fn_number_text"/>
6766
6773
  </fo:basic-link>
6767
6774
  </xsl:with-param>
@@ -6774,17 +6781,17 @@
6774
6781
  <xsl:copy-of select="$footnote_inline"/>
6775
6782
  </xsl:when>
6776
6783
  <xsl:when test="$p_fn//fn[@gen_id = $gen_id] or normalize-space(@skip_footnote_body) = 'false'">
6777
- <fo:footnote xsl:use-attribute-sets="fn-style">
6784
+ <fo:footnote xsl:use-attribute-sets="fn-style" role="SKIP">
6778
6785
  <xsl:copy-of select="$footnote_inline"/>
6779
- <fo:footnote-body>
6786
+ <fo:footnote-body role="Note">
6780
6787
 
6781
- <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
6788
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style" role="SKIP">
6782
6789
 
6783
- <fo:block xsl:use-attribute-sets="fn-body-style">
6790
+ <fo:block xsl:use-attribute-sets="fn-body-style" role="SKIP">
6784
6791
 
6785
6792
  <xsl:call-template name="refine_fn-body-style"/>
6786
6793
 
6787
- <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style">
6794
+ <fo:inline id="{$ref_id}" xsl:use-attribute-sets="fn-body-num-style" role="Lbl">
6788
6795
 
6789
6796
  <xsl:call-template name="refine_fn-body-num-style"/>
6790
6797
 
@@ -7046,11 +7053,11 @@
7046
7053
  </xsl:template>
7047
7054
 
7048
7055
  <xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
7049
- <fo:inline><xsl:value-of select="."/></fo:inline>
7056
+ <fo:inline role="SKIP"><xsl:value-of select="."/></fo:inline>
7050
7057
  </xsl:template>
7051
7058
 
7052
7059
  <xsl:template match="*[local-name()='fn']//*[local-name()='p']">
7053
- <fo:inline>
7060
+ <fo:inline role="P">
7054
7061
  <xsl:apply-templates/>
7055
7062
  </fo:inline>
7056
7063
  </xsl:template>
@@ -7065,7 +7072,7 @@
7065
7072
  <xsl:variable name="isAdded" select="@added"/>
7066
7073
  <xsl:variable name="isDeleted" select="@deleted"/>
7067
7074
  <!-- <dl><xsl:copy-of select="."/></dl> -->
7068
- <fo:block-container xsl:use-attribute-sets="dl-block-style">
7075
+ <fo:block-container xsl:use-attribute-sets="dl-block-style" role="SKIP">
7069
7076
 
7070
7077
  <xsl:call-template name="setBlockSpanAll"/>
7071
7078
 
@@ -7100,7 +7107,7 @@
7100
7107
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
7101
7108
  </xsl:call-template>
7102
7109
 
7103
- <fo:block-container margin-left="0mm">
7110
+ <fo:block-container margin-left="0mm" role="SKIP">
7104
7111
 
7105
7112
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
7106
7113
 
@@ -7165,7 +7172,7 @@
7165
7172
 
7166
7173
  <!-- a few components -->
7167
7174
  <xsl:if test="$onlyOneComponent = 'false'">
7168
- <fo:block>
7175
+ <fo:block role="SKIP">
7169
7176
 
7170
7177
  <xsl:call-template name="refine_multicomponent_style"/>
7171
7178
 
@@ -7173,7 +7180,7 @@
7173
7180
  <xsl:attribute name="margin-top">0</xsl:attribute>
7174
7181
  </xsl:if>
7175
7182
 
7176
- <fo:block>
7183
+ <fo:block role="SKIP">
7177
7184
 
7178
7185
  <xsl:call-template name="refine_multicomponent_block_style"/>
7179
7186
 
@@ -7768,6 +7775,9 @@
7768
7775
 
7769
7776
  <xsl:template name="refine_strong_style">
7770
7777
 
7778
+ <xsl:if test="ancestor::*['preferred']">
7779
+ <xsl:attribute name="role">SKIP</xsl:attribute>
7780
+ </xsl:if>
7771
7781
  </xsl:template>
7772
7782
 
7773
7783
  <xsl:template match="*[local-name()='padding']">
@@ -7812,7 +7822,7 @@
7812
7822
  <xsl:variable name="regex_url_start">^(http://|https://|www\.)?(.*)</xsl:variable>
7813
7823
  <xsl:template match="*[local-name()='tt']/text()" priority="2">
7814
7824
  <xsl:choose>
7815
- <xsl:when test="java:replaceAll(java:java.lang.String.new(.), '$2', '') != ''">
7825
+ <xsl:when test="java:replaceAll(java:java.lang.String.new(.), $regex_url_start, '$2') != ''">
7816
7826
  <!-- url -->
7817
7827
  <xsl:call-template name="add-zero-spaces-link-java"/>
7818
7828
  </xsl:when>
@@ -8274,10 +8284,13 @@
8274
8284
  </xsl:choose>
8275
8285
  </xsl:variable>
8276
8286
 
8287
+ <!-- replace sequence #x200B to one &#x200B -->
8288
+ <xsl:variable name="text10" select="java:replaceAll(java:java.lang.String.new($text9), '\u200b{2,}', '​')"/>
8289
+
8277
8290
  <!-- replace sequence #x200B and space TO space -->
8278
- <xsl:variable name="text10" select="java:replaceAll(java:java.lang.String.new($text9), '\u200b ', ' ')"/>
8291
+ <xsl:variable name="text11" select="java:replaceAll(java:java.lang.String.new($text10), '\u200b ', ' ')"/>
8279
8292
 
8280
- <xsl:value-of select="$text10"/>
8293
+ <xsl:value-of select="$text11"/>
8281
8294
  </xsl:template>
8282
8295
 
8283
8296
  <xsl:template name="add-zero-spaces-link-java">
@@ -8287,8 +8300,12 @@
8287
8300
  <xsl:variable name="url_continue" select="java:replaceAll(java:java.lang.String.new($text), $regex_url_start, '$2')"/>
8288
8301
  <!-- add zero-width space (#x200B) after characters: dash, dot, colon, equal, underscore, em dash, thin space, comma, slash, @ -->
8289
8302
  <xsl:variable name="url" select="java:replaceAll(java:java.lang.String.new($url_continue),'(-|\.|:|=|_|—| |,|/|@)','$1​')"/>
8303
+
8304
+ <!-- replace sequence #x200B to one &#x200B -->
8305
+ <xsl:variable name="url2" select="java:replaceAll(java:java.lang.String.new($url), '\u200b{2,}', '​')"/>
8306
+
8290
8307
  <!-- remove zero-width space at the end -->
8291
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($url), '​$', '')"/>
8308
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($url2), '​$', '')"/>
8292
8309
  </xsl:template>
8293
8310
 
8294
8311
  <!-- add zero space after dash character (for table's entries) -->
@@ -8699,6 +8716,18 @@
8699
8716
  </xsl:copy>
8700
8717
  </xsl:template>
8701
8718
 
8719
+ <xsl:variable name="font_main_root_style">
8720
+ <root-style xsl:use-attribute-sets="root-style">
8721
+ </root-style>
8722
+ </xsl:variable>
8723
+ <xsl:variable name="font_main_root_style_font_family" select="xalan:nodeset($font_main_root_style)/root-style/@font-family"/>
8724
+ <xsl:variable name="font_main">
8725
+ <xsl:choose>
8726
+ <xsl:when test="contains($font_main_root_style_font_family, ',')"><xsl:value-of select="substring-before($font_main_root_style_font_family, ',')"/></xsl:when>
8727
+ <xsl:otherwise><xsl:value-of select="$font_main_root_style_font_family"/></xsl:otherwise>
8728
+ </xsl:choose>
8729
+ </xsl:variable>
8730
+
8702
8731
  <xsl:template match="*[local-name()='th' or local-name()='td']" mode="simple-table-id">
8703
8732
  <xsl:param name="id"/>
8704
8733
  <xsl:copy>
@@ -8737,6 +8766,33 @@
8737
8766
 
8738
8767
  <!-- td_text='<xsl:copy-of select="$td_text"/>' -->
8739
8768
 
8769
+ <xsl:variable name="words_with_width">
8770
+ <!-- calculate width for 'word' which contain text only (without formatting tags inside) -->
8771
+ <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != ''][not(*)]">
8772
+ <xsl:copy>
8773
+ <xsl:copy-of select="@*"/>
8774
+ <xsl:attribute name="width">
8775
+ <xsl:value-of select="java:org.metanorma.fop.Util.getStringWidth(., $font_main)"/> <!-- Example: 'Times New Roman' -->
8776
+ </xsl:attribute>
8777
+ <xsl:copy-of select="node()"/>
8778
+ </xsl:copy>
8779
+ </xsl:for-each>
8780
+ </xsl:variable>
8781
+
8782
+ <xsl:variable name="words_with_width_sorted">
8783
+ <xsl:for-each select="xalan:nodeset($words_with_width)//*[local-name() = 'word']">
8784
+ <xsl:sort select="@width" data-type="number" order="descending"/>
8785
+ <!-- select word maximal width only -->
8786
+ <xsl:if test="position() = 1">
8787
+ <xsl:copy-of select="."/>
8788
+ </xsl:if>
8789
+ </xsl:for-each>
8790
+ <!-- add 'word' with formatting tags inside -->
8791
+ <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != ''][*]">
8792
+ <xsl:copy-of select="."/>
8793
+ </xsl:for-each>
8794
+ </xsl:variable>
8795
+
8740
8796
  <xsl:variable name="words">
8741
8797
  <xsl:for-each select=".//*[local-name() = 'image' or local-name() = 'stem']">
8742
8798
  <word>
@@ -8744,9 +8800,12 @@
8744
8800
  </word>
8745
8801
  </xsl:for-each>
8746
8802
 
8747
- <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
8803
+ <xsl:for-each select="xalan:nodeset($words_with_width_sorted)//*[local-name() = 'word'][normalize-space() != '']">
8748
8804
  <xsl:copy-of select="."/>
8749
8805
  </xsl:for-each>
8806
+ <!-- <xsl:for-each select="xalan:nodeset($td_text)//*[local-name() = 'word'][normalize-space() != '']">
8807
+ <xsl:copy-of select="."/>
8808
+ </xsl:for-each> -->
8750
8809
 
8751
8810
  </xsl:variable>
8752
8811
 
@@ -9209,10 +9268,10 @@
9209
9268
  <xsl:copy>
9210
9269
  <xsl:apply-templates select="@*" mode="mathml"/>
9211
9270
  <xsl:if test="not(@lspace)">
9212
- <xsl:attribute name="lspace">0.4em</xsl:attribute>
9271
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9213
9272
  </xsl:if>
9214
- <xsl:if test="not(@rspace)">
9215
- <xsl:attribute name="rspace">0.4em</xsl:attribute>
9273
+ <xsl:if test="not(@rspace) and not(following-sibling::*[1][self::mathml:mo and normalize-space(text()) = '|'])">
9274
+ <xsl:attribute name="rspace">0.2em</xsl:attribute>
9216
9275
  </xsl:if>
9217
9276
  <xsl:apply-templates mode="mathml"/>
9218
9277
  </xsl:copy>
@@ -9229,6 +9288,27 @@
9229
9288
  </xsl:copy>
9230
9289
  </xsl:template>
9231
9290
 
9291
+ <!-- increase space before '(' -->
9292
+ <xsl:template match="mathml:mo[normalize-space(text()) = '(']" mode="mathml">
9293
+ <xsl:copy>
9294
+ <xsl:apply-templates select="@*" mode="mathml"/>
9295
+ <xsl:if test="(preceding-sibling::* and not(preceding-sibling::*[1][self::mathml:mo])) or (../preceding-sibling::* and not(../preceding-sibling::*[1][self::mathml:mo]))">
9296
+ <xsl:if test="not(@lspace)">
9297
+ <xsl:attribute name="lspace">0.4em</xsl:attribute>
9298
+ <xsl:choose>
9299
+ <xsl:when test="preceding-sibling::*[1][self::mathml:mi or self::mathml:mstyle]">
9300
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9301
+ </xsl:when>
9302
+ <xsl:when test="../preceding-sibling::*[1][self::mathml:mi or self::mathml:mstyle]">
9303
+ <xsl:attribute name="lspace">0.2em</xsl:attribute>
9304
+ </xsl:when>
9305
+ </xsl:choose>
9306
+ </xsl:if>
9307
+ </xsl:if>
9308
+ <xsl:apply-templates mode="mathml"/>
9309
+ </xsl:copy>
9310
+ </xsl:template>
9311
+
9232
9312
  <!-- Examples:
9233
9313
  <stem type="AsciiMath">x = 1</stem>
9234
9314
  <stem type="AsciiMath"><asciimath>x = 1</asciimath></stem>
@@ -9388,7 +9468,7 @@
9388
9468
  <!-- formula -->
9389
9469
  <!-- ====== -->
9390
9470
  <xsl:template match="*[local-name() = 'formula']" name="formula">
9391
- <fo:block-container margin-left="0mm">
9471
+ <fo:block-container margin-left="0mm" role="SKIP">
9392
9472
  <xsl:if test="parent::*[local-name() = 'note']">
9393
9473
  <xsl:attribute name="margin-left">
9394
9474
  <xsl:choose>
@@ -9398,7 +9478,7 @@
9398
9478
  </xsl:attribute>
9399
9479
 
9400
9480
  </xsl:if>
9401
- <fo:block-container margin-left="0mm">
9481
+ <fo:block-container margin-left="0mm" role="SKIP">
9402
9482
  <fo:block id="{@id}">
9403
9483
  <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
9404
9484
  </fo:block>
@@ -9478,19 +9558,19 @@
9478
9558
 
9479
9559
  <xsl:template match="*[local-name() = 'note']" name="note">
9480
9560
 
9481
- <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
9561
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style" role="SKIP">
9482
9562
 
9483
9563
  <xsl:call-template name="setBlockSpanAll"/>
9484
9564
 
9485
9565
  <xsl:call-template name="refine_note-style"/>
9486
9566
 
9487
- <fo:block-container margin-left="0mm" margin-right="0mm">
9567
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
9488
9568
 
9489
9569
  <fo:block>
9490
9570
 
9491
9571
  <xsl:call-template name="refine_note_block_style"/>
9492
9572
 
9493
- <fo:inline xsl:use-attribute-sets="note-name-style">
9573
+ <fo:inline xsl:use-attribute-sets="note-name-style" role="SKIP">
9494
9574
 
9495
9575
  <xsl:call-template name="refine_note-name-style"/>
9496
9576
 
@@ -9527,12 +9607,12 @@
9527
9607
  <xsl:variable name="num"><xsl:number/></xsl:variable>
9528
9608
  <xsl:choose>
9529
9609
  <xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
9530
- <fo:inline xsl:use-attribute-sets="note-p-style">
9610
+ <fo:inline xsl:use-attribute-sets="note-p-style" role="SKIP">
9531
9611
  <xsl:apply-templates/>
9532
9612
  </fo:inline>
9533
9613
  </xsl:when>
9534
9614
  <xsl:otherwise>
9535
- <fo:block xsl:use-attribute-sets="note-p-style">
9615
+ <fo:block xsl:use-attribute-sets="note-p-style" role="SKIP">
9536
9616
  <xsl:apply-templates/>
9537
9617
  </fo:block>
9538
9618
  </xsl:otherwise>
@@ -9650,12 +9730,13 @@
9650
9730
 
9651
9731
  <xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
9652
9732
  <xsl:if test="normalize-space() != ''">
9653
- <xsl:variable name="level">
9733
+ <!-- <xsl:variable name="level">
9654
9734
  <xsl:call-template name="getLevelTermName"/>
9655
9735
  </xsl:variable>
9656
9736
  <fo:inline role="H{$level}">
9657
- <xsl:apply-templates/>
9658
- </fo:inline>
9737
+ <xsl:apply-templates />
9738
+ </fo:inline> -->
9739
+ <xsl:apply-templates/>
9659
9740
  </xsl:if>
9660
9741
  </xsl:template>
9661
9742
  <!-- ====== -->
@@ -9679,7 +9760,7 @@
9679
9760
  <!-- Example: Dimensions in millimeters -->
9680
9761
  <xsl:apply-templates select="*[local-name() = 'note'][@type = 'units']"/>
9681
9762
 
9682
- <fo:block xsl:use-attribute-sets="figure-style">
9763
+ <fo:block xsl:use-attribute-sets="figure-style" role="SKIP">
9683
9764
  <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note' and @type = 'units')]"/>
9684
9765
  </fo:block>
9685
9766
  <xsl:for-each select="*[local-name() = 'note'][not(@type = 'units')]">
@@ -10812,7 +10893,7 @@
10812
10893
  </xsl:when>
10813
10894
 
10814
10895
  <xsl:otherwise>
10815
- <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
10896
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style" role="SKIP">
10816
10897
 
10817
10898
  <xsl:if test="not(ancestor::*[local-name() = 'li']) or ancestor::*[local-name() = 'example']">
10818
10899
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
@@ -10833,7 +10914,7 @@
10833
10914
  </xsl:attribute>
10834
10915
 
10835
10916
  </xsl:if>
10836
- <fo:block-container margin-left="0mm">
10917
+ <fo:block-container margin-left="0mm" role="SKIP">
10837
10918
 
10838
10919
  <fo:block xsl:use-attribute-sets="sourcecode-style">
10839
10920
 
@@ -11379,11 +11460,11 @@
11379
11460
  <!-- requirement, recommendation, permission table -->
11380
11461
  <!-- ========== -->
11381
11462
  <xsl:template match="*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11382
- <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt">
11463
+ <fo:block-container margin-left="0mm" margin-right="0mm" margin-bottom="12pt" role="SKIP">
11383
11464
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11384
11465
  <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
11385
11466
  </xsl:if>
11386
- <fo:block-container margin-left="0mm" margin-right="0mm">
11467
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11387
11468
  <fo:table id="{@id}" table-layout="fixed" width="100%"> <!-- border="1pt solid black" -->
11388
11469
  <xsl:if test="ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']">
11389
11470
  <!-- <xsl:attribute name="border">0.5pt solid black</xsl:attribute> -->
@@ -11549,7 +11630,7 @@
11549
11630
  -->
11550
11631
  <xsl:template match="*[local-name() = 'example']">
11551
11632
 
11552
- <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style">
11633
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="example-style" role="SKIP">
11553
11634
 
11554
11635
  <xsl:call-template name="setBlockSpanAll"/>
11555
11636
 
@@ -11560,7 +11641,7 @@
11560
11641
  block
11561
11642
  </xsl:variable>
11562
11643
 
11563
- <fo:block-container margin-left="0mm">
11644
+ <fo:block-container margin-left="0mm" role="SKIP">
11564
11645
 
11565
11646
  <xsl:choose>
11566
11647
 
@@ -11573,8 +11654,8 @@
11573
11654
  </xsl:apply-templates>
11574
11655
  </fo:block>
11575
11656
 
11576
- <fo:block-container xsl:use-attribute-sets="example-body-style">
11577
- <fo:block-container margin-left="0mm" margin-right="0mm">
11657
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11658
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11578
11659
  <xsl:apply-templates select="node()[not(local-name() = 'name')]">
11579
11660
  <xsl:with-param name="fo_element" select="$fo_element"/>
11580
11661
  </xsl:apply-templates>
@@ -11627,8 +11708,8 @@
11627
11708
 
11628
11709
  <xsl:if test="*[not(local-name() = 'name')][position() &gt; 1]">
11629
11710
  <!-- display further elements in blocks -->
11630
- <fo:block-container xsl:use-attribute-sets="example-body-style">
11631
- <fo:block-container margin-left="0mm" margin-right="0mm">
11711
+ <fo:block-container xsl:use-attribute-sets="example-body-style" role="SKIP">
11712
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11632
11713
  <xsl:apply-templates select="*[not(local-name() = 'name')][position() &gt; 1]">
11633
11714
  <xsl:with-param name="fo_element" select="'block'"/>
11634
11715
  </xsl:apply-templates>
@@ -11681,7 +11762,7 @@
11681
11762
  </xsl:variable>
11682
11763
  <xsl:choose>
11683
11764
  <xsl:when test="starts-with(normalize-space($element), 'block')">
11684
- <fo:block-container>
11765
+ <fo:block-container role="SKIP">
11685
11766
  <xsl:if test="ancestor::*[local-name() = 'li'] and contains(normalize-space($fo_element), 'block')">
11686
11767
  <xsl:attribute name="margin-left">0mm</xsl:attribute>
11687
11768
  <xsl:attribute name="margin-right">0mm</xsl:attribute>
@@ -11822,7 +11903,7 @@
11822
11903
  <!-- author -->
11823
11904
  <!-- ====== -->
11824
11905
  <xsl:template match="*[local-name() = 'quote']">
11825
- <fo:block-container margin-left="0mm">
11906
+ <fo:block-container margin-left="0mm" role="SKIP">
11826
11907
 
11827
11908
  <xsl:call-template name="setBlockSpanAll"/>
11828
11909
 
@@ -11832,12 +11913,12 @@
11832
11913
  </xsl:if>
11833
11914
  </xsl:if>
11834
11915
 
11835
- <fo:block-container margin-left="0mm">
11836
- <fo:block-container xsl:use-attribute-sets="quote-style">
11916
+ <fo:block-container margin-left="0mm" role="SKIP">
11917
+ <fo:block-container xsl:use-attribute-sets="quote-style" role="SKIP">
11837
11918
 
11838
11919
  <xsl:call-template name="refine_quote-style"/>
11839
11920
 
11840
- <fo:block-container margin-left="0mm" margin-right="0mm">
11921
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
11841
11922
  <fo:block role="BlockQuote">
11842
11923
  <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
11843
11924
  </fo:block>
@@ -11991,10 +12072,10 @@
11991
12072
 
11992
12073
  <xsl:choose>
11993
12074
  <xsl:when test="$lang = 'zh'">
11994
- <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
12075
+ <fo:inline role="SKIP"><xsl:value-of select="$tab_zh"/></fo:inline>
11995
12076
  </xsl:when>
11996
12077
  <xsl:when test="../../@inline-header = 'true'">
11997
- <fo:inline font-size="90%">
12078
+ <fo:inline font-size="90%" role="SKIP">
11998
12079
  <xsl:call-template name="insertNonBreakSpaces">
11999
12080
  <xsl:with-param name="count" select="$padding-right"/>
12000
12081
  </xsl:call-template>
@@ -12002,7 +12083,7 @@
12002
12083
  </xsl:when>
12003
12084
  <xsl:otherwise>
12004
12085
  <xsl:variable name="direction"><xsl:if test="$lang = 'ar'"><xsl:value-of select="$RLM"/></xsl:if></xsl:variable>
12005
- <fo:inline padding-right="{$padding-right}mm"><xsl:value-of select="$direction"/>​</fo:inline>
12086
+ <fo:inline padding-right="{$padding-right}mm" role="SKIP"><xsl:value-of select="$direction"/>​</fo:inline>
12006
12087
  </xsl:otherwise>
12007
12088
  </xsl:choose>
12008
12089
 
@@ -12032,12 +12113,12 @@
12032
12113
  <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
12033
12114
 
12034
12115
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
12035
- <fo:block xsl:use-attribute-sets="term-name-style">
12116
+ <fo:block xsl:use-attribute-sets="term-name-style" role="SKIP">
12036
12117
  <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
12037
12118
  </fo:block>
12038
12119
  </xsl:if>
12039
12120
 
12040
- <fo:block xsl:use-attribute-sets="preferred-term-style">
12121
+ <fo:block xsl:use-attribute-sets="preferred-term-style" role="SKIP">
12041
12122
  <xsl:call-template name="setStyle_preferred"/>
12042
12123
  <xsl:apply-templates/>
12043
12124
  </fo:block>
@@ -12078,7 +12159,7 @@
12078
12159
  <!-- definition -->
12079
12160
  <!-- ========== -->
12080
12161
  <xsl:template match="*[local-name() = 'definition']">
12081
- <fo:block xsl:use-attribute-sets="definition-style">
12162
+ <fo:block xsl:use-attribute-sets="definition-style" role="SKIP">
12082
12163
  <xsl:apply-templates/>
12083
12164
  </fo:block>
12084
12165
  </xsl:template>
@@ -12121,6 +12202,10 @@
12121
12202
 
12122
12203
  <xsl:template match="*[local-name() = 'clause']">
12123
12204
  <fo:block>
12205
+ <xsl:if test="parent::*[local-name() = 'copyright-statement']">
12206
+ <xsl:attribute name="role">SKIP</xsl:attribute>
12207
+ </xsl:if>
12208
+
12124
12209
  <xsl:call-template name="setId"/>
12125
12210
 
12126
12211
  <xsl:call-template name="setBlockSpanAll"/>
@@ -12368,7 +12453,7 @@
12368
12453
  <xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
12369
12454
  <xsl:choose>
12370
12455
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
12371
- <fo:block-container>
12456
+ <fo:block-container role="SKIP">
12372
12457
  <xsl:attribute name="margin-left">
12373
12458
  <xsl:choose>
12374
12459
  <xsl:when test="not(ancestor::*[local-name() = 'table'])"><xsl:value-of select="$note-body-indent"/></xsl:when>
@@ -12378,7 +12463,7 @@
12378
12463
 
12379
12464
  <xsl:call-template name="refine_list_container_style"/>
12380
12465
 
12381
- <fo:block-container margin-left="0mm">
12466
+ <fo:block-container margin-left="0mm" role="SKIP">
12382
12467
  <fo:block>
12383
12468
  <xsl:apply-templates select="." mode="list"/>
12384
12469
  </fo:block>
@@ -12387,7 +12472,7 @@
12387
12472
  </xsl:when>
12388
12473
  <xsl:otherwise>
12389
12474
 
12390
- <fo:block>
12475
+ <fo:block role="SKIP">
12391
12476
  <xsl:apply-templates select="." mode="list"/>
12392
12477
  </fo:block>
12393
12478
 
@@ -12805,7 +12890,10 @@
12805
12890
  <!-- Reference sections (Normative References and Bibliography) -->
12806
12891
  <!-- ========================================================== -->
12807
12892
  <xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/>
12808
- <xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/>
12893
+ <xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3">
12894
+ <xsl:param name="skip" select="normalize-space(preceding-sibling::*[1][local-name() = 'bibitem'] and 1 = 1)"/>
12895
+
12896
+ </xsl:template>
12809
12897
  <!-- don't display bibitem with @id starts with '_hidden', that was introduced for references integrity -->
12810
12898
  <xsl:template match="*[local-name() = 'bibitem'][starts-with(@id, 'hidden_bibitem_')]" priority="3"/>
12811
12899
 
@@ -12852,7 +12940,7 @@
12852
12940
 
12853
12941
  <!-- Bibliography (non-normative references) -->
12854
12942
  <xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" name="bibitem_non_normative" priority="2">
12855
-
12943
+ <xsl:param name="skip" select="normalize-space(preceding-sibling::*[1][local-name() = 'bibitem'] and 1 = 1)"/> <!-- current bibiitem is non-first -->
12856
12944
  <!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'ieee' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
12857
12945
  $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
12858
12946
  <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
@@ -12884,6 +12972,35 @@
12884
12972
 
12885
12973
  </xsl:template> <!-- references[not(@normative='true')]/bibitem -->
12886
12974
 
12975
+ <xsl:template name="insertListItem_Bibitem">
12976
+ <xsl:choose>
12977
+ <xsl:when test="@hidden = 'true'"><!-- skip --></xsl:when>
12978
+ <xsl:otherwise>
12979
+ <fo:list-item id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-item-style">
12980
+ <fo:list-item-label end-indent="label-end()">
12981
+ <fo:block role="SKIP">
12982
+ <fo:inline role="SKIP">
12983
+ <xsl:apply-templates select="*[local-name() = 'biblio-tag']">
12984
+ <xsl:with-param name="biblio_tag_part">first</xsl:with-param>
12985
+ </xsl:apply-templates>
12986
+ </fo:inline>
12987
+ </fo:block>
12988
+ </fo:list-item-label>
12989
+ <fo:list-item-body start-indent="body-start()">
12990
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style" role="SKIP">
12991
+ <xsl:call-template name="processBibitem">
12992
+ <xsl:with-param name="biblio_tag_part">last</xsl:with-param>
12993
+ </xsl:call-template>
12994
+ </fo:block>
12995
+ </fo:list-item-body>
12996
+ </fo:list-item>
12997
+ </xsl:otherwise>
12998
+ </xsl:choose>
12999
+ <xsl:apply-templates select="following-sibling::*[1][local-name() = 'bibitem']">
13000
+ <xsl:with-param name="skip">false</xsl:with-param>
13001
+ </xsl:apply-templates>
13002
+ </xsl:template>
13003
+
12887
13004
  <xsl:template name="processBibitem">
12888
13005
  <xsl:param name="biblio_tag_part">both</xsl:param>
12889
13006
 
@@ -13237,7 +13354,7 @@
13237
13354
  <xsl:attribute name="text-align">left</xsl:attribute>
13238
13355
  </xsl:if>
13239
13356
 
13240
- <fo:block-container xsl:use-attribute-sets="admonition-container-style">
13357
+ <fo:block-container xsl:use-attribute-sets="admonition-container-style" role="SKIP">
13241
13358
 
13242
13359
  <xsl:if test="@type = 'editorial' or not(@type)">
13243
13360
  <xsl:attribute name="padding">0mm</xsl:attribute>
@@ -13247,7 +13364,7 @@
13247
13364
  <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute>
13248
13365
  </xsl:if>
13249
13366
 
13250
- <fo:block-container margin-left="0mm" margin-right="0mm">
13367
+ <fo:block-container margin-left="0mm" margin-right="0mm" role="SKIP">
13251
13368
  <fo:block xsl:use-attribute-sets="admonition-p-style">
13252
13369
  <fo:inline>
13253
13370
  <xsl:call-template name="displayAdmonitionName">