metanorma-ieee 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4806,6 +4806,10 @@
4806
4806
  </xsl:attribute-set> <!-- formula-stem-number-style -->
4807
4807
  <!-- End Formula's styles -->
4808
4808
 
4809
+ <xsl:template name="refine_formula-stem-number-style">
4810
+
4811
+ </xsl:template>
4812
+
4809
4813
  <xsl:attribute-set name="image-style">
4810
4814
  <xsl:attribute name="text-align">center</xsl:attribute>
4811
4815
 
@@ -5308,13 +5312,13 @@
5308
5312
 
5309
5313
  <xsl:template name="processPrefaceSectionsDefault_Contents">
5310
5314
  <xsl:variable name="nodes_preface_">
5311
- <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
5315
+ <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition' or @type = 'toc')]">
5312
5316
  <node id="{@id}"/>
5313
5317
  </xsl:for-each>
5314
5318
  </xsl:variable>
5315
5319
  <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
5316
5320
 
5317
- <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition')]">
5321
+ <xsl:for-each select="/*/*[local-name()='preface']/*[not(local-name() = 'note' or local-name() = 'admonition' or @type = 'toc')]">
5318
5322
  <xsl:sort select="@displayorder" data-type="number"/>
5319
5323
 
5320
5324
  <!-- process Section's title -->
@@ -5348,12 +5352,12 @@
5348
5352
  <xsl:apply-templates select="." mode="contents"/>
5349
5353
  </xsl:for-each>
5350
5354
 
5351
- <xsl:for-each select="/*/*[local-name()='annex']">
5355
+ <!-- <xsl:for-each select="/*/*[local-name()='annex']">
5352
5356
  <xsl:sort select="@displayorder" data-type="number"/>
5353
5357
  <xsl:apply-templates select="." mode="contents"/>
5354
- </xsl:for-each>
5358
+ </xsl:for-each> -->
5355
5359
 
5356
- <xsl:for-each select="/*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0]">
5360
+ <xsl:for-each select="/*/*[local-name()='annex'] | /*/*[local-name()='bibliography']/*[not(@normative='true') and not(*[local-name()='references'][@normative='true'])][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]][count(.//*[local-name() = 'bibitem'][not(@hidden) = 'true']) &gt; 0]">
5357
5361
  <xsl:sort select="@displayorder" data-type="number"/>
5358
5362
  <xsl:apply-templates select="." mode="contents"/>
5359
5363
  </xsl:for-each>
@@ -5724,7 +5728,7 @@
5724
5728
  </xsl:attribute>
5725
5729
  </xsl:for-each>
5726
5730
 
5727
- <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
5731
+ <xsl:variable name="isNoteOrFnExist" select="./*[local-name()='note'] or ./*[local-name()='example'] or .//*[local-name()='fn'][local-name(..) != 'name'] or ./*[local-name()='source']"/>
5728
5732
  <xsl:if test="$isNoteOrFnExist = 'true'">
5729
5733
  <xsl:attribute name="border-bottom">0pt solid black</xsl:attribute> <!-- set 0pt border, because there is a separete table below for footer -->
5730
5734
  </xsl:if>
@@ -5768,7 +5772,7 @@
5768
5772
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
5769
5773
  </xsl:when>
5770
5774
  <xsl:otherwise>
5771
- <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() = '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 -->
5775
+ <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 -->
5772
5776
  </xsl:otherwise>
5773
5777
  </xsl:choose>
5774
5778
 
@@ -6218,8 +6222,8 @@
6218
6222
  <xsl:template name="table-header-title">
6219
6223
  <xsl:param name="cols-count"/>
6220
6224
  <!-- row for title -->
6221
- <fo:table-row>
6222
- <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">
6225
+ <fo:table-row role="SKIP">
6226
+ <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" role="SKIP">
6223
6227
 
6224
6228
  <xsl:call-template name="refine_table-header-title-style"/>
6225
6229
 
@@ -6227,12 +6231,12 @@
6227
6231
  <xsl:attribute name="border-bottom">0.5 solid black</xsl:attribute>
6228
6232
  </xsl:if>
6229
6233
 
6230
- <fo:block xsl:use-attribute-sets="table-name-style">
6234
+ <fo:block xsl:use-attribute-sets="table-name-style" role="SKIP">
6231
6235
  <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
6232
6236
  <xsl:with-param name="continued">true</xsl:with-param>
6233
6237
  </xsl:apply-templates>
6234
6238
 
6235
- <fo:inline font-weight="normal" font-style="italic">
6239
+ <fo:inline font-weight="normal" font-style="italic" role="SKIP">
6236
6240
  <xsl:text> </xsl:text>
6237
6241
  <fo:retrieve-table-marker retrieve-class-name="table_continued"/>
6238
6242
  </fo:inline>
@@ -6270,7 +6274,7 @@
6270
6274
  <xsl:param name="colwidths"/>
6271
6275
  <xsl:param name="colgroup"/>
6272
6276
 
6273
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ../*[local-name()='dl'] or ..//*[local-name()='fn'][local-name(..) != 'name'] or ../*[local-name()='source'] or ../*[local-name()='p']"/>
6277
+ <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']"/>
6274
6278
 
6275
6279
  <xsl:variable name="isNoteOrFnExistShowAfterTable">
6276
6280
 
@@ -6343,6 +6347,7 @@
6343
6347
  <xsl:apply-templates select="../*[local-name()='p']"/>
6344
6348
  <xsl:apply-templates select="../*[local-name()='dl']"/>
6345
6349
  <xsl:apply-templates select="../*[local-name()='note']"/>
6350
+ <xsl:apply-templates select="../*[local-name()='example']"/>
6346
6351
  <xsl:apply-templates select="../*[local-name()='source']"/>
6347
6352
 
6348
6353
  <xsl:variable name="isDisplayRowSeparator">
@@ -6351,7 +6356,7 @@
6351
6356
 
6352
6357
  <!-- horizontal row separator -->
6353
6358
  <xsl:if test="normalize-space($isDisplayRowSeparator) = 'true'">
6354
- <xsl:if test="../*[local-name()='note'] and normalize-space($table_fn_block) != ''">
6359
+ <xsl:if test="(../*[local-name()='note'] or ../*[local-name()='example']) and normalize-space($table_fn_block) != ''">
6355
6360
  <fo:block-container border-top="0.5pt solid black" padding-left="1mm" padding-right="1mm">
6356
6361
 
6357
6362
  <xsl:call-template name="setBordersTableArray"/>
@@ -6432,21 +6437,21 @@
6432
6437
  <xsl:variable name="title_start" select="ancestor::*[local-name()='table'][1]/*[local-name()='name']/node()[1][self::text()]"/>
6433
6438
  <xsl:variable name="table_number" select="substring-before($title_start, '—')"/>
6434
6439
 
6435
- <fo:table-row height="0" keep-with-next.within-page="always">
6436
- <fo:table-cell>
6440
+ <fo:table-row height="0" keep-with-next.within-page="always" role="SKIP">
6441
+ <fo:table-cell role="SKIP">
6437
6442
 
6438
6443
  <fo:marker marker-class-name="table_continued"/>
6439
6444
 
6440
- <fo:block/>
6445
+ <fo:block role="SKIP"/>
6441
6446
  </fo:table-cell>
6442
6447
  </fo:table-row>
6443
- <fo:table-row height="0" keep-with-next.within-page="always">
6444
- <fo:table-cell>
6448
+ <fo:table-row height="0" keep-with-next.within-page="always" role="SKIP">
6449
+ <fo:table-cell role="SKIP">
6445
6450
 
6446
6451
  <fo:marker marker-class-name="table_continued">
6447
6452
  <xsl:value-of select="$title_continued"/>
6448
6453
  </fo:marker>
6449
- <fo:block/>
6454
+ <fo:block role="SKIP"/>
6450
6455
  </fo:table-cell>
6451
6456
  </fo:table-row>
6452
6457
 
@@ -6587,7 +6592,7 @@
6587
6592
 
6588
6593
  <xsl:call-template name="refine_table-header-cell-style"/>
6589
6594
 
6590
- <fo:block>
6595
+ <fo:block role="SKIP">
6591
6596
  <xsl:apply-templates/>
6592
6597
  </fo:block>
6593
6598
  </fo:table-cell>
@@ -6640,7 +6645,7 @@
6640
6645
  <xsl:attribute name="text-align">left</xsl:attribute>
6641
6646
  </xsl:if>
6642
6647
 
6643
- <fo:block>
6648
+ <fo:block role="SKIP">
6644
6649
 
6645
6650
  <xsl:if test="$isGenerateTableIF = 'true'">
6646
6651
  <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
@@ -6654,13 +6659,13 @@
6654
6659
  </fo:table-cell>
6655
6660
  </xsl:template> <!-- td -->
6656
6661
 
6657
- <xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
6662
+ <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name() = 'example']" priority="2">
6658
6663
 
6659
6664
  <fo:block xsl:use-attribute-sets="table-note-style">
6660
6665
 
6661
6666
  <xsl:call-template name="refine_table-note-style"/>
6662
6667
 
6663
- <!-- Table's note name (NOTE, for example) -->
6668
+ <!-- Table's note/example name (NOTE, for example) -->
6664
6669
  <fo:inline xsl:use-attribute-sets="table-note-name-style">
6665
6670
 
6666
6671
  <xsl:call-template name="refine_table-note-name-style"/>
@@ -6674,7 +6679,7 @@
6674
6679
 
6675
6680
  </xsl:template> <!-- table/note -->
6676
6681
 
6677
- <xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" priority="2">
6682
+ <xsl:template match="*[local-name()='table']/*[local-name()='note' or local-name()='example']/*[local-name()='p']" priority="2">
6678
6683
  <xsl:apply-templates/>
6679
6684
  </xsl:template>
6680
6685
 
@@ -7503,7 +7508,7 @@
7503
7508
  -->
7504
7509
  <fo:table-row>
7505
7510
  <fo:table-cell number-columns-spanned="2">
7506
- <fo:block>
7511
+ <fo:block role="SKIP">
7507
7512
  <xsl:call-template name="note"/>
7508
7513
  </fo:block>
7509
7514
  </fo:table-cell>
@@ -7568,7 +7573,7 @@
7568
7573
 
7569
7574
  <xsl:call-template name="refine_dt-cell-style"/>
7570
7575
 
7571
- <fo:block xsl:use-attribute-sets="dt-block-style">
7576
+ <fo:block xsl:use-attribute-sets="dt-block-style" role="SKIP">
7572
7577
  <xsl:copy-of select="@id"/>
7573
7578
 
7574
7579
  <xsl:if test="normalize-space($key_iso) = 'true'">
@@ -7598,7 +7603,7 @@
7598
7603
 
7599
7604
  <xsl:call-template name="refine_dd-cell-style"/>
7600
7605
 
7601
- <fo:block>
7606
+ <fo:block role="SKIP">
7602
7607
 
7603
7608
  <xsl:if test="$isGenerateTableIF = 'true'">
7604
7609
  <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>
@@ -7740,10 +7745,15 @@
7740
7745
  <!-- ========================= -->
7741
7746
  <xsl:template match="*[local-name()='em']">
7742
7747
  <fo:inline font-style="italic">
7748
+ <xsl:call-template name="refine_italic_style"/>
7743
7749
  <xsl:apply-templates/>
7744
7750
  </fo:inline>
7745
7751
  </xsl:template>
7746
7752
 
7753
+ <xsl:template name="refine_italic_style">
7754
+
7755
+ </xsl:template>
7756
+
7747
7757
  <xsl:template match="*[local-name()='strong'] | *[local-name()='b']">
7748
7758
  <xsl:param name="split_keep-within-line"/>
7749
7759
  <fo:inline font-weight="bold">
@@ -7966,11 +7976,41 @@
7966
7976
 
7967
7977
  <xsl:template match="text()[ancestor::*[local-name()='smallcap']]">
7968
7978
  <xsl:variable name="text" select="normalize-space(.)"/>
7969
- <fo:inline font-size="75%">
7979
+ <fo:inline font-size="75%" role="SKIP">
7970
7980
  <xsl:if test="string-length($text) &gt; 0">
7971
- <xsl:call-template name="recursiveSmallCaps">
7972
- <xsl:with-param name="text" select="$text"/>
7973
- </xsl:call-template>
7981
+ <xsl:variable name="smallCapsText">
7982
+ <xsl:call-template name="recursiveSmallCaps">
7983
+ <xsl:with-param name="text" select="$text"/>
7984
+ </xsl:call-template>
7985
+ </xsl:variable>
7986
+ <!-- merge neighboring fo:inline -->
7987
+ <xsl:for-each select="xalan:nodeset($smallCapsText)/node()">
7988
+ <xsl:choose>
7989
+ <xsl:when test="self::fo:inline and preceding-sibling::node()[1][self::fo:inline]"><!-- <xsl:copy-of select="."/> --></xsl:when>
7990
+ <xsl:when test="self::fo:inline and @font-size">
7991
+ <xsl:variable name="curr_pos" select="count(preceding-sibling::node()) + 1"/>
7992
+ <!-- <curr_pos><xsl:value-of select="$curr_pos"/></curr_pos> -->
7993
+ <xsl:variable name="next_text_" select="count(following-sibling::node()[not(local-name() = 'inline')][1]/preceding-sibling::node())"/>
7994
+ <xsl:variable name="next_text">
7995
+ <xsl:choose>
7996
+ <xsl:when test="$next_text_ = 0">99999999</xsl:when>
7997
+ <xsl:otherwise><xsl:value-of select="$next_text_ + 1"/></xsl:otherwise>
7998
+ </xsl:choose>
7999
+ </xsl:variable>
8000
+ <!-- <next_text><xsl:value-of select="$next_text"/></next_text> -->
8001
+ <fo:inline>
8002
+ <xsl:copy-of select="@*"/>
8003
+ <xsl:copy-of select="./node()"/>
8004
+ <xsl:for-each select="following-sibling::node()[position() &lt; $next_text - $curr_pos]"> <!-- [self::fo:inline] -->
8005
+ <xsl:copy-of select="./node()"/>
8006
+ </xsl:for-each>
8007
+ </fo:inline>
8008
+ </xsl:when>
8009
+ <xsl:otherwise>
8010
+ <xsl:copy-of select="."/>
8011
+ </xsl:otherwise>
8012
+ </xsl:choose>
8013
+ </xsl:for-each>
7974
8014
  </xsl:if>
7975
8015
  </fo:inline>
7976
8016
  </xsl:template>
@@ -7982,7 +8022,7 @@
7982
8022
  <xsl:variable name="upperCase" select="java:toUpperCase(java:java.lang.String.new($char))"/>
7983
8023
  <xsl:choose>
7984
8024
  <xsl:when test="$char=$upperCase">
7985
- <fo:inline font-size="{100 div 0.75}%">
8025
+ <fo:inline font-size="{100 div 0.75}%" role="SKIP">
7986
8026
  <xsl:value-of select="$upperCase"/>
7987
8027
  </fo:inline>
7988
8028
  </xsl:when>
@@ -8144,6 +8184,10 @@
8144
8184
 
8145
8185
  <xsl:when test="not(contains($text, $separator))">
8146
8186
  <word>
8187
+ <xsl:if test="ancestor::*[local-name() = 'p'][@from_dl = 'true']">
8188
+ <xsl:text>
8189
+  </xsl:text> <!-- to add distance between dt and dd -->
8190
+ </xsl:if>
8147
8191
  <xsl:call-template name="enclose_text_in_tags">
8148
8192
  <xsl:with-param name="text" select="normalize-space($text)"/>
8149
8193
  <xsl:with-param name="tags" select="$tags"/>
@@ -8152,6 +8196,10 @@
8152
8196
  </xsl:when>
8153
8197
  <xsl:otherwise>
8154
8198
  <word>
8199
+ <xsl:if test="ancestor::*[local-name() = 'p'][@from_dl = 'true']">
8200
+ <xsl:text>
8201
+  </xsl:text> <!-- to add distance between dt and dd -->
8202
+ </xsl:if>
8155
8203
  <xsl:call-template name="enclose_text_in_tags">
8156
8204
  <xsl:with-param name="text" select="normalize-space(substring-before($text, $separator))"/>
8157
8205
  <xsl:with-param name="tags" select="$tags"/>
@@ -8335,6 +8383,10 @@
8335
8383
  <xsl:template name="getSimpleTable">
8336
8384
  <xsl:param name="id"/>
8337
8385
 
8386
+ <!-- <test0>
8387
+ <xsl:copy-of select="."/>
8388
+ </test0> -->
8389
+
8338
8390
  <xsl:variable name="simple-table">
8339
8391
 
8340
8392
  <!-- Step 0. replace <br/> to <p>...</p> -->
@@ -9382,7 +9434,7 @@
9382
9434
  <fo:table-body>
9383
9435
  <fo:table-row>
9384
9436
  <fo:table-cell display-align="center">
9385
- <fo:block xsl:use-attribute-sets="formula-stem-block-style">
9437
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style" role="SKIP">
9386
9438
 
9387
9439
  <xsl:call-template name="refine_formula-stem-block-style"/>
9388
9440
 
@@ -9390,7 +9442,10 @@
9390
9442
  </fo:block>
9391
9443
  </fo:table-cell>
9392
9444
  <fo:table-cell display-align="center">
9393
- <fo:block xsl:use-attribute-sets="formula-stem-number-style">
9445
+ <fo:block xsl:use-attribute-sets="formula-stem-number-style" role="SKIP">
9446
+
9447
+ <xsl:call-template name="refine_formula-stem-number-style"/>
9448
+
9394
9449
  <xsl:apply-templates select="../*[local-name() = 'name']"/>
9395
9450
  </fo:block>
9396
9451
  </fo:table-cell>
@@ -10902,7 +10957,7 @@
10902
10957
  <!-- second td with sourcecode -->
10903
10958
  <xsl:template match="*[local-name() = 'sourcecode'][@linenums = 'true']/*[local-name()='table']//*[local-name()='tr']/*[local-name()='td'][preceding-sibling::*]" priority="2"> <!-- *[local-name()='table'][@type = 'sourcecode'] -->
10904
10959
  <fo:table-cell>
10905
- <fo:block>
10960
+ <fo:block role="SKIP">
10906
10961
  <xsl:apply-templates/>
10907
10962
  </fo:block>
10908
10963
  </fo:table-cell>
@@ -11389,7 +11444,7 @@
11389
11444
 
11390
11445
  <xsl:call-template name="setTableCellAttributes"/>
11391
11446
 
11392
- <fo:block>
11447
+ <fo:block role="SKIP">
11393
11448
  <xsl:apply-templates/>
11394
11449
  </fo:block>
11395
11450
  </fo:table-cell>
@@ -11411,7 +11466,7 @@
11411
11466
 
11412
11467
  <xsl:call-template name="setTableCellAttributes"/>
11413
11468
 
11414
- <fo:block>
11469
+ <fo:block role="SKIP">
11415
11470
  <xsl:apply-templates/>
11416
11471
  </fo:block>
11417
11472
  </fo:table-cell>
@@ -11610,6 +11665,12 @@
11610
11665
 
11611
11666
  </xsl:template>
11612
11667
 
11668
+ <xsl:template match="*[local-name() = 'table']/*[local-name() = 'example']/*[local-name() = 'name']">
11669
+ <fo:inline xsl:use-attribute-sets="example-name-style">
11670
+ <xsl:apply-templates/>
11671
+ </fo:inline>
11672
+ </xsl:template>
11673
+
11613
11674
  <xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
11614
11675
  <xsl:param name="fo_element">block</xsl:param>
11615
11676
 
@@ -12132,9 +12193,10 @@
12132
12193
  <label level="2">—</label><!-- em dash -->
12133
12194
  </xsl:when>
12134
12195
  <xsl:otherwise>
12135
- <label level="1">–</label>
12196
+ <label>–</label>
12197
+ <!-- <label level="1">–</label>
12136
12198
  <label level="2">•</label>
12137
- <label level="3" font-size="75%">o</label> <!-- white circle -->
12199
+ <label level="3" font-size="75%">o</label> --> <!-- white circle -->
12138
12200
  </xsl:otherwise>
12139
12201
  </xsl:choose>
12140
12202
 
@@ -12182,6 +12244,50 @@
12182
12244
  <xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
12183
12245
  </xsl:choose>
12184
12246
  </xsl:when>
12247
+ <xsl:when test="local-name(..) = 'ol' and @label"> <!-- for ordered lists 'ol', and if there is @label, for instance label="1.1.2" -->
12248
+
12249
+ <xsl:variable name="label">
12250
+
12251
+ <xsl:variable name="type" select="../@type"/>
12252
+
12253
+ <xsl:variable name="style_prefix_">
12254
+ <xsl:if test="$type = 'roman'">
12255
+ <!-- Example: (i) -->
12256
+ </xsl:if>
12257
+ </xsl:variable>
12258
+ <xsl:variable name="style_prefix" select="normalize-space($style_prefix_)"/>
12259
+
12260
+ <xsl:variable name="style_suffix_">
12261
+ <xsl:choose>
12262
+ <xsl:when test="$type = 'arabic'">
12263
+ )
12264
+ </xsl:when>
12265
+ <xsl:when test="$type = 'alphabet' or $type = 'alphabetic'">
12266
+ )
12267
+ </xsl:when>
12268
+ <xsl:when test="$type = 'alphabet_upper' or $type = 'alphabetic_upper'">
12269
+ .
12270
+ </xsl:when>
12271
+ <xsl:when test="$type = 'roman'">
12272
+ )
12273
+ </xsl:when>
12274
+ <xsl:when test="$type = 'roman_upper'">.</xsl:when> <!-- Example: I. -->
12275
+ </xsl:choose>
12276
+ </xsl:variable>
12277
+ <xsl:variable name="style_suffix" select="normalize-space($style_suffix_)"/>
12278
+
12279
+ <xsl:if test="$style_prefix != '' and not(starts-with(@label, $style_prefix))">
12280
+ <xsl:value-of select="$style_prefix"/>
12281
+ </xsl:if>
12282
+ <xsl:value-of select="@label"/>
12283
+ <xsl:if test="not(java:endsWith(java:java.lang.String.new(@label),$style_suffix))">
12284
+ <xsl:value-of select="$style_suffix"/>
12285
+ </xsl:if>
12286
+ </xsl:variable>
12287
+
12288
+ <xsl:value-of select="normalize-space($label)"/>
12289
+
12290
+ </xsl:when>
12185
12291
  <xsl:otherwise> <!-- for ordered lists 'ol' -->
12186
12292
 
12187
12293
  <!-- Example: for BSI <?list-start 2?> -->
@@ -12239,10 +12345,10 @@
12239
12345
  <xsl:when test="$type = 'arabic'">
12240
12346
  1)
12241
12347
  </xsl:when>
12242
- <xsl:when test="$type = 'alphabet'">
12348
+ <xsl:when test="$type = 'alphabet' or $type = 'alphabetic'">
12243
12349
  a)
12244
12350
  </xsl:when>
12245
- <xsl:when test="$type = 'alphabet_upper'">
12351
+ <xsl:when test="$type = 'alphabet_upper' or $type = 'alphabetic_upper'">
12246
12352
  A.
12247
12353
  </xsl:when>
12248
12354
  <xsl:when test="$type = 'roman'">
@@ -12373,7 +12479,7 @@
12373
12479
  <xsl:call-template name="refine_list-item-style"/>
12374
12480
 
12375
12481
  <fo:list-item-label end-indent="label-end()">
12376
- <fo:block xsl:use-attribute-sets="list-item-label-style">
12482
+ <fo:block xsl:use-attribute-sets="list-item-label-style" role="SKIP">
12377
12483
 
12378
12484
  <xsl:call-template name="refine_list-item-label-style"/>
12379
12485
 
@@ -12387,7 +12493,7 @@
12387
12493
  </fo:block>
12388
12494
  </fo:list-item-label>
12389
12495
  <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
12390
- <fo:block>
12496
+ <fo:block role="SKIP">
12391
12497
 
12392
12498
  <xsl:call-template name="refine_list-item-body-style"/>
12393
12499
 
@@ -12666,10 +12772,10 @@
12666
12772
  <fo:table-body>
12667
12773
  <fo:table-row text-align="center" font-weight="bold" background-color="black" color="white">
12668
12774
 
12669
- <fo:table-cell border="1pt solid black"><fo:block>Date</fo:block></fo:table-cell>
12670
- <fo:table-cell border="1pt solid black"><fo:block>Type</fo:block></fo:table-cell>
12671
- <fo:table-cell border="1pt solid black"><fo:block>Change</fo:block></fo:table-cell>
12672
- <fo:table-cell border="1pt solid black"><fo:block>Pages</fo:block></fo:table-cell>
12775
+ <fo:table-cell border="1pt solid black"><fo:block role="SKIP">Date</fo:block></fo:table-cell>
12776
+ <fo:table-cell border="1pt solid black"><fo:block role="SKIP">Type</fo:block></fo:table-cell>
12777
+ <fo:table-cell border="1pt solid black"><fo:block role="SKIP">Change</fo:block></fo:table-cell>
12778
+ <fo:table-cell border="1pt solid black"><fo:block role="SKIP">Pages</fo:block></fo:table-cell>
12673
12779
  </fo:table-row>
12674
12780
  <xsl:apply-templates/>
12675
12781
  </fo:table-body>
@@ -12684,7 +12790,7 @@
12684
12790
 
12685
12791
  <xsl:template match="*[local-name() = 'errata']/*[local-name() = 'row']/*">
12686
12792
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
12687
- <fo:block><xsl:apply-templates/></fo:block>
12793
+ <fo:block role="SKIP"><xsl:apply-templates/></fo:block>
12688
12794
  </fo:table-cell>
12689
12795
  </xsl:template>
12690
12796
  <!-- ============ -->
@@ -12753,8 +12859,8 @@
12753
12859
  <fo:list-block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-style">
12754
12860
  <fo:list-item>
12755
12861
  <fo:list-item-label end-indent="label-end()">
12756
- <fo:block>
12757
- <fo:inline>
12862
+ <fo:block role="SKIP">
12863
+ <fo:inline role="SKIP">
12758
12864
 
12759
12865
  <xsl:if test="($current_template = 'whitepaper' or $current_template = 'icap-whitepaper' or $current_template = 'industry-connection-report')">
12760
12866
  <xsl:attribute name="color"><xsl:value-of select="$color_blue"/></xsl:attribute>
@@ -12767,7 +12873,7 @@
12767
12873
  </fo:block>
12768
12874
  </fo:list-item-label>
12769
12875
  <fo:list-item-body start-indent="body-start()">
12770
- <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style">
12876
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style" role="SKIP">
12771
12877
  <xsl:call-template name="processBibitem">
12772
12878
  <xsl:with-param name="biblio_tag_part">last</xsl:with-param>
12773
12879
  </xsl:call-template>
@@ -12994,7 +13100,7 @@
12994
13100
  <xsl:for-each select="*[local-name() = 'tab']">
12995
13101
  <xsl:variable name="current_id" select="generate-id()"/>
12996
13102
  <fo:table-cell>
12997
- <fo:block line-height-shift-adjustment="disregard-shifts">
13103
+ <fo:block line-height-shift-adjustment="disregard-shifts" role="SKIP">
12998
13104
  <xsl:call-template name="insert_basic_link">
12999
13105
  <xsl:with-param name="element">
13000
13106
  <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
@@ -13012,7 +13118,7 @@
13012
13118
  </xsl:for-each>
13013
13119
  <!-- last column - for page numbers -->
13014
13120
  <fo:table-cell text-align="right" font-size="10pt" font-weight="bold" font-family="Arial">
13015
- <fo:block>
13121
+ <fo:block role="SKIP">
13016
13122
  <xsl:call-template name="insert_basic_link">
13017
13123
  <xsl:with-param name="element">
13018
13124
  <fo:basic-link internal-destination="{$target}" fox:alt-text="{.}">
@@ -236,6 +236,36 @@ module IsoDoc
236
236
  dlist["class"] = "formula_dl"
237
237
  end
238
238
 
239
+ def ol(docxml)
240
+ ol_numbering(docxml)
241
+ @xrefs.list_anchor_names(docxml.xpath(ns(@xrefs.sections_xpath)))
242
+ docxml.xpath(ns("//ol/li")).each { |f| ol_label(f) }
243
+ end
244
+
245
+ def ol_numbering(docxml)
246
+ docxml.xpath(ns("//clause | //annex | //foreword | //acknowledgements | //introduction | //preface/abstract | //appendix | //terms | //term | //definitions | //references | //colophon")).each do |_c|
247
+ (docxml.xpath(ns(".//ol")) -
248
+ docxml.xpath(ns("./clause//ol | ./appendix//ol | ./term//ol | ./terms//ol | ./definitions//ol | /references//ol | ./colophon//ol"))).each_with_index do |o, i|
249
+ ol_numbering1(o, i)
250
+ end
251
+ end
252
+ end
253
+
254
+ def ol_numbering1(elem, idx)
255
+ elem["type"] = ol_depth_rotate(elem, idx).to_s
256
+ elem.xpath(ns("./li")).each do |li|
257
+ li["id"] ||= "_#{UUIDTools::UUID.random_create}"
258
+ end
259
+ end
260
+
261
+ def ol_depth_rotate(node, idx)
262
+ depth = node.ancestors("ol").size + idx
263
+ type = :alphabet
264
+ type = :arabic if [2, 5, 8].include? depth
265
+ type = :roman if [3, 6, 9].include? depth
266
+ type
267
+ end
268
+
239
269
  include Init
240
270
  end
241
271
  end