metanorma-iso 2.0.2 → 2.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/lib/isodoc/iso/html/html_iso_titlepage.html +1 -1
  4. data/lib/isodoc/iso/html/isodoc.css +1 -2
  5. data/lib/isodoc/iso/html/isodoc.scss +0 -1
  6. data/lib/isodoc/iso/html/word_iso_titlepage.html +1 -1
  7. data/lib/isodoc/iso/html/wordstyle.css +20 -0
  8. data/lib/isodoc/iso/html/wordstyle.scss +20 -0
  9. data/lib/isodoc/iso/i18n-en.yaml +29 -2
  10. data/lib/isodoc/iso/i18n-fr.yaml +27 -3
  11. data/lib/isodoc/iso/i18n-ru.yaml +45 -0
  12. data/lib/isodoc/iso/i18n-zh-Hans.yaml +27 -3
  13. data/lib/isodoc/iso/i18n.rb +1 -0
  14. data/lib/isodoc/iso/init.rb +1 -2
  15. data/lib/isodoc/iso/iso.amendment.xsl +1752 -807
  16. data/lib/isodoc/iso/iso.international-standard.xsl +1752 -807
  17. data/lib/isodoc/iso/metadata.rb +12 -2
  18. data/lib/isodoc/iso/presentation_xml_convert.rb +58 -21
  19. data/lib/metanorma/iso/basicdoc.rng +5 -3
  20. data/lib/metanorma/iso/biblio.rng +5 -3
  21. data/lib/metanorma/iso/boilerplate-fr.xml +3 -3
  22. data/lib/metanorma/iso/boilerplate-ru.xml +39 -0
  23. data/lib/metanorma/iso/boilerplate.xml +3 -3
  24. data/lib/metanorma/iso/cleanup.rb +42 -11
  25. data/lib/metanorma/iso/front.rb +1 -1
  26. data/lib/metanorma/iso/front_id.rb +1 -0
  27. data/lib/metanorma/iso/isodoc.rng +73 -3
  28. data/lib/metanorma/iso/processor.rb +14 -7
  29. data/lib/metanorma/iso/validate.rb +30 -2
  30. data/lib/metanorma/iso/validate_image.rb +3 -3
  31. data/lib/metanorma/iso/validate_list.rb +107 -0
  32. data/lib/metanorma/iso/validate_section.rb +42 -34
  33. data/lib/metanorma/iso/validate_style.rb +32 -2
  34. data/lib/metanorma/iso/validate_title.rb +13 -1
  35. data/lib/metanorma/iso/version.rb +1 -1
  36. data/spec/isodoc/amd_spec.rb +10 -5
  37. data/spec/isodoc/i18n_spec.rb +350 -9
  38. data/spec/isodoc/inline_spec.rb +127 -10
  39. data/spec/isodoc/metadata_spec.rb +153 -3
  40. data/spec/isodoc/postproc_spec.rb +3 -4
  41. data/spec/isodoc/section_spec.rb +1 -0
  42. data/spec/isodoc/terms_spec.rb +4 -4
  43. data/spec/isodoc/xref_spec.rb +18 -18
  44. data/spec/metanorma/base_spec.rb +434 -375
  45. data/spec/metanorma/cleanup_spec.rb +11 -11
  46. data/spec/metanorma/refs_spec.rb +333 -65
  47. data/spec/metanorma/section_spec.rb +15 -20
  48. data/spec/metanorma/validate_spec.rb +449 -14
  49. data/spec/spec_helper.rb +6 -4
  50. data/spec/vcr_cassettes/docrels.yml +211 -16
  51. data/spec/vcr_cassettes/withdrawn_iso.yml +301 -0
  52. metadata +6 -3
  53. data/spec/vcr_cassettes/sortrefs.yml +0 -599
@@ -2,11 +2,6 @@
2
2
 
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
4
 
5
- <xsl:param name="svg_images"/>
6
- <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
7
- <xsl:variable name="images" select="document($svg_images)"/>
8
- <xsl:param name="basepath"/>
9
-
10
5
 
11
6
 
12
7
  <xsl:key name="kfn" match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" use="@reference"/>
@@ -15,13 +10,10 @@
15
10
 
16
11
 
17
12
 
13
+ <xsl:variable name="namespace_full">https://www.metanorma.org/ns/iso</xsl:variable>
14
+
18
15
  <xsl:variable name="debug">false</xsl:variable>
19
16
 
20
- <xsl:variable name="marginLeftRight1" select="25"/>
21
- <xsl:variable name="marginLeftRight2" select="12.5"/>
22
- <xsl:variable name="marginTop" select="27.4"/>
23
- <xsl:variable name="marginBottom" select="13"/>
24
-
25
17
  <xsl:variable name="docidentifierISO" select="/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso'] | /iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'ISO']"/>
26
18
 
27
19
  <xsl:variable name="all_rights_reserved">
@@ -37,19 +29,26 @@
37
29
  <!-- <xsl:variable name="ISOname" select="concat(/iso:iso-standard/iso:bibdata/iso:docidentifier, ':', /iso:iso-standard/iso:bibdata/iso:copyright/iso:from , $lang-1st-letter)"/> -->
38
30
  <xsl:variable name="ISOname" select="/iso:iso-standard/iso:bibdata/iso:docidentifier[@type = 'iso-reference']"/>
39
31
 
40
- <!-- Information and documentation — Codes for transcription systems -->
41
- <xsl:variable name="title-intro" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-intro']"/>
42
- <xsl:variable name="title-intro-fr" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-intro']"/>
43
- <xsl:variable name="title-main" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-main']"/>
44
- <xsl:variable name="title-main-fr" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-main']"/>
45
32
  <xsl:variable name="part" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@part"/>
46
33
 
47
34
  <xsl:variable name="doctype" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:doctype"/>
48
- <xsl:variable name="doctype_uppercased" select="java:toUpperCase(java:java.lang.String.new(translate($doctype,'-',' ')))"/>
35
+ <xsl:variable name="doctype_localized" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:doctype[@language = $lang]"/>
36
+
37
+ <xsl:variable name="doctype_uppercased">
38
+ <xsl:choose>
39
+ <xsl:when test="$doctype_localized != ''">
40
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(translate(normalize-space($doctype_localized),'-',' ')))"/>
41
+ </xsl:when>
42
+ <xsl:otherwise>
43
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(translate(normalize-space($doctype),'-',' ')))"/>
44
+ </xsl:otherwise>
45
+ </xsl:choose>
46
+ </xsl:variable>
49
47
 
50
48
  <xsl:variable name="stage" select="number(/iso:iso-standard/iso:bibdata/iso:status/iso:stage)"/>
51
49
  <xsl:variable name="substage" select="number(/iso:iso-standard/iso:bibdata/iso:status/iso:substage)"/>
52
50
  <xsl:variable name="stagename" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:ext/iso:stagename)"/>
51
+ <xsl:variable name="stagename_localized" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:status/iso:stage[@language = $lang])"/>
53
52
  <xsl:variable name="abbreviation" select="normalize-space(/iso:iso-standard/iso:bibdata/iso:status/iso:stage/@abbreviation)"/>
54
53
 
55
54
  <xsl:variable name="stage-abbreviation">
@@ -73,7 +72,10 @@
73
72
 
74
73
  <xsl:variable name="stage-fullname-uppercased">
75
74
  <xsl:choose>
76
- <xsl:when test="$stagename != ''">
75
+ <xsl:when test="$stagename_localized != ''">
76
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($stagename_localized))"/>
77
+ </xsl:when>
78
+ <xsl:when test="$stagename != ''">
77
79
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new($stagename))"/>
78
80
  </xsl:when>
79
81
  <xsl:when test="$stage-abbreviation = 'NWIP' or $stage-abbreviation = 'NP'">NEW WORK ITEM PROPOSAL</xsl:when>
@@ -160,18 +162,26 @@
160
162
  <item level="1" id="Foreword" display="true">Foreword</item>
161
163
  <item id="term-script" display="false">3.2</item>
162
164
  -->
163
- <xsl:variable name="contents">
165
+ <xsl:variable name="contents_">
164
166
  <contents>
165
167
  <xsl:call-template name="processPrefaceSectionsDefault_Contents"/>
166
168
  <xsl:call-template name="processMainSectionsDefault_Contents"/>
167
169
  <xsl:apply-templates select="//iso:indexsect" mode="contents"/>
170
+ <xsl:call-template name="processTablesFigures_Contents"/>
168
171
  </contents>
169
172
  </xsl:variable>
173
+ <xsl:variable name="contents" select="xalan:nodeset($contents_)"/>
170
174
 
171
- <xsl:variable name="lang">
172
- <xsl:call-template name="getLang"/>
175
+ <xsl:variable name="lang_other">
176
+ <xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:title[@language != $lang]">
177
+ <xsl:if test="not(preceding-sibling::iso:title[@language = current()/@language])">
178
+ <lang><xsl:value-of select="@language"/></lang>
179
+ </xsl:if>
180
+ </xsl:for-each>
173
181
  </xsl:variable>
174
182
 
183
+ <xsl:variable name="XML" select="/"/>
184
+
175
185
  <xsl:template match="/">
176
186
  <xsl:call-template name="namespaceCheck"/>
177
187
  <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}"> <!-- -->
@@ -428,7 +438,7 @@
428
438
  <!-- Reference number -->
429
439
  <fo:block>
430
440
  <xsl:call-template name="getLocalizedString">
431
- <xsl:with-param name="key">reference_number</xsl:with-param>
441
+ <xsl:with-param name="key">reference_number</xsl:with-param>
432
442
  </xsl:call-template>
433
443
  </fo:block>
434
444
  <fo:block>
@@ -476,7 +486,12 @@
476
486
  </fo:block>
477
487
  </fo:table-cell>
478
488
  <fo:table-cell>
479
- <fo:block>Secretariat: <fo:inline font-weight="bold"><xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:ext/iso:editorialgroup/iso:secretariat"/></fo:inline></fo:block>
489
+ <fo:block>
490
+ <xsl:call-template name="getLocalizedString">
491
+ <xsl:with-param name="key">secretariat</xsl:with-param>
492
+ </xsl:call-template>
493
+ <xsl:text>: </xsl:text>
494
+ Secretariat: <fo:inline font-weight="bold"><xsl:value-of select="/iso:iso-standard/iso:bibdata/iso:ext/iso:editorialgroup/iso:secretariat"/></fo:inline></fo:block>
480
495
  </fo:table-cell>
481
496
  </fo:table-row>
482
497
  <fo:table-row>
@@ -521,47 +536,45 @@
521
536
  <fo:block-container border-top="1mm double black" line-height="1.1" margin-top="3mm">
522
537
  <fo:block margin-right="5mm">
523
538
  <fo:block font-size="18pt" font-weight="bold" margin-top="6pt" role="H1">
524
- <xsl:if test="normalize-space($title-intro) != ''">
525
- <xsl:value-of select="$title-intro"/>
526
- <xsl:text> — </xsl:text>
527
- </xsl:if>
528
-
529
- <xsl:value-of select="$title-main"/>
530
-
531
- <xsl:call-template name="printTitlePartEn"/>
532
-
533
- <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-amd']"/>
534
- <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
535
- <fo:block margin-top="12pt" role="H1">
536
- <xsl:call-template name="printAmendmentTitle"/>
537
- </fo:block>
538
- </xsl:if>
539
-
540
- </fo:block>
541
-
542
- <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
543
- <fo:block font-size="11pt" font-style="italic" line-height="1.5" role="H1">
544
-
545
- <xsl:if test="normalize-space($title-intro-fr) != ''">
546
- <xsl:value-of select="$title-intro-fr"/>
547
- <xsl:text> — </xsl:text>
548
- </xsl:if>
549
-
550
- <xsl:value-of select="$title-main-fr"/>
551
-
552
- <xsl:call-template name="printTitlePartFr"/>
539
+
540
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-intro']"/>
541
+
542
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-main']"/>
553
543
 
554
- <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-amd']"/>
555
- <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
556
- <fo:block margin-top="6pt" role="H1">
557
- <xsl:call-template name="printAmendmentTitle">
558
- <xsl:with-param name="lang" select="'fr'"/>
559
- </xsl:call-template>
560
- </fo:block>
561
- </xsl:if>
544
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']">
545
+ <xsl:with-param name="isMainLang">true</xsl:with-param>
546
+ </xsl:apply-templates>
562
547
 
548
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']">
549
+ <xsl:with-param name="isMainLang">true</xsl:with-param>
550
+ </xsl:apply-templates>
551
+
563
552
  </fo:block>
553
+
554
+
555
+ <xsl:for-each select="xalan:nodeset($lang_other)/lang">
556
+ <xsl:variable name="lang_other" select="."/>
557
+
558
+ <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
559
+ <fo:block font-size="11pt" font-style="italic" line-height="1.5" role="H1">
560
+
561
+ <!-- Example: title-intro fr -->
562
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-intro']"/>
563
+
564
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-main']"/>
565
+
566
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-part']">
567
+ <xsl:with-param name="curr_lang" select="$lang_other"/>
568
+ </xsl:apply-templates>
569
+
570
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-amd']">
571
+ <xsl:with-param name="curr_lang" select="$lang_other"/>
572
+ </xsl:apply-templates>
573
+
574
+ </fo:block>
575
+ </xsl:for-each>
564
576
  </fo:block>
577
+
565
578
  <fo:block margin-top="10mm">
566
579
  <xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:ext/iso:ics/iso:code">
567
580
  <xsl:if test="position() = 1"><fo:inline>ICS: </fo:inline></xsl:if>
@@ -569,6 +582,7 @@
569
582
  <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
570
583
  </xsl:for-each>
571
584
  </fo:block>
585
+
572
586
  </fo:block-container>
573
587
 
574
588
 
@@ -602,6 +616,15 @@
602
616
  <xsl:if test="$stage-name = 'final-draft'">FINAL<xsl:value-of select="$linebreak"/>DRAFT</xsl:if> -->
603
617
  </fo:block>
604
618
  </fo:table-cell>
619
+
620
+ <xsl:variable name="lastWord">
621
+ <xsl:call-template name="substring-after-last">
622
+ <xsl:with-param name="value" select="$doctype_uppercased"/>
623
+ <xsl:with-param name="delimiter" select="' '"/>
624
+ </xsl:call-template>
625
+ </xsl:variable>
626
+ <xsl:variable name="font-size"><xsl:if test="string-length($lastWord) &gt;= 12">90%</xsl:if></xsl:variable> <!-- to prevent overlapping 'NORME INTERNATIONALE' to number -->
627
+
605
628
  <fo:table-cell>
606
629
  <fo:block text-align="left">
607
630
  <xsl:choose>
@@ -609,6 +632,9 @@
609
632
  <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(translate(/iso:iso-standard/iso:bibdata/iso:ext/iso:updates-document-type,'-',' ')))"/>
610
633
  </xsl:when>
611
634
  <xsl:otherwise>
635
+ <xsl:if test="$font-size != ''">
636
+ <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
637
+ </xsl:if>
612
638
  <xsl:value-of select="$doctype_uppercased"/>
613
639
  </xsl:otherwise>
614
640
  </xsl:choose>
@@ -616,6 +642,9 @@
616
642
  </fo:table-cell>
617
643
  <fo:table-cell>
618
644
  <fo:block text-align="right" font-weight="bold" margin-bottom="13mm">
645
+ <xsl:if test="$font-size != ''">
646
+ <xsl:attribute name="font-size"><xsl:value-of select="$font-size"/></xsl:attribute>
647
+ </xsl:if>
619
648
  <xsl:value-of select="$docidentifierISO"/>
620
649
  </fo:block>
621
650
  </fo:table-cell>
@@ -713,54 +742,43 @@
713
742
  <fo:block margin-right="5mm">
714
743
  <fo:block font-size="18pt" font-weight="bold" margin-top="12pt" role="H1">
715
744
 
716
- <xsl:if test="normalize-space($title-intro) != ''">
717
- <xsl:value-of select="$title-intro"/>
718
- <xsl:text> — </xsl:text>
719
- </xsl:if>
720
-
721
- <xsl:value-of select="$title-main"/>
722
-
723
- <xsl:call-template name="printTitlePartEn"/>
724
- <!-- <xsl:if test="normalize-space($title-part) != ''">
725
- <xsl:if test="$part != ''">
726
- <xsl:text> — </xsl:text>
727
- <fo:block font-weight="normal" margin-top="6pt">
728
- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
729
- <xsl:text>:</xsl:text>
730
- </fo:block>
731
- </xsl:if>
732
- <xsl:value-of select="$title-part"/>
733
- </xsl:if> -->
734
- <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-amd']"/>
735
- <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
736
- <fo:block margin-right="-5mm" margin-top="12pt" role="H1">
737
- <xsl:call-template name="printAmendmentTitle"/>
738
- </fo:block>
739
- </xsl:if>
740
- </fo:block>
741
-
742
- <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
743
- <fo:block font-size="11pt" font-style="italic" line-height="1.5" role="H1">
744
-
745
- <xsl:if test="normalize-space($title-intro-fr) != ''">
746
- <xsl:value-of select="$title-intro-fr"/>
747
- <xsl:text> — </xsl:text>
748
- </xsl:if>
745
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-intro']"/>
749
746
 
750
- <xsl:value-of select="$title-main-fr"/>
747
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-main']"/>
751
748
 
752
- <xsl:call-template name="printTitlePartFr"/>
749
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']">
750
+ <xsl:with-param name="isMainLang">true</xsl:with-param>
751
+ </xsl:apply-templates>
753
752
 
754
- <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-amd']"/>
755
- <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
756
- <fo:block margin-right="-5mm" margin-top="6pt" role="H1">
757
- <xsl:call-template name="printAmendmentTitle">
758
- <xsl:with-param name="lang" select="'fr'"/>
759
- </xsl:call-template>
760
- </fo:block>
761
- </xsl:if>
753
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']">
754
+ <xsl:with-param name="isMainLang">true</xsl:with-param>
755
+ </xsl:apply-templates>
762
756
 
763
757
  </fo:block>
758
+
759
+
760
+ <xsl:for-each select="xalan:nodeset($lang_other)/lang">
761
+ <xsl:variable name="lang_other" select="."/>
762
+
763
+ <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
764
+ <fo:block font-size="11pt" font-style="italic" line-height="1.5" role="H1">
765
+
766
+ <!-- Example: title-intro fr -->
767
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-intro']"/>
768
+
769
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-main']"/>
770
+
771
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-part']">
772
+ <xsl:with-param name="curr_lang" select="$lang_other"/>
773
+ </xsl:apply-templates>
774
+
775
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-amd']">
776
+ <xsl:with-param name="curr_lang" select="$lang_other"/>
777
+ </xsl:apply-templates>
778
+
779
+ </fo:block>
780
+ </xsl:for-each>
781
+
764
782
  </fo:block>
765
783
  </fo:block-container>
766
784
  </fo:table-cell>
@@ -844,41 +862,35 @@
844
862
 
845
863
  <fo:block-container border-top="1mm double black" line-height="1.1">
846
864
  <fo:block margin-right="40mm">
847
- <fo:block font-size="18pt" font-weight="bold" margin-top="12pt" role="H1">
848
-
849
- <xsl:if test="normalize-space($title-intro) != ''">
850
- <xsl:value-of select="$title-intro"/>
851
- <xsl:text> — </xsl:text>
852
- </xsl:if>
853
-
854
- <xsl:value-of select="$title-main"/>
865
+ <fo:block font-size="18pt" font-weight="bold" margin-top="12pt" role="H1">
855
866
 
856
- <xsl:call-template name="printTitlePartEn"/>
857
- <!-- <xsl:if test="normalize-space($title-part) != ''">
858
- <xsl:if test="$part != ''">
859
- <xsl:text> — </xsl:text>
860
- <fo:block font-weight="normal" margin-top="6pt">
861
- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
862
- <xsl:text>:</xsl:text>
863
- </fo:block>
864
- </xsl:if>
865
- <xsl:value-of select="$title-part"/>
866
- </xsl:if> -->
867
- </fo:block>
867
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-intro']"/>
868
+
869
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-main']"/>
870
+
871
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']">
872
+ <xsl:with-param name="isMainLang">true</xsl:with-param>
873
+ </xsl:apply-templates>
874
+
875
+ </fo:block>
876
+
877
+ <xsl:for-each select="xalan:nodeset($lang_other)/lang">
878
+ <xsl:variable name="lang_other" select="."/>
879
+
880
+ <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
881
+ <fo:block font-size="11pt" font-style="italic" line-height="1.5" role="H1">
868
882
 
869
- <fo:block font-size="9pt"><xsl:value-of select="$linebreak"/></fo:block>
870
- <fo:block font-size="11pt" font-style="italic" line-height="1.5" role="H1">
871
-
872
- <xsl:if test="normalize-space($title-intro-fr) != ''">
873
- <xsl:value-of select="$title-intro-fr"/>
874
- <xsl:text> </xsl:text>
875
- </xsl:if>
876
-
877
- <xsl:value-of select="$title-main-fr"/>
878
-
879
- <xsl:call-template name="printTitlePartFr"/>
880
-
881
- </fo:block>
883
+ <!-- Example: title-intro fr -->
884
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-intro']"/>
885
+
886
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-main']"/>
887
+
888
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-part']">
889
+ <xsl:with-param name="curr_lang" select="$lang_other"/>
890
+ </xsl:apply-templates>
891
+
892
+ </fo:block>
893
+ </xsl:for-each>
882
894
  </fo:block>
883
895
  </fo:block-container>
884
896
  </fo:block-container>
@@ -961,48 +973,35 @@
961
973
  <!-- Information and documentation — Codes for transcription systems -->
962
974
  <fo:block font-weight="bold" role="H1">
963
975
 
964
- <xsl:if test="normalize-space($title-intro) != ''">
965
- <xsl:value-of select="$title-intro"/>
966
- <xsl:text> </xsl:text>
967
- </xsl:if>
968
-
969
- <xsl:value-of select="$title-main"/>
976
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-intro']"/>
977
+
978
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-main']"/>
970
979
 
971
- <xsl:call-template name="printTitlePartEn"/>
972
- <!-- <xsl:if test="normalize-space($title-part) != ''">
973
- <xsl:if test="$part != ''">
974
- <xsl:text> — </xsl:text>
975
- <fo:block font-weight="normal" margin-top="6pt">
976
- <xsl:text>Part </xsl:text><xsl:value-of select="$part"/>
977
- <xsl:text>:</xsl:text>
978
- </fo:block>
979
- </xsl:if>
980
- <xsl:value-of select="$title-part"/>
981
- </xsl:if> -->
980
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']">
981
+ <xsl:with-param name="isMainLang">true</xsl:with-param>
982
+ </xsl:apply-templates>
983
+
982
984
  </fo:block>
983
985
 
984
- <fo:block font-size="12pt"><xsl:value-of select="$linebreak"/></fo:block>
985
- <fo:block role="H1">
986
- <xsl:if test="normalize-space($title-intro-fr) != ''">
987
- <xsl:value-of select="$title-intro-fr"/>
988
- <xsl:text> — </xsl:text>
989
- </xsl:if>
986
+ <xsl:for-each select="xalan:nodeset($lang_other)/lang">
987
+ <xsl:variable name="lang_other" select="."/>
988
+
989
+ <fo:block font-size="12pt"><xsl:value-of select="$linebreak"/></fo:block>
990
+ <fo:block role="H1">
990
991
 
991
- <xsl:value-of select="$title-main-fr"/>
992
+ <!-- Example: title-intro fr -->
993
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-intro']"/>
994
+
995
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-main']"/>
996
+
997
+ <xsl:apply-templates select="$XML/iso:iso-standard/iso:bibdata/iso:title[@language = $lang_other and @type = 'title-part']">
998
+ <xsl:with-param name="curr_lang" select="$lang_other"/>
999
+ </xsl:apply-templates>
1000
+
1001
+ </fo:block>
992
1002
 
993
- <xsl:variable name="part-fr" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-part']"/>
994
- <xsl:if test="normalize-space($part-fr) != ''">
995
- <xsl:if test="$part != ''">
996
- <xsl:text> — </xsl:text>
997
- <fo:block margin-top="6pt" font-weight="normal">
998
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='fr']),'#',$part)"/>
999
- <!-- <xsl:value-of select="$title-part-fr"/><xsl:value-of select="$part"/>
1000
- <xsl:text>:</xsl:text> -->
1001
- </fo:block>
1002
- </xsl:if>
1003
- <xsl:value-of select="$part-fr"/>
1004
- </xsl:if>
1005
- </fo:block>
1003
+ </xsl:for-each>
1004
+
1006
1005
  </fo:block-container>
1007
1006
  <fo:block font-size="11pt" margin-bottom="8pt"><xsl:value-of select="$linebreak"/></fo:block>
1008
1007
  <fo:block-container font-size="40pt" text-align="center" margin-bottom="12pt" border="0.5pt solid black">
@@ -1031,312 +1030,418 @@
1031
1030
  </xsl:otherwise>
1032
1031
  </xsl:choose>
1033
1032
 
1034
- <fo:page-sequence master-reference="preface{$document-master-reference}" format="i" force-page-count="{$force-page-count-preface}">
1035
- <xsl:call-template name="insertHeaderFooter">
1036
- <xsl:with-param name="font-weight">normal</xsl:with-param>
1037
- </xsl:call-template>
1038
- <fo:flow flow-name="xsl-region-body" line-height="115%">
1039
- <xsl:if test="/iso:iso-standard/iso:boilerplate/iso:copyright-statement">
1040
-
1041
- <fo:block-container height="252mm" display-align="after">
1042
- <!-- <fo:block margin-bottom="3mm">
1043
- <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="14mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
1044
- <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold"></fo:inline>
1045
- </fo:block> -->
1046
- <fo:block line-height="90%">
1047
- <fo:block font-size="9pt" text-align="justify">
1048
- <xsl:apply-templates select="/iso:iso-standard/iso:boilerplate/iso:copyright-statement"/>
1033
+ <xsl:variable name="updated_xml_step1">
1034
+ <xsl:apply-templates mode="update_xml_step1"/>
1035
+ </xsl:variable>
1036
+ <!-- DEBUG: updated_xml_step1=<xsl:copy-of select="$updated_xml_step1"/> -->
1037
+
1038
+ <xsl:variable name="updated_xml_step2">
1039
+ <xsl:apply-templates select="xalan:nodeset($updated_xml_step1)" mode="update_xml_step2"/>
1040
+ </xsl:variable>
1041
+ <!-- DEBUG: updated_xml_step2=<xsl:copy-of select="$updated_xml_step2"/> -->
1042
+
1043
+ <xsl:for-each select="xalan:nodeset($updated_xml_step2)">
1044
+
1045
+ <fo:page-sequence master-reference="preface{$document-master-reference}" format="i" force-page-count="{$force-page-count-preface}">
1046
+ <xsl:call-template name="insertHeaderFooter">
1047
+ <xsl:with-param name="font-weight">normal</xsl:with-param>
1048
+ </xsl:call-template>
1049
+ <fo:flow flow-name="xsl-region-body" line-height="115%">
1050
+ <xsl:if test="/iso:iso-standard/iso:boilerplate/iso:copyright-statement">
1051
+
1052
+ <fo:block-container height="252mm" display-align="after">
1053
+ <!-- <fo:block margin-bottom="3mm">
1054
+ <fo:external-graphic src="{concat('data:image/png;base64,', normalize-space($Image-Attention))}" width="14mm" content-height="13mm" content-width="scale-to-fit" scaling="uniform" fox:alt-text="Image {@alt}"/>
1055
+ <fo:inline padding-left="6mm" font-size="12pt" font-weight="bold"></fo:inline>
1056
+ </fo:block> -->
1057
+ <fo:block line-height="90%">
1058
+ <fo:block font-size="9pt" text-align="justify">
1059
+ <xsl:apply-templates select="/iso:iso-standard/iso:boilerplate/iso:copyright-statement"/>
1060
+ </fo:block>
1049
1061
  </fo:block>
1050
- </fo:block>
1051
- </fo:block-container>
1052
- </xsl:if>
1053
-
1054
-
1055
- <xsl:choose>
1056
- <xsl:when test="$doctype = 'amendment'"/><!-- ToC shouldn't be generated in amendments. -->
1062
+ </fo:block-container>
1063
+ </xsl:if>
1057
1064
 
1058
- <xsl:otherwise>
1059
- <xsl:if test="/iso:iso-standard/iso:boilerplate/iso:copyright-statement">
1060
- <fo:block break-after="page"/>
1061
- </xsl:if>
1062
- <fo:block-container font-weight="bold">
1063
- <fo:block role="TOC">
1064
- <fo:block text-align-last="justify" font-size="16pt" margin-top="10pt" margin-bottom="18pt">
1065
- <fo:inline font-size="16pt" font-weight="bold" role="H1">
1066
- <!-- Contents -->
1067
- <xsl:call-template name="getLocalizedString">
1068
- <xsl:with-param name="key">table_of_contents</xsl:with-param>
1069
- </xsl:call-template>
1070
- </fo:inline>
1071
- <fo:inline keep-together.within-line="always">
1072
- <fo:leader leader-pattern="space"/>
1073
- <fo:inline font-weight="normal" font-size="10pt">
1074
- <!-- Page -->
1065
+
1066
+ <xsl:choose>
1067
+ <xsl:when test="$doctype = 'amendment'"/><!-- ToC shouldn't be generated in amendments. -->
1068
+
1069
+ <xsl:otherwise>
1070
+ <xsl:if test="/iso:iso-standard/iso:boilerplate/iso:copyright-statement">
1071
+ <fo:block break-after="page"/>
1072
+ </xsl:if>
1073
+ <fo:block-container font-weight="bold">
1074
+ <fo:block role="TOC">
1075
+ <fo:block text-align-last="justify" font-size="16pt" margin-top="10pt" margin-bottom="18pt">
1076
+ <fo:inline font-size="16pt" font-weight="bold" role="H1">
1077
+ <!-- Contents -->
1075
1078
  <xsl:call-template name="getLocalizedString">
1076
- <xsl:with-param name="key">locality.page</xsl:with-param>
1077
- </xsl:call-template>
1079
+ <xsl:with-param name="key">table_of_contents</xsl:with-param>
1080
+ </xsl:call-template>
1078
1081
  </fo:inline>
1079
- </fo:inline>
1080
- </fo:block>
1081
-
1082
- <xsl:if test="$debug = 'true'">
1083
- <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
1084
- DEBUG
1085
- contents=<xsl:copy-of select="xalan:nodeset($contents)"/>
1086
- <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
1087
- </xsl:if>
1088
-
1089
- <xsl:variable name="margin-left">12</xsl:variable>
1090
- <xsl:for-each select="xalan:nodeset($contents)//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
1082
+ <fo:inline keep-together.within-line="always">
1083
+ <fo:leader leader-pattern="space"/>
1084
+ <fo:inline font-weight="normal" font-size="10pt">
1085
+ <!-- Page -->
1086
+ <xsl:call-template name="getLocalizedString">
1087
+ <xsl:with-param name="key">locality.page</xsl:with-param>
1088
+ </xsl:call-template>
1089
+ </fo:inline>
1090
+ </fo:inline>
1091
+ </fo:block>
1091
1092
 
1092
- <fo:block role="TOCI">
1093
- <xsl:if test="@level = 1">
1094
- <xsl:attribute name="margin-top">5pt</xsl:attribute>
1095
- </xsl:if>
1096
- <xsl:if test="@level = 3">
1097
- <xsl:attribute name="margin-top">-0.7pt</xsl:attribute>
1098
- </xsl:if>
1099
- <fo:list-block>
1100
- <xsl:attribute name="margin-left"><xsl:value-of select="$margin-left * (@level - 1)"/>mm</xsl:attribute>
1101
- <xsl:if test="@level &gt;= 2 or @type = 'annex'">
1102
- <xsl:attribute name="font-weight">normal</xsl:attribute>
1093
+ <xsl:if test="$debug = 'true'">
1094
+ <xsl:text disable-output-escaping="yes">&lt;!--</xsl:text>
1095
+ DEBUG
1096
+ contents=<xsl:copy-of select="$contents"/>
1097
+ <xsl:text disable-output-escaping="yes">--&gt;</xsl:text>
1098
+ </xsl:if>
1099
+
1100
+ <xsl:variable name="margin-left">12</xsl:variable>
1101
+ <xsl:for-each select="$contents//item[@display = 'true']"><!-- [not(@level = 2 and starts-with(@section, '0'))] skip clause from preface -->
1102
+
1103
+ <fo:block role="TOCI">
1104
+ <xsl:if test="@level = 1">
1105
+ <xsl:attribute name="margin-top">5pt</xsl:attribute>
1103
1106
  </xsl:if>
1104
- <xsl:attribute name="provisional-distance-between-starts">
1105
- <xsl:choose>
1106
- <!-- skip 0 section without subsections -->
1107
- <xsl:when test="@level &gt;= 3"><xsl:value-of select="$margin-left * 1.2"/>mm</xsl:when>
1108
- <xsl:when test="@section != ''"><xsl:value-of select="$margin-left"/>mm</xsl:when>
1109
- <xsl:otherwise>0mm</xsl:otherwise>
1110
- </xsl:choose>
1111
- </xsl:attribute>
1112
- <fo:list-item>
1113
- <fo:list-item-label end-indent="label-end()">
1114
- <fo:block>
1115
- <xsl:value-of select="@section"/>
1116
- </fo:block>
1117
- </fo:list-item-label>
1118
- <fo:list-item-body start-indent="body-start()">
1119
- <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
1120
- <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
1121
-
1122
- <xsl:apply-templates select="title"/>
1107
+ <xsl:if test="@level = 3">
1108
+ <xsl:attribute name="margin-top">-0.7pt</xsl:attribute>
1109
+ </xsl:if>
1110
+ <fo:list-block>
1111
+ <xsl:attribute name="margin-left"><xsl:value-of select="$margin-left * (@level - 1)"/>mm</xsl:attribute>
1112
+ <xsl:if test="@level &gt;= 2 or @type = 'annex'">
1113
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
1114
+ </xsl:if>
1115
+ <xsl:attribute name="provisional-distance-between-starts">
1116
+ <xsl:choose>
1117
+ <!-- skip 0 section without subsections -->
1118
+ <xsl:when test="@level &gt;= 3"><xsl:value-of select="$margin-left * 1.2"/>mm</xsl:when>
1119
+ <xsl:when test="@section != ''"><xsl:value-of select="$margin-left"/>mm</xsl:when>
1120
+ <xsl:otherwise>0mm</xsl:otherwise>
1121
+ </xsl:choose>
1122
+ </xsl:attribute>
1123
+ <fo:list-item>
1124
+ <fo:list-item-label end-indent="label-end()">
1125
+ <fo:block>
1126
+ <xsl:value-of select="@section"/>
1127
+ </fo:block>
1128
+ </fo:list-item-label>
1129
+ <fo:list-item-body start-indent="body-start()">
1130
+ <fo:block text-align-last="justify" margin-left="12mm" text-indent="-12mm">
1131
+ <fo:basic-link internal-destination="{@id}" fox:alt-text="{title}">
1123
1132
 
1124
- <fo:inline keep-together.within-line="always">
1125
- <fo:leader font-size="9pt" font-weight="normal" leader-pattern="dots"/>
1126
- <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1127
- </fo:inline>
1128
- </fo:basic-link>
1129
- </fo:block>
1130
- </fo:list-item-body>
1131
- </fo:list-item>
1132
- </fo:list-block>
1133
- </fo:block>
1133
+ <xsl:apply-templates select="title"/>
1134
+
1135
+ <fo:inline keep-together.within-line="always">
1136
+ <fo:leader font-size="9pt" font-weight="normal" leader-pattern="dots"/>
1137
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1138
+ </fo:inline>
1139
+ </fo:basic-link>
1140
+ </fo:block>
1141
+ </fo:list-item-body>
1142
+ </fo:list-item>
1143
+ </fo:list-block>
1144
+ </fo:block>
1145
+
1146
+ </xsl:for-each>
1134
1147
 
1135
- </xsl:for-each>
1136
- </fo:block>
1137
- </fo:block-container>
1138
- </xsl:otherwise>
1139
- </xsl:choose>
1140
-
1141
- <!-- Foreword, Introduction -->
1142
- <xsl:call-template name="processPrefaceSectionsDefault"/>
1148
+ <!-- List of Tables -->
1149
+ <xsl:if test="$contents//tables/table">
1150
+ <xsl:call-template name="insertListOf_Title">
1151
+ <xsl:with-param name="title" select="$title-list-tables"/>
1152
+ </xsl:call-template>
1153
+ <xsl:for-each select="$contents//tables/table">
1154
+ <xsl:call-template name="insertListOf_Item"/>
1155
+ </xsl:for-each>
1156
+ </xsl:if>
1157
+
1158
+ <!-- List of Figures -->
1159
+ <xsl:if test="$contents//figures/figure">
1160
+ <xsl:call-template name="insertListOf_Title">
1161
+ <xsl:with-param name="title" select="$title-list-figures"/>
1162
+ </xsl:call-template>
1163
+ <xsl:for-each select="$contents//figures/figure">
1164
+ <xsl:call-template name="insertListOf_Item"/>
1165
+ </xsl:for-each>
1166
+ </xsl:if>
1167
+
1168
+ </fo:block>
1169
+ </fo:block-container>
1170
+ </xsl:otherwise>
1171
+ </xsl:choose>
1143
1172
 
1144
- </fo:flow>
1145
- </fo:page-sequence>
1146
-
1147
- <!-- BODY -->
1148
- <fo:page-sequence master-reference="document{$document-master-reference}" initial-page-number="1" force-page-count="no-force">
1149
- <fo:static-content flow-name="xsl-footnote-separator">
1150
- <fo:block>
1151
- <fo:leader leader-pattern="rule" leader-length="30%"/>
1152
- </fo:block>
1153
- </fo:static-content>
1154
- <xsl:call-template name="insertHeaderFooter"/>
1155
- <fo:flow flow-name="xsl-region-body">
1173
+ <!-- Foreword, Introduction -->
1174
+ <xsl:call-template name="processPrefaceSectionsDefault"/>
1175
+
1176
+ </fo:flow>
1177
+ </fo:page-sequence>
1156
1178
 
1157
-
1158
- <fo:block-container>
1159
- <!-- Information and documentation — Codes for transcription systems -->
1160
- <!-- <fo:block font-size="16pt" font-weight="bold" margin-bottom="18pt">
1161
- <xsl:value-of select="$title-en"/>
1179
+ <!-- BODY -->
1180
+ <fo:page-sequence master-reference="document{$document-master-reference}" initial-page-number="1" force-page-count="no-force">
1181
+ <fo:static-content flow-name="xsl-footnote-separator">
1182
+ <fo:block>
1183
+ <fo:leader leader-pattern="rule" leader-length="30%"/>
1162
1184
  </fo:block>
1163
- -->
1164
- <fo:block font-size="18pt" font-weight="bold" margin-top="40pt" margin-bottom="20pt" line-height="1.1">
1185
+ </fo:static-content>
1186
+ <xsl:call-template name="insertHeaderFooter"/>
1187
+ <fo:flow flow-name="xsl-region-body">
1188
+
1165
1189
 
1166
- <xsl:variable name="title-part-doc-lang" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']"/>
1167
-
1168
- <xsl:variable name="title-intro-doc-lang" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-intro']"/>
1190
+ <fo:block-container>
1191
+ <!-- Information and documentation — Codes for transcription systems -->
1192
+ <!-- <fo:block font-size="16pt" font-weight="bold" margin-bottom="18pt">
1193
+ <xsl:value-of select="$title-en"/>
1194
+ </fo:block>
1195
+ -->
1196
+ <fo:block font-size="18pt" font-weight="bold" margin-top="40pt" margin-bottom="20pt" line-height="1.1">
1169
1197
 
1170
- <fo:block role="H1">
1171
- <xsl:if test="normalize-space($title-intro-doc-lang) != ''">
1172
- <xsl:value-of select="$title-intro-doc-lang"/>
1173
- <xsl:text> — </xsl:text>
1174
- </xsl:if>
1198
+ <fo:block role="H1">
1175
1199
 
1176
- <xsl:variable name="title-main-doc-lang" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-main']"/>
1200
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-intro']"/>
1201
+
1202
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-main']"/>
1203
+
1204
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']">
1205
+ <xsl:with-param name="isMainLang">true</xsl:with-param>
1206
+ <xsl:with-param name="isMainBody">true</xsl:with-param>
1207
+ </xsl:apply-templates>
1208
+
1209
+ </fo:block>
1210
+ <fo:block role="H1">
1211
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-part']/node()"/>
1212
+ </fo:block>
1177
1213
 
1178
- <xsl:value-of select="$title-main-doc-lang"/>
1214
+ <xsl:apply-templates select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']">
1215
+ <xsl:with-param name="isMainLang">true</xsl:with-param>
1216
+ <xsl:with-param name="isMainBody">true</xsl:with-param>
1217
+ </xsl:apply-templates>
1179
1218
 
1180
- <xsl:if test="normalize-space($title-part-doc-lang) != ''">
1181
- <xsl:if test="$part != ''">
1182
- <xsl:text> — </xsl:text>
1183
- <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1184
- <xsl:call-template name="getLocalizedString">
1185
- <xsl:with-param name="key">Part.sg</xsl:with-param>
1186
- </xsl:call-template>
1187
- <xsl:text> </xsl:text>
1188
- <xsl:value-of select="$part"/>
1189
- <xsl:text>:</xsl:text>
1190
- <!-- <xsl:value-of select="$title-part-en"/>
1191
- <xsl:value-of select="$part"/>
1192
- <xsl:text>:</xsl:text> -->
1193
- </fo:block>
1194
- </xsl:if>
1195
- </xsl:if>
1196
1219
  </fo:block>
1197
- <fo:block role="H1">
1198
- <xsl:value-of select="$title-part-doc-lang"/>
1199
- </fo:block>
1200
-
1201
- <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']"/>
1202
- <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
1203
- <fo:block margin-top="12pt" role="H1">
1204
- <xsl:call-template name="printAmendmentTitle"/>
1205
- </fo:block>
1206
- </xsl:if>
1207
1220
 
1221
+ </fo:block-container>
1222
+ <!-- Clause(s) -->
1223
+ <fo:block>
1224
+
1225
+ <xsl:choose>
1226
+ <xsl:when test="$doctype = 'amendment'">
1227
+ <xsl:apply-templates select="/iso:iso-standard/iso:sections/*"/>
1228
+ </xsl:when>
1229
+ <xsl:otherwise>
1230
+ <xsl:call-template name="processMainSectionsDefault"/>
1231
+ </xsl:otherwise>
1232
+ </xsl:choose>
1233
+
1234
+ <fo:block id="lastBlock" font-size="1pt"> </fo:block>
1208
1235
  </fo:block>
1209
-
1210
- </fo:block-container>
1211
- <!-- Clause(s) -->
1212
- <fo:block>
1213
1236
 
1214
- <xsl:choose>
1215
- <xsl:when test="$doctype = 'amendment'">
1216
- <xsl:apply-templates select="/iso:iso-standard/iso:sections/*"/>
1217
- </xsl:when>
1218
- <xsl:otherwise>
1219
- <xsl:call-template name="processMainSectionsDefault"/>
1220
- </xsl:otherwise>
1221
- </xsl:choose>
1222
-
1223
- <fo:block id="lastBlock" font-size="1pt"> </fo:block>
1224
- </fo:block>
1225
-
1226
- </fo:flow>
1227
- </fo:page-sequence>
1228
-
1229
-
1230
- <!-- Index -->
1231
- <xsl:apply-templates select="//iso:indexsect" mode="index"/>
1232
-
1233
- <xsl:if test="$isPublished = 'true'">
1234
- <fo:page-sequence master-reference="last-page" force-page-count="no-force">
1235
- <xsl:call-template name="insertHeaderEven"/>
1236
- <fo:static-content flow-name="last-page-footer" font-size="10pt">
1237
- <fo:table table-layout="fixed" width="100%">
1238
- <fo:table-column column-width="33%"/>
1239
- <fo:table-column column-width="33%"/>
1240
- <fo:table-column column-width="34%"/>
1241
- <fo:table-body>
1242
- <fo:table-row>
1243
- <fo:table-cell display-align="center">
1244
- <fo:block font-size="9pt"><xsl:value-of select="$copyrightText"/></fo:block>
1245
- </fo:table-cell>
1246
- <fo:table-cell>
1247
- <fo:block font-size="11pt" font-weight="bold" text-align="center">
1248
- <xsl:if test="$stage-abbreviation = 'PRF'">
1249
- <xsl:value-of select="$proof-text"/>
1250
- </xsl:if>
1237
+ </fo:flow>
1238
+ </fo:page-sequence>
1239
+
1240
+
1241
+ <!-- Index -->
1242
+ <xsl:apply-templates select="//iso:indexsect" mode="index"/>
1243
+
1244
+ <xsl:if test="$isPublished = 'true'">
1245
+ <fo:page-sequence master-reference="last-page" force-page-count="no-force">
1246
+ <xsl:call-template name="insertHeaderEven"/>
1247
+ <fo:static-content flow-name="last-page-footer" font-size="10pt">
1248
+ <fo:table table-layout="fixed" width="100%">
1249
+ <fo:table-column column-width="33%"/>
1250
+ <fo:table-column column-width="33%"/>
1251
+ <fo:table-column column-width="34%"/>
1252
+ <fo:table-body>
1253
+ <fo:table-row>
1254
+ <fo:table-cell display-align="center">
1255
+ <fo:block font-size="9pt"><xsl:value-of select="$copyrightText"/></fo:block>
1256
+ </fo:table-cell>
1257
+ <fo:table-cell>
1258
+ <fo:block font-size="11pt" font-weight="bold" text-align="center">
1259
+ <xsl:if test="$stage-abbreviation = 'PRF'">
1260
+ <xsl:value-of select="$proof-text"/>
1261
+ </xsl:if>
1262
+ </fo:block>
1263
+ </fo:table-cell>
1264
+ <fo:table-cell>
1265
+ <fo:block> </fo:block>
1266
+ </fo:table-cell>
1267
+ </fo:table-row>
1268
+ </fo:table-body>
1269
+ </fo:table>
1270
+ </fo:static-content>
1271
+ <fo:flow flow-name="xsl-region-body">
1272
+ <fo:block-container height="252mm" display-align="after">
1273
+ <fo:block-container border-top="1mm double black">
1274
+ <fo:block font-size="12pt" font-weight="bold" padding-top="3.5mm" padding-bottom="0.5mm">
1275
+ <xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:ext/iso:ics/iso:code">
1276
+ <xsl:if test="position() = 1"><fo:inline>ICS  </fo:inline></xsl:if>
1277
+ <xsl:value-of select="."/>
1278
+ <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
1279
+ </xsl:for-each> 
1280
+ <!-- <xsl:choose>
1281
+ <xsl:when test="$stage-name = 'FDIS'">ICS&#xA0;&#xA0;01.140.30</xsl:when>
1282
+ <xsl:when test="$stage-name = 'PRF'">ICS&#xA0;&#xA0;35.240.63</xsl:when>
1283
+ <xsl:when test="$stage-name = 'published'">ICS&#xA0;&#xA0;35.240.30</xsl:when>
1284
+ <xsl:otherwise>ICS&#xA0;&#xA0;67.060</xsl:otherwise>
1285
+ </xsl:choose> -->
1251
1286
  </fo:block>
1252
- </fo:table-cell>
1253
- <fo:table-cell>
1254
- <fo:block> </fo:block>
1255
- </fo:table-cell>
1256
- </fo:table-row>
1257
- </fo:table-body>
1258
- </fo:table>
1259
- </fo:static-content>
1260
- <fo:flow flow-name="xsl-region-body">
1261
- <fo:block-container height="252mm" display-align="after">
1262
- <fo:block-container border-top="1mm double black">
1263
- <fo:block font-size="12pt" font-weight="bold" padding-top="3.5mm" padding-bottom="0.5mm">
1264
- <xsl:for-each select="/iso:iso-standard/iso:bibdata/iso:ext/iso:ics/iso:code">
1265
- <xsl:if test="position() = 1"><fo:inline>ICS  </fo:inline></xsl:if>
1266
- <xsl:value-of select="."/>
1267
- <xsl:if test="position() != last()"><xsl:text>; </xsl:text></xsl:if>
1268
- </xsl:for-each> 
1269
- <!-- <xsl:choose>
1270
- <xsl:when test="$stage-name = 'FDIS'">ICS&#xA0;&#xA0;01.140.30</xsl:when>
1271
- <xsl:when test="$stage-name = 'PRF'">ICS&#xA0;&#xA0;35.240.63</xsl:when>
1272
- <xsl:when test="$stage-name = 'published'">ICS&#xA0;&#xA0;35.240.30</xsl:when>
1273
- <xsl:otherwise>ICS&#xA0;&#xA0;67.060</xsl:otherwise>
1274
- </xsl:choose> -->
1275
- </fo:block>
1276
- <xsl:if test="/iso:iso-standard/iso:bibdata/iso:keyword">
1277
- <fo:block font-size="9pt" margin-bottom="6pt">
1278
- <xsl:variable name="title-descriptors">
1279
- <xsl:call-template name="getTitle">
1280
- <xsl:with-param name="name" select="'title-descriptors'"/>
1287
+ <xsl:if test="/iso:iso-standard/iso:bibdata/iso:keyword">
1288
+ <fo:block font-size="9pt" margin-bottom="6pt">
1289
+ <xsl:variable name="title-descriptors">
1290
+ <xsl:call-template name="getTitle">
1291
+ <xsl:with-param name="name" select="'title-descriptors'"/>
1292
+ </xsl:call-template>
1293
+ </xsl:variable>
1294
+ <fo:inline font-weight="bold"><xsl:value-of select="$title-descriptors"/>: </fo:inline>
1295
+ <xsl:call-template name="insertKeywords">
1296
+ <xsl:with-param name="sorting">no</xsl:with-param>
1281
1297
  </xsl:call-template>
1282
- </xsl:variable>
1283
- <fo:inline font-weight="bold"><xsl:value-of select="$title-descriptors"/>: </fo:inline>
1284
- <xsl:call-template name="insertKeywords">
1285
- <xsl:with-param name="sorting">no</xsl:with-param>
1298
+ </fo:block>
1299
+ </xsl:if>
1300
+ <xsl:variable name="countPages"/>
1301
+ <xsl:variable name="price_based_on">
1302
+ <xsl:call-template name="getLocalizedString">
1303
+ <xsl:with-param name="key">price_based_on</xsl:with-param>
1304
+ </xsl:call-template>
1305
+ </xsl:variable>
1306
+ <xsl:variable name="price_based_on_items">
1307
+ <xsl:call-template name="split">
1308
+ <xsl:with-param name="pText" select="$price_based_on"/>
1309
+ <xsl:with-param name="sep" select="'%'"/>
1310
+ <xsl:with-param name="normalize-space">false</xsl:with-param>
1286
1311
  </xsl:call-template>
1312
+ </xsl:variable>
1313
+ <!-- Price based on ... pages -->
1314
+ <fo:block font-size="9pt">
1315
+ <xsl:for-each select="xalan:nodeset($price_based_on_items)/item">
1316
+ <xsl:value-of select="."/>
1317
+ <xsl:if test="position() != last()">
1318
+ <fo:page-number-citation ref-id="lastBlock"/>
1319
+ </xsl:if>
1320
+ </xsl:for-each>
1287
1321
  </fo:block>
1288
- </xsl:if>
1289
- <xsl:variable name="countPages"/>
1290
- <xsl:variable name="price_based_on">
1291
- <xsl:call-template name="getLocalizedString">
1292
- <xsl:with-param name="key">price_based_on</xsl:with-param>
1293
- </xsl:call-template>
1294
- </xsl:variable>
1295
- <xsl:variable name="price_based_on_items">
1296
- <xsl:call-template name="split">
1297
- <xsl:with-param name="pText" select="$price_based_on"/>
1298
- <xsl:with-param name="sep" select="'%'"/>
1299
- <xsl:with-param name="normalize-space">false</xsl:with-param>
1300
- </xsl:call-template>
1301
- </xsl:variable>
1302
- <!-- Price based on ... pages -->
1303
- <fo:block font-size="9pt">
1304
- <xsl:for-each select="xalan:nodeset($price_based_on_items)/item">
1305
- <xsl:value-of select="."/>
1306
- <xsl:if test="position() != last()">
1307
- <fo:page-number-citation ref-id="lastBlock"/>
1308
- </xsl:if>
1309
- </xsl:for-each>
1310
- </fo:block>
1322
+ </fo:block-container>
1311
1323
  </fo:block-container>
1312
- </fo:block-container>
1313
- </fo:flow>
1314
- </fo:page-sequence>
1315
- </xsl:if>
1324
+ </fo:flow>
1325
+ </fo:page-sequence>
1326
+ </xsl:if>
1327
+ </xsl:for-each>
1316
1328
  </fo:root>
1317
1329
  </xsl:template>
1318
1330
 
1331
+
1332
+ <xsl:template name="insertListOf_Title">
1333
+ <xsl:param name="title"/>
1334
+ <fo:block role="TOCI" margin-top="5pt" keep-with-next="always">
1335
+ <xsl:value-of select="$title"/>
1336
+ </fo:block>
1337
+ </xsl:template>
1338
+
1339
+ <xsl:template name="insertListOf_Item">
1340
+ <fo:block role="TOCI" font-weight="normal" text-align-last="justify" margin-left="12mm">
1341
+ <fo:basic-link internal-destination="{@id}">
1342
+ <xsl:call-template name="setAltText">
1343
+ <xsl:with-param name="value" select="@alt-text"/>
1344
+ </xsl:call-template>
1345
+ <xsl:apply-templates select="." mode="contents"/>
1346
+ <fo:inline keep-together.within-line="always">
1347
+ <fo:leader font-size="9pt" font-weight="normal" leader-pattern="dots"/>
1348
+ <fo:inline><fo:page-number-citation ref-id="{@id}"/></fo:inline>
1349
+ </fo:inline>
1350
+ </fo:basic-link>
1351
+ </fo:block>
1352
+ </xsl:template>
1353
+
1354
+ <!-- ==================== -->
1355
+ <!-- display titles -->
1356
+ <!-- ==================== -->
1357
+ <xsl:template match="iso:bibdata/iso:title[@type = 'title-intro']">
1358
+ <xsl:apply-templates/>
1359
+ <xsl:text> — </xsl:text>
1360
+ </xsl:template>
1319
1361
 
1320
- <xsl:template match="node()">
1321
- <xsl:apply-templates/>
1362
+ <xsl:template match="iso:bibdata/iso:title[@type = 'title-main']">
1363
+ <xsl:apply-templates/>
1364
+ </xsl:template>
1365
+
1366
+ <xsl:template match="iso:bibdata/iso:title[@type = 'title-part']">
1367
+ <xsl:param name="curr_lang" select="$lang"/>
1368
+ <xsl:param name="isMainLang">false</xsl:param>
1369
+ <xsl:param name="isMainBody">false</xsl:param>
1370
+ <xsl:if test="$part != ''">
1371
+ <xsl:text> — </xsl:text>
1372
+ <xsl:variable name="part-text">
1373
+ <xsl:choose>
1374
+ <xsl:when test="$isMainLang = 'true'">
1375
+ <xsl:call-template name="getLocalizedString">
1376
+ <xsl:with-param name="key">locality.part</xsl:with-param>
1377
+ </xsl:call-template>
1378
+ <xsl:text> </xsl:text>
1379
+ <xsl:value-of select="$part"/>
1380
+ <xsl:text>:</xsl:text>
1381
+ </xsl:when>
1382
+ <xsl:otherwise>
1383
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang=$curr_lang]),'#',$part)"/>
1384
+ </xsl:otherwise>
1385
+ </xsl:choose>
1386
+ </xsl:variable>
1387
+ <xsl:choose>
1388
+ <xsl:when test="$isMainBody = 'true'">
1389
+ <fo:block font-weight="normal" margin-top="12pt" line-height="1.1">
1390
+ <xsl:value-of select="$part-text"/>
1391
+ </fo:block>
1392
+ </xsl:when>
1393
+ <xsl:when test="$isMainLang = 'true'">
1394
+ <fo:block font-weight="normal" margin-top="6pt">
1395
+ <xsl:value-of select="$part-text"/>
1396
+ </fo:block>
1397
+ </xsl:when>
1398
+ <xsl:otherwise>
1399
+ <xsl:value-of select="$part-text"/>
1400
+ <xsl:text> </xsl:text>
1401
+ </xsl:otherwise>
1402
+ </xsl:choose>
1403
+ </xsl:if>
1404
+ <xsl:if test="$isMainBody = 'false'">
1405
+ <xsl:apply-templates/>
1406
+ </xsl:if>
1322
1407
  </xsl:template>
1323
1408
 
1324
- <xsl:template name="printAmendmentTitle">
1325
- <xsl:param name="lang" select="'en'"/>
1326
- <xsl:variable name="title-amd" select="/iso:iso-standard/iso:bibdata/iso:title[@language = $lang and @type = 'title-amd']"/>
1327
- <xsl:if test="$doctype = 'amendment' and normalize-space($title-amd) != ''">
1328
- <fo:block font-weight="normal" line-height="1.1">
1329
- <xsl:value-of select="$doctype_uppercased"/>
1330
- <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
1331
- <xsl:if test="normalize-space($amendment-number) != ''">
1332
- <xsl:text> </xsl:text><xsl:value-of select="$amendment-number"/>
1409
+ <xsl:template match="iso:bibdata/iso:title[@type = 'title-amd']">
1410
+ <xsl:param name="isMainLang">false</xsl:param>
1411
+ <xsl:param name="curr_lang" select="$lang"/>
1412
+ <xsl:param name="isMainBody">false</xsl:param>
1413
+ <xsl:if test="$doctype = 'amendment'">
1414
+ <fo:block margin-right="-5mm" margin-top="6pt" role="H1">
1415
+ <xsl:if test="$isMainLang = 'true'">
1416
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1417
+ </xsl:if>
1418
+ <xsl:if test="$stage-abbreviation = 'DIS' or $isMainBody = 'true'">
1419
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1333
1420
  </xsl:if>
1334
- <xsl:text>: </xsl:text>
1335
- <xsl:value-of select="$title-amd"/>
1421
+
1422
+ <fo:block font-weight="normal" line-height="1.1">
1423
+ <xsl:value-of select="$doctype_uppercased"/>
1424
+ <xsl:variable name="amendment-number" select="/iso:iso-standard/iso:bibdata/iso:ext/iso:structuredidentifier/iso:project-number/@amendment"/>
1425
+ <xsl:if test="normalize-space($amendment-number) != ''">
1426
+ <xsl:text> </xsl:text><xsl:value-of select="$amendment-number"/>
1427
+ </xsl:if>
1428
+ <xsl:text>: </xsl:text>
1429
+ <xsl:apply-templates/>
1430
+ </fo:block>
1431
+
1336
1432
  </fo:block>
1337
1433
  </xsl:if>
1338
1434
  </xsl:template>
1339
1435
 
1436
+
1437
+ <!-- ==================== -->
1438
+ <!-- END display titles -->
1439
+ <!-- ==================== -->
1440
+
1441
+ <xsl:template match="node()">
1442
+ <xsl:apply-templates/>
1443
+ </xsl:template>
1444
+
1340
1445
  <!-- ============================= -->
1341
1446
  <!-- CONTENTS -->
1342
1447
  <!-- ============================= -->
@@ -1405,36 +1510,7 @@
1405
1510
 
1406
1511
  <xsl:template match="iso:p | iso:termsource | iso:termnote" mode="contents"/>
1407
1512
 
1408
- <xsl:template name="getListItemFormat">
1409
- <xsl:choose>
1410
- <xsl:when test="local-name(..) = 'ul'">
1411
- <xsl:call-template name="setULLabel"/>
1412
- </xsl:when>
1413
- <xsl:otherwise> <!-- for ordered lists -->
1414
- <xsl:choose>
1415
- <xsl:when test="../@type = 'arabic'">
1416
- <xsl:number format="1." lang="en"/>
1417
- </xsl:when>
1418
- <xsl:when test="../@type = 'alphabet'">
1419
- <xsl:number format="a)" lang="en"/>
1420
- </xsl:when>
1421
- <xsl:when test="../@type = 'alphabet_upper'">
1422
- <xsl:number format="A." lang="en"/>
1423
- </xsl:when>
1424
- <xsl:when test="../@type = 'roman'">
1425
- <xsl:number format="i)"/>
1426
- </xsl:when>
1427
- <xsl:when test="../@type = 'roman_upper'">
1428
- <xsl:number format="I."/>
1429
- </xsl:when>
1430
- <xsl:otherwise>
1431
- <xsl:number format="a)"/>
1432
- </xsl:otherwise>
1433
- </xsl:choose>
1434
- </xsl:otherwise>
1435
- </xsl:choose>
1436
- </xsl:template>
1437
-
1513
+
1438
1514
 
1439
1515
  <!-- ============================= -->
1440
1516
  <!-- ============================= -->
@@ -1648,11 +1724,11 @@
1648
1724
  <xsl:template match="iso:li//iso:p//text()">
1649
1725
  <xsl:choose>
1650
1726
  <xsl:when test="contains(., '&#9;')">
1651
- <!-- <fo:inline white-space="pre"><xsl:value-of select="translate(., $thinspace, ' ')"/></fo:inline> -->
1727
+ <!-- <fo:inline white-space="pre"><xsl:value-of select="translate(., $thin_space, ' ')"/></fo:inline> -->
1652
1728
  <fo:inline white-space="pre"><xsl:value-of select="."/></fo:inline>
1653
1729
  </xsl:when>
1654
1730
  <xsl:otherwise>
1655
- <!-- <xsl:value-of select="translate(., $thinspace, ' ')"/> -->
1731
+ <!-- <xsl:value-of select="translate(., $thin_space, ' ')"/> -->
1656
1732
  <xsl:value-of select="."/>
1657
1733
  </xsl:otherwise>
1658
1734
  </xsl:choose>
@@ -1665,76 +1741,6 @@
1665
1741
  <xsl:apply-templates/>
1666
1742
  </xsl:template>
1667
1743
 
1668
-
1669
- <xsl:template match="iso:ul | iso:ol" mode="ul_ol">
1670
- <fo:list-block provisional-distance-between-starts="7mm" margin-top="8pt"> <!-- margin-bottom="8pt" -->
1671
- <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
1672
- </fo:list-block>
1673
- <xsl:for-each select="./iso:note">
1674
- <xsl:call-template name="note"/>
1675
- </xsl:for-each>
1676
- </xsl:template>
1677
-
1678
- <xsl:template match="iso:li">
1679
- <fo:list-item id="{@id}">
1680
- <fo:list-item-label end-indent="label-end()">
1681
- <fo:block>
1682
- <xsl:call-template name="getListItemFormat"/>
1683
- </fo:block>
1684
- </fo:list-item-label>
1685
- <fo:list-item-body start-indent="body-start()">
1686
- <fo:block>
1687
- <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
1688
-
1689
- <xsl:for-each select="./iso:note">
1690
- <xsl:call-template name="note"/>
1691
- </xsl:for-each>
1692
- </fo:block>
1693
- </fo:list-item-body>
1694
- </fo:list-item>
1695
- </xsl:template>
1696
-
1697
-
1698
- <xsl:template match="iso:preferred">
1699
- <xsl:variable name="levelTerm">
1700
- <xsl:call-template name="getLevelTermName"/>
1701
- </xsl:variable>
1702
- <fo:block line-height="1.1" role="H{$levelTerm}">
1703
- <fo:block font-weight="bold" keep-with-next="always">
1704
- <xsl:apply-templates select="ancestor::iso:term[1]/iso:name"/>
1705
- </fo:block>
1706
- <fo:block font-weight="bold" keep-with-next="always">
1707
- <xsl:call-template name="setStyle_preferred"/>
1708
- <xsl:apply-templates/>
1709
- </fo:block>
1710
- </fo:block>
1711
- </xsl:template>
1712
-
1713
-
1714
-
1715
- <xsl:template match="iso:formula/iso:stem">
1716
- <fo:block margin-top="6pt" margin-bottom="12pt">
1717
- <fo:table table-layout="fixed" width="100%">
1718
- <fo:table-column column-width="95%"/>
1719
- <fo:table-column column-width="5%"/>
1720
- <fo:table-body>
1721
- <fo:table-row>
1722
- <fo:table-cell display-align="center">
1723
- <fo:block text-align="left" margin-left="5mm">
1724
- <xsl:apply-templates/>
1725
- </fo:block>
1726
- </fo:table-cell>
1727
- <fo:table-cell display-align="center">
1728
- <fo:block text-align="right">
1729
- <xsl:apply-templates select="../iso:name" mode="formula_number"/>
1730
- </fo:block>
1731
- </fo:table-cell>
1732
- </fo:table-row>
1733
- </fo:table-body>
1734
- </fo:table>
1735
- </fo:block>
1736
- </xsl:template>
1737
-
1738
1744
 
1739
1745
  <!-- For express listings PDF attachments -->
1740
1746
  <xsl:template match="*[local-name() = 'eref'][contains(@bibitemid, '.exp')]" priority="2">
@@ -1783,26 +1789,6 @@
1783
1789
  </fo:page-sequence>
1784
1790
  </xsl:template>
1785
1791
 
1786
- <!-- <xsl:template match="iso:clause[@type = 'index']/iso:title" priority="4"> -->
1787
- <xsl:template match="iso:indexsect/iso:title" priority="4">
1788
- <fo:block font-size="16pt" font-weight="bold" margin-bottom="84pt" role="H1">
1789
- <!-- Index -->
1790
- <xsl:apply-templates/>
1791
- </fo:block>
1792
- </xsl:template>
1793
-
1794
- <!-- <xsl:template match="iso:clause[@type = 'index']/iso:clause/iso:title" priority="4"> -->
1795
- <xsl:template match="iso:indexsect/iso:clause/iso:title" priority="4">
1796
- <!-- Letter A, B, C, ... -->
1797
- <fo:block font-size="10pt" font-weight="bold" margin-bottom="3pt" keep-with-next="always">
1798
- <xsl:apply-templates/>
1799
- </fo:block>
1800
- </xsl:template>
1801
-
1802
- <xsl:template match="iso:indexsect//iso:li/text()">
1803
- <!-- to split by '_' and other chars -->
1804
- <xsl:call-template name="add-zero-spaces-java"/>
1805
- </xsl:template>
1806
1792
 
1807
1793
  <xsl:template match="iso:xref" priority="2">
1808
1794
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
@@ -1826,9 +1812,9 @@
1826
1812
  <!-- End of Index processing -->
1827
1813
  <!-- =================== -->
1828
1814
 
1829
- <!-- <xsl:variable name="thinspace" select="'&#x2009;'"/>
1830
- <xsl:template match="text()[contains(., $thinspace)]">
1831
- <xsl:value-of select="translate(., $thinspace, ' ')"/>
1815
+ <!--
1816
+ <xsl:template match="text()[contains(., $thin_space)]">
1817
+ <xsl:value-of select="translate(., $thin_space, ' ')"/>
1832
1818
  </xsl:template> -->
1833
1819
 
1834
1820
 
@@ -1945,49 +1931,29 @@
1945
1931
  </xsl:when>
1946
1932
  </xsl:choose>
1947
1933
  <xsl:variable name="title-edition">
1948
- <xsl:call-template name="getTitle">
1949
- <xsl:with-param name="name" select="'title-edition'"/>
1934
+ <xsl:call-template name="getLocalizedString">
1935
+ <xsl:with-param name="key">edition</xsl:with-param>
1950
1936
  </xsl:call-template>
1951
1937
  </xsl:variable>
1952
1938
  <xsl:if test="$edition != ''"><xsl:text> </xsl:text><xsl:value-of select="java:toLowerCase(java:java.lang.String.new($title-edition))"/></xsl:if>
1953
1939
  </xsl:template>
1954
1940
 
1955
- <xsl:template name="printTitlePartFr">
1956
- <xsl:variable name="part-fr" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'fr' and @type = 'title-part']"/>
1957
- <xsl:if test="normalize-space($part-fr) != ''">
1958
- <xsl:if test="$part != ''">
1959
- <xsl:text> — </xsl:text>
1960
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='fr']),'#',$part)"/>
1961
- <!-- <xsl:value-of select="$title-part-fr"/>
1962
- <xsl:value-of select="$part"/>
1963
- <xsl:text>:</xsl:text> -->
1964
- </xsl:if>
1965
- <xsl:value-of select="$part-fr"/>
1966
- </xsl:if>
1967
- </xsl:template>
1968
-
1969
- <xsl:template name="printTitlePartEn">
1970
- <xsl:variable name="part-en" select="/iso:iso-standard/iso:bibdata/iso:title[@language = 'en' and @type = 'title-part']"/>
1971
- <xsl:if test="normalize-space($part-en) != ''">
1972
- <xsl:if test="$part != ''">
1973
- <xsl:text> — </xsl:text>
1974
- <fo:block font-weight="normal" margin-top="6pt">
1975
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new($titles/title-part[@lang='en']),'#',$part)"/>
1976
- <!-- <xsl:value-of select="$title-part-en"/>
1977
- <xsl:value-of select="$part"/>
1978
- <xsl:text>:</xsl:text> -->
1979
- </fo:block>
1980
- </xsl:if>
1981
- <xsl:value-of select="$part-en"/>
1982
- </xsl:if>
1983
- </xsl:template>
1984
-
1985
1941
 
1986
- <xsl:variable name="pageWidth_">
1942
+ <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">
1943
+ <xsl:call-template name="getLang"/>
1944
+ </xsl:variable><xsl:variable name="pageWidth_">
1987
1945
  210
1988
1946
  </xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
1989
1947
  297
1990
- </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="titles_">
1948
+ </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="marginLeftRight1_">
1949
+ 25
1950
+ </xsl:variable><xsl:variable name="marginLeftRight1" select="normalize-space($marginLeftRight1_)"/><xsl:variable name="marginLeftRight2_">
1951
+ 12.5
1952
+ </xsl:variable><xsl:variable name="marginLeftRight2" select="normalize-space($marginLeftRight2_)"/><xsl:variable name="marginTop_">
1953
+ 27.4
1954
+ </xsl:variable><xsl:variable name="marginTop" select="normalize-space($marginTop_)"/><xsl:variable name="marginBottom_">
1955
+ 13
1956
+ </xsl:variable><xsl:variable name="marginBottom" select="normalize-space($marginBottom_)"/><xsl:variable name="titles_">
1991
1957
 
1992
1958
  <title-edition lang="en">
1993
1959
 
@@ -1999,6 +1965,10 @@
1999
1965
  <xsl:text>Édition </xsl:text>
2000
1966
  </title-edition>
2001
1967
 
1968
+ <title-edition lang="ru">
1969
+ <xsl:text>Издание </xsl:text>
1970
+ </title-edition>
1971
+
2002
1972
  <!-- These titles of Table of contents renders different than determined in localized-strings -->
2003
1973
  <title-toc lang="en">
2004
1974
 
@@ -2013,7 +1983,7 @@
2013
1983
  <xsl:text>Contents</xsl:text>
2014
1984
 
2015
1985
  </title-toc>
2016
-
1986
+
2017
1987
  <title-descriptors lang="en">Descriptors</title-descriptors>
2018
1988
 
2019
1989
  <title-part lang="en">
@@ -2029,7 +1999,13 @@
2029
1999
 
2030
2000
 
2031
2001
 
2032
- </title-part>
2002
+ </title-part>
2003
+ <title-part lang="ru">
2004
+
2005
+ <xsl:text>Часть #:</xsl:text>
2006
+
2007
+
2008
+ </title-part>
2033
2009
  <title-part lang="zh">第 # 部分:</title-part>
2034
2010
 
2035
2011
  <title-subpart lang="en">Sub-part #</title-subpart>
@@ -2045,13 +2021,38 @@
2045
2021
 
2046
2022
  <title-summary lang="en">Summary</title-summary>
2047
2023
 
2024
+ <title-continued lang="ru">(продолжение)</title-continued>
2048
2025
  <title-continued lang="en">(continued)</title-continued>
2049
2026
  <title-continued lang="fr">(continué)</title-continued>
2050
2027
 
2051
- </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
2028
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="title-list-tables">
2029
+ <xsl:variable name="toc_table_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']"/>
2030
+ <xsl:value-of select="$toc_table_title"/>
2031
+ <xsl:if test="normalize-space($toc_table_title) = ''">
2032
+ <xsl:call-template name="getTitle">
2033
+ <xsl:with-param name="name" select="'title-list-tables'"/>
2034
+ </xsl:call-template>
2035
+ </xsl:if>
2036
+ </xsl:variable><xsl:variable name="title-list-figures">
2037
+ <xsl:variable name="toc_figure_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']"/>
2038
+ <xsl:value-of select="$toc_figure_title"/>
2039
+ <xsl:if test="normalize-space($toc_figure_title) = ''">
2040
+ <xsl:call-template name="getTitle">
2041
+ <xsl:with-param name="name" select="'title-list-figures'"/>
2042
+ </xsl:call-template>
2043
+ </xsl:if>
2044
+ </xsl:variable><xsl:variable name="title-list-recommendations">
2045
+ <xsl:variable name="toc_requirement_title" select="//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='requirement']/*[local-name() = 'title']"/>
2046
+ <xsl:value-of select="$toc_requirement_title"/>
2047
+ <xsl:if test="normalize-space($toc_requirement_title) = ''">
2048
+ <xsl:call-template name="getTitle">
2049
+ <xsl:with-param name="name" select="'title-list-recommendations'"/>
2050
+ </xsl:call-template>
2051
+ </xsl:if>
2052
+ </xsl:variable><xsl:variable name="bibdata">
2052
2053
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
2053
2054
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
2054
- </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
2055
+ </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">
2055
2056
  <xsl:param name="name"/>
2056
2057
  <xsl:param name="lang"/>
2057
2058
  <xsl:variable name="lang_">
@@ -2074,7 +2075,7 @@
2074
2075
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
2075
2076
  </xsl:otherwise>
2076
2077
  </xsl:choose>
2077
- </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:variable name="linebreak" select="'&#8232;'"/><xsl:attribute-set name="root-style">
2078
+ </xsl:template><xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable><xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable><xsl:variable name="en_chars" select="concat($lower,$upper,',.`1234567890-=~!@#$%^*()_+[]{}\|?/')"/><xsl:attribute-set name="root-style">
2078
2079
 
2079
2080
 
2080
2081
 
@@ -2245,11 +2246,12 @@
2245
2246
 
2246
2247
 
2247
2248
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
2248
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
2249
2249
 
2250
2250
 
2251
2251
 
2252
- <xsl:attribute name="padding-right">5mm</xsl:attribute>
2252
+
2253
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2254
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
2253
2255
 
2254
2256
 
2255
2257
 
@@ -2648,12 +2650,11 @@
2648
2650
 
2649
2651
 
2650
2652
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
2651
- <xsl:attribute name="role">BlockQuote</xsl:attribute>
2653
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
2654
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
2652
2655
 
2653
2656
 
2654
2657
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
2655
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
2656
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
2657
2658
 
2658
2659
 
2659
2660
 
@@ -2661,10 +2662,8 @@
2661
2662
 
2662
2663
 
2663
2664
  </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
2665
+ <xsl:attribute name="text-align">right</xsl:attribute>
2664
2666
 
2665
-
2666
- <xsl:attribute name="text-align">right</xsl:attribute>
2667
-
2668
2667
 
2669
2668
  </xsl:attribute-set><xsl:attribute-set name="termsource-style">
2670
2669
 
@@ -2688,6 +2687,9 @@
2688
2687
 
2689
2688
  <xsl:attribute name="margin-bottom">10pt</xsl:attribute>
2690
2689
 
2690
+ </xsl:attribute-set><xsl:attribute-set name="term-name-style">
2691
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2692
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2691
2693
  </xsl:attribute-set><xsl:attribute-set name="figure-style">
2692
2694
 
2693
2695
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
@@ -2718,6 +2720,36 @@
2718
2720
 
2719
2721
 
2720
2722
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
2723
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
2724
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-block-style">
2732
+ <xsl:attribute name="text-align">center</xsl:attribute>
2733
+
2734
+
2735
+
2736
+
2737
+
2738
+ <xsl:attribute name="text-align">left</xsl:attribute>
2739
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
2740
+
2741
+
2742
+
2743
+
2744
+
2745
+
2746
+
2747
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-number-style">
2748
+ <xsl:attribute name="text-align">right</xsl:attribute>
2749
+
2750
+
2751
+
2752
+
2721
2753
 
2722
2754
  </xsl:attribute-set><xsl:attribute-set name="image-style">
2723
2755
  <xsl:attribute name="text-align">center</xsl:attribute>
@@ -2753,6 +2785,20 @@
2753
2785
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
2754
2786
  <xsl:attribute name="keep-with-previous">always</xsl:attribute>
2755
2787
 
2788
+ </xsl:attribute-set><xsl:attribute-set name="preferred-block-style">
2789
+
2790
+
2791
+
2792
+
2793
+ <xsl:attribute name="line-height">1.1</xsl:attribute>
2794
+
2795
+
2796
+
2797
+ </xsl:attribute-set><xsl:attribute-set name="preferred-term-style">
2798
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
2799
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
2800
+
2801
+
2756
2802
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
2757
2803
 
2758
2804
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -2771,13 +2817,19 @@
2771
2817
  </xsl:attribute-set><xsl:variable name="color-added-text">
2772
2818
  <xsl:text>rgb(0, 255, 0)</xsl:text>
2773
2819
  </xsl:variable><xsl:attribute-set name="add-style">
2774
- <xsl:attribute name="color">red</xsl:attribute>
2775
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
2776
- <!-- <xsl:attribute name="color">black</xsl:attribute>
2777
- <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
2778
- <xsl:attribute name="padding-top">1mm</xsl:attribute>
2779
- <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
2780
- </xsl:attribute-set><xsl:variable name="color-deleted-text">
2820
+
2821
+ <xsl:attribute name="color">red</xsl:attribute>
2822
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
2823
+ <!-- <xsl:attribute name="color">black</xsl:attribute>
2824
+ <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
2825
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
2826
+ <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
2827
+
2828
+ </xsl:attribute-set><xsl:variable name="add-style">
2829
+ <add-style xsl:use-attribute-sets="add-style"/>
2830
+ </xsl:variable><xsl:template name="append_add-style">
2831
+ <xsl:copy-of select="xalan:nodeset($add-style)/add-style/@*"/>
2832
+ </xsl:template><xsl:variable name="color-deleted-text">
2781
2833
  <xsl:text>red</xsl:text>
2782
2834
  </xsl:variable><xsl:attribute-set name="del-style">
2783
2835
  <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
@@ -2790,6 +2842,36 @@
2790
2842
 
2791
2843
  </xsl:attribute-set><xsl:attribute-set name="list-style">
2792
2844
 
2845
+
2846
+
2847
+
2848
+
2849
+
2850
+
2851
+ <xsl:attribute name="provisional-distance-between-starts">7mm</xsl:attribute>
2852
+ <xsl:attribute name="margin-top">8pt</xsl:attribute>
2853
+
2854
+
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+ </xsl:attribute-set><xsl:attribute-set name="list-item-style">
2865
+
2866
+
2867
+ </xsl:attribute-set><xsl:attribute-set name="list-item-label-style">
2868
+
2869
+
2870
+
2871
+ </xsl:attribute-set><xsl:attribute-set name="list-item-body-style">
2872
+
2873
+
2874
+
2793
2875
  </xsl:attribute-set><xsl:attribute-set name="toc-style">
2794
2876
  <xsl:attribute name="line-height">135%</xsl:attribute>
2795
2877
  </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
@@ -3058,15 +3140,156 @@
3058
3140
 
3059
3141
 
3060
3142
 
3143
+ </xsl:attribute-set><xsl:attribute-set name="hljs-doctag">
3144
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
3145
+ </xsl:attribute-set><xsl:attribute-set name="hljs-keyword">
3146
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
3147
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-keyword">
3148
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
3149
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-tag">
3150
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
3151
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-variable">
3152
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
3153
+ </xsl:attribute-set><xsl:attribute-set name="hljs-type">
3154
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
3155
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable_and_language_">
3156
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
3157
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title">
3158
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
3159
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class_">
3160
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
3161
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class__and_inherited__">
3162
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
3163
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_function_">
3164
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
3165
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attr">
3166
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3167
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attribute">
3168
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3169
+ </xsl:attribute-set><xsl:attribute-set name="hljs-literal">
3170
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3171
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta">
3172
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3173
+ </xsl:attribute-set><xsl:attribute-set name="hljs-number">
3174
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3175
+ </xsl:attribute-set><xsl:attribute-set name="hljs-operator">
3176
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3177
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable">
3178
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3179
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-attr">
3180
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3181
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-class">
3182
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3183
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-id">
3184
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3185
+ </xsl:attribute-set><xsl:attribute-set name="hljs-regexp">
3186
+ <xsl:attribute name="color">#032f62</xsl:attribute>
3187
+ </xsl:attribute-set><xsl:attribute-set name="hljs-string">
3188
+ <xsl:attribute name="color">#032f62</xsl:attribute>
3189
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-string">
3190
+ <xsl:attribute name="color">#032f62</xsl:attribute>
3191
+ </xsl:attribute-set><xsl:attribute-set name="hljs-built_in">
3192
+ <xsl:attribute name="color">#e36209</xsl:attribute>
3193
+ </xsl:attribute-set><xsl:attribute-set name="hljs-symbol">
3194
+ <xsl:attribute name="color">#e36209</xsl:attribute>
3195
+ </xsl:attribute-set><xsl:attribute-set name="hljs-comment">
3196
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
3197
+ </xsl:attribute-set><xsl:attribute-set name="hljs-code">
3198
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
3199
+ </xsl:attribute-set><xsl:attribute-set name="hljs-formula">
3200
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
3201
+ </xsl:attribute-set><xsl:attribute-set name="hljs-name">
3202
+ <xsl:attribute name="color">#22863a</xsl:attribute>
3203
+ </xsl:attribute-set><xsl:attribute-set name="hljs-quote">
3204
+ <xsl:attribute name="color">#22863a</xsl:attribute>
3205
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-tag">
3206
+ <xsl:attribute name="color">#22863a</xsl:attribute>
3207
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-pseudo">
3208
+ <xsl:attribute name="color">#22863a</xsl:attribute>
3209
+ </xsl:attribute-set><xsl:attribute-set name="hljs-subst">
3210
+ <xsl:attribute name="color">#24292e</xsl:attribute>
3211
+ </xsl:attribute-set><xsl:attribute-set name="hljs-section">
3212
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
3213
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3214
+ </xsl:attribute-set><xsl:attribute-set name="hljs-bullet">
3215
+ <xsl:attribute name="color">#735c0f</xsl:attribute>
3216
+ </xsl:attribute-set><xsl:attribute-set name="hljs-emphasis">
3217
+ <xsl:attribute name="color">#24292e</xsl:attribute>
3218
+ <xsl:attribute name="font-style">italic</xsl:attribute>
3219
+ </xsl:attribute-set><xsl:attribute-set name="hljs-strong">
3220
+ <xsl:attribute name="color">#24292e</xsl:attribute>
3221
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3222
+ </xsl:attribute-set><xsl:attribute-set name="hljs-addition">
3223
+ <xsl:attribute name="color">#22863a</xsl:attribute>
3224
+ <xsl:attribute name="background-color">#f0fff4</xsl:attribute>
3225
+ </xsl:attribute-set><xsl:attribute-set name="hljs-deletion">
3226
+ <xsl:attribute name="color">#b31d28</xsl:attribute>
3227
+ <xsl:attribute name="background-color">#ffeef0</xsl:attribute>
3228
+ </xsl:attribute-set><xsl:attribute-set name="hljs-char_and_escape_">
3229
+ </xsl:attribute-set><xsl:attribute-set name="hljs-link">
3230
+ </xsl:attribute-set><xsl:attribute-set name="hljs-params">
3231
+ </xsl:attribute-set><xsl:attribute-set name="hljs-property">
3232
+ </xsl:attribute-set><xsl:attribute-set name="hljs-punctuation">
3233
+ </xsl:attribute-set><xsl:attribute-set name="hljs-tag">
3234
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-title-style">
3235
+ <xsl:attribute name="role">H1</xsl:attribute>
3236
+
3237
+
3238
+
3239
+
3240
+ <xsl:attribute name="font-size">16pt</xsl:attribute>
3241
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3242
+ <xsl:attribute name="margin-bottom">84pt</xsl:attribute>
3243
+
3244
+
3245
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-clause-title-style">
3246
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
3247
+
3248
+
3249
+
3250
+
3251
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
3252
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
3253
+ <xsl:attribute name="margin-bottom">3pt</xsl:attribute>
3254
+
3255
+
3061
3256
  </xsl:attribute-set><xsl:variable name="border-block-added">2.5pt solid rgb(0, 176, 80)</xsl:variable><xsl:variable name="border-block-deleted">2.5pt solid rgb(255, 0, 0)</xsl:variable><xsl:variable name="ace_tag">ace-tag_</xsl:variable><xsl:template name="processPrefaceSectionsDefault_Contents">
3257
+ <xsl:variable name="nodes_preface_">
3258
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
3259
+ <node id="{@id}"/>
3260
+ </xsl:for-each>
3261
+ </xsl:variable>
3262
+ <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
3263
+
3062
3264
  <xsl:for-each select="/*/*[local-name()='preface']/*">
3063
3265
  <xsl:sort select="@displayorder" data-type="number"/>
3266
+
3267
+ <!-- process Section's title -->
3268
+ <xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
3269
+ <xsl:if test="$preceding-sibling_id != ''">
3270
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
3271
+ </xsl:if>
3272
+
3064
3273
  <xsl:apply-templates select="." mode="contents"/>
3065
3274
  </xsl:for-each>
3066
3275
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
3067
3276
 
3277
+ <xsl:variable name="nodes_sections_">
3278
+ <xsl:for-each select="/*/*[local-name()='sections']/*">
3279
+ <node id="{@id}"/>
3280
+ </xsl:for-each>
3281
+ </xsl:variable>
3282
+ <xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
3283
+
3068
3284
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]">
3069
3285
  <xsl:sort select="@displayorder" data-type="number"/>
3286
+
3287
+ <!-- process Section's title -->
3288
+ <xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
3289
+ <xsl:if test="$preceding-sibling_id != ''">
3290
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
3291
+ </xsl:if>
3292
+
3070
3293
  <xsl:apply-templates select="." mode="contents"/>
3071
3294
  </xsl:for-each>
3072
3295
 
@@ -3079,6 +3302,30 @@
3079
3302
  <xsl:sort select="@displayorder" data-type="number"/>
3080
3303
  <xsl:apply-templates select="." mode="contents"/>
3081
3304
  </xsl:for-each>
3305
+ </xsl:template><xsl:template name="processTablesFigures_Contents">
3306
+ <xsl:param name="always"/>
3307
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='table']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3308
+ <xsl:call-template name="processTables_Contents"/>
3309
+ </xsl:if>
3310
+ <xsl:if test="(//*[contains(local-name(), '-standard')]/*[local-name() = 'misc-container']/*[local-name() = 'toc'][@type='figure']/*[local-name() = 'title']) or normalize-space($always) = 'true'">
3311
+ <xsl:call-template name="processFigures_Contents"/>
3312
+ </xsl:if>
3313
+ </xsl:template><xsl:template name="processTables_Contents">
3314
+ <tables>
3315
+ <xsl:for-each select="//*[local-name() = 'table'][@id and *[local-name() = 'name'] and normalize-space(@id) != '']">
3316
+ <table id="{@id}" alt-text="{*[local-name() = 'name']}">
3317
+ <xsl:copy-of select="*[local-name() = 'name']"/>
3318
+ </table>
3319
+ </xsl:for-each>
3320
+ </tables>
3321
+ </xsl:template><xsl:template name="processFigures_Contents">
3322
+ <figures>
3323
+ <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) != '']">
3324
+ <figure id="{@id}" alt-text="{*[local-name() = 'name']}">
3325
+ <xsl:copy-of select="*[local-name() = 'name']"/>
3326
+ </figure>
3327
+ </xsl:for-each>
3328
+ </figures>
3082
3329
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
3083
3330
  <xsl:for-each select="/*/*[local-name()='preface']/*">
3084
3331
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -3159,9 +3406,12 @@
3159
3406
 
3160
3407
 
3161
3408
  </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='p']">
3409
+ <xsl:param name="margin"/>
3162
3410
 
3163
3411
  <!-- process in the template 'paragraph' -->
3164
- <xsl:call-template name="paragraph"/>
3412
+ <xsl:call-template name="paragraph">
3413
+ <xsl:with-param name="margin" select="$margin"/>
3414
+ </xsl:call-template>
3165
3415
 
3166
3416
  </xsl:template><xsl:template match="*[local-name()='feedback-statement']">
3167
3417
  <fo:block xsl:use-attribute-sets="feedback-statement-style">
@@ -3173,9 +3423,12 @@
3173
3423
  <xsl:call-template name="title"/>
3174
3424
 
3175
3425
  </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='p']">
3426
+ <xsl:param name="margin"/>
3176
3427
 
3177
3428
  <!-- process in the template 'paragraph' -->
3178
- <xsl:call-template name="paragraph"/>
3429
+ <xsl:call-template name="paragraph">
3430
+ <xsl:with-param name="margin" select="$margin"/>
3431
+ </xsl:call-template>
3179
3432
 
3180
3433
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
3181
3434
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
@@ -3210,7 +3463,7 @@
3210
3463
  </xsl:call-template>
3211
3464
  </xsl:if>
3212
3465
  </xsl:variable>
3213
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
3466
+ <!-- DEBUG colwidths=<xsl:copy-of select="$colwidths"/> -->
3214
3467
 
3215
3468
 
3216
3469
  <xsl:variable name="margin-side">
@@ -3480,7 +3733,7 @@
3480
3733
  <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
3481
3734
  <!-- 2009 thinspace -->
3482
3735
  <!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
3483
- <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/>
3736
+ <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '​­', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
3484
3737
  </xsl:call-template>
3485
3738
  </xsl:variable>
3486
3739
  <xsl:variable name="max_length">
@@ -3521,8 +3774,7 @@
3521
3774
  </xsl:call-template>
3522
3775
  </xsl:if>
3523
3776
  </xsl:template><xsl:template match="text()" mode="td_text">
3524
- <xsl:variable name="zero-space">​</xsl:variable>
3525
- <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
3777
+ <xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
3526
3778
  </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
3527
3779
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
3528
3780
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
@@ -3940,37 +4192,7 @@
3940
4192
 
3941
4193
  <!-- list of footnotes to calculate actual footnotes number -->
3942
4194
  <xsl:variable name="p_fn_">
3943
- <xsl:choose>
3944
- <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
3945
- <fn gen_id="{generate-id(.)}">
3946
- <xsl:copy-of select="@*"/>
3947
- <xsl:copy-of select="node()"/>
3948
- </fn>
3949
- </xsl:when>
3950
- <xsl:otherwise>
3951
- <!-- itetation for:
3952
- footnotes in bibdata/title
3953
- footnotes in bibliography
3954
- footnotes in document's body (except table's head/body/foot and figure text)
3955
- -->
3956
- <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
3957
- <fn gen_id="{generate-id(.)}">
3958
- <xsl:copy-of select="@*"/>
3959
- <xsl:copy-of select="node()"/>
3960
- </fn>
3961
- </xsl:for-each>
3962
- <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']/*">
3963
- <xsl:sort select="@displayorder" data-type="number"/>
3964
- <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])]">
3965
- <!-- copy unique fn -->
3966
- <fn gen_id="{generate-id(.)}">
3967
- <xsl:copy-of select="@*"/>
3968
- <xsl:copy-of select="node()"/>
3969
- </fn>
3970
- </xsl:for-each>
3971
- </xsl:for-each>
3972
- </xsl:otherwise>
3973
- </xsl:choose>
4195
+ <xsl:call-template name="get_fn_list"/>
3974
4196
  </xsl:variable>
3975
4197
  <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
3976
4198
 
@@ -4033,6 +4255,38 @@
4033
4255
  <xsl:copy-of select="$footnote_inline"/>
4034
4256
  </xsl:otherwise>
4035
4257
  </xsl:choose>
4258
+ </xsl:template><xsl:template name="get_fn_list">
4259
+ <xsl:choose>
4260
+ <xsl:when test="@current_fn_number"> <!-- for BSI, footnote reference number calculated already -->
4261
+ <fn gen_id="{generate-id(.)}">
4262
+ <xsl:copy-of select="@*"/>
4263
+ <xsl:copy-of select="node()"/>
4264
+ </fn>
4265
+ </xsl:when>
4266
+ <xsl:otherwise>
4267
+ <!-- itetation for:
4268
+ footnotes in bibdata/title
4269
+ footnotes in bibliography
4270
+ footnotes in document's body (except table's head/body/foot and figure text)
4271
+ -->
4272
+ <xsl:for-each select="ancestor::*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']/*[local-name() = 'note'][@type='title-footnote']">
4273
+ <fn gen_id="{generate-id(.)}">
4274
+ <xsl:copy-of select="@*"/>
4275
+ <xsl:copy-of select="node()"/>
4276
+ </fn>
4277
+ </xsl:for-each>
4278
+ <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']/*">
4279
+ <xsl:sort select="@displayorder" data-type="number"/>
4280
+ <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])]">
4281
+ <!-- copy unique fn -->
4282
+ <fn gen_id="{generate-id(.)}">
4283
+ <xsl:copy-of select="@*"/>
4284
+ <xsl:copy-of select="node()"/>
4285
+ </fn>
4286
+ </xsl:for-each>
4287
+ </xsl:for-each>
4288
+ </xsl:otherwise>
4289
+ </xsl:choose>
4036
4290
  </xsl:template><xsl:template name="table_fn_display">
4037
4291
  <xsl:variable name="references">
4038
4292
 
@@ -4209,7 +4463,7 @@
4209
4463
  </fo:inline>
4210
4464
  </xsl:template><xsl:template match="*[local-name()='fn']/text()[normalize-space() != '']">
4211
4465
  <fo:inline><xsl:value-of select="."/></fo:inline>
4212
- </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
4466
+ </xsl:template><xsl:template match="*[local-name()='fn']//*[local-name()='p']">
4213
4467
  <fo:inline>
4214
4468
  <xsl:apply-templates/>
4215
4469
  </fo:inline>
@@ -4586,20 +4840,44 @@
4586
4840
  <fo:inline text-decoration="underline">
4587
4841
  <xsl:apply-templates/>
4588
4842
  </fo:inline>
4589
- </xsl:template><xsl:template match="*[local-name()='add']">
4843
+ </xsl:template><xsl:template match="*[local-name()='add']" name="tag_add">
4590
4844
  <xsl:param name="skip">true</xsl:param>
4845
+ <xsl:param name="block">false</xsl:param>
4846
+ <xsl:param name="type"/>
4847
+ <xsl:param name="text-align"/>
4591
4848
  <xsl:choose>
4592
4849
  <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
4593
4850
  <xsl:choose>
4594
- <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab'])) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
4851
+ <xsl:when test="$skip = 'true' and ((local-name(../..) = 'note' and not(preceding-sibling::node())) or (local-name(..) = 'title' and preceding-sibling::node()[1][local-name() = 'tab']) or local-name(..) = 'formattedref' and not(preceding-sibling::node())) and ../node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]"><!-- start tag displayed in template name="note" and title --></xsl:when>
4595
4852
  <xsl:otherwise>
4596
- <fo:inline>
4853
+ <xsl:variable name="tag">
4597
4854
  <xsl:call-template name="insertTag">
4598
- <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
4855
+ <xsl:with-param name="type">
4856
+ <xsl:choose>
4857
+ <xsl:when test="$type = ''"><xsl:value-of select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end --></xsl:when>
4858
+ <xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
4859
+ </xsl:choose>
4860
+ </xsl:with-param>
4599
4861
  <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
4600
4862
  <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
4601
4863
  </xsl:call-template>
4602
- </fo:inline>
4864
+ </xsl:variable>
4865
+ <xsl:choose>
4866
+ <xsl:when test="$block = 'false'">
4867
+ <fo:inline>
4868
+ <xsl:copy-of select="$tag"/>
4869
+ </fo:inline>
4870
+ </xsl:when>
4871
+ <xsl:otherwise>
4872
+ <fo:block> <!-- for around figures -->
4873
+ <xsl:if test="$text-align != ''">
4874
+ <xsl:attribute name="text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
4875
+ </xsl:if>
4876
+ <xsl:copy-of select="$tag"/>
4877
+ </fo:block>
4878
+ </xsl:otherwise>
4879
+ </xsl:choose>
4880
+
4603
4881
  </xsl:otherwise>
4604
4882
  </xsl:choose>
4605
4883
  </xsl:when>
@@ -4958,17 +5236,21 @@
4958
5236
  </xsl:apply-templates>
4959
5237
  </xsl:template><xsl:template name="getLang">
4960
5238
  <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
4961
- <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
4962
5239
  <xsl:variable name="language">
4963
5240
  <xsl:choose>
4964
5241
  <xsl:when test="$language_current != ''">
4965
5242
  <xsl:value-of select="$language_current"/>
4966
5243
  </xsl:when>
4967
- <xsl:when test="$language_current_2 != ''">
4968
- <xsl:value-of select="$language_current_2"/>
4969
- </xsl:when>
4970
5244
  <xsl:otherwise>
4971
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
5245
+ <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
5246
+ <xsl:choose>
5247
+ <xsl:when test="$language_current_2 != ''">
5248
+ <xsl:value-of select="$language_current_2"/>
5249
+ </xsl:when>
5250
+ <xsl:otherwise>
5251
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
5252
+ </xsl:otherwise>
5253
+ </xsl:choose>
4972
5254
  </xsl:otherwise>
4973
5255
  </xsl:choose>
4974
5256
  </xsl:variable>
@@ -5178,6 +5460,9 @@
5178
5460
  </fo:inline>
5179
5461
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
5180
5462
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
5463
+ <xsl:if test="parent::*[local-name() = 'add']">
5464
+ <xsl:call-template name="append_add-style"/>
5465
+ </xsl:if>
5181
5466
  <xsl:apply-templates/>
5182
5467
  </fo:basic-link>
5183
5468
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -5192,8 +5477,8 @@
5192
5477
 
5193
5478
  </xsl:if>
5194
5479
  <fo:block-container margin-left="0mm">
5195
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
5196
- <xsl:apply-templates/>
5480
+ <fo:block id="{@id}">
5481
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
5197
5482
  </fo:block>
5198
5483
  </fo:block-container>
5199
5484
  </fo:block-container>
@@ -5205,10 +5490,43 @@
5205
5490
  <fo:inline>
5206
5491
  <xsl:apply-templates/>
5207
5492
  </fo:inline>
5208
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="formula_number"> <!-- show by demand -->
5493
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
5209
5494
  <xsl:if test="normalize-space() != ''">
5210
5495
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
5211
5496
  </xsl:if>
5497
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][*[local-name() = 'name']]/*[local-name() = 'stem']">
5498
+ <fo:block xsl:use-attribute-sets="formula-style">
5499
+
5500
+
5501
+
5502
+ <fo:table table-layout="fixed" width="100%">
5503
+ <fo:table-column column-width="95%"/>
5504
+ <fo:table-column column-width="5%"/>
5505
+ <fo:table-body>
5506
+ <fo:table-row>
5507
+ <fo:table-cell display-align="center">
5508
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
5509
+
5510
+
5511
+
5512
+ <xsl:apply-templates/>
5513
+ </fo:block>
5514
+ </fo:table-cell>
5515
+ <fo:table-cell display-align="center">
5516
+ <fo:block xsl:use-attribute-sets="formula-stem-number-style">
5517
+ <xsl:apply-templates select="../*[local-name() = 'name']"/>
5518
+ </fo:block>
5519
+ </fo:table-cell>
5520
+ </fo:table-row>
5521
+ </fo:table-body>
5522
+ </fo:table>
5523
+ </fo:block>
5524
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][not(*[local-name() = 'name'])]/*[local-name() = 'stem']">
5525
+ <fo:block xsl:use-attribute-sets="formula-style">
5526
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
5527
+ <xsl:apply-templates/>
5528
+ </fo:block>
5529
+ </fo:block>
5212
5530
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
5213
5531
 
5214
5532
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
@@ -5242,6 +5560,13 @@
5242
5560
 
5243
5561
 
5244
5562
 
5563
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
5564
+ <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
5565
+ <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
5566
+ <xsl:call-template name="append_add-style"/>
5567
+ </xsl:if>
5568
+
5569
+
5245
5570
  <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
5246
5571
  <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
5247
5572
  <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
@@ -5280,6 +5605,12 @@
5280
5605
 
5281
5606
 
5282
5607
 
5608
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
5609
+ <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
5610
+ <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
5611
+ <xsl:call-template name="append_add-style"/>
5612
+ </xsl:if>
5613
+
5283
5614
  <xsl:apply-templates select="*[local-name() = 'name']"/>
5284
5615
 
5285
5616
  </fo:inline>
@@ -5331,6 +5662,7 @@
5331
5662
  </fo:block>
5332
5663
  </xsl:template><xsl:template match="*[local-name() = 'term']">
5333
5664
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
5665
+
5334
5666
 
5335
5667
 
5336
5668
 
@@ -5769,7 +6101,11 @@
5769
6101
  <xsl:value-of select="."/>
5770
6102
  </xsl:template><xsl:template match="node()" mode="contents">
5771
6103
  <xsl:apply-templates mode="contents"/>
5772
- </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" mode="contents">
6104
+ </xsl:template><xsl:template match="*[local-name() = 'preface' or local-name() = 'sections']/*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'section-title' and not(@displayorder)]" mode="contents_no_displayorder">
6105
+ <xsl:call-template name="contents_section-title"/>
6106
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'section-title']" mode="contents_in_clause">
6107
+ <xsl:call-template name="contents_section-title"/>
6108
+ </xsl:template><xsl:template match="*[local-name() = 'clause']/*[local-name() = 'p'][@type = 'section-title' and (@depth != ../*[local-name() = 'title']/@depth or ../*[local-name() = 'title']/@depth = 1)]" priority="3" mode="contents"/><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" name="contents_section-title" mode="contents">
5773
6109
  <xsl:variable name="level">
5774
6110
  <xsl:call-template name="getLevel">
5775
6111
  <xsl:with-param name="depth" select="@depth"/>
@@ -5838,13 +6174,14 @@
5838
6174
  <xsl:apply-templates mode="bookmarks"/>
5839
6175
  </xsl:template><xsl:template name="addBookmarks">
5840
6176
  <xsl:param name="contents"/>
5841
- <xsl:if test="xalan:nodeset($contents)//item">
6177
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
6178
+ <xsl:if test="$contents_nodes//item">
5842
6179
  <fo:bookmark-tree>
5843
6180
  <xsl:choose>
5844
- <xsl:when test="xalan:nodeset($contents)/doc">
6181
+ <xsl:when test="$contents_nodes/doc">
5845
6182
  <xsl:choose>
5846
- <xsl:when test="count(xalan:nodeset($contents)/doc) &gt; 1">
5847
- <xsl:for-each select="xalan:nodeset($contents)/doc">
6183
+ <xsl:when test="count($contents_nodes/doc) &gt; 1">
6184
+ <xsl:for-each select="$contents_nodes/doc">
5848
6185
  <fo:bookmark internal-destination="{contents/item[1]/@id}" starting-state="hide">
5849
6186
  <xsl:if test="@bundle = 'true'">
5850
6187
  <xsl:attribute name="internal-destination"><xsl:value-of select="@firstpage_id"/></xsl:attribute>
@@ -5895,7 +6232,7 @@
5895
6232
  </xsl:for-each>
5896
6233
  </xsl:when>
5897
6234
  <xsl:otherwise>
5898
- <xsl:for-each select="xalan:nodeset($contents)/doc">
6235
+ <xsl:for-each select="$contents_nodes/doc">
5899
6236
 
5900
6237
  <xsl:apply-templates select="contents/item" mode="bookmark"/>
5901
6238
 
@@ -5913,25 +6250,36 @@
5913
6250
  </xsl:choose>
5914
6251
  </xsl:when>
5915
6252
  <xsl:otherwise>
5916
- <xsl:apply-templates select="xalan:nodeset($contents)/contents/item" mode="bookmark"/>
6253
+ <xsl:apply-templates select="$contents_nodes/contents/item" mode="bookmark"/>
6254
+
6255
+ <xsl:call-template name="insertFigureBookmarks">
6256
+ <xsl:with-param name="contents" select="$contents_nodes/contents"/>
6257
+ </xsl:call-template>
6258
+
6259
+ <xsl:call-template name="insertTableBookmarks">
6260
+ <xsl:with-param name="contents" select="$contents_nodes/contents"/>
6261
+ <xsl:with-param name="lang" select="@lang"/>
6262
+ </xsl:call-template>
6263
+
5917
6264
  </xsl:otherwise>
5918
6265
  </xsl:choose>
5919
6266
 
6267
+
5920
6268
 
5921
6269
 
5922
6270
 
5923
6271
 
5924
-
5925
-
6272
+
5926
6273
 
5927
6274
  </fo:bookmark-tree>
5928
6275
  </xsl:if>
5929
6276
  </xsl:template><xsl:template name="insertFigureBookmarks">
5930
6277
  <xsl:param name="contents"/>
5931
- <xsl:if test="xalan:nodeset($contents)/figure">
5932
- <fo:bookmark internal-destination="{xalan:nodeset($contents)/figure[1]/@id}" starting-state="hide">
6278
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
6279
+ <xsl:if test="$contents_nodes/figure">
6280
+ <fo:bookmark internal-destination="{$contents_nodes/figure[1]/@id}" starting-state="hide">
5933
6281
  <fo:bookmark-title>Figures</fo:bookmark-title>
5934
- <xsl:for-each select="xalan:nodeset($contents)/figure">
6282
+ <xsl:for-each select="$contents_nodes/figure">
5935
6283
  <fo:bookmark internal-destination="{@id}">
5936
6284
  <fo:bookmark-title>
5937
6285
  <xsl:value-of select="normalize-space(title)"/>
@@ -5940,18 +6288,40 @@
5940
6288
  </xsl:for-each>
5941
6289
  </fo:bookmark>
5942
6290
  </xsl:if>
6291
+
6292
+
6293
+ <xsl:if test="$contents_nodes//figures/figure">
6294
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
6295
+
6296
+
6297
+
6298
+ <xsl:variable name="bookmark-title">
6299
+
6300
+ <xsl:value-of select="$title-list-figures"/>
6301
+
6302
+ </xsl:variable>
6303
+ <fo:bookmark-title><xsl:value-of select="normalize-space($bookmark-title)"/></fo:bookmark-title>
6304
+ <xsl:for-each select="$contents_nodes//figures/figure">
6305
+ <fo:bookmark internal-destination="{@id}">
6306
+ <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
6307
+ </fo:bookmark>
6308
+ </xsl:for-each>
6309
+ </fo:bookmark>
6310
+ </xsl:if>
6311
+
5943
6312
  </xsl:template><xsl:template name="insertTableBookmarks">
5944
6313
  <xsl:param name="contents"/>
5945
6314
  <xsl:param name="lang"/>
5946
- <xsl:if test="xalan:nodeset($contents)/table">
5947
- <fo:bookmark internal-destination="{xalan:nodeset($contents)/table[1]/@id}" starting-state="hide">
6315
+ <xsl:variable name="contents_nodes" select="xalan:nodeset($contents)"/>
6316
+ <xsl:if test="$contents_nodes/table">
6317
+ <fo:bookmark internal-destination="{$contents_nodes/table[1]/@id}" starting-state="hide">
5948
6318
  <fo:bookmark-title>
5949
6319
  <xsl:choose>
5950
6320
  <xsl:when test="$lang = 'fr'">Tableaux</xsl:when>
5951
6321
  <xsl:otherwise>Tables</xsl:otherwise>
5952
6322
  </xsl:choose>
5953
6323
  </fo:bookmark-title>
5954
- <xsl:for-each select="xalan:nodeset($contents)/table">
6324
+ <xsl:for-each select="$contents_nodes/table">
5955
6325
  <fo:bookmark internal-destination="{@id}">
5956
6326
  <fo:bookmark-title>
5957
6327
  <xsl:value-of select="normalize-space(title)"/>
@@ -5960,6 +6330,29 @@
5960
6330
  </xsl:for-each>
5961
6331
  </fo:bookmark>
5962
6332
  </xsl:if>
6333
+
6334
+
6335
+ <xsl:if test="$contents_nodes//tables/table">
6336
+ <fo:bookmark internal-destination="empty_bookmark" starting-state="hide">
6337
+
6338
+
6339
+
6340
+ <xsl:variable name="bookmark-title">
6341
+
6342
+ <xsl:value-of select="$title-list-tables"/>
6343
+
6344
+ </xsl:variable>
6345
+
6346
+ <fo:bookmark-title><xsl:value-of select="$bookmark-title"/></fo:bookmark-title>
6347
+
6348
+ <xsl:for-each select="$contents_nodes//tables/table">
6349
+ <fo:bookmark internal-destination="{@id}">
6350
+ <fo:bookmark-title><xsl:value-of select="normalize-space(.)"/></fo:bookmark-title>
6351
+ </fo:bookmark>
6352
+ </xsl:for-each>
6353
+ </fo:bookmark>
6354
+ </xsl:if>
6355
+
5963
6356
  </xsl:template><xsl:template name="getLangVersion">
5964
6357
  <xsl:param name="lang"/>
5965
6358
  <xsl:param name="doctype" select="''"/>
@@ -6158,12 +6551,140 @@
6158
6551
  </fo:block-container>
6159
6552
  </fo:block-container>
6160
6553
  </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
6161
- <xsl:variable name="text">
6554
+ <xsl:choose>
6555
+ <xsl:when test="normalize-space($syntax-highlight) = 'true' and normalize-space(../@lang) != ''"> <!-- condition for turn on of highlighting -->
6556
+ <xsl:variable name="syntax" select="java:org.metanorma.fop.Util.syntaxHighlight(., ../@lang)"/>
6557
+ <xsl:choose>
6558
+ <xsl:when test="normalize-space($syntax) != ''"><!-- if there is highlighted result -->
6559
+ <xsl:apply-templates select="xalan:nodeset($syntax)" mode="syntax_highlight"/> <!-- process span tags -->
6560
+ </xsl:when>
6561
+ <xsl:otherwise> <!-- if case of non-succesfull syntax highlight (for instance, unknown lang), process without highlighting -->
6562
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
6563
+ </xsl:otherwise>
6564
+ </xsl:choose>
6565
+ </xsl:when>
6566
+ <xsl:otherwise>
6567
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
6568
+ </xsl:otherwise>
6569
+ </xsl:choose>
6570
+
6571
+ </xsl:template><xsl:template name="add_spaces_to_sourcecode">
6572
+ <xsl:variable name="text_step1">
6162
6573
  <xsl:call-template name="add-zero-spaces-equal"/>
6163
6574
  </xsl:variable>
6164
- <xsl:call-template name="add-zero-spaces-java">
6165
- <xsl:with-param name="text" select="$text"/>
6166
- </xsl:call-template>
6575
+ <xsl:variable name="text_step2">
6576
+ <xsl:call-template name="add-zero-spaces-java">
6577
+ <xsl:with-param name="text" select="$text_step1"/>
6578
+ </xsl:call-template>
6579
+ </xsl:variable>
6580
+ <xsl:value-of select="$text_step2"/>
6581
+ </xsl:template><xsl:template match="*" mode="syntax_highlight">
6582
+ <xsl:apply-templates mode="syntax_highlight"/>
6583
+ </xsl:template><xsl:variable name="syntax_highlight_styles_">
6584
+ <style class="hljs-addition" xsl:use-attribute-sets="hljs-addition"/>
6585
+ <style class="hljs-attr" xsl:use-attribute-sets="hljs-attr"/>
6586
+ <style class="hljs-attribute" xsl:use-attribute-sets="hljs-attribute"/>
6587
+ <style class="hljs-built_in" xsl:use-attribute-sets="hljs-built_in"/>
6588
+ <style class="hljs-bullet" xsl:use-attribute-sets="hljs-bullet"/>
6589
+ <style class="hljs-char_and_escape_" xsl:use-attribute-sets="hljs-char_and_escape_"/>
6590
+ <style class="hljs-code" xsl:use-attribute-sets="hljs-code"/>
6591
+ <style class="hljs-comment" xsl:use-attribute-sets="hljs-comment"/>
6592
+ <style class="hljs-deletion" xsl:use-attribute-sets="hljs-deletion"/>
6593
+ <style class="hljs-doctag" xsl:use-attribute-sets="hljs-doctag"/>
6594
+ <style class="hljs-emphasis" xsl:use-attribute-sets="hljs-emphasis"/>
6595
+ <style class="hljs-formula" xsl:use-attribute-sets="hljs-formula"/>
6596
+ <style class="hljs-keyword" xsl:use-attribute-sets="hljs-keyword"/>
6597
+ <style class="hljs-link" xsl:use-attribute-sets="hljs-link"/>
6598
+ <style class="hljs-literal" xsl:use-attribute-sets="hljs-literal"/>
6599
+ <style class="hljs-meta" xsl:use-attribute-sets="hljs-meta"/>
6600
+ <style class="hljs-meta_hljs-string" xsl:use-attribute-sets="hljs-meta_hljs-string"/>
6601
+ <style class="hljs-meta_hljs-keyword" xsl:use-attribute-sets="hljs-meta_hljs-keyword"/>
6602
+ <style class="hljs-name" xsl:use-attribute-sets="hljs-name"/>
6603
+ <style class="hljs-number" xsl:use-attribute-sets="hljs-number"/>
6604
+ <style class="hljs-operator" xsl:use-attribute-sets="hljs-operator"/>
6605
+ <style class="hljs-params" xsl:use-attribute-sets="hljs-params"/>
6606
+ <style class="hljs-property" xsl:use-attribute-sets="hljs-property"/>
6607
+ <style class="hljs-punctuation" xsl:use-attribute-sets="hljs-punctuation"/>
6608
+ <style class="hljs-quote" xsl:use-attribute-sets="hljs-quote"/>
6609
+ <style class="hljs-regexp" xsl:use-attribute-sets="hljs-regexp"/>
6610
+ <style class="hljs-section" xsl:use-attribute-sets="hljs-section"/>
6611
+ <style class="hljs-selector-attr" xsl:use-attribute-sets="hljs-selector-attr"/>
6612
+ <style class="hljs-selector-class" xsl:use-attribute-sets="hljs-selector-class"/>
6613
+ <style class="hljs-selector-id" xsl:use-attribute-sets="hljs-selector-id"/>
6614
+ <style class="hljs-selector-pseudo" xsl:use-attribute-sets="hljs-selector-pseudo"/>
6615
+ <style class="hljs-selector-tag" xsl:use-attribute-sets="hljs-selector-tag"/>
6616
+ <style class="hljs-string" xsl:use-attribute-sets="hljs-string"/>
6617
+ <style class="hljs-strong" xsl:use-attribute-sets="hljs-strong"/>
6618
+ <style class="hljs-subst" xsl:use-attribute-sets="hljs-subst"/>
6619
+ <style class="hljs-symbol" xsl:use-attribute-sets="hljs-symbol"/>
6620
+ <style class="hljs-tag" xsl:use-attribute-sets="hljs-tag"/>
6621
+ <!-- <style class="hljs-tag_hljs-attr" xsl:use-attribute-sets="hljs-tag_hljs-attr"></style> -->
6622
+ <!-- <style class="hljs-tag_hljs-name" xsl:use-attribute-sets="hljs-tag_hljs-name"></style> -->
6623
+ <style class="hljs-template-tag" xsl:use-attribute-sets="hljs-template-tag"/>
6624
+ <style class="hljs-template-variable" xsl:use-attribute-sets="hljs-template-variable"/>
6625
+ <style class="hljs-title" xsl:use-attribute-sets="hljs-title"/>
6626
+ <style class="hljs-title_and_class_" xsl:use-attribute-sets="hljs-title_and_class_"/>
6627
+ <style class="hljs-title_and_class__and_inherited__" xsl:use-attribute-sets="hljs-title_and_class__and_inherited__"/>
6628
+ <style class="hljs-title_and_function_" xsl:use-attribute-sets="hljs-title_and_function_"/>
6629
+ <style class="hljs-type" xsl:use-attribute-sets="hljs-type"/>
6630
+ <style class="hljs-variable" xsl:use-attribute-sets="hljs-variable"/>
6631
+ <style class="hljs-variable_and_language_" xsl:use-attribute-sets="hljs-variable_and_language_"/>
6632
+ </xsl:variable><xsl:variable name="syntax_highlight_styles" select="xalan:nodeset($syntax_highlight_styles_)"/><xsl:template match="span" mode="syntax_highlight" priority="2">
6633
+ <!-- <fo:inline color="green" font-style="italic"><xsl:apply-templates mode="syntax_highlight"/></fo:inline> -->
6634
+ <fo:inline>
6635
+ <xsl:variable name="classes_">
6636
+ <xsl:call-template name="split">
6637
+ <xsl:with-param name="pText" select="@class"/>
6638
+ <xsl:with-param name="sep" select="' '"/>
6639
+ </xsl:call-template>
6640
+ <!-- a few classes together (_and_ suffix) -->
6641
+ <xsl:if test="contains(@class, 'hljs-char') and contains(@class, 'escape_')">
6642
+ <item>hljs-char_and_escape_</item>
6643
+ </xsl:if>
6644
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_')">
6645
+ <item>hljs-title_and_class_</item>
6646
+ </xsl:if>
6647
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_') and contains(@class, 'inherited__')">
6648
+ <item>hljs-title_and_class__and_inherited__</item>
6649
+ </xsl:if>
6650
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'function_')">
6651
+ <item>hljs-title_and_function_</item>
6652
+ </xsl:if>
6653
+ <xsl:if test="contains(@class, 'hljs-variable') and contains(@class, 'language_')">
6654
+ <item>hljs-variable_and_language_</item>
6655
+ </xsl:if>
6656
+ <!-- with parent classes (_ suffix) -->
6657
+ <xsl:if test="contains(@class, 'hljs-keyword') and contains(ancestor::*/@class, 'hljs-meta')">
6658
+ <item>hljs-meta_hljs-keyword</item>
6659
+ </xsl:if>
6660
+ <xsl:if test="contains(@class, 'hljs-string') and contains(ancestor::*/@class, 'hljs-meta')">
6661
+ <item>hljs-meta_hljs-string</item>
6662
+ </xsl:if>
6663
+ </xsl:variable>
6664
+ <xsl:variable name="classes" select="xalan:nodeset($classes_)"/>
6665
+
6666
+ <xsl:for-each select="$classes/item">
6667
+ <xsl:variable name="class_name" select="."/>
6668
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
6669
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
6670
+ </xsl:for-each>
6671
+ </xsl:for-each>
6672
+
6673
+ <!-- <xsl:variable name="class_name">
6674
+ <xsl:choose>
6675
+ <xsl:when test="@class = 'hljs-attr' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-attr</xsl:when>
6676
+ <xsl:when test="@class = 'hljs-name' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-name</xsl:when>
6677
+ <xsl:when test="@class = 'hljs-string' and ancestor::*/@class = 'hljs-meta'">hljs-meta_hljs-string</xsl:when>
6678
+ <xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
6679
+ </xsl:choose>
6680
+ </xsl:variable>
6681
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
6682
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
6683
+ </xsl:for-each> -->
6684
+
6685
+ <xsl:apply-templates mode="syntax_highlight"/></fo:inline>
6686
+ </xsl:template><xsl:template match="text()" mode="syntax_highlight" priority="2">
6687
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
6167
6688
  </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
6168
6689
  <xsl:if test="normalize-space() != ''">
6169
6690
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
@@ -6493,6 +7014,8 @@
6493
7014
  </xsl:otherwise>
6494
7015
  </xsl:choose> -->
6495
7016
  </fo:block>
7017
+ </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()[starts-with(., '[SOURCE: Adapted from: ')]" priority="2">
7018
+ <xsl:text>[</xsl:text><xsl:value-of select="substring-after(., '[SOURCE: ')"/>
6496
7019
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/text()">
6497
7020
  <xsl:if test="normalize-space() != ''">
6498
7021
  <xsl:value-of select="."/>
@@ -6539,11 +7062,14 @@
6539
7062
 
6540
7063
 
6541
7064
  <fo:block-container margin-left="0mm">
6542
-
6543
- <fo:block xsl:use-attribute-sets="quote-style">
7065
+ <fo:block-container xsl:use-attribute-sets="quote-style">
6544
7066
 
6545
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
6546
- </fo:block>
7067
+ <fo:block-container margin-left="0mm" margin-right="0mm">
7068
+ <fo:block role="BlockQuote">
7069
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
7070
+ </fo:block>
7071
+ </fo:block-container>
7072
+ </fo:block-container>
6547
7073
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
6548
7074
  <fo:block xsl:use-attribute-sets="quote-source-style">
6549
7075
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
@@ -6564,26 +7090,11 @@
6564
7090
  </xsl:template><xsl:template match="*[local-name() = 'author']">
6565
7091
  <xsl:text>— </xsl:text>
6566
7092
  <xsl:apply-templates/>
6567
- </xsl:template><xsl:variable name="bibitem_hidden_">
6568
- <xsl:for-each select="//*[local-name() = 'bibitem'][@hidden='true']">
6569
- <xsl:copy-of select="."/>
6570
- </xsl:for-each>
6571
- <xsl:for-each select="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem']">
6572
- <xsl:copy-of select="."/>
6573
- </xsl:for-each>
6574
- </xsl:variable><xsl:variable name="bibitem_hidden" select="xalan:nodeset($bibitem_hidden_)"/><xsl:template match="*[local-name() = 'eref']">
6575
-
6576
- <xsl:variable name="bibitemid">
6577
- <xsl:choose>
6578
- <!-- <xsl:when test="//*[local-name() = 'bibitem'][@hidden='true' and @id = current()/@bibitemid]"></xsl:when>
6579
- <xsl:when test="//*[local-name() = 'references'][@hidden='true']/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"></xsl:when> -->
6580
- <xsl:when test="$bibitem_hidden/*[local-name() = 'bibitem'][@id = current()/@bibitemid]"/>
6581
- <xsl:otherwise><xsl:value-of select="@bibitemid"/></xsl:otherwise>
6582
- </xsl:choose>
6583
- </xsl:variable>
6584
-
7093
+ </xsl:template><xsl:template match="*[local-name() = 'eref']">
7094
+ <xsl:variable name="current_bibitemid" select="@bibitemid"/>
7095
+ <xsl:variable name="external-destination" select="normalize-space(key('bibitems', $current_bibitemid)/*[local-name() = 'uri'][@type = 'citation'])"/>
6585
7096
  <xsl:choose>
6586
- <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
7097
+ <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) -->
6587
7098
  <fo:inline xsl:use-attribute-sets="eref-style">
6588
7099
  <xsl:if test="@type = 'footnote'">
6589
7100
  <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
@@ -6597,8 +7108,8 @@
6597
7108
  <xsl:variable name="text" select="normalize-space()"/>
6598
7109
 
6599
7110
 
6600
-
6601
- <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
7111
+
7112
+ <fo:basic-link fox:alt-text="{@citeas}">
6602
7113
  <xsl:if test="normalize-space(@citeas) = ''">
6603
7114
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
6604
7115
  </xsl:if>
@@ -6608,14 +7119,21 @@
6608
7119
 
6609
7120
  </xsl:if>
6610
7121
 
6611
-
7122
+ <xsl:choose>
7123
+ <xsl:when test="$external-destination != ''"> <!-- external hyperlink -->
7124
+ <xsl:attribute name="external-destination"><xsl:value-of select="$external-destination"/></xsl:attribute>
7125
+ </xsl:when>
7126
+ <xsl:otherwise>
7127
+ <xsl:attribute name="internal-destination"><xsl:value-of select="@bibitemid"/></xsl:attribute>
7128
+ </xsl:otherwise>
7129
+ </xsl:choose>
6612
7130
 
6613
7131
  <xsl:apply-templates/>
6614
7132
  </fo:basic-link>
6615
-
7133
+
6616
7134
  </fo:inline>
6617
7135
  </xsl:when>
6618
- <xsl:otherwise>
7136
+ <xsl:otherwise> <!-- if there is key('bibitems_hidden', $current_bibitemid) -->
6619
7137
  <fo:inline><xsl:apply-templates/></fo:inline>
6620
7138
  </xsl:otherwise>
6621
7139
  </xsl:choose>
@@ -6688,6 +7206,31 @@
6688
7206
  <xsl:with-param name="count" select="$count - 1"/>
6689
7207
  </xsl:call-template>
6690
7208
  </xsl:if>
7209
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']">
7210
+ <xsl:variable name="level">
7211
+ <xsl:call-template name="getLevel"/>
7212
+ </xsl:variable>
7213
+ <xsl:variable name="font-size">
7214
+ inherit
7215
+ </xsl:variable>
7216
+ <xsl:variable name="levelTerm">
7217
+ <xsl:call-template name="getLevelTermName"/>
7218
+ </xsl:variable>
7219
+ <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
7220
+
7221
+
7222
+
7223
+ <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
7224
+ <fo:block xsl:use-attribute-sets="term-name-style">
7225
+ <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
7226
+ </fo:block>
7227
+ </xsl:if>
7228
+
7229
+ <fo:block xsl:use-attribute-sets="preferred-term-style">
7230
+ <xsl:call-template name="setStyle_preferred"/>
7231
+ <xsl:apply-templates/>
7232
+ </fo:block>
7233
+ </fo:block>
6691
7234
  </xsl:template><xsl:template match="*[local-name() = 'domain']">
6692
7235
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
6693
7236
  <xsl:text> </xsl:text>
@@ -6776,24 +7319,8 @@
6776
7319
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
6777
7320
  </xsl:template><xsl:variable name="ul_labels_">
6778
7321
 
6779
-
6780
-
6781
-
6782
-
6783
-
6784
-
6785
- <label>—</label> <!-- em dash -->
6786
-
6787
-
6788
-
6789
-
6790
-
6791
-
6792
-
6793
-
6794
-
6795
-
6796
-
7322
+ <label>—</label> <!-- em dash -->
7323
+
6797
7324
  </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
6798
7325
  <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
6799
7326
  <xsl:variable name="list_level">
@@ -6819,6 +7346,91 @@
6819
7346
  </xsl:template><xsl:template match="label" mode="ul_labels">
6820
7347
  <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
6821
7348
  <xsl:value-of select="."/>
7349
+ </xsl:template><xsl:template name="getListItemFormat">
7350
+ <!-- Example: for BSI <?list-type loweralpha?> -->
7351
+ <xsl:variable name="processing_instruction_type" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-type'))"/>
7352
+ <xsl:choose>
7353
+ <xsl:when test="local-name(..) = 'ul'">
7354
+ <xsl:choose>
7355
+ <xsl:when test="normalize-space($processing_instruction_type) = 'simple'"/>
7356
+ <xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
7357
+ </xsl:choose>
7358
+ </xsl:when>
7359
+ <xsl:otherwise> <!-- for ordered lists 'ol' -->
7360
+
7361
+ <!-- Example: for BSI <?list-start 2?> -->
7362
+ <xsl:variable name="processing_instruction_start" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-start'))"/>
7363
+
7364
+ <xsl:variable name="start_value">
7365
+ <xsl:choose>
7366
+ <xsl:when test="normalize-space($processing_instruction_start) != ''">
7367
+ <xsl:value-of select="number($processing_instruction_start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
7368
+ </xsl:when>
7369
+ <xsl:when test="normalize-space(../@start) != ''">
7370
+ <xsl:value-of select="number(../@start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
7371
+ </xsl:when>
7372
+ <xsl:otherwise>0</xsl:otherwise>
7373
+ </xsl:choose>
7374
+ </xsl:variable>
7375
+
7376
+ <xsl:variable name="curr_value"><xsl:number/></xsl:variable>
7377
+
7378
+ <xsl:variable name="type">
7379
+ <xsl:choose>
7380
+ <xsl:when test="normalize-space($processing_instruction_type) != ''"><xsl:value-of select="$processing_instruction_type"/></xsl:when>
7381
+ <xsl:when test="normalize-space(../@type) != ''"><xsl:value-of select="../@type"/></xsl:when>
7382
+
7383
+ <xsl:otherwise> <!-- if no @type or @class = 'steps' -->
7384
+
7385
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
7386
+ <xsl:variable name="list_level">
7387
+ <xsl:choose>
7388
+ <xsl:when test="$list_level_ &lt;= 5"><xsl:value-of select="$list_level_"/></xsl:when>
7389
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 5"/></xsl:otherwise>
7390
+ </xsl:choose>
7391
+ </xsl:variable>
7392
+
7393
+ <xsl:choose>
7394
+ <xsl:when test="$list_level mod 5 = 0">roman_upper</xsl:when> <!-- level 5 -->
7395
+ <xsl:when test="$list_level mod 4 = 0">alphabet_upper</xsl:when> <!-- level 4 -->
7396
+ <xsl:when test="$list_level mod 3 = 0">roman</xsl:when> <!-- level 3 -->
7397
+ <xsl:when test="$list_level mod 2 = 0 and ancestor::*/@class = 'steps'">alphabet</xsl:when> <!-- level 2 and @class = 'steps'-->
7398
+ <xsl:when test="$list_level mod 2 = 0">arabic</xsl:when> <!-- level 2 -->
7399
+ <xsl:otherwise> <!-- level 1 -->
7400
+ <xsl:choose>
7401
+ <xsl:when test="ancestor::*/@class = 'steps'">arabic</xsl:when>
7402
+ <xsl:otherwise>alphabet</xsl:otherwise>
7403
+ </xsl:choose>
7404
+ </xsl:otherwise>
7405
+ </xsl:choose>
7406
+
7407
+ </xsl:otherwise>
7408
+ </xsl:choose>
7409
+ </xsl:variable>
7410
+
7411
+ <xsl:variable name="format">
7412
+ <xsl:choose>
7413
+ <xsl:when test="$type = 'arabic'">
7414
+ 1.
7415
+ </xsl:when>
7416
+ <xsl:when test="$type = 'alphabet'">
7417
+ a)
7418
+ </xsl:when>
7419
+ <xsl:when test="$type = 'alphabet_upper'">
7420
+ A.
7421
+ </xsl:when>
7422
+ <xsl:when test="$type = 'roman'">
7423
+ i)
7424
+ </xsl:when>
7425
+ <xsl:when test="$type = 'roman_upper'">I.</xsl:when>
7426
+ <xsl:otherwise>1.</xsl:otherwise> <!-- for any case, if $type has non-determined value, not using -->
7427
+ </xsl:choose>
7428
+ </xsl:variable>
7429
+
7430
+ <xsl:number value="$start_value + $curr_value" format="{normalize-space($format)}" lang="en"/>
7431
+
7432
+ </xsl:otherwise>
7433
+ </xsl:choose>
6822
7434
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
6823
7435
  <xsl:choose>
6824
7436
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -6834,18 +7446,71 @@
6834
7446
 
6835
7447
  <fo:block-container margin-left="0mm">
6836
7448
  <fo:block>
6837
- <xsl:apply-templates select="." mode="ul_ol"/>
7449
+ <xsl:apply-templates select="." mode="list"/>
6838
7450
  </fo:block>
6839
7451
  </fo:block-container>
6840
7452
  </fo:block-container>
6841
7453
  </xsl:when>
6842
7454
  <xsl:otherwise>
6843
7455
  <fo:block>
6844
- <xsl:apply-templates select="." mode="ul_ol"/>
7456
+ <xsl:apply-templates select="." mode="list"/>
6845
7457
  </fo:block>
6846
7458
  </xsl:otherwise>
6847
7459
  </xsl:choose>
6848
- </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="dash" select="'–'"/><xsl:variable name="bookmark_in_fn">
7460
+ </xsl:template><xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
7461
+ <fo:list-block xsl:use-attribute-sets="list-style">
7462
+
7463
+
7464
+
7465
+
7466
+
7467
+
7468
+
7469
+
7470
+
7471
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
7472
+ </fo:list-block>
7473
+ <!-- <xsl:for-each select="./iho:note">
7474
+ <xsl:call-template name="note"/>
7475
+ </xsl:for-each> -->
7476
+ <xsl:apply-templates select="./*[local-name() = 'note']"/>
7477
+ </xsl:template><xsl:template match="*[local-name()='li']">
7478
+ <fo:list-item xsl:use-attribute-sets="list-item-style">
7479
+ <xsl:copy-of select="@id"/>
7480
+
7481
+
7482
+
7483
+ <fo:list-item-label end-indent="label-end()">
7484
+ <fo:block xsl:use-attribute-sets="list-item-label-style">
7485
+
7486
+
7487
+
7488
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
7489
+ <xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
7490
+ <xsl:call-template name="append_add-style"/>
7491
+ </xsl:if>
7492
+
7493
+ <xsl:call-template name="getListItemFormat"/>
7494
+ </fo:block>
7495
+ </fo:list-item-label>
7496
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
7497
+ <fo:block>
7498
+
7499
+
7500
+
7501
+
7502
+
7503
+ <xsl:apply-templates/>
7504
+
7505
+ <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
7506
+
7507
+ <xsl:for-each select="./bsi:note">
7508
+ <xsl:call-template name="note"/>
7509
+ </xsl:for-each> -->
7510
+ </fo:block>
7511
+ </fo:list-item-body>
7512
+ </fo:list-item>
7513
+ </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="bookmark_in_fn">
6849
7514
  <xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
6850
7515
  <bookmark><xsl:value-of select="@id"/></bookmark>
6851
7516
  </xsl:for-each>
@@ -6867,7 +7532,7 @@
6867
7532
  <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
6868
7533
  <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
6869
7534
  <xsl:if test="@to">
6870
- <xsl:value-of select="$dash"/>
7535
+ <xsl:value-of select="$en_dash"/>
6871
7536
  <xsl:copy>
6872
7537
  <xsl:copy-of select="@*"/>
6873
7538
  <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
@@ -6892,7 +7557,7 @@
6892
7557
  <xsl:param name="target"/>
6893
7558
  <!-- <node></node> -->
6894
7559
  <xsl:choose>
6895
- <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
7560
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $en_dash) and $remove = 'true'">
6896
7561
  <!-- skip text (i.e. remove it) and process next element -->
6897
7562
  <!-- [removed_<xsl:value-of select="."/>] -->
6898
7563
  <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
@@ -6976,12 +7641,22 @@
6976
7641
  </xsl:variable>
6977
7642
  <xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
6978
7643
  <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
7644
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
7645
+ <fo:block xsl:use-attribute-sets="indexsect-title-style">
7646
+ <!-- Index -->
7647
+ <xsl:apply-templates/>
7648
+ </fo:block>
7649
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']/*[local-name() = 'title']" priority="4">
7650
+ <!-- Letter A, B, C, ... -->
7651
+ <fo:block xsl:use-attribute-sets="indexsect-clause-title-style">
7652
+ <xsl:apply-templates/>
7653
+ </fo:block>
6979
7654
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
6980
7655
  <xsl:apply-templates/>
6981
7656
  <fo:block>
6982
- <xsl:if test="following-sibling::*[local-name() = 'clause']">
6983
- <fo:block> </fo:block>
6984
- </xsl:if>
7657
+ <xsl:if test="following-sibling::*[local-name() = 'clause']">
7658
+ <fo:block> </fo:block>
7659
+ </xsl:if>
6985
7660
  </fo:block>
6986
7661
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
6987
7662
  <xsl:apply-templates/>
@@ -6991,6 +7666,9 @@
6991
7666
 
6992
7667
  <xsl:apply-templates/>
6993
7668
  </fo:block>
7669
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/text()">
7670
+ <!-- to split by '_' and other chars -->
7671
+ <xsl:call-template name="add-zero-spaces-java"/>
6994
7672
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
6995
7673
  <fo:inline id="{@id}" font-size="1pt"/>
6996
7674
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
@@ -7181,27 +7859,47 @@
7181
7859
  <xsl:apply-templates/>
7182
7860
  </fo:inline>
7183
7861
  </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
7862
+
7863
+ <!-- list of footnotes to calculate actual footnotes number -->
7864
+ <xsl:variable name="p_fn_">
7865
+ <xsl:call-template name="get_fn_list"/>
7866
+ </xsl:variable>
7867
+ <xsl:variable name="p_fn" select="xalan:nodeset($p_fn_)"/>
7868
+ <xsl:variable name="gen_id" select="generate-id(.)"/>
7869
+ <xsl:variable name="lang" select="ancestor::*[contains(local-name(), '-standard')]/*[local-name()='bibdata']//*[local-name()='language'][@current = 'true']"/>
7870
+ <!-- fn sequence number in document -->
7871
+ <xsl:variable name="current_fn_number">
7872
+ <xsl:choose>
7873
+ <xsl:when test="@current_fn_number"><xsl:value-of select="@current_fn_number"/></xsl:when> <!-- for BSI -->
7874
+ <xsl:otherwise>
7875
+ <!-- <xsl:value-of select="count($p_fn//fn[@reference = $reference]/preceding-sibling::fn) + 1" /> -->
7876
+ <xsl:value-of select="count($p_fn//fn[@gen_id = $gen_id]/preceding-sibling::fn) + 1"/>
7877
+ </xsl:otherwise>
7878
+ </xsl:choose>
7879
+ </xsl:variable>
7184
7880
  <fo:footnote>
7185
7881
  <xsl:variable name="number">
7186
7882
 
7187
- <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
7883
+ <xsl:value-of select="$current_fn_number"/>
7188
7884
 
7189
7885
  </xsl:variable>
7190
- <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
7191
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
7192
- <xsl:value-of select="$number"/>
7193
-
7886
+
7887
+ <xsl:variable name="current_fn_number_text">
7888
+ <xsl:value-of select="$number"/>
7889
+
7194
7890
  <xsl:text>)</xsl:text>
7195
7891
 
7892
+ </xsl:variable>
7893
+
7894
+ <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
7895
+ <fo:basic-link internal-destination="{$gen_id}" fox:alt-text="footnote {$number}">
7896
+ <xsl:value-of select="$current_fn_number_text"/>
7196
7897
  </fo:basic-link>
7197
7898
  </fo:inline>
7198
7899
  <fo:footnote-body>
7199
7900
  <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
7200
- <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
7201
- <xsl:value-of select="$number"/>
7202
-
7203
- <xsl:text>)</xsl:text>
7204
-
7901
+ <fo:inline id="{$gen_id}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
7902
+ <xsl:value-of select="$current_fn_number_text"/>
7205
7903
  </fo:inline>
7206
7904
  <xsl:apply-templates/>
7207
7905
  </fo:block>
@@ -7327,7 +8025,7 @@
7327
8025
  </fo:table-body>
7328
8026
  </fo:table>
7329
8027
  </fo:block>
7330
- </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
8028
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']" priority="2">
7331
8029
  <fo:table-row min-height="5mm">
7332
8030
  <xsl:apply-templates/>
7333
8031
  </fo:table-row>
@@ -7436,7 +8134,140 @@
7436
8134
  <!-- processing for admonition/p found in the template for 'p' -->
7437
8135
  <xsl:call-template name="paragraph"/>
7438
8136
 
7439
- </xsl:template><xsl:template name="convertDate">
8137
+ </xsl:template><xsl:template match="@*|node()" mode="update_xml_step1">
8138
+ <xsl:copy>
8139
+ <xsl:apply-templates select="@*|node()" mode="update_xml_step1"/>
8140
+ </xsl:copy>
8141
+ </xsl:template><xsl:template match="*[local-name() = 'preface']" mode="update_xml_step1">
8142
+ <xsl:copy>
8143
+ <xsl:copy-of select="@*"/>
8144
+
8145
+ <xsl:variable name="nodes_preface_">
8146
+ <xsl:for-each select="*">
8147
+ <node id="{@id}"/>
8148
+ </xsl:for-each>
8149
+ </xsl:variable>
8150
+ <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
8151
+
8152
+ <xsl:for-each select="*">
8153
+ <xsl:sort select="@displayorder" data-type="number"/>
8154
+
8155
+ <!-- process Section's title -->
8156
+ <xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
8157
+ <xsl:if test="$preceding-sibling_id != ''">
8158
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
8159
+ </xsl:if>
8160
+
8161
+ <xsl:choose>
8162
+ <xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
8163
+ <xsl:otherwise>
8164
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
8165
+ </xsl:otherwise>
8166
+ </xsl:choose>
8167
+
8168
+ </xsl:for-each>
8169
+ </xsl:copy>
8170
+ </xsl:template><xsl:template match="*[local-name() = 'sections']" mode="update_xml_step1">
8171
+ <xsl:copy>
8172
+ <xsl:copy-of select="@*"/>
8173
+
8174
+ <xsl:variable name="nodes_sections_">
8175
+ <xsl:for-each select="*">
8176
+ <node id="{@id}"/>
8177
+ </xsl:for-each>
8178
+ </xsl:variable>
8179
+ <xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
8180
+
8181
+ <!-- move section 'Normative references' inside 'sections' -->
8182
+ <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']]">
8183
+ <xsl:sort select="@displayorder" data-type="number"/>
8184
+
8185
+ <!-- process Section's title -->
8186
+ <xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
8187
+ <xsl:if test="$preceding-sibling_id != ''">
8188
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="update_xml_step1"/>
8189
+ </xsl:if>
8190
+
8191
+ <xsl:choose>
8192
+ <xsl:when test="@type = 'section-title' and not(@displayorder)"><!-- skip, don't copy, because copied in above 'apply-templates' --></xsl:when>
8193
+ <xsl:otherwise>
8194
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
8195
+ </xsl:otherwise>
8196
+ </xsl:choose>
8197
+
8198
+ </xsl:for-each>
8199
+ </xsl:copy>
8200
+ </xsl:template><xsl:template match="*[local-name() = 'bibliography']" mode="update_xml_step1">
8201
+ <xsl:copy>
8202
+ <xsl:copy-of select="@*"/>
8203
+ <!-- copy all elements from bibliography except 'Normative references' (moved to 'sections') -->
8204
+ <xsl:for-each select="*[not(@normative='true') and not(*[*[@normative='true']])]">
8205
+ <xsl:sort select="@displayorder" data-type="number"/>
8206
+ <xsl:apply-templates select="." mode="update_xml_step1"/>
8207
+ </xsl:for-each>
8208
+ </xsl:copy>
8209
+ </xsl:template>
8210
+ <!-- STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
8211
+ <xsl:template match="@*|node()" mode="update_xml_step2">
8212
+ <xsl:copy>
8213
+ <xsl:apply-templates select="@*|node()" mode="update_xml_step2"/>
8214
+ </xsl:copy>
8215
+ </xsl:template>
8216
+
8217
+ <xsl:variable name="localized_string_withdrawn">
8218
+ <xsl:call-template name="getLocalizedString">
8219
+ <xsl:with-param name="key">withdrawn</xsl:with-param>
8220
+ </xsl:call-template>
8221
+ </xsl:variable>
8222
+ <xsl:variable name="localized_string_cancelled_and_replaced">
8223
+ <xsl:variable name="str">
8224
+ <xsl:call-template name="getLocalizedString">
8225
+ <xsl:with-param name="key">cancelled_and_replaced</xsl:with-param>
8226
+ </xsl:call-template>
8227
+ </xsl:variable>
8228
+ <xsl:choose>
8229
+ <xsl:when test="contains($str, '%')"><xsl:value-of select="substring-before($str, '%')"/></xsl:when>
8230
+ <xsl:otherwise><xsl:value-of select="$str"/></xsl:otherwise>
8231
+ </xsl:choose>
8232
+ </xsl:variable>
8233
+
8234
+ <!-- add 'fn' after eref and origin, to reference bibitem with note = 'Withdrawn.' or 'Cancelled and replaced...' -->
8235
+ <xsl:template match="*[local-name() = 'eref'] | *[local-name() = 'origin']" mode="update_xml_step2">
8236
+ <xsl:copy-of select="."/>
8237
+
8238
+ <xsl:variable name="bibitemid" select="@bibitemid"/>
8239
+ <xsl:variable name="local_name" select="local-name()"/>
8240
+ <xsl:variable name="position"><xsl:number count="*[local-name() = $local_name][@bibitemid = $bibitemid]" level="any"/></xsl:variable>
8241
+ <xsl:if test="normalize-space($position) = '1'">
8242
+ <xsl:variable name="fn_text">
8243
+ <xsl:copy-of select="key('bibitems', $bibitemid)[1]/*[local-name() = 'note'][not(@type='Unpublished-Status')][normalize-space() = $localized_string_withdrawn or starts-with(normalize-space(), $localized_string_cancelled_and_replaced)]/node()"/>
8244
+ </xsl:variable>
8245
+ <xsl:if test="normalize-space($fn_text) != ''">
8246
+ <xsl:element name="fn" namespace="{$namespace_full}">
8247
+ <xsl:attribute name="reference">bibitem_<xsl:value-of select="$bibitemid"/></xsl:attribute>
8248
+ <xsl:element name="p" namespace="{$namespace_full}">
8249
+ <xsl:copy-of select="$fn_text"/>
8250
+ </xsl:element>
8251
+ </xsl:element>
8252
+ </xsl:if>
8253
+ </xsl:if>
8254
+ </xsl:template>
8255
+
8256
+ <!-- add @reference for bibitem/note, similar to fn/reference -->
8257
+ <xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" mode="update_xml_step2">
8258
+ <xsl:copy>
8259
+ <xsl:apply-templates select="@*" mode="update_xml_step2"/>
8260
+
8261
+ <xsl:attribute name="reference">
8262
+ <xsl:value-of select="concat('bibitem_', ../@id, '_', count(preceding-sibling::*[local-name() = 'note']))"/>
8263
+ </xsl:attribute>
8264
+
8265
+ <xsl:apply-templates select="node()" mode="update_xml_step2"/>
8266
+ </xsl:copy>
8267
+ </xsl:template>
8268
+
8269
+ <!-- END STEP2: add 'fn' after 'eref' and 'origin', if referenced to bibitem with 'note' = Withdrawn.' or 'Cancelled and replaced...' -->
8270
+ <xsl:template name="convertDate">
7440
8271
  <xsl:param name="date"/>
7441
8272
  <xsl:param name="format" select="'short'"/>
7442
8273
  <xsl:variable name="year" select="substring($date, 1, 4)"/>
@@ -7549,9 +8380,6 @@
7549
8380
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
7550
8381
  </xsl:choose>
7551
8382
  </xsl:template><xsl:template name="addPDFUAmeta">
7552
- <xsl:variable name="lang">
7553
- <xsl:call-template name="getLang"/>
7554
- </xsl:variable>
7555
8383
  <pdf:catalog>
7556
8384
  <pdf:dictionary type="normal" key="ViewerPreferences">
7557
8385
  <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
@@ -7779,10 +8607,12 @@
7779
8607
  <xsl:param name="key"/>
7780
8608
  <xsl:param name="formatted">false</xsl:param>
7781
8609
  <xsl:param name="lang"/>
8610
+ <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
7782
8611
 
7783
8612
  <xsl:variable name="curr_lang">
7784
8613
  <xsl:choose>
7785
8614
  <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
8615
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
7786
8616
  <xsl:otherwise>
7787
8617
  <xsl:call-template name="getLang"/>
7788
8618
  </xsl:otherwise>
@@ -7817,6 +8647,7 @@
7817
8647
  </xsl:otherwise>
7818
8648
  </xsl:choose>
7819
8649
  </xsl:when>
8650
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
7820
8651
  <xsl:otherwise>
7821
8652
  <xsl:variable name="key_">
7822
8653
  <xsl:call-template name="capitalize">
@@ -7886,53 +8717,153 @@
7886
8717
  <xsl:param name="first"/>
7887
8718
  <xsl:if test="$number != ''">
7888
8719
  <xsl:variable name="words">
7889
- <words>
7890
- <word cardinal="1">One-</word>
7891
- <word ordinal="1">First </word>
7892
- <word cardinal="2">Two-</word>
7893
- <word ordinal="2">Second </word>
7894
- <word cardinal="3">Three-</word>
7895
- <word ordinal="3">Third </word>
7896
- <word cardinal="4">Four-</word>
7897
- <word ordinal="4">Fourth </word>
7898
- <word cardinal="5">Five-</word>
7899
- <word ordinal="5">Fifth </word>
7900
- <word cardinal="6">Six-</word>
7901
- <word ordinal="6">Sixth </word>
7902
- <word cardinal="7">Seven-</word>
7903
- <word ordinal="7">Seventh </word>
7904
- <word cardinal="8">Eight-</word>
7905
- <word ordinal="8">Eighth </word>
7906
- <word cardinal="9">Nine-</word>
7907
- <word ordinal="9">Ninth </word>
7908
- <word ordinal="10">Tenth </word>
7909
- <word ordinal="11">Eleventh </word>
7910
- <word ordinal="12">Twelfth </word>
7911
- <word ordinal="13">Thirteenth </word>
7912
- <word ordinal="14">Fourteenth </word>
7913
- <word ordinal="15">Fifteenth </word>
7914
- <word ordinal="16">Sixteenth </word>
7915
- <word ordinal="17">Seventeenth </word>
7916
- <word ordinal="18">Eighteenth </word>
7917
- <word ordinal="19">Nineteenth </word>
7918
- <word cardinal="20">Twenty-</word>
7919
- <word ordinal="20">Twentieth </word>
7920
- <word cardinal="30">Thirty-</word>
7921
- <word ordinal="30">Thirtieth </word>
7922
- <word cardinal="40">Forty-</word>
7923
- <word ordinal="40">Fortieth </word>
7924
- <word cardinal="50">Fifty-</word>
7925
- <word ordinal="50">Fiftieth </word>
7926
- <word cardinal="60">Sixty-</word>
7927
- <word ordinal="60">Sixtieth </word>
7928
- <word cardinal="70">Seventy-</word>
7929
- <word ordinal="70">Seventieth </word>
7930
- <word cardinal="80">Eighty-</word>
7931
- <word ordinal="80">Eightieth </word>
7932
- <word cardinal="90">Ninety-</word>
7933
- <word ordinal="90">Ninetieth </word>
7934
- <word cardinal="100">Hundred-</word>
7935
- <word ordinal="100">Hundredth </word>
8720
+ <words>
8721
+ <xsl:choose>
8722
+ <xsl:when test="$lang = 'fr'"> <!-- https://en.wiktionary.org/wiki/Appendix:French_numbers -->
8723
+ <word cardinal="1">Une-</word>
8724
+ <word ordinal="1">Première </word>
8725
+ <word cardinal="2">Deux-</word>
8726
+ <word ordinal="2">Seconde </word>
8727
+ <word cardinal="3">Trois-</word>
8728
+ <word ordinal="3">Tierce </word>
8729
+ <word cardinal="4">Quatre-</word>
8730
+ <word ordinal="4">Quatrième </word>
8731
+ <word cardinal="5">Cinq-</word>
8732
+ <word ordinal="5">Cinquième </word>
8733
+ <word cardinal="6">Six-</word>
8734
+ <word ordinal="6">Sixième </word>
8735
+ <word cardinal="7">Sept-</word>
8736
+ <word ordinal="7">Septième </word>
8737
+ <word cardinal="8">Huit-</word>
8738
+ <word ordinal="8">Huitième </word>
8739
+ <word cardinal="9">Neuf-</word>
8740
+ <word ordinal="9">Neuvième </word>
8741
+ <word ordinal="10">Dixième </word>
8742
+ <word ordinal="11">Onzième </word>
8743
+ <word ordinal="12">Douzième </word>
8744
+ <word ordinal="13">Treizième </word>
8745
+ <word ordinal="14">Quatorzième </word>
8746
+ <word ordinal="15">Quinzième </word>
8747
+ <word ordinal="16">Seizième </word>
8748
+ <word ordinal="17">Dix-septième </word>
8749
+ <word ordinal="18">Dix-huitième </word>
8750
+ <word ordinal="19">Dix-neuvième </word>
8751
+ <word cardinal="20">Vingt-</word>
8752
+ <word ordinal="20">Vingtième </word>
8753
+ <word cardinal="30">Trente-</word>
8754
+ <word ordinal="30">Trentième </word>
8755
+ <word cardinal="40">Quarante-</word>
8756
+ <word ordinal="40">Quarantième </word>
8757
+ <word cardinal="50">Cinquante-</word>
8758
+ <word ordinal="50">Cinquantième </word>
8759
+ <word cardinal="60">Soixante-</word>
8760
+ <word ordinal="60">Soixantième </word>
8761
+ <word cardinal="70">Septante-</word>
8762
+ <word ordinal="70">Septantième </word>
8763
+ <word cardinal="80">Huitante-</word>
8764
+ <word ordinal="80">Huitantième </word>
8765
+ <word cardinal="90">Nonante-</word>
8766
+ <word ordinal="90">Nonantième </word>
8767
+ <word cardinal="100">Cent-</word>
8768
+ <word ordinal="100">Centième </word>
8769
+ </xsl:when>
8770
+ <xsl:when test="$lang = 'ru'">
8771
+ <word cardinal="1">Одна-</word>
8772
+ <word ordinal="1">Первое </word>
8773
+ <word cardinal="2">Две-</word>
8774
+ <word ordinal="2">Второе </word>
8775
+ <word cardinal="3">Три-</word>
8776
+ <word ordinal="3">Третье </word>
8777
+ <word cardinal="4">Четыре-</word>
8778
+ <word ordinal="4">Четвертое </word>
8779
+ <word cardinal="5">Пять-</word>
8780
+ <word ordinal="5">Пятое </word>
8781
+ <word cardinal="6">Шесть-</word>
8782
+ <word ordinal="6">Шестое </word>
8783
+ <word cardinal="7">Семь-</word>
8784
+ <word ordinal="7">Седьмое </word>
8785
+ <word cardinal="8">Восемь-</word>
8786
+ <word ordinal="8">Восьмое </word>
8787
+ <word cardinal="9">Девять-</word>
8788
+ <word ordinal="9">Девятое </word>
8789
+ <word ordinal="10">Десятое </word>
8790
+ <word ordinal="11">Одиннадцатое </word>
8791
+ <word ordinal="12">Двенадцатое </word>
8792
+ <word ordinal="13">Тринадцатое </word>
8793
+ <word ordinal="14">Четырнадцатое </word>
8794
+ <word ordinal="15">Пятнадцатое </word>
8795
+ <word ordinal="16">Шестнадцатое </word>
8796
+ <word ordinal="17">Семнадцатое </word>
8797
+ <word ordinal="18">Восемнадцатое </word>
8798
+ <word ordinal="19">Девятнадцатое </word>
8799
+ <word cardinal="20">Двадцать-</word>
8800
+ <word ordinal="20">Двадцатое </word>
8801
+ <word cardinal="30">Тридцать-</word>
8802
+ <word ordinal="30">Тридцатое </word>
8803
+ <word cardinal="40">Сорок-</word>
8804
+ <word ordinal="40">Сороковое </word>
8805
+ <word cardinal="50">Пятьдесят-</word>
8806
+ <word ordinal="50">Пятидесятое </word>
8807
+ <word cardinal="60">Шестьдесят-</word>
8808
+ <word ordinal="60">Шестидесятое </word>
8809
+ <word cardinal="70">Семьдесят-</word>
8810
+ <word ordinal="70">Семидесятое </word>
8811
+ <word cardinal="80">Восемьдесят-</word>
8812
+ <word ordinal="80">Восьмидесятое </word>
8813
+ <word cardinal="90">Девяносто-</word>
8814
+ <word ordinal="90">Девяностое </word>
8815
+ <word cardinal="100">Сто-</word>
8816
+ <word ordinal="100">Сотое </word>
8817
+ </xsl:when>
8818
+ <xsl:otherwise> <!-- default english -->
8819
+ <word cardinal="1">One-</word>
8820
+ <word ordinal="1">First </word>
8821
+ <word cardinal="2">Two-</word>
8822
+ <word ordinal="2">Second </word>
8823
+ <word cardinal="3">Three-</word>
8824
+ <word ordinal="3">Third </word>
8825
+ <word cardinal="4">Four-</word>
8826
+ <word ordinal="4">Fourth </word>
8827
+ <word cardinal="5">Five-</word>
8828
+ <word ordinal="5">Fifth </word>
8829
+ <word cardinal="6">Six-</word>
8830
+ <word ordinal="6">Sixth </word>
8831
+ <word cardinal="7">Seven-</word>
8832
+ <word ordinal="7">Seventh </word>
8833
+ <word cardinal="8">Eight-</word>
8834
+ <word ordinal="8">Eighth </word>
8835
+ <word cardinal="9">Nine-</word>
8836
+ <word ordinal="9">Ninth </word>
8837
+ <word ordinal="10">Tenth </word>
8838
+ <word ordinal="11">Eleventh </word>
8839
+ <word ordinal="12">Twelfth </word>
8840
+ <word ordinal="13">Thirteenth </word>
8841
+ <word ordinal="14">Fourteenth </word>
8842
+ <word ordinal="15">Fifteenth </word>
8843
+ <word ordinal="16">Sixteenth </word>
8844
+ <word ordinal="17">Seventeenth </word>
8845
+ <word ordinal="18">Eighteenth </word>
8846
+ <word ordinal="19">Nineteenth </word>
8847
+ <word cardinal="20">Twenty-</word>
8848
+ <word ordinal="20">Twentieth </word>
8849
+ <word cardinal="30">Thirty-</word>
8850
+ <word ordinal="30">Thirtieth </word>
8851
+ <word cardinal="40">Forty-</word>
8852
+ <word ordinal="40">Fortieth </word>
8853
+ <word cardinal="50">Fifty-</word>
8854
+ <word ordinal="50">Fiftieth </word>
8855
+ <word cardinal="60">Sixty-</word>
8856
+ <word ordinal="60">Sixtieth </word>
8857
+ <word cardinal="70">Seventy-</word>
8858
+ <word ordinal="70">Seventieth </word>
8859
+ <word cardinal="80">Eighty-</word>
8860
+ <word ordinal="80">Eightieth </word>
8861
+ <word cardinal="90">Ninety-</word>
8862
+ <word ordinal="90">Ninetieth </word>
8863
+ <word cardinal="100">Hundred-</word>
8864
+ <word ordinal="100">Hundredth </word>
8865
+ </xsl:otherwise>
8866
+ </xsl:choose>
7936
8867
  </words>
7937
8868
  </xsl:variable>
7938
8869
 
@@ -8006,4 +8937,18 @@
8006
8937
  <xsl:otherwise>_</xsl:otherwise>
8007
8938
  </xsl:choose>
8008
8939
  </xsl:attribute>
8940
+ </xsl:template><xsl:template name="substring-after-last">
8941
+ <xsl:param name="value"/>
8942
+ <xsl:param name="delimiter"/>
8943
+ <xsl:choose>
8944
+ <xsl:when test="contains($value, $delimiter)">
8945
+ <xsl:call-template name="substring-after-last">
8946
+ <xsl:with-param name="value" select="substring-after($value, $delimiter)"/>
8947
+ <xsl:with-param name="delimiter" select="$delimiter"/>
8948
+ </xsl:call-template>
8949
+ </xsl:when>
8950
+ <xsl:otherwise>
8951
+ <xsl:value-of select="$value"/>
8952
+ </xsl:otherwise>
8953
+ </xsl:choose>
8009
8954
  </xsl:template></xsl:stylesheet>