metanorma-m3aawg 2.0.4 → 2.0.5

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.
@@ -16,12 +16,15 @@
16
16
  <item level="1" id="Foreword" display="true">Foreword</item>
17
17
  <item id="term-script" display="false">3.2</item>
18
18
  -->
19
- <xsl:variable name="contents">
19
+ <xsl:variable name="contents_">
20
20
  <contents>
21
21
  <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
22
22
  <xsl:call-template name="processMainSectionsDefault_Contents"/>
23
+
24
+ <xsl:call-template name="processTablesFigures_Contents"/>
23
25
  </contents>
24
26
  </xsl:variable>
27
+ <xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
25
28
 
26
29
  <xsl:template match="/">
27
30
  <xsl:call-template name="namespaceCheck"/>
@@ -200,7 +203,7 @@
200
203
  <xsl:if test="$debug = 'true'">
201
204
  <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
202
205
  DEBUG
203
- contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
206
+ contents=<xsl:copy-of select="$contents"/>
204
207
  <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
205
208
  </xsl:if>
206
209
 
@@ -213,7 +216,7 @@
213
216
  </xsl:variable>
214
217
  <fo:block font-size="12pt" font-weight="bold" text-decoration="underline" margin-bottom="4pt" role="H1"><xsl:value-of select="$title-toc"/></fo:block>
215
218
  <fo:block font-size="10pt" role="TOC">
216
- <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
219
+ <xsl:for-each select="$contents//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
217
220
  <xsl:choose>
218
221
  <xsl:when test="@section = ''">
219
222
  <fo:table table-layout="fixed" width="100%">
@@ -290,10 +293,30 @@
290
293
  </xsl:otherwise>
291
294
 
292
295
  </xsl:choose>
296
+
297
+ </xsl:for-each>
293
298
 
299
+ <!-- List of Tables -->
300
+ <xsl:if test="$contents//tables/table">
301
+ <xsl:call-template name="insertListOf_Title">
302
+ <xsl:with-param name="title" select="$title-list-tables"/>
303
+ </xsl:call-template>
304
+ <xsl:for-each select="$contents//tables/table">
305
+ <xsl:call-template name="insertListOf_Item"/>
306
+ </xsl:for-each>
307
+ </xsl:if>
294
308
 
309
+ <!-- List of Figures -->
310
+ <xsl:if test="$contents//figures/figure">
311
+ <xsl:call-template name="insertListOf_Title">
312
+ <xsl:with-param name="title" select="$title-list-figures"/>
313
+ </xsl:call-template>
314
+ <xsl:for-each select="$contents//figures/figure">
315
+ <xsl:call-template name="insertListOf_Item"/>
316
+ </xsl:for-each>
317
+ </xsl:if>
295
318
 
296
- </xsl:for-each>
319
+
297
320
  </fo:block>
298
321
  </fo:block-container>
299
322
 
@@ -318,6 +341,49 @@
318
341
  </fo:root>
319
342
  </xsl:template>
320
343
 
344
+ <xsl:template name="insertListOf_Title">
345
+ <xsl:param name="title"/>
346
+ <fo:table table-layout="fixed" width="100%">
347
+ <fo:table-column column-width="180mm"/>
348
+ <fo:table-body>
349
+ <fo:table-row height="6mm">
350
+ <fo:table-cell>
351
+ <fo:block role="TOCI" font-weight="bold">
352
+ <xsl:value-of select="$title"/>
353
+ </fo:block>
354
+ </fo:table-cell>
355
+ </fo:table-row>
356
+ </fo:table-body>
357
+ </fo:table>
358
+ </xsl:template>
359
+
360
+ <xsl:template name="insertListOf_Item">
361
+ <fo:table table-layout="fixed" width="100%">
362
+ <fo:table-column column-width="5mm"/>
363
+ <fo:table-column column-width="175mm"/>
364
+ <fo:table-body>
365
+ <fo:table-row height="6mm">
366
+ <fo:table-cell>
367
+ <fo:block> </fo:block>
368
+ </fo:table-cell>
369
+ <fo:table-cell>
370
+ <fo:block text-align-last="justify" role="TOCI" font-weight="bold">
371
+ <fo:basic-link internal-destination="{@id}">
372
+ <xsl:call-template name="setAltText">
373
+ <xsl:with-param name="value" select="@alt-text"/>
374
+ </xsl:call-template>
375
+ <xsl:apply-templates select="." mode="contents"/><xsl:text> </xsl:text>
376
+ <fo:inline keep-together.within-line="always">
377
+ <fo:leader font-weight="normal" leader-pattern="dots"/>
378
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
379
+ </fo:inline>
380
+ </fo:basic-link>
381
+ </fo:block>
382
+ </fo:table-cell>
383
+ </fo:table-row>
384
+ </fo:table-body>
385
+ </fo:table>
386
+ </xsl:template>
321
387
 
322
388
  <xsl:template match="m3d:boilerplate//m3d:p" priority="2">
323
389
  <fo:block font-size="11pt" margin-bottom="12pt">
@@ -594,7 +660,7 @@
594
660
  <xsl:text>iVBORw0KGgoAAAANSUhEUgAAAjUAAAA8CAYAAACehUt5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA99pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ1dWlkOmZhZjViZGQ1LWJhM2QtMTFkYS1hZDMxLWQzM2Q3NTE4MmYxYiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo1QjFGQUNFRDVCODYxMUU0OUZCN0FCODI3QzkxM0M3RiIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo1QjFGQUNFQzVCODYxMUU0OUZCN0FCODI3QzkxM0M3RiIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkMwOEQ1MzE4OTE1NUU0MTE4ODdFRjlCOTFBMkJDOUNFIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjg1QjAy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</xsl:text>
595
661
  </xsl:variable>
596
662
 
597
- <xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:variable name="lang">
663
+ <xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:key name="bibitems" match="*[local-name() = 'bibitem']" use="@id"/><xsl:key name="bibitems_hidden" match="*[local-name() = 'bibitem'][@hidden='true'] | *[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']" use="@id"/><xsl:variable name="lang">
598
664
  <xsl:call-template name="getLang"/>
599
665
  </xsl:variable><xsl:variable name="pageWidth_">
600
666
  215.9
@@ -640,7 +706,7 @@
640
706
  <xsl:text>Contents</xsl:text>
641
707
 
642
708
  </title-toc>
643
-
709
+
644
710
  <title-descriptors lang="en">Descriptors</title-descriptors>
645
711
 
646
712
  <title-part lang="en">
@@ -676,7 +742,31 @@
676
742
  <title-continued lang="en">(continued)</title-continued>
677
743
  <title-continued lang="fr">(continué)</title-continued>
678
744
 
679
- </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
745
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
746
+ <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
747
+ <xsl:value-of select="$toc_table_title"/>
748
+ <xsl:if test="normalize-space($toc_table_title) = ''">
749
+ <xsl:call-template name="getTitle">
750
+ <xsl:with-param name="name" select="'title-list-tables'"/>
751
+ </xsl:call-template>
752
+ </xsl:if>
753
+ </xsl:variable><xsl:variable name="title-list-figures">
754
+ <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
755
+ <xsl:value-of select="$toc_figure_title"/>
756
+ <xsl:if test="normalize-space($toc_figure_title) = ''">
757
+ <xsl:call-template name="getTitle">
758
+ <xsl:with-param name="name" select="'title-list-figures'"/>
759
+ </xsl:call-template>
760
+ </xsl:if>
761
+ </xsl:variable><xsl:variable name="title-list-recommendations">
762
+ <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
763
+ <xsl:value-of select="$toc_requirement_title"/>
764
+ <xsl:if test="normalize-space($toc_requirement_title) = ''">
765
+ <xsl:call-template name="getTitle">
766
+ <xsl:with-param name="name" select="'title-list-recommendations'"/>
767
+ </xsl:call-template>
768
+ </xsl:if>
769
+ </xsl:variable><xsl:variable name="bibdata">
680
770
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
681
771
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
682
772
  </xsl:variable><xsl:variable name="linebreak">&#8232;</xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:variable name="non_breaking_hyphen">‑</xsl:variable><xsl:variable name="thin_space"> </xsl:variable><xsl:variable name="zero_width_space">​</xsl:variable><xsl:variable name="en_dash">–</xsl:variable><xsl:template name="getTitle">
@@ -1880,6 +1970,30 @@
1880
1970
  <xsl:sort select="@displayorder" data-type="number"/>
1881
1971
  <xsl:apply-templates select="." mode="contents"/>
1882
1972
  </xsl:for-each>
1973
+ </xsl:template><xsl:template name="processTablesFigures_Contents">
1974
+ <xsl:param name="always"/>
1975
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
1976
+ <xsl:call-template name="processTables_Contents"/>
1977
+ </xsl:if>
1978
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
1979
+ <xsl:call-template name="processFigures_Contents"/>
1980
+ </xsl:if>
1981
+ </xsl:template><xsl:template name="processTables_Contents">
1982
+ <tables>
1983
+ <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
1984
+ <table id="{@id}" alt-text="{*[local-name() = 'name']}">
1985
+ <xsl:copy-of select="*[local-name() = 'name']"/>
1986
+ </table>
1987
+ </xsl:for-each>
1988
+ </tables>
1989
+ </xsl:template><xsl:template name="processFigures_Contents">
1990
+ <figures>
1991
+ <xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name'] and not(@unnumbered = 'true') and normalize-space(@id) != ''] | //*[@id and starts-with(*[local-name() = 'name'], 'Figure ') and normalize-space(@id) != '']">
1992
+ <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
1993
+ <xsl:copy-of select="*[local-name() = 'name']"/>
1994
+ </figure>
1995
+ </xsl:for-each>
1996
+ </figures>
1883
1997
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1884
1998
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1885
1999
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -2664,37 +2778,7 @@
2664
2778
 
2665
2779
  <!-- list of footnotes to calculate actual footnotes number -->
2666
2780
  <xsl:variable name="p_fn_">
2667
- <xsl:choose>
2668
- <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
2669
- <fn gen_id="{generate-id(.)}">
2670
- <xsl:copy-of select="@*"/>
2671
- <xsl:copy-of select="node()"/>
2672
- </fn>
2673
- </xsl:when>
2674
- <xsl:otherwise>
2675
- <!-- itetation for:
2676
- footnotes in bibdata/title
2677
- footnotes in bibliography
2678
- footnotes in document's body (except table's head/body/foot and figure text)
2679
- -->
2680
- <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
2681
- <fn gen_id="{generate-id(.)}">
2682
- <xsl:copy-of select="@*"/>
2683
- <xsl:copy-of select="node()"/>
2684
- </fn>
2685
- </xsl:for-each>
2686
- <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
2687
- <xsl:sort select="@displayorder" data-type="number"/>
2688
- <xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
2689
- <!-- copy unique fn -->
2690
- <fn gen_id="{generate-id(.)}">
2691
- <xsl:copy-of select="@*"/>
2692
- <xsl:copy-of select="node()"/>
2693
- </fn>
2694
- </xsl:for-each>
2695
- </xsl:for-each>
2696
- </xsl:otherwise>
2697
- </xsl:choose>
2781
+ <xsl:call-template name="get_fn_list"/>
2698
2782
  </xsl:variable>
2699
2783
  <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
2700
2784
 
@@ -2755,6 +2839,38 @@
2755
2839
  <xsl:copy-of select="$footnote_inline"/>
2756
2840
  </xsl:otherwise>
2757
2841
  </xsl:choose>
2842
+ </xsl:template><xsl:template name="get_fn_list">
2843
+ <xsl:choose>
2844
+ <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
2845
+ <fn gen_id="{generate-id(.)}">
2846
+ <xsl:copy-of select="@*"/>
2847
+ <xsl:copy-of select="node()"/>
2848
+ </fn>
2849
+ </xsl:when>
2850
+ <xsl:otherwise>
2851
+ <!-- itetation for:
2852
+ footnotes in bibdata/title
2853
+ footnotes in bibliography
2854
+ footnotes in document's body (except table's head/body/foot and figure text)
2855
+ -->
2856
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
2857
+ <fn gen_id="{generate-id(.)}">
2858
+ <xsl:copy-of select="@*"/>
2859
+ <xsl:copy-of select="node()"/>
2860
+ </fn>
2861
+ </xsl:for-each>
2862
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='preface']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='sections']/* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='annex'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*">
2863
+ <xsl:sort select="@displayorder" data-type="number"/>
2864
+ <xsl:for-each select=".//*[local-name() = 'bibitem'][ancestor::*[local-name() = 'references']]/*[local-name() = 'note'] | .//*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])][generate-id(.)=generate-id(key('kfn',@reference)[1])]">
2865
+ <!-- copy unique fn -->
2866
+ <fn gen_id="{generate-id(.)}">
2867
+ <xsl:copy-of select="@*"/>
2868
+ <xsl:copy-of select="node()"/>
2869
+ </fn>
2870
+ </xsl:for-each>
2871
+ </xsl:for-each>
2872
+ </xsl:otherwise>
2873
+ </xsl:choose>
2758
2874
  </xsl:template><xsl:template name="table_fn_display">
2759
2875
  <xsl:variable name="references">
2760
2876
 
@@ -2926,7 +3042,7 @@
2926
3042
  </fo:inline>
2927
3043
  </xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
2928
3044
  <fo:inline><xsl:value-of select="."/></fo:inline>
2929
- </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
3045
+ </xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
2930
3046
  <fo:inline>
2931
3047
  <xsl:apply-templates/>
2932
3048
  </fo:inline>
@@ -4623,13 +4739,14 @@
4623
4739
  <xsl:apply-templates mode="bookmarks"/>
4624
4740
  </xsl:template><xsl:template name="addBookmarks">
4625
4741
  <xsl:param name="contents"/>
4626
- <xsl:if test="xalan:nodeset($contents)//item">
4742
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
4743
+ <xsl:if test="$contents_nodes//item">
4627
4744
  <fo:bookmark-tree>
4628
4745
  <xsl:choose>
4629
- <xsl:when test="xalan:nodeset($contents)/doc">
4746
+ <xsl:when test="$contents_nodes/doc">
4630
4747
  <xsl:choose>
4631
- <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
4632
- <xsl:for-each select="xalan:nodeset($contents)/doc">
4748
+ <xsl:when test="count($contents_nodes/doc) &gt; 1">
4749
+ <xsl:for-each select="$contents_nodes/doc">
4633
4750
  <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
4634
4751
  <xsl:if test="@bundle = 'true'">
4635
4752
  <xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
@@ -4680,7 +4797,7 @@
4680
4797
  </xsl:for-each>
4681
4798
  </xsl:when>
4682
4799
  <xsl:otherwise>
4683
- <xsl:for-each select="xalan:nodeset($contents)/doc">
4800
+ <xsl:for-each select="$contents_nodes/doc">
4684
4801
 
4685
4802
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
4686
4803
 
@@ -4698,25 +4815,36 @@
4698
4815
  </xsl:choose>
4699
4816
  </xsl:when>
4700
4817
  <xsl:otherwise>
4701
- <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
4818
+ <xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
4819
+
4820
+ <xsl:call-template name="insertFigureBookmarks">
4821
+ <xsl:with-param name="contents" select="$contents_nodes/contents"/>
4822
+ </xsl:call-template>
4823
+
4824
+ <xsl:call-template name="insertTableBookmarks">
4825
+ <xsl:with-param name="contents" select="$contents_nodes/contents"/>
4826
+ <xsl:with-param name="lang" select="@lang"/>
4827
+ </xsl:call-template>
4828
+
4702
4829
  </xsl:otherwise>
4703
4830
  </xsl:choose>
4704
4831
 
4832
+
4705
4833
 
4706
4834
 
4707
4835
 
4708
4836
 
4709
-
4710
-
4837
+
4711
4838
 
4712
4839
  </fo:bookmark-tree>
4713
4840
  </xsl:if>
4714
4841
  </xsl:template><xsl:template name="insertFigureBookmarks">
4715
4842
  <xsl:param name="contents"/>
4716
- <xsl:if test="xalan:nodeset($contents)/figure">
4717
- <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
4843
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
4844
+ <xsl:if test="$contents_nodes/figure">
4845
+ <fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
4718
4846
  <fo:bookmark-title>Figures</fo:bookmark-title>
4719
- <xsl:for-each select="xalan:nodeset($contents)/figure">
4847
+ <xsl:for-each select="$contents_nodes/figure">
4720
4848
  <fo:bookmark internal-destination="{@id}">
4721
4849
  <fo:bookmark-title>
4722
4850
  <xsl:value-of select="normalize-space(title)"/>
@@ -4725,18 +4853,40 @@
4725
4853
  </xsl:for-each>
4726
4854
  </fo:bookmark>
4727
4855
  </xsl:if>
4856
+
4857
+
4858
+ <xsl:if test="$contents_nodes//figures/figure">
4859
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
4860
+
4861
+
4862
+
4863
+ <xsl:variable name="bookmark-title">
4864
+
4865
+ <xsl:value-of select="$title-list-figures"/>
4866
+
4867
+ </xsl:variable>
4868
+ <fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
4869
+ <xsl:for-each select="$contents_nodes//figures/figure">
4870
+ <fo:bookmark internal-destination="{@id}">
4871
+ <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
4872
+ </fo:bookmark>
4873
+ </xsl:for-each>
4874
+ </fo:bookmark>
4875
+ </xsl:if>
4876
+
4728
4877
  </xsl:template><xsl:template name="insertTableBookmarks">
4729
4878
  <xsl:param name="contents"/>
4730
4879
  <xsl:param name="lang"/>
4731
- <xsl:if test="xalan:nodeset($contents)/table">
4732
- <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
4880
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
4881
+ <xsl:if test="$contents_nodes/table">
4882
+ <fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
4733
4883
  <fo:bookmark-title>
4734
4884
  <xsl:choose>
4735
4885
  <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
4736
4886
  <xsl:otherwise>Tables</xsl:otherwise>
4737
4887
  </xsl:choose>
4738
4888
  </fo:bookmark-title>
4739
- <xsl:for-each select="xalan:nodeset($contents)/table">
4889
+ <xsl:for-each select="$contents_nodes/table">
4740
4890
  <fo:bookmark internal-destination="{@id}">
4741
4891
  <fo:bookmark-title>
4742
4892
  <xsl:value-of select="normalize-space(title)"/>
@@ -4745,6 +4895,29 @@
4745
4895
  </xsl:for-each>
4746
4896
  </fo:bookmark>
4747
4897
  </xsl:if>
4898
+
4899
+
4900
+ <xsl:if test="$contents_nodes//tables/table">
4901
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
4902
+
4903
+
4904
+
4905
+ <xsl:variable name="bookmark-title">
4906
+
4907
+ <xsl:value-of select="$title-list-tables"/>
4908
+
4909
+ </xsl:variable>
4910
+
4911
+ <fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
4912
+
4913
+ <xsl:for-each select="$contents_nodes//tables/table">
4914
+ <fo:bookmark internal-destination="{@id}">
4915
+ <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
4916
+ </fo:bookmark>
4917
+ </xsl:for-each>
4918
+ </fo:bookmark>
4919
+ </xsl:if>
4920
+
4748
4921
  </xsl:template><xsl:template name="getLangVersion">
4749
4922
  <xsl:param name="lang"/>
4750
4923
  <xsl:param name="doctype" select="''"/>
@@ -5401,6 +5574,8 @@
5401
5574
  </xsl:otherwise>
5402
5575
  </xsl:choose> -->
5403
5576
  </fo:block>
5577
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
5578
+ <xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
5404
5579
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
5405
5580
  <xsl:if test="normalize-space() != ''">
5406
5581
  <xsl:value-of select="."/>
@@ -5475,26 +5650,11 @@
5475
5650
  </xsl:template><xsl:template match="*[local-name() = 'author']">
5476
5651
  <xsl:text>— </xsl:text>
5477
5652
  <xsl:apply-templates/>
5478
- </xsl:template><xsl:variable name="bibitem_hidden_">
5479
- <xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
5480
- <xsl:copy-of select="."/>
5481
- </xsl:for-each>
5482
- <xsl:for-each select="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem']">
5483
- <xsl:copy-of select="."/>
5484
- </xsl:for-each>
5485
- </xsl:variable><xsl:variable name="bibitem_hidden" select="xalan:nodeset($bibitem_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
5486
-
5487
- <xsl:variable name="bibitemid">
5488
- <xsl:choose>
5489
- <!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
5490
- <xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
5491
- <xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
5492
- <xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
5493
- </xsl:choose>
5494
- </xsl:variable>
5495
-
5653
+ </xsl:template><xsl:template match="*[local-name() = 'eref']">
5654
+ <xsl:variable name="current_bibitemid" select="@bibitemid"/>
5655
+ <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/>
5496
5656
  <xsl:choose>
5497
- <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
5657
+ <xsl:when test="$external-destination != '' or not(key('bibitems_hidden', $current_bibitemid))"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link (internal to the bibitem or external) -->
5498
5658
  <fo:inline xsl:use-attribute-sets="eref-style">
5499
5659
  <xsl:if test="@type = 'footnote'">
5500
5660
  <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
@@ -5510,8 +5670,8 @@
5510
5670
  <xsl:variable name="text" select="normalize-space()"/>
5511
5671
 
5512
5672
 
5513
-
5514
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5673
+
5674
+ <fo:basic-link fox:alt-text="{@citeas}">
5515
5675
  <xsl:if test="normalize-space(@citeas) = ''">
5516
5676
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
5517
5677
  </xsl:if>
@@ -5521,14 +5681,21 @@
5521
5681
 
5522
5682
  </xsl:if>
5523
5683
 
5524
-
5684
+ <xsl:choose>
5685
+ <xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
5686
+ <xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
5687
+ </xsl:when>
5688
+ <xsl:otherwise>
5689
+ <xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
5690
+ </xsl:otherwise>
5691
+ </xsl:choose>
5525
5692
 
5526
5693
  <xsl:apply-templates/>
5527
5694
  </fo:basic-link>
5528
-
5695
+
5529
5696
  </fo:inline>
5530
5697
  </xsl:when>
5531
- <xsl:otherwise>
5698
+ <xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
5532
5699
  <fo:inline><xsl:apply-templates/></fo:inline>
5533
5700
  </xsl:otherwise>
5534
5701
  </xsl:choose>
@@ -6270,23 +6437,45 @@
6270
6437
  <xsl:apply-templates/>
6271
6438
  </fo:inline>
6272
6439
  </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
6440
+
6441
+ <!-- list of footnotes to calculate actual footnotes number -->
6442
+ <xsl:variable name="p_fn_">
6443
+ <xsl:call-template name="get_fn_list"/>
6444
+ </xsl:variable>
6445
+ <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
6446
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
6447
+ <xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
6448
+ <!-- fn sequence number in document -->
6449
+ <xsl:variable name="current_fn_number">
6450
+ <xsl:choose>
6451
+ <xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
6452
+ <xsl:otherwise>
6453
+ <!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
6454
+ <xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
6455
+ </xsl:otherwise>
6456
+ </xsl:choose>
6457
+ </xsl:variable>
6273
6458
  <fo:footnote>
6274
6459
  <xsl:variable name="number">
6275
6460
 
6276
- <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
6461
+ <xsl:value-of select="$current_fn_number"/>
6277
6462
 
6278
6463
  </xsl:variable>
6464
+
6465
+ <xsl:variable name="current_fn_number_text">
6466
+ <xsl:value-of select="$number"/>
6467
+
6468
+ </xsl:variable>
6469
+
6279
6470
  <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
6280
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
6281
- <xsl:value-of select="$number"/>
6282
-
6471
+ <fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
6472
+ <xsl:value-of select="$current_fn_number_text"/>
6283
6473
  </fo:basic-link>
6284
6474
  </fo:inline>
6285
6475
  <fo:footnote-body>
6286
6476
  <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
6287
- <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6288
- <xsl:value-of select="$number"/>
6289
-
6477
+ <fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6478
+ <xsl:value-of select="$current_fn_number_text"/>
6290
6479
  </fo:inline>
6291
6480
  <xsl:apply-templates/>
6292
6481
  </fo:block>
@@ -6527,6 +6716,78 @@
6527
6716
  <!-- processing for admonition/p found in the template for 'p' -->
6528
6717
  <xsl:call-template name="paragraph"/>
6529
6718
 
6719
+ </xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
6720
+ <xsl:copy>
6721
+ <xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
6722
+ </xsl:copy>
6723
+ </xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
6724
+ <xsl:copy>
6725
+ <xsl:copy-of select="@*"/>
6726
+
6727
+ <xsl:variable name="nodes_preface_">
6728
+ <xsl:for-each select="*">
6729
+ <node id="{@id}"/>
6730
+ </xsl:for-each>
6731
+ </xsl:variable>
6732
+ <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
6733
+
6734
+ <xsl:for-each select="*">
6735
+ <xsl:sort select="@displayorder" data-type="number"/>
6736
+
6737
+ <!-- process Section's title -->
6738
+ <xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
6739
+ <xsl:if test="$preceding-sibling_id != ''">
6740
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
6741
+ </xsl:if>
6742
+
6743
+ <xsl:choose>
6744
+ <xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
6745
+ <xsl:otherwise>
6746
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6747
+ </xsl:otherwise>
6748
+ </xsl:choose>
6749
+
6750
+ </xsl:for-each>
6751
+ </xsl:copy>
6752
+ </xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
6753
+ <xsl:copy>
6754
+ <xsl:copy-of select="@*"/>
6755
+
6756
+ <xsl:variable name="nodes_sections_">
6757
+ <xsl:for-each select="*">
6758
+ <node id="{@id}"/>
6759
+ </xsl:for-each>
6760
+ </xsl:variable>
6761
+ <xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
6762
+
6763
+ <!-- move section 'Normative references' inside 'sections' -->
6764
+ <xsl:for-each select="* | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
6765
+ <xsl:sort select="@displayorder" data-type="number"/>
6766
+
6767
+ <!-- process Section's title -->
6768
+ <xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
6769
+ <xsl:if test="$preceding-sibling_id != ''">
6770
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
6771
+ </xsl:if>
6772
+
6773
+ <xsl:choose>
6774
+ <xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
6775
+ <xsl:otherwise>
6776
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6777
+ </xsl:otherwise>
6778
+ </xsl:choose>
6779
+
6780
+ </xsl:for-each>
6781
+ </xsl:copy>
6782
+ </xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
6783
+ <xsl:copy>
6784
+ <xsl:copy-of select="@*"/>
6785
+ <!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
6786
+ <xsl:for-each select="*[not(@normative='true') and not(*[*[@normative='true']])]">
6787
+ <xsl:sort select="@displayorder" data-type="number"/>
6788
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
6789
+ </xsl:for-each>
6790
+ </xsl:copy>
6530
6791
  </xsl:template><xsl:template name="convertDate">
6531
6792
  <xsl:param name="date"/>
6532
6793
  <xsl:param name="format" select="'short'"/>