metanorma-ogc 2.0.4 → 2.0.7
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.
- checksums.yaml +4 -4
- data/lib/isodoc/ogc/base_convert.rb +4 -4
- data/lib/isodoc/ogc/html_convert.rb +6 -6
- data/lib/isodoc/ogc/ogc.abstract-specification-topic.xsl +402 -220
- data/lib/isodoc/ogc/ogc.best-practice.xsl +402 -220
- data/lib/isodoc/ogc/ogc.change-request-supporting-document.xsl +402 -220
- data/lib/isodoc/ogc/ogc.community-practice.xsl +402 -220
- data/lib/isodoc/ogc/ogc.community-standard.xsl +402 -220
- data/lib/isodoc/ogc/ogc.discussion-paper.xsl +402 -220
- data/lib/isodoc/ogc/ogc.engineering-report.xsl +402 -220
- data/lib/isodoc/ogc/ogc.other.xsl +402 -220
- data/lib/isodoc/ogc/ogc.policy.xsl +402 -220
- data/lib/isodoc/ogc/ogc.reference-model.xsl +402 -220
- data/lib/isodoc/ogc/ogc.release-notes.xsl +402 -220
- data/lib/isodoc/ogc/ogc.standard.xsl +402 -220
- data/lib/isodoc/ogc/ogc.test-suite.xsl +402 -220
- data/lib/isodoc/ogc/ogc.user-guide.xsl +402 -220
- data/lib/isodoc/ogc/ogc.white-paper.xsl +335 -99
- data/lib/isodoc/ogc/presentation_xml_convert.rb +20 -24
- data/lib/isodoc/ogc/word_convert.rb +2 -78
- data/lib/isodoc/ogc/xref.rb +4 -4
- data/lib/metanorma/ogc/converter.rb +7 -0
- data/lib/metanorma/ogc/processor.rb +10 -10
- data/lib/metanorma/ogc/version.rb +1 -1
- metadata +3 -3
@@ -113,16 +113,20 @@
|
|
113
113
|
</xsl:for-each>
|
114
114
|
</xsl:variable>
|
115
115
|
|
116
|
-
<xsl:variable name="
|
116
|
+
<xsl:variable name="contents_">
|
117
117
|
<contents>
|
118
118
|
<!-- Abstract, Keywords, Preface, Submitting Organizations, Submitters -->
|
119
119
|
<xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
|
120
120
|
|
121
121
|
<xsl:call-template name="processMainSectionsDefault_Contents"/>
|
122
122
|
<xsl:apply-templates select="//ogc:indexsect" mode="contents"/>
|
123
|
+
|
124
|
+
<xsl:call-template name="processTablesFigures_Contents">
|
125
|
+
<xsl:with-param name="always">true</xsl:with-param>
|
126
|
+
</xsl:call-template>
|
123
127
|
</contents>
|
124
128
|
</xsl:variable>
|
125
|
-
|
129
|
+
<xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
|
126
130
|
|
127
131
|
<xsl:template match="/">
|
128
132
|
<xsl:call-template name="namespaceCheck"/>
|
@@ -433,7 +437,7 @@
|
|
433
437
|
|
434
438
|
<fo:block-container line-height="130%">
|
435
439
|
<fo:block role="TOC">
|
436
|
-
<xsl:for-each select="
|
440
|
+
<xsl:for-each select="$contents//item[@display = 'true' and normalize-space(@id) != '']">
|
437
441
|
|
438
442
|
<fo:block role="TOCI">
|
439
443
|
<xsl:if test="@level = 1">
|
@@ -510,100 +514,37 @@
|
|
510
514
|
</fo:block>
|
511
515
|
</fo:block-container>
|
512
516
|
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
</xsl:
|
519
|
-
|
520
|
-
<fo:block-container margin-left="-18mm" keep-with-next="always" margin-bottom="10pt" space-before="36pt">
|
521
|
-
<fo:block-container margin-left="0mm">
|
522
|
-
<xsl:call-template name="insertSectionTitle">
|
523
|
-
<xsl:with-param name="title" select="$title-list-tables"/>
|
524
|
-
</xsl:call-template>
|
525
|
-
</fo:block-container>
|
526
|
-
</fo:block-container>
|
517
|
+
|
518
|
+
<!-- List of Tables -->
|
519
|
+
<xsl:if test="$contents//tables/table">
|
520
|
+
<xsl:call-template name="insertListOf_Title">
|
521
|
+
<xsl:with-param name="title" select="$title-list-tables"/>
|
522
|
+
</xsl:call-template>
|
527
523
|
<fo:block-container line-height="130%">
|
528
|
-
<xsl:for-each select="//
|
529
|
-
<
|
530
|
-
<fo:basic-link internal-destination="{@id}">
|
531
|
-
<xsl:call-template name="setAltText">
|
532
|
-
<xsl:with-param name="value" select="ogc:name"/>
|
533
|
-
</xsl:call-template>
|
534
|
-
<xsl:apply-templates select="ogc:name" mode="contents"/>
|
535
|
-
<fo:inline keep-together.within-line="always">
|
536
|
-
<fo:leader leader-pattern="dots"/>
|
537
|
-
<fo:page-number-citation ref-id="{@id}"/>
|
538
|
-
</fo:inline>
|
539
|
-
</fo:basic-link>
|
540
|
-
</fo:block>
|
524
|
+
<xsl:for-each select="$contents//tables/table">
|
525
|
+
<xsl:call-template name="insertListOf_Item"/>
|
541
526
|
</xsl:for-each>
|
542
|
-
</fo:block-container>
|
527
|
+
</fo:block-container>
|
543
528
|
</xsl:if>
|
544
529
|
|
545
|
-
|
546
|
-
|
547
|
-
|
548
|
-
|
549
|
-
|
550
|
-
</xsl:for-each>
|
551
|
-
</xsl:variable>
|
552
|
-
<xsl:variable name="list_of_figures" select="xalan:nodeset($list_of_figures_)"/>
|
553
|
-
|
554
|
-
<!-- <xsl:if test="//ogc:figure[@id and ogc:name and not(@unnumbered = 'true')] or //*[@id and starts-with(ogc:name, 'Figure ')]"> --> <!-- contains(ogc:name, '—') -->
|
555
|
-
<xsl:if test="$list_of_figures//figure">
|
556
|
-
<xsl:variable name="title-list-figures">
|
557
|
-
<xsl:call-template name="getTitle">
|
558
|
-
<xsl:with-param name="name" select="'title-list-figures'"/>
|
559
|
-
</xsl:call-template>
|
560
|
-
</xsl:variable>
|
561
|
-
<fo:block-container margin-left="-18mm" keep-with-next="always" margin-bottom="10pt" space-before="36pt">
|
562
|
-
<fo:block-container margin-left="0mm">
|
563
|
-
<xsl:call-template name="insertSectionTitle">
|
564
|
-
<xsl:with-param name="title" select="$title-list-figures"/>
|
565
|
-
</xsl:call-template>
|
566
|
-
</fo:block-container>
|
567
|
-
</fo:block-container>
|
568
|
-
|
530
|
+
<!-- List of Figures -->
|
531
|
+
<xsl:if test="$contents//figures/figure">
|
532
|
+
<xsl:call-template name="insertListOf_Title">
|
533
|
+
<xsl:with-param name="title" select="$title-list-figures"/>
|
534
|
+
</xsl:call-template>
|
569
535
|
<fo:block-container line-height="130%">
|
570
|
-
|
571
|
-
|
572
|
-
<fo:block text-align-last="justify" margin-top="2pt" role="TOCI">
|
573
|
-
<fo:basic-link internal-destination="{@id}">
|
574
|
-
<xsl:call-template name="setAltText">
|
575
|
-
<xsl:with-param name="value" select="@alt-text"/>
|
576
|
-
</xsl:call-template>
|
577
|
-
<!-- <xsl:apply-templates select="ogc:name" mode="contents"/> -->
|
578
|
-
<xsl:copy-of select="node()"/>
|
579
|
-
<fo:inline keep-together.within-line="always">
|
580
|
-
<fo:leader leader-pattern="dots"/>
|
581
|
-
<fo:page-number-citation ref-id="{@id}"/>
|
582
|
-
</fo:inline>
|
583
|
-
</fo:basic-link>
|
584
|
-
</fo:block>
|
536
|
+
<xsl:for-each select="$contents//figures/figure">
|
537
|
+
<xsl:call-template name="insertListOf_Item"/>
|
585
538
|
</xsl:for-each>
|
586
|
-
</fo:block-container>
|
539
|
+
</fo:block-container>
|
587
540
|
</xsl:if>
|
588
541
|
|
589
|
-
<!--
|
542
|
+
<!-- List of Recommendations -->
|
590
543
|
<xsl:if test="//ogc:table[.//ogc:p[@class = 'RecommendationTitle']]">
|
591
|
-
<xsl:
|
592
|
-
<xsl:
|
593
|
-
|
594
|
-
</xsl:call-template>
|
595
|
-
</xsl:variable>
|
596
|
-
|
597
|
-
<fo:block-container margin-left="-18mm" keep-with-next="always" margin-bottom="10pt" space-before="36pt">
|
598
|
-
<fo:block-container margin-left="0mm">
|
599
|
-
<xsl:call-template name="insertSectionTitle">
|
600
|
-
<xsl:with-param name="title" select="$title-list-recommendations"/>
|
601
|
-
</xsl:call-template>
|
602
|
-
</fo:block-container>
|
603
|
-
</fo:block-container>
|
604
|
-
|
544
|
+
<xsl:call-template name="insertListOf_Title">
|
545
|
+
<xsl:with-param name="title" select="$title-list-recommendations"/>
|
546
|
+
</xsl:call-template>
|
605
547
|
<fo:block-container line-height="130%">
|
606
|
-
<!-- <xsl:for-each select="//ogc:table[.//ogc:p[@class = 'RecommendationTitle']]"> -->
|
607
548
|
<xsl:for-each select="xalan:nodeset($toc_recommendations)/*[normalize-space(@id) != '']">
|
608
549
|
<fo:block text-align-last="justify" margin-top="6pt" role="TOCI">
|
609
550
|
<fo:basic-link internal-destination="{@id}">
|
@@ -620,7 +561,6 @@
|
|
620
561
|
</fo:block>
|
621
562
|
</xsl:for-each>
|
622
563
|
</fo:block-container>
|
623
|
-
|
624
564
|
</xsl:if>
|
625
565
|
|
626
566
|
</fo:block>
|
@@ -678,6 +618,32 @@
|
|
678
618
|
</fo:root>
|
679
619
|
</xsl:template>
|
680
620
|
|
621
|
+
<xsl:template name="insertListOf_Title">
|
622
|
+
<xsl:param name="title"/>
|
623
|
+
<fo:block-container margin-left="-18mm" keep-with-next="always" margin-bottom="10pt" space-before="36pt">
|
624
|
+
<fo:block-container margin-left="0mm">
|
625
|
+
<xsl:call-template name="insertSectionTitle">
|
626
|
+
<xsl:with-param name="title" select="$title"/>
|
627
|
+
</xsl:call-template>
|
628
|
+
</fo:block-container>
|
629
|
+
</fo:block-container>
|
630
|
+
</xsl:template>
|
631
|
+
|
632
|
+
<xsl:template name="insertListOf_Item">
|
633
|
+
<fo:block text-align-last="justify" margin-top="2pt" role="TOCI">
|
634
|
+
<fo:basic-link internal-destination="{@id}">
|
635
|
+
<xsl:call-template name="setAltText">
|
636
|
+
<xsl:with-param name="value" select="@alt-text"/>
|
637
|
+
</xsl:call-template>
|
638
|
+
<!-- <xsl:copy-of select="node()"/> -->
|
639
|
+
<xsl:apply-templates select="." mode="contents"/>
|
640
|
+
<fo:inline keep-together.within-line="always">
|
641
|
+
<fo:leader leader-pattern="dots"/>
|
642
|
+
<fo:page-number-citation ref-id="{@id}"/>
|
643
|
+
</fo:inline>
|
644
|
+
</fo:basic-link>
|
645
|
+
</fo:block>
|
646
|
+
</xsl:template>
|
681
647
|
|
682
648
|
<!-- Lato font doesn't contain 'thin space' glyph -->
|
683
649
|
<xsl:template match="text()" priority="1">
|
@@ -1531,7 +1497,7 @@
|
|
1531
1497
|
<xsl:text>Contents</xsl:text>
|
1532
1498
|
|
1533
1499
|
</title-toc>
|
1534
|
-
|
1500
|
+
|
1535
1501
|
<title-descriptors lang="en">Descriptors</title-descriptors>
|
1536
1502
|
|
1537
1503
|
<title-part lang="en">
|
@@ -1567,7 +1533,31 @@
|
|
1567
1533
|
<title-continued lang="en">(continued)</title-continued>
|
1568
1534
|
<title-continued lang="fr">(continué)</title-continued>
|
1569
1535
|
|
1570
|
-
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="
|
1536
|
+
</xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
|
1537
|
+
<xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
|
1538
|
+
<xsl:value-of select="$toc_table_title"/>
|
1539
|
+
<xsl:if test="normalize-space($toc_table_title) = ''">
|
1540
|
+
<xsl:call-template name="getTitle">
|
1541
|
+
<xsl:with-param name="name" select="'title-list-tables'"/>
|
1542
|
+
</xsl:call-template>
|
1543
|
+
</xsl:if>
|
1544
|
+
</xsl:variable><xsl:variable name="title-list-figures">
|
1545
|
+
<xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
|
1546
|
+
<xsl:value-of select="$toc_figure_title"/>
|
1547
|
+
<xsl:if test="normalize-space($toc_figure_title) = ''">
|
1548
|
+
<xsl:call-template name="getTitle">
|
1549
|
+
<xsl:with-param name="name" select="'title-list-figures'"/>
|
1550
|
+
</xsl:call-template>
|
1551
|
+
</xsl:if>
|
1552
|
+
</xsl:variable><xsl:variable name="title-list-recommendations">
|
1553
|
+
<xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
|
1554
|
+
<xsl:value-of select="$toc_requirement_title"/>
|
1555
|
+
<xsl:if test="normalize-space($toc_requirement_title) = ''">
|
1556
|
+
<xsl:call-template name="getTitle">
|
1557
|
+
<xsl:with-param name="name" select="'title-list-recommendations'"/>
|
1558
|
+
</xsl:call-template>
|
1559
|
+
</xsl:if>
|
1560
|
+
</xsl:variable><xsl:variable name="bibdata">
|
1571
1561
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
|
1572
1562
|
<xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
|
1573
1563
|
</xsl:variable><xsl:variable name="linebreak">
</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">
|
@@ -2895,6 +2885,30 @@
|
|
2895
2885
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2896
2886
|
<xsl:apply-templates select="." mode="contents"/>
|
2897
2887
|
</xsl:for-each>
|
2888
|
+
</xsl:template><xsl:template name="processTablesFigures_Contents">
|
2889
|
+
<xsl:param name="always"/>
|
2890
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2891
|
+
<xsl:call-template name="processTables_Contents"/>
|
2892
|
+
</xsl:if>
|
2893
|
+
<xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
|
2894
|
+
<xsl:call-template name="processFigures_Contents"/>
|
2895
|
+
</xsl:if>
|
2896
|
+
</xsl:template><xsl:template name="processTables_Contents">
|
2897
|
+
<tables>
|
2898
|
+
<xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
|
2899
|
+
<table id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2900
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2901
|
+
</table>
|
2902
|
+
</xsl:for-each>
|
2903
|
+
</tables>
|
2904
|
+
</xsl:template><xsl:template name="processFigures_Contents">
|
2905
|
+
<figures>
|
2906
|
+
<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) != '']">
|
2907
|
+
<figure id="{@id}" alt-text="{*[local-name() = 'name']}">
|
2908
|
+
<xsl:copy-of select="*[local-name() = 'name']"/>
|
2909
|
+
</figure>
|
2910
|
+
</xsl:for-each>
|
2911
|
+
</figures>
|
2898
2912
|
</xsl:template><xsl:template name="processPrefaceSectionsDefault">
|
2899
2913
|
<xsl:for-each select="/*/*[local-name()='preface']/*">
|
2900
2914
|
<xsl:sort select="@displayorder" data-type="number"/>
|
@@ -2916,8 +2930,27 @@
|
|
2916
2930
|
<xsl:sort select="@displayorder" data-type="number"/>
|
2917
2931
|
<xsl:apply-templates select="."/>
|
2918
2932
|
</xsl:for-each>
|
2919
|
-
</xsl:template><xsl:template match="text()">
|
2920
|
-
<xsl:
|
2933
|
+
</xsl:template><xsl:variable name="tag_open">###fo:inline###</xsl:variable><xsl:variable name="tag_close">###/fo:inline###</xsl:variable><xsl:template match="text()" name="text">
|
2934
|
+
<xsl:variable name="regex_standard_reference">([A-Z]{2,}(/[A-Z]{2,})* \d+(-\d+)*(:\d{4})?)</xsl:variable>
|
2935
|
+
<xsl:variable name="text" select="java:replaceAll(java:java.lang.String.new(.),$regex_standard_reference,concat($tag_open,'$1',$tag_close))"/>
|
2936
|
+
<xsl:call-template name="replace_fo_inline">
|
2937
|
+
<xsl:with-param name="text" select="$text"/>
|
2938
|
+
</xsl:call-template>
|
2939
|
+
</xsl:template><xsl:template name="replace_fo_inline">
|
2940
|
+
<xsl:param name="text"/>
|
2941
|
+
<xsl:choose>
|
2942
|
+
<xsl:when test="contains($text, $tag_open)">
|
2943
|
+
<xsl:value-of select="substring-before($text, $tag_open)"/>
|
2944
|
+
<xsl:text disable-output-escaping="yes"><fo:inline keep-together.within-line="always"></xsl:text>
|
2945
|
+
<xsl:variable name="text_after" select="substring-after($text, $tag_open)"/>
|
2946
|
+
<xsl:value-of select="substring-before($text_after, $tag_close)"/>
|
2947
|
+
<xsl:text disable-output-escaping="yes"></fo:inline></xsl:text>
|
2948
|
+
<xsl:call-template name="replace_fo_inline">
|
2949
|
+
<xsl:with-param name="text" select="substring-after($text_after, $tag_close)"/>
|
2950
|
+
</xsl:call-template>
|
2951
|
+
</xsl:when>
|
2952
|
+
<xsl:otherwise><xsl:value-of select="$text"/></xsl:otherwise>
|
2953
|
+
</xsl:choose>
|
2921
2954
|
</xsl:template><xsl:template match="*[local-name()='br']">
|
2922
2955
|
<xsl:value-of select="$linebreak"/>
|
2923
2956
|
</xsl:template><xsl:template match="*[local-name()='copyright-statement']">
|
@@ -3700,37 +3733,7 @@
|
|
3700
3733
|
|
3701
3734
|
<!-- list of footnotes to calculate actual footnotes number -->
|
3702
3735
|
<xsl:variable name="p_fn_">
|
3703
|
-
<xsl:
|
3704
|
-
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
3705
|
-
<fn gen_id="{generate-id(.)}">
|
3706
|
-
<xsl:copy-of select="@*"/>
|
3707
|
-
<xsl:copy-of select="node()"/>
|
3708
|
-
</fn>
|
3709
|
-
</xsl:when>
|
3710
|
-
<xsl:otherwise>
|
3711
|
-
<!-- itetation for:
|
3712
|
-
footnotes in bibdata/title
|
3713
|
-
footnotes in bibliography
|
3714
|
-
footnotes in document's body (except table's head/body/foot and figure text)
|
3715
|
-
-->
|
3716
|
-
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
3717
|
-
<fn gen_id="{generate-id(.)}">
|
3718
|
-
<xsl:copy-of select="@*"/>
|
3719
|
-
<xsl:copy-of select="node()"/>
|
3720
|
-
</fn>
|
3721
|
-
</xsl:for-each>
|
3722
|
-
<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']/*">
|
3723
|
-
<xsl:sort select="@displayorder" data-type="number"/>
|
3724
|
-
<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])]">
|
3725
|
-
<!-- copy unique fn -->
|
3726
|
-
<fn gen_id="{generate-id(.)}">
|
3727
|
-
<xsl:copy-of select="@*"/>
|
3728
|
-
<xsl:copy-of select="node()"/>
|
3729
|
-
</fn>
|
3730
|
-
</xsl:for-each>
|
3731
|
-
</xsl:for-each>
|
3732
|
-
</xsl:otherwise>
|
3733
|
-
</xsl:choose>
|
3736
|
+
<xsl:call-template name="get_fn_list"/>
|
3734
3737
|
</xsl:variable>
|
3735
3738
|
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
3736
3739
|
|
@@ -3791,6 +3794,38 @@
|
|
3791
3794
|
<xsl:copy-of select="$footnote_inline"/>
|
3792
3795
|
</xsl:otherwise>
|
3793
3796
|
</xsl:choose>
|
3797
|
+
</xsl:template><xsl:template name="get_fn_list">
|
3798
|
+
<xsl:choose>
|
3799
|
+
<xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
|
3800
|
+
<fn gen_id="{generate-id(.)}">
|
3801
|
+
<xsl:copy-of select="@*"/>
|
3802
|
+
<xsl:copy-of select="node()"/>
|
3803
|
+
</fn>
|
3804
|
+
</xsl:when>
|
3805
|
+
<xsl:otherwise>
|
3806
|
+
<!-- itetation for:
|
3807
|
+
footnotes in bibdata/title
|
3808
|
+
footnotes in bibliography
|
3809
|
+
footnotes in document's body (except table's head/body/foot and figure text)
|
3810
|
+
-->
|
3811
|
+
<xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
|
3812
|
+
<fn gen_id="{generate-id(.)}">
|
3813
|
+
<xsl:copy-of select="@*"/>
|
3814
|
+
<xsl:copy-of select="node()"/>
|
3815
|
+
</fn>
|
3816
|
+
</xsl:for-each>
|
3817
|
+
<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']/*">
|
3818
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
3819
|
+
<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])]">
|
3820
|
+
<!-- copy unique fn -->
|
3821
|
+
<fn gen_id="{generate-id(.)}">
|
3822
|
+
<xsl:copy-of select="@*"/>
|
3823
|
+
<xsl:copy-of select="node()"/>
|
3824
|
+
</fn>
|
3825
|
+
</xsl:for-each>
|
3826
|
+
</xsl:for-each>
|
3827
|
+
</xsl:otherwise>
|
3828
|
+
</xsl:choose>
|
3794
3829
|
</xsl:template><xsl:template name="table_fn_display">
|
3795
3830
|
<xsl:variable name="references">
|
3796
3831
|
|
@@ -3973,7 +4008,7 @@
|
|
3973
4008
|
</fo:inline>
|
3974
4009
|
</xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
|
3975
4010
|
<fo:inline><xsl:value-of select="."/></fo:inline>
|
3976
|
-
</xsl:template><xsl:template match="*[local-name()='fn']
|
4011
|
+
</xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
|
3977
4012
|
<fo:inline>
|
3978
4013
|
<xsl:apply-templates/>
|
3979
4014
|
</fo:inline>
|
@@ -5669,13 +5704,14 @@
|
|
5669
5704
|
<xsl:apply-templates mode="bookmarks"/>
|
5670
5705
|
</xsl:template><xsl:template name="addBookmarks">
|
5671
5706
|
<xsl:param name="contents"/>
|
5672
|
-
<xsl:
|
5707
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5708
|
+
<xsl:if test="$contents_nodes//item">
|
5673
5709
|
<fo:bookmark-tree>
|
5674
5710
|
<xsl:choose>
|
5675
|
-
<xsl:when test="
|
5711
|
+
<xsl:when test="$contents_nodes/doc">
|
5676
5712
|
<xsl:choose>
|
5677
|
-
<xsl:when test="count(
|
5678
|
-
<xsl:for-each select="
|
5713
|
+
<xsl:when test="count($contents_nodes/doc) > 1">
|
5714
|
+
<xsl:for-each select="$contents_nodes/doc">
|
5679
5715
|
<fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
|
5680
5716
|
<xsl:if test="@bundle = 'true'">
|
5681
5717
|
<xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
|
@@ -5726,7 +5762,7 @@
|
|
5726
5762
|
</xsl:for-each>
|
5727
5763
|
</xsl:when>
|
5728
5764
|
<xsl:otherwise>
|
5729
|
-
<xsl:for-each select="
|
5765
|
+
<xsl:for-each select="$contents_nodes/doc">
|
5730
5766
|
|
5731
5767
|
<xsl:apply-templates select="contents/item" mode="bookmark"/>
|
5732
5768
|
|
@@ -5744,97 +5780,89 @@
|
|
5744
5780
|
</xsl:choose>
|
5745
5781
|
</xsl:when>
|
5746
5782
|
<xsl:otherwise>
|
5747
|
-
<xsl:apply-templates select="
|
5783
|
+
<xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
|
5784
|
+
|
5785
|
+
<xsl:call-template name="insertFigureBookmarks">
|
5786
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5787
|
+
</xsl:call-template>
|
5788
|
+
|
5789
|
+
<xsl:call-template name="insertTableBookmarks">
|
5790
|
+
<xsl:with-param name="contents" select="$contents_nodes/contents"/>
|
5791
|
+
<xsl:with-param name="lang" select="@lang"/>
|
5792
|
+
</xsl:call-template>
|
5793
|
+
|
5748
5794
|
</xsl:otherwise>
|
5749
5795
|
</xsl:choose>
|
5750
5796
|
|
5797
|
+
|
5751
5798
|
|
5752
5799
|
|
5753
5800
|
|
5754
5801
|
|
5755
|
-
|
5756
|
-
<xsl:variable name="list_of_tables_">
|
5757
|
-
<xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name']]"> <!-- contains(*[local-name() = 'name'], '—') -->
|
5758
|
-
<table id="{@id}"><xsl:apply-templates select="*[local-name() = 'name']" mode="bookmarks"/></table>
|
5759
|
-
</xsl:for-each>
|
5760
|
-
</xsl:variable>
|
5761
|
-
<xsl:variable name="list_of_tables" select="xalan:nodeset($list_of_tables_)"/>
|
5762
|
-
|
5763
|
-
<xsl:variable name="list_of_figures_">
|
5764
|
-
<xsl:for-each select="//*[local-name() = 'figure'][@id and *[local-name() = 'name'] and not(@unnumbered = 'true')] | //*[@id and starts-with(*[local-name() = 'name'], 'Figure ')]"> <!-- contains(*[local-name() = 'name'], '—') -->
|
5765
|
-
<figure id="{@id}"><xsl:apply-templates select="*[local-name() = 'name']" mode="bookmarks"/></figure>
|
5766
|
-
</xsl:for-each>
|
5767
|
-
</xsl:variable>
|
5768
|
-
<xsl:variable name="list_of_figures" select="xalan:nodeset($list_of_figures_)"/>
|
5769
|
-
|
5770
|
-
<xsl:if test="$list_of_tables//table or $list_of_figures/figure or //*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]">
|
5802
|
+
<xsl:if test="$contents//tables/table or $contents//figures/figure or //*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]">
|
5771
5803
|
<fo:bookmark internal-destination="empty_bookmark">
|
5772
5804
|
<fo:bookmark-title>—————</fo:bookmark-title>
|
5773
5805
|
</fo:bookmark>
|
5774
5806
|
</xsl:if>
|
5775
5807
|
|
5776
|
-
<xsl:if test="$
|
5777
|
-
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5808
|
+
<xsl:if test="$contents//tables/table">
|
5809
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5778
5810
|
<fo:bookmark-title>
|
5779
|
-
<xsl:
|
5780
|
-
<xsl:with-param name="name" select="'title-list-tables'"/>
|
5781
|
-
</xsl:call-template>
|
5811
|
+
<xsl:value-of select="$title-list-tables"/>
|
5782
5812
|
</fo:bookmark-title>
|
5783
|
-
<xsl:for-each select="$
|
5813
|
+
<xsl:for-each select="$contents//tables/table">
|
5784
5814
|
<fo:bookmark internal-destination="{@id}">
|
5785
|
-
<
|
5815
|
+
<xsl:variable name="title">
|
5816
|
+
<xsl:apply-templates select="*[local-name() = 'name']" mode="bookmarks"/>
|
5817
|
+
</xsl:variable>
|
5818
|
+
<fo:bookmark-title><xsl:value-of select="$title"/></fo:bookmark-title>
|
5786
5819
|
</fo:bookmark>
|
5787
5820
|
</xsl:for-each>
|
5788
5821
|
</fo:bookmark>
|
5789
5822
|
</xsl:if>
|
5790
5823
|
|
5791
|
-
<xsl:if test="$
|
5792
|
-
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5824
|
+
<xsl:if test="$contents//figures/figure">
|
5825
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5793
5826
|
<fo:bookmark-title>
|
5794
|
-
|
5795
|
-
<xsl:call-template name="getTitle">
|
5796
|
-
<xsl:with-param name="name" select="'title-list-figures'"/>
|
5797
|
-
</xsl:call-template>
|
5798
|
-
|
5799
|
-
|
5827
|
+
<xsl:value-of select="$title-list-figures"/>
|
5800
5828
|
</fo:bookmark-title>
|
5801
|
-
<xsl:for-each select="$
|
5829
|
+
<xsl:for-each select="$contents//figures/figure">
|
5802
5830
|
<fo:bookmark internal-destination="{@id}">
|
5803
|
-
<
|
5831
|
+
<xsl:variable name="title">
|
5832
|
+
<xsl:apply-templates select="*[local-name() = 'name']" mode="bookmarks"/>
|
5833
|
+
</xsl:variable>
|
5834
|
+
<fo:bookmark-title><xsl:value-of select="$title"/></fo:bookmark-title>
|
5804
5835
|
</fo:bookmark>
|
5805
5836
|
</xsl:for-each>
|
5806
5837
|
</fo:bookmark>
|
5807
5838
|
</xsl:if>
|
5808
5839
|
|
5809
|
-
|
5810
5840
|
<xsl:if test="//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]">
|
5811
|
-
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5841
|
+
<fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
|
5812
5842
|
<fo:bookmark-title>
|
5813
|
-
<xsl:
|
5814
|
-
<xsl:with-param name="name" select="'title-list-recommendations'"/>
|
5815
|
-
</xsl:call-template>
|
5843
|
+
<xsl:value-of select="$title-list-recommendations"/>
|
5816
5844
|
</fo:bookmark-title>
|
5817
|
-
<!-- <xsl:for-each select="//*[local-name() = 'table'][.//*[local-name() = 'p'][@class = 'RecommendationTitle']]"> -->
|
5818
5845
|
<xsl:for-each select="xalan:nodeset($toc_recommendations)/*">
|
5819
|
-
<xsl:variable name="table_id" select="@id"/>
|
5820
5846
|
<fo:bookmark internal-destination="{@id}">
|
5821
5847
|
<fo:bookmark-title><xsl:value-of select="bookmark"/></fo:bookmark-title>
|
5822
5848
|
</fo:bookmark>
|
5823
5849
|
</xsl:for-each>
|
5824
5850
|
</fo:bookmark>
|
5825
5851
|
</xsl:if>
|
5852
|
+
<!-- $namespace = 'ogc' -->
|
5826
5853
|
|
5827
5854
|
|
5828
|
-
|
5855
|
+
|
5829
5856
|
|
5830
5857
|
</fo:bookmark-tree>
|
5831
5858
|
</xsl:if>
|
5832
5859
|
</xsl:template><xsl:template name="insertFigureBookmarks">
|
5833
5860
|
<xsl:param name="contents"/>
|
5834
|
-
<xsl:
|
5835
|
-
|
5861
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5862
|
+
<xsl:if test="$contents_nodes/figure">
|
5863
|
+
<fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
|
5836
5864
|
<fo:bookmark-title>Figures</fo:bookmark-title>
|
5837
|
-
<xsl:for-each select="
|
5865
|
+
<xsl:for-each select="$contents_nodes/figure">
|
5838
5866
|
<fo:bookmark internal-destination="{@id}">
|
5839
5867
|
<fo:bookmark-title>
|
5840
5868
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -5843,18 +5871,21 @@
|
|
5843
5871
|
</xsl:for-each>
|
5844
5872
|
</fo:bookmark>
|
5845
5873
|
</xsl:if>
|
5874
|
+
|
5875
|
+
<!-- see template addBookmarks -->
|
5846
5876
|
</xsl:template><xsl:template name="insertTableBookmarks">
|
5847
5877
|
<xsl:param name="contents"/>
|
5848
5878
|
<xsl:param name="lang"/>
|
5849
|
-
<xsl:
|
5850
|
-
|
5879
|
+
<xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
|
5880
|
+
<xsl:if test="$contents_nodes/table">
|
5881
|
+
<fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
|
5851
5882
|
<fo:bookmark-title>
|
5852
5883
|
<xsl:choose>
|
5853
5884
|
<xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
|
5854
5885
|
<xsl:otherwise>Tables</xsl:otherwise>
|
5855
5886
|
</xsl:choose>
|
5856
5887
|
</fo:bookmark-title>
|
5857
|
-
<xsl:for-each select="
|
5888
|
+
<xsl:for-each select="$contents_nodes/table">
|
5858
5889
|
<fo:bookmark internal-destination="{@id}">
|
5859
5890
|
<fo:bookmark-title>
|
5860
5891
|
<xsl:value-of select="normalize-space(title)"/>
|
@@ -5863,6 +5894,8 @@
|
|
5863
5894
|
</xsl:for-each>
|
5864
5895
|
</fo:bookmark>
|
5865
5896
|
</xsl:if>
|
5897
|
+
|
5898
|
+
<!-- see template addBookmarks -->
|
5866
5899
|
</xsl:template><xsl:template name="getLangVersion">
|
5867
5900
|
<xsl:param name="lang"/>
|
5868
5901
|
<xsl:param name="doctype" select="''"/>
|
@@ -6099,7 +6132,51 @@
|
|
6099
6132
|
<xsl:with-param name="text" select="$text_step1"/>
|
6100
6133
|
</xsl:call-template>
|
6101
6134
|
</xsl:variable>
|
6102
|
-
|
6135
|
+
|
6136
|
+
<!-- <xsl:value-of select="$text_step2"/> -->
|
6137
|
+
|
6138
|
+
<!-- add zero-width space after space -->
|
6139
|
+
<xsl:variable name="text_step3" select="java:replaceAll(java:java.lang.String.new($text_step2),' ',' ')"/>
|
6140
|
+
|
6141
|
+
<!-- split text by zero-width space -->
|
6142
|
+
<xsl:variable name="text_step4">
|
6143
|
+
<xsl:call-template name="split">
|
6144
|
+
<xsl:with-param name="pText" select="$text_step3"/>
|
6145
|
+
<xsl:with-param name="sep" select="$zero_width_space"/>
|
6146
|
+
<xsl:with-param name="normalize-space">false</xsl:with-param>
|
6147
|
+
<xsl:with-param name="keep_sep">true</xsl:with-param>
|
6148
|
+
</xsl:call-template>
|
6149
|
+
</xsl:variable>
|
6150
|
+
|
6151
|
+
<xsl:for-each select="xalan:nodeset($text_step4)/item">
|
6152
|
+
<xsl:choose>
|
6153
|
+
<xsl:when test="string-length() > 30"> <!-- word with length more than 30 will be interspersed with zero-width space -->
|
6154
|
+
<xsl:call-template name="interspers">
|
6155
|
+
<xsl:with-param name="str" select="."/>
|
6156
|
+
</xsl:call-template>
|
6157
|
+
</xsl:when>
|
6158
|
+
<xsl:otherwise>
|
6159
|
+
<xsl:value-of select="."/>
|
6160
|
+
</xsl:otherwise>
|
6161
|
+
</xsl:choose>
|
6162
|
+
</xsl:for-each>
|
6163
|
+
|
6164
|
+
</xsl:template><xsl:template name="interspers">
|
6165
|
+
<xsl:param name="str"/>
|
6166
|
+
<xsl:param name="char" select="$zero_width_space"/>
|
6167
|
+
<xsl:if test="$str != ''">
|
6168
|
+
<xsl:value-of select="substring($str, 1, 1)"/>
|
6169
|
+
|
6170
|
+
<xsl:variable name="next_char" select="substring($str, 2, 1)"/>
|
6171
|
+
<xsl:if test="not(contains(concat(' -.:=_— ', $char), $next_char))">
|
6172
|
+
<xsl:value-of select="$char"/>
|
6173
|
+
</xsl:if>
|
6174
|
+
|
6175
|
+
<xsl:call-template name="interspers">
|
6176
|
+
<xsl:with-param name="str" select="substring($str, 2)"/>
|
6177
|
+
<xsl:with-param name="char" select="$char"/>
|
6178
|
+
</xsl:call-template>
|
6179
|
+
</xsl:if>
|
6103
6180
|
</xsl:template><xsl:template match="*" mode="syntax_highlight">
|
6104
6181
|
<xsl:apply-templates mode="syntax_highlight"/>
|
6105
6182
|
</xsl:template><xsl:variable name="syntax_highlight_styles_">
|
@@ -6541,6 +6618,8 @@
|
|
6541
6618
|
</xsl:otherwise>
|
6542
6619
|
</xsl:choose> -->
|
6543
6620
|
</fo:block>
|
6621
|
+
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
|
6622
|
+
<xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
|
6544
6623
|
</xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
|
6545
6624
|
<xsl:if test="normalize-space() != ''">
|
6546
6625
|
<xsl:value-of select="."/>
|
@@ -6575,7 +6654,8 @@
|
|
6575
6654
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
6576
6655
|
</xsl:template><xsl:template match="*[local-name() = 'modification']/text()">
|
6577
6656
|
<xsl:if test="normalize-space() != ''">
|
6578
|
-
<xsl:value-of select="."/>
|
6657
|
+
<!-- <xsl:value-of select="."/> -->
|
6658
|
+
<xsl:call-template name="text"/>
|
6579
6659
|
</xsl:if>
|
6580
6660
|
</xsl:template><xsl:template match="*[local-name() = 'quote']">
|
6581
6661
|
<fo:block-container margin-left="0mm">
|
@@ -6615,26 +6695,24 @@
|
|
6615
6695
|
</xsl:template><xsl:template match="*[local-name() = 'author']">
|
6616
6696
|
<xsl:text>— </xsl:text>
|
6617
6697
|
<xsl:apply-templates/>
|
6618
|
-
</xsl:template><xsl:variable name="
|
6698
|
+
</xsl:template><xsl:variable name="bibitems_">
|
6699
|
+
<xsl:for-each select="//*[local-name() = 'bibitem']">
|
6700
|
+
<xsl:copy-of select="."/>
|
6701
|
+
</xsl:for-each>
|
6702
|
+
</xsl:variable><xsl:variable name="bibitems" select="xalan:nodeset($bibitems_)"/><xsl:variable name="bibitems_hidden_">
|
6619
6703
|
<xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
|
6620
6704
|
<xsl:copy-of select="."/>
|
6621
6705
|
</xsl:for-each>
|
6622
|
-
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']
|
6706
|
+
<xsl:for-each select="//*[local-name() = 'references'][@hidden='true']//*[local-name() = 'bibitem']">
|
6623
6707
|
<xsl:copy-of select="."/>
|
6624
6708
|
</xsl:for-each>
|
6625
|
-
</xsl:variable><xsl:variable name="
|
6626
|
-
|
6627
|
-
<xsl:variable name="
|
6628
|
-
|
6629
|
-
<!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
|
6630
|
-
<xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
|
6631
|
-
<xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
|
6632
|
-
<xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
|
6633
|
-
</xsl:choose>
|
6634
|
-
</xsl:variable>
|
6635
|
-
|
6709
|
+
</xsl:variable><xsl:variable name="bibitems_hidden" select="xalan:nodeset($bibitems_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
|
6710
|
+
<xsl:variable name="current_bibitemid" select="@bibitemid"/>
|
6711
|
+
<!-- <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/> -->
|
6712
|
+
<xsl:variable name="external-destination" select="normalize-space($bibitems/*[local-name() ='bibitem'][@id = $current_bibitemid]/*[local-name() = 'uri'][@type = 'citation'])"/>
|
6636
6713
|
<xsl:choose>
|
6637
|
-
<xsl:when test="
|
6714
|
+
<!-- <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) -->
|
6715
|
+
<xsl:when test="$external-destination != '' or not($bibitems_hidden/*[local-name() ='bibitem'][@id = $current_bibitemid])"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link (internal to the bibitem or external) -->
|
6638
6716
|
<fo:inline xsl:use-attribute-sets="eref-style">
|
6639
6717
|
<xsl:if test="@type = 'footnote'">
|
6640
6718
|
<xsl:attribute name="keep-together.within-line">always</xsl:attribute>
|
@@ -6648,8 +6726,8 @@
|
|
6648
6726
|
<xsl:variable name="text" select="normalize-space()"/>
|
6649
6727
|
|
6650
6728
|
|
6651
|
-
|
6652
|
-
<fo:basic-link
|
6729
|
+
|
6730
|
+
<fo:basic-link fox:alt-text="{@citeas}">
|
6653
6731
|
<xsl:if test="normalize-space(@citeas) = ''">
|
6654
6732
|
<xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
|
6655
6733
|
</xsl:if>
|
@@ -6659,14 +6737,21 @@
|
|
6659
6737
|
|
6660
6738
|
</xsl:if>
|
6661
6739
|
|
6662
|
-
|
6740
|
+
<xsl:choose>
|
6741
|
+
<xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
|
6742
|
+
<xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
|
6743
|
+
</xsl:when>
|
6744
|
+
<xsl:otherwise>
|
6745
|
+
<xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
|
6746
|
+
</xsl:otherwise>
|
6747
|
+
</xsl:choose>
|
6663
6748
|
|
6664
6749
|
<xsl:apply-templates/>
|
6665
6750
|
</fo:basic-link>
|
6666
|
-
|
6751
|
+
|
6667
6752
|
</fo:inline>
|
6668
6753
|
</xsl:when>
|
6669
|
-
<xsl:otherwise>
|
6754
|
+
<xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
|
6670
6755
|
<fo:inline><xsl:apply-templates/></fo:inline>
|
6671
6756
|
</xsl:otherwise>
|
6672
6757
|
</xsl:choose>
|
@@ -7515,6 +7600,24 @@
|
|
7515
7600
|
<xsl:apply-templates/>
|
7516
7601
|
</fo:inline>
|
7517
7602
|
</xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
|
7603
|
+
|
7604
|
+
<!-- list of footnotes to calculate actual footnotes number -->
|
7605
|
+
<xsl:variable name="p_fn_">
|
7606
|
+
<xsl:call-template name="get_fn_list"/>
|
7607
|
+
</xsl:variable>
|
7608
|
+
<xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
|
7609
|
+
<xsl:variable name="gen_id" select="generate-id(.)"/>
|
7610
|
+
<xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
|
7611
|
+
<!-- fn sequence number in document -->
|
7612
|
+
<xsl:variable name="current_fn_number">
|
7613
|
+
<xsl:choose>
|
7614
|
+
<xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
|
7615
|
+
<xsl:otherwise>
|
7616
|
+
<!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
|
7617
|
+
<xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
|
7618
|
+
</xsl:otherwise>
|
7619
|
+
</xsl:choose>
|
7620
|
+
</xsl:variable>
|
7518
7621
|
<fo:footnote>
|
7519
7622
|
<xsl:variable name="number">
|
7520
7623
|
|
@@ -7523,22 +7626,26 @@
|
|
7523
7626
|
<xsl:number level="any" count="*[local-name() = 'references'][preceding-sibling::*[local-name() = 'references']]//*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
|
7524
7627
|
</xsl:when>
|
7525
7628
|
<xsl:otherwise>
|
7526
|
-
<xsl:
|
7629
|
+
<xsl:value-of select="$current_fn_number"/>
|
7527
7630
|
</xsl:otherwise>
|
7528
7631
|
</xsl:choose>
|
7529
7632
|
|
7530
7633
|
</xsl:variable>
|
7634
|
+
|
7635
|
+
<xsl:variable name="current_fn_number_text">
|
7636
|
+
<xsl:value-of select="$number"/>
|
7637
|
+
|
7638
|
+
</xsl:variable>
|
7639
|
+
|
7531
7640
|
<fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
|
7532
|
-
<fo:basic-link internal-destination="{
|
7533
|
-
<xsl:value-of select="$
|
7534
|
-
|
7641
|
+
<fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
|
7642
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
7535
7643
|
</fo:basic-link>
|
7536
7644
|
</fo:inline>
|
7537
7645
|
<fo:footnote-body>
|
7538
7646
|
<fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
|
7539
|
-
<fo:inline id="{
|
7540
|
-
<xsl:value-of select="$
|
7541
|
-
|
7647
|
+
<fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
|
7648
|
+
<xsl:value-of select="$current_fn_number_text"/>
|
7542
7649
|
</fo:inline>
|
7543
7650
|
<xsl:apply-templates/>
|
7544
7651
|
</fo:block>
|
@@ -7784,6 +7891,78 @@
|
|
7784
7891
|
<xsl:apply-templates/>
|
7785
7892
|
</fo:block>
|
7786
7893
|
|
7894
|
+
</xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
|
7895
|
+
<xsl:copy>
|
7896
|
+
<xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
|
7897
|
+
</xsl:copy>
|
7898
|
+
</xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
|
7899
|
+
<xsl:copy>
|
7900
|
+
<xsl:copy-of select="@*"/>
|
7901
|
+
|
7902
|
+
<xsl:variable name="nodes_preface_">
|
7903
|
+
<xsl:for-each select="*">
|
7904
|
+
<node id="{@id}"/>
|
7905
|
+
</xsl:for-each>
|
7906
|
+
</xsl:variable>
|
7907
|
+
<xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
|
7908
|
+
|
7909
|
+
<xsl:for-each select="*">
|
7910
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7911
|
+
|
7912
|
+
<!-- process Section's title -->
|
7913
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7914
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7915
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7916
|
+
</xsl:if>
|
7917
|
+
|
7918
|
+
<xsl:choose>
|
7919
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7920
|
+
<xsl:otherwise>
|
7921
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7922
|
+
</xsl:otherwise>
|
7923
|
+
</xsl:choose>
|
7924
|
+
|
7925
|
+
</xsl:for-each>
|
7926
|
+
</xsl:copy>
|
7927
|
+
</xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
|
7928
|
+
<xsl:copy>
|
7929
|
+
<xsl:copy-of select="@*"/>
|
7930
|
+
|
7931
|
+
<xsl:variable name="nodes_sections_">
|
7932
|
+
<xsl:for-each select="*">
|
7933
|
+
<node id="{@id}"/>
|
7934
|
+
</xsl:for-each>
|
7935
|
+
</xsl:variable>
|
7936
|
+
<xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
|
7937
|
+
|
7938
|
+
<!-- move section 'Normative references' inside 'sections' -->
|
7939
|
+
<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']]">
|
7940
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7941
|
+
|
7942
|
+
<!-- process Section's title -->
|
7943
|
+
<xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
|
7944
|
+
<xsl:if test="$preceding-sibling_id != ''">
|
7945
|
+
<xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
|
7946
|
+
</xsl:if>
|
7947
|
+
|
7948
|
+
<xsl:choose>
|
7949
|
+
<xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
|
7950
|
+
<xsl:otherwise>
|
7951
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7952
|
+
</xsl:otherwise>
|
7953
|
+
</xsl:choose>
|
7954
|
+
|
7955
|
+
</xsl:for-each>
|
7956
|
+
</xsl:copy>
|
7957
|
+
</xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
|
7958
|
+
<xsl:copy>
|
7959
|
+
<xsl:copy-of select="@*"/>
|
7960
|
+
<!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
|
7961
|
+
<xsl:for-each select="*[not(@normative='true') and not(*[@normative='true'])]">
|
7962
|
+
<xsl:sort select="@displayorder" data-type="number"/>
|
7963
|
+
<xsl:apply-templates select="." mode="update_xml_step1"/>
|
7964
|
+
</xsl:for-each>
|
7965
|
+
</xsl:copy>
|
7787
7966
|
</xsl:template><xsl:template name="convertDate">
|
7788
7967
|
<xsl:param name="date"/>
|
7789
7968
|
<xsl:param name="format" select="'short'"/>
|
@@ -8028,22 +8207,25 @@
|
|
8028
8207
|
<xsl:param name="pText" select="."/>
|
8029
8208
|
<xsl:param name="sep" select="','"/>
|
8030
8209
|
<xsl:param name="normalize-space" select="'true'"/>
|
8210
|
+
<xsl:param name="keep_sep" select="'false'"/>
|
8031
8211
|
<xsl:if test="string-length($pText) >0">
|
8032
|
-
|
8033
|
-
|
8034
|
-
|
8035
|
-
|
8036
|
-
|
8037
|
-
|
8038
|
-
|
8039
|
-
|
8040
|
-
|
8041
|
-
|
8042
|
-
|
8043
|
-
<xsl:
|
8044
|
-
|
8045
|
-
|
8046
|
-
|
8212
|
+
<item>
|
8213
|
+
<xsl:choose>
|
8214
|
+
<xsl:when test="$normalize-space = 'true'">
|
8215
|
+
<xsl:value-of select="normalize-space(substring-before(concat($pText, $sep), $sep))"/>
|
8216
|
+
</xsl:when>
|
8217
|
+
<xsl:otherwise>
|
8218
|
+
<xsl:value-of select="substring-before(concat($pText, $sep), $sep)"/>
|
8219
|
+
</xsl:otherwise>
|
8220
|
+
</xsl:choose>
|
8221
|
+
</item>
|
8222
|
+
<xsl:if test="$keep_sep = 'true' and contains($pText, $sep)"><item><xsl:value-of select="$sep"/></item></xsl:if>
|
8223
|
+
<xsl:call-template name="split">
|
8224
|
+
<xsl:with-param name="pText" select="substring-after($pText, $sep)"/>
|
8225
|
+
<xsl:with-param name="sep" select="$sep"/>
|
8226
|
+
<xsl:with-param name="normalize-space" select="$normalize-space"/>
|
8227
|
+
<xsl:with-param name="keep_sep" select="$keep_sep"/>
|
8228
|
+
</xsl:call-template>
|
8047
8229
|
</xsl:if>
|
8048
8230
|
</xsl:template><xsl:template name="getDocumentId">
|
8049
8231
|
<xsl:call-template name="getLang"/><xsl:value-of select="//*[local-name() = 'p'][1]/@id"/>
|