metanorma-cc 2.0.0 → 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,22 +1,9 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:csd="https://www.metanorma.org/ns/csd" xmlns:mathml="http://www.w3.org/1998/Math/MathML" xmlns:xalan="http://xml.apache.org/xalan" xmlns:fox="http://xmlgraphics.apache.org/fop/extensions" xmlns:java="http://xml.apache.org/xalan/java" exclude-result-prefixes="java" version="1.0">
2
2
 
3
3
  <xsl:output version="1.0" method="xml" encoding="UTF-8" indent="no"/>
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
4
 
10
5
  <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"/>
11
6
 
12
- <xsl:variable name="pageWidth" select="210"/>
13
- <xsl:variable name="pageHeight" select="297"/>
14
- <xsl:variable name="marginLeftRight1" select="19"/>
15
- <xsl:variable name="marginLeftRight2" select="19"/>
16
- <xsl:variable name="marginTop" select="20.2"/>
17
- <xsl:variable name="marginBottom" select="20.3"/>
18
-
19
-
20
7
 
21
8
 
22
9
  <xsl:variable name="debug">false</xsl:variable>
@@ -40,13 +27,10 @@
40
27
  </contents>
41
28
  </xsl:variable>
42
29
 
43
- <xsl:variable name="lang">
44
- <xsl:call-template name="getLang"/>
45
- </xsl:variable>
46
30
 
47
31
  <xsl:template match="/">
48
32
  <xsl:call-template name="namespaceCheck"/>
49
- <fo:root font-family="Source Sans Pro, STIX Two Math, Source Han Sans" font-size="10.5pt" xml:lang="{$lang}">
33
+ <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}">
50
34
  <fo:layout-master-set>
51
35
  <!-- Cover page -->
52
36
  <fo:simple-page-master master-name="cover-page" page-width="{$pageWidth}mm" page-height="{$pageHeight}mm">
@@ -317,10 +301,7 @@
317
301
  <!-- ============================= -->
318
302
  <!-- CONTENTS -->
319
303
  <!-- ============================= -->
320
- <xsl:template match="node()" mode="contents">
321
- <xsl:apply-templates mode="contents"/>
322
- </xsl:template>
323
-
304
+
324
305
  <!-- element with title -->
325
306
  <xsl:template match="*[csd:title]" mode="contents">
326
307
  <xsl:variable name="level">
@@ -369,56 +350,6 @@
369
350
  <!-- ============================= -->
370
351
 
371
352
 
372
- <xsl:template match="csd:license-statement//csd:title">
373
- <xsl:variable name="level">
374
- <xsl:call-template name="getLevel"/>
375
- </xsl:variable>
376
- <fo:block text-align="center" font-weight="bold" role="H{$level}">
377
- <xsl:apply-templates/>
378
- </fo:block>
379
- </xsl:template>
380
-
381
- <xsl:template match="csd:license-statement//csd:p">
382
- <fo:block margin-left="1.5mm" margin-right="1.5mm">
383
- <xsl:if test="following-sibling::csd:p">
384
- <xsl:attribute name="margin-top">6pt</xsl:attribute>
385
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
386
- </xsl:if>
387
- <xsl:apply-templates/>
388
- </fo:block>
389
- </xsl:template>
390
-
391
- <!-- <fo:block margin-bottom="12pt">© ISO 2019, Published in Switzerland.</fo:block>
392
- <fo:block font-size="10pt" margin-bottom="12pt">All rights reserved. Unless otherwise specified, no part of this publication may be reproduced or utilized otherwise in any form or by any means, electronic or mechanical, including photocopying, or posting on the internet or an intranet, without prior written permission. Permission can be requested from either ISO at the address below or ISO’s member body in the country of the requester.</fo:block>
393
- <fo:block font-size="10pt" text-indent="7.1mm">
394
- <fo:block>ISO copyright office</fo:block>
395
- <fo:block>Ch. de Blandonnet 8 • CP 401</fo:block>
396
- <fo:block>CH-1214 Vernier, Geneva, Switzerland</fo:block>
397
- <fo:block>Tel. + 41 22 749 01 11</fo:block>
398
- <fo:block>Fax + 41 22 749 09 47</fo:block>
399
- <fo:block>copyright@iso.org</fo:block>
400
- <fo:block>www.iso.org</fo:block>
401
- </fo:block> -->
402
-
403
- <xsl:template match="csd:copyright-statement//csd:p">
404
- <fo:block>
405
- <xsl:if test="preceding-sibling::csd:p">
406
- <!-- <xsl:attribute name="font-size">10pt</xsl:attribute> -->
407
- </xsl:if>
408
- <xsl:if test="following-sibling::csd:p">
409
- <!-- <xsl:attribute name="margin-bottom">12pt</xsl:attribute> -->
410
- <xsl:attribute name="margin-bottom">3pt</xsl:attribute>
411
- </xsl:if>
412
- <xsl:if test="not(following-sibling::csd:p)">
413
- <!-- <xsl:attribute name="margin-left">7.1mm</xsl:attribute> -->
414
- <xsl:attribute name="margin-left">4mm</xsl:attribute>
415
- </xsl:if>
416
- <xsl:apply-templates/>
417
- </fo:block>
418
- </xsl:template>
419
-
420
-
421
-
422
353
  <xsl:template match="csd:title" name="title">
423
354
 
424
355
  <xsl:variable name="level">
@@ -460,7 +391,7 @@
460
391
  </xsl:template>
461
392
 
462
393
 
463
- <xsl:template match="csd:p">
394
+ <xsl:template match="csd:p" name="paragraph">
464
395
  <xsl:param name="inline" select="'false'"/>
465
396
  <xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
466
397
  <xsl:variable name="element-name">
@@ -507,154 +438,7 @@
507
438
  <xsl:apply-templates/>
508
439
  </xsl:template>
509
440
 
510
-
511
- <xsl:template match="csd:bibitem">
512
- <fo:block id="{@id}" margin-bottom="6pt"> <!-- 12 pt -->
513
- <xsl:call-template name="processBibitem"/>
514
- </fo:block>
515
- </xsl:template>
516
-
517
-
518
- <xsl:template match="csd:bibitem/csd:note" priority="2">
519
- <fo:footnote>
520
- <xsl:variable name="number">
521
- <xsl:choose>
522
- <xsl:when test="ancestor::csd:references[preceding-sibling::csd:references]">
523
- <xsl:number level="any" count="csd:references[preceding-sibling::csd:references]//csd:bibitem/csd:note"/>
524
- </xsl:when>
525
- <xsl:otherwise>
526
- <xsl:number level="any" count="csd:bibitem/csd:note"/>
527
- </xsl:otherwise>
528
- </xsl:choose>
529
- </xsl:variable>
530
- <fo:inline font-size="65%" keep-with-previous.within-line="always" vertical-align="super"> <!-- 60% baseline-shift="35%" -->
531
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
532
- <xsl:value-of select="$number"/><!-- <xsl:text>)</xsl:text> -->
533
- </fo:basic-link>
534
- </fo:inline>
535
- <fo:footnote-body>
536
- <fo:block font-size="10pt" margin-bottom="12pt" start-indent="0pt">
537
- <fo:inline id="{generate-id()}" keep-with-next.within-line="always" font-size="60%" vertical-align="super"><!-- baseline-shift="30%" padding-right="9mm" alignment-baseline="hanging" -->
538
- <xsl:value-of select="$number"/><!-- <xsl:text>)</xsl:text> -->
539
- </fo:inline>
540
- <xsl:apply-templates/>
541
- </fo:block>
542
- </fo:footnote-body>
543
- </fo:footnote>
544
- </xsl:template>
545
-
546
-
547
-
548
- <xsl:template match="csd:ul | csd:ol" mode="ul_ol">
549
- <fo:list-block provisional-distance-between-starts="6.5mm" margin-bottom="12pt">
550
- <xsl:if test="ancestor::csd:ol">
551
- <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
552
- </xsl:if>
553
- <xsl:apply-templates/>
554
- </fo:list-block>
555
- </xsl:template>
556
-
557
- <xsl:template match="csd:li">
558
- <fo:list-item>
559
- <fo:list-item-label end-indent="label-end()">
560
- <fo:block>
561
- <xsl:choose>
562
- <xsl:when test="local-name(..) = 'ul'">
563
- <xsl:call-template name="setULLabel"/>
564
- </xsl:when>
565
- <xsl:otherwise> <!-- for ordered lists -->
566
- <xsl:choose>
567
- <xsl:when test="../@type = 'arabic'">
568
- <xsl:number format="a)" lang="en"/>
569
- </xsl:when>
570
- <xsl:when test="../@type = 'alphabet'">
571
- <xsl:number format="1)"/>
572
- </xsl:when>
573
- <xsl:otherwise>
574
- <xsl:number format="1."/>
575
- </xsl:otherwise>
576
- </xsl:choose>
577
- </xsl:otherwise>
578
- </xsl:choose>
579
- </fo:block>
580
- </fo:list-item-label>
581
- <fo:list-item-body start-indent="body-start()">
582
- <fo:block>
583
- <xsl:apply-templates/>
584
- </fo:block>
585
- </fo:list-item-body>
586
- </fo:list-item>
587
- </xsl:template>
588
441
 
589
-
590
- <xsl:template match="csd:preferred">
591
- <xsl:variable name="level">
592
- <xsl:call-template name="getLevel"/>
593
- </xsl:variable>
594
- <xsl:variable name="font-size">
595
- <xsl:choose>
596
- <xsl:when test="$level &gt;= 3">11pt</xsl:when>
597
- <xsl:otherwise>12pt</xsl:otherwise>
598
- </xsl:choose>
599
- </xsl:variable>
600
- <xsl:variable name="levelTerm">
601
- <xsl:call-template name="getLevelTermName"/>
602
- </xsl:variable>
603
- <fo:block font-size="{$font-size}" line-height="1.1" role="H{$levelTerm}">
604
- <fo:block font-weight="bold" keep-with-next="always">
605
- <xsl:apply-templates select="ancestor::csd:term[1]/csd:name" mode="presentation"/>
606
- </fo:block>
607
- <fo:block font-weight="bold" keep-with-next="always">
608
- <xsl:call-template name="setStyle_preferred"/>
609
- <xsl:apply-templates/>
610
- </fo:block>
611
- </fo:block>
612
- </xsl:template>
613
-
614
-
615
-
616
-
617
- <!-- <xsl:template match="csd:references[@id = '_bibliography']"> -->
618
- <xsl:template match="csd:references[not(@normative='true')]">
619
- <fo:block break-after="page"/>
620
- <fo:block id="{@id}">
621
- <xsl:apply-templates/>
622
- </fo:block>
623
- </xsl:template>
624
-
625
-
626
- <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
627
- <!-- <xsl:template match="csd:references[@id = '_bibliography']/csd:bibitem"> -->
628
- <xsl:template match="csd:references[not(@normative='true')]/csd:bibitem">
629
- <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="12mm">
630
- <fo:list-item>
631
- <fo:list-item-label end-indent="label-end()">
632
- <fo:block>
633
- <fo:inline id="{@id}">
634
- <xsl:value-of select="*[local-name()='docidentifier'][@type = 'metanorma-ordinal']"/>
635
- <xsl:if test="not(*[local-name()='docidentifier'][@type = 'metanorma-ordinal'])">
636
- <xsl:number format="[1]"/>
637
- </xsl:if>
638
- </fo:inline>
639
- </fo:block>
640
- </fo:list-item-label>
641
- <fo:list-item-body start-indent="body-start()">
642
- <fo:block>
643
- <xsl:call-template name="processBibitem"/>
644
- </fo:block>
645
- </fo:list-item-body>
646
- </fo:list-item>
647
- </fo:list-block>
648
- </xsl:template>
649
-
650
- <!-- <xsl:template match="csd:references[@id = '_bibliography']/csd:bibitem/csd:title"> -->
651
- <xsl:template match="csd:references/csd:bibitem/csd:title">
652
- <fo:inline font-style="italic">
653
- <xsl:apply-templates/>
654
- </fo:inline>
655
- </xsl:template>
656
-
657
-
658
442
  <xsl:template match="csd:xref" priority="2">
659
443
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">
660
444
  <xsl:if test="not(starts-with(text(), 'Figure') or starts-with(text(), 'Table'))">
@@ -665,42 +449,6 @@
665
449
  </fo:basic-link>
666
450
  </xsl:template>
667
451
 
668
-
669
-
670
- <xsl:template match="csd:admonition">
671
- <fo:block margin-bottom="12pt" font-weight="bold"> <!-- text-align="center" -->
672
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@type))"/>
673
- <xsl:text> — </xsl:text>
674
- <xsl:apply-templates/>
675
- </fo:block>
676
- </xsl:template>
677
-
678
-
679
-
680
- <xsl:template match="csd:formula/csd:stem">
681
- <fo:block margin-top="6pt" margin-bottom="12pt">
682
- <fo:table table-layout="fixed" width="100%">
683
- <fo:table-column column-width="95%"/>
684
- <fo:table-column column-width="5%"/>
685
- <fo:table-body>
686
- <fo:table-row>
687
- <fo:table-cell display-align="center">
688
- <fo:block text-align="left" margin-left="5mm">
689
- <xsl:apply-templates/>
690
- </fo:block>
691
- </fo:table-cell>
692
- <fo:table-cell display-align="center">
693
- <fo:block text-align="right">
694
- <xsl:apply-templates select="../csd:name" mode="presentation"/>
695
- </fo:block>
696
- </fo:table-cell>
697
- </fo:table-row>
698
- </fo:table-body>
699
- </fo:table>
700
- </fo:block>
701
- </xsl:template>
702
-
703
-
704
452
 
705
453
  <xsl:template name="insertHeaderFooter">
706
454
  <fo:static-content flow-name="header-even" role="artifact">
@@ -756,21 +504,35 @@
756
504
  </xsl:template>
757
505
 
758
506
 
759
- <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
507
+ <xsl:param name="svg_images"/><xsl:variable name="images" select="document($svg_images)"/><xsl:param name="basepath"/><xsl:param name="external_index"/><xsl:param name="syntax-highlight">false</xsl:param><xsl:variable name="lang">
508
+ <xsl:call-template name="getLang"/>
509
+ </xsl:variable><xsl:variable name="pageWidth_">
510
+ 210
511
+ </xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
512
+ 297
513
+ </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="marginLeftRight1_">
514
+ 19
515
+ </xsl:variable><xsl:variable name="marginLeftRight1" select="normalize-space($marginLeftRight1_)"/><xsl:variable name="marginLeftRight2_">
516
+ 19
517
+ </xsl:variable><xsl:variable name="marginLeftRight2" select="normalize-space($marginLeftRight2_)"/><xsl:variable name="marginTop_">
518
+ 20.2
519
+ </xsl:variable><xsl:variable name="marginTop" select="normalize-space($marginTop_)"/><xsl:variable name="marginBottom_">
520
+ 20.3
521
+ </xsl:variable><xsl:variable name="marginBottom" select="normalize-space($marginBottom_)"/><xsl:variable name="titles_">
760
522
 
761
523
  <title-edition lang="en">
762
524
 
763
- <xsl:text>Edition </xsl:text>
764
-
765
-
525
+ <xsl:text>Edition </xsl:text>
526
+
766
527
  </title-edition>
767
528
 
768
529
  <title-edition lang="fr">
769
-
770
- <xsl:text>Édition </xsl:text>
771
-
530
+ <xsl:text>Édition </xsl:text>
772
531
  </title-edition>
773
532
 
533
+ <title-edition lang="ru">
534
+ <xsl:text>Издание </xsl:text>
535
+ </title-edition>
774
536
 
775
537
  <!-- These titles of Table of contents renders different than determined in localized-strings -->
776
538
  <title-toc lang="en">
@@ -781,14 +543,13 @@
781
543
 
782
544
  </title-toc>
783
545
  <title-toc lang="fr">
546
+ <xsl:text>Sommaire</xsl:text>
547
+ </title-toc>
548
+ <title-toc lang="zh">
784
549
 
785
- <xsl:text>Sommaire</xsl:text>
786
-
550
+ <xsl:text>Contents</xsl:text>
551
+
787
552
  </title-toc>
788
-
789
- <title-toc lang="zh">Contents</title-toc>
790
-
791
-
792
553
 
793
554
  <title-descriptors lang="en">Descriptors</title-descriptors>
794
555
 
@@ -801,15 +562,15 @@
801
562
 
802
563
 
803
564
 
804
- </title-part>
805
- <title-part lang="zh">第 # 部分:</title-part>
806
-
807
- <title-subpart lang="en">
565
+ </title-part>
566
+ <title-part lang="ru">
808
567
 
809
- </title-subpart>
810
- <title-subpart lang="fr">
811
568
 
812
- </title-subpart>
569
+ </title-part>
570
+ <title-part lang="zh">第 # 部分:</title-part>
571
+
572
+ <title-subpart lang="en">Sub-part #</title-subpart>
573
+ <title-subpart lang="fr">Partie de sub #</title-subpart>
813
574
 
814
575
  <title-list-tables lang="en">List of Tables</title-list-tables>
815
576
 
@@ -821,13 +582,14 @@
821
582
 
822
583
  <title-summary lang="en">Summary</title-summary>
823
584
 
585
+ <title-continued lang="ru">(продолжение)</title-continued>
824
586
  <title-continued lang="en">(continued)</title-continued>
825
587
  <title-continued lang="fr">(continué)</title-continued>
826
588
 
827
- </xsl:variable><xsl:variable name="bibdata">
589
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
828
590
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
829
591
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
830
- </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
592
+ </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">
831
593
  <xsl:param name="name"/>
832
594
  <xsl:param name="lang"/>
833
595
  <xsl:variable name="lang_">
@@ -850,7 +612,71 @@
850
612
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
851
613
  </xsl:otherwise>
852
614
  </xsl:choose>
853
- </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">
615
+ </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">
616
+
617
+
618
+
619
+
620
+ <xsl:attribute name="font-family">Source Sans Pro, STIX Two Math, Source Han Sans</xsl:attribute>
621
+ <xsl:attribute name="font-size">10.5pt</xsl:attribute>
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-style">
636
+
637
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-title-style">
638
+
639
+
640
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-p-style">
641
+
642
+
643
+
644
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-style">
645
+
646
+
647
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-title-style">
648
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
649
+
650
+
651
+
652
+
653
+
654
+
655
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-p-style">
656
+
657
+
658
+
659
+
660
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-style">
661
+
662
+
663
+
664
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-title-style">
665
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
666
+
667
+
668
+
669
+
670
+
671
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-p-style">
672
+
673
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-style">
674
+
675
+
676
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-title-style">
677
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
678
+
679
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-p-style">
854
680
 
855
681
 
856
682
  </xsl:attribute-set><xsl:attribute-set name="link-style">
@@ -862,6 +688,9 @@
862
688
 
863
689
 
864
690
 
691
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-container-style">
692
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
693
+
865
694
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
866
695
  <xsl:attribute name="white-space">pre</xsl:attribute>
867
696
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
@@ -875,10 +704,17 @@
875
704
 
876
705
 
877
706
 
707
+
708
+
709
+
710
+
711
+
878
712
 
879
713
 
880
714
 
881
715
 
716
+
717
+
882
718
  </xsl:attribute-set><xsl:attribute-set name="permission-style">
883
719
 
884
720
  </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
@@ -941,9 +777,9 @@
941
777
 
942
778
 
943
779
  </xsl:attribute-set><xsl:attribute-set name="example-name-style">
944
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
945
780
 
946
-
781
+
782
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
947
783
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
948
784
  <xsl:attribute name="font-weight">bold</xsl:attribute>
949
785
 
@@ -956,6 +792,7 @@
956
792
 
957
793
 
958
794
 
795
+
959
796
 
960
797
 
961
798
 
@@ -990,38 +827,232 @@
990
827
 
991
828
  </xsl:attribute-set><xsl:variable name="table-border_">
992
829
 
993
- </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-name-style">
994
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
995
-
830
+ </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
831
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
832
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
996
833
 
997
- <xsl:attribute name="font-weight">bold</xsl:attribute>
998
- <xsl:attribute name="text-align">center</xsl:attribute>
999
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1000
834
 
1001
835
 
1002
836
 
1003
837
 
1004
-
838
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1005
839
 
1006
840
 
1007
841
 
1008
-
1009
842
 
1010
843
 
1011
844
 
1012
845
 
1013
- </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
1014
846
 
1015
- </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1016
-
1017
- <xsl:attribute name="font-size">12pt</xsl:attribute>
1018
- <xsl:attribute name="font-weight">bold</xsl:attribute>
1019
- <xsl:attribute name="margin-top">12pt</xsl:attribute>
1020
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1021
847
 
1022
848
 
1023
849
 
1024
- </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
850
+
851
+
852
+
853
+
854
+
855
+
856
+ </xsl:attribute-set><xsl:attribute-set name="table-style">
857
+ <xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
858
+ <xsl:attribute name="table-layout">fixed</xsl:attribute>
859
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
860
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+
882
+
883
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
884
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
885
+
886
+
887
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
888
+ <xsl:attribute name="text-align">center</xsl:attribute>
889
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+ </xsl:attribute-set><xsl:attribute-set name="table-row-style">
904
+ <xsl:attribute name="min-height">4mm</xsl:attribute>
905
+
906
+
907
+
908
+
909
+ </xsl:attribute-set><xsl:attribute-set name="table-header-row-style" use-attribute-sets="table-row-style">
910
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+
919
+
920
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-row-style" use-attribute-sets="table-row-style">
921
+
922
+
923
+
924
+ </xsl:attribute-set><xsl:attribute-set name="table-body-row-style" use-attribute-sets="table-row-style">
925
+
926
+ </xsl:attribute-set><xsl:attribute-set name="table-header-cell-style">
927
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
928
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
929
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
930
+ <xsl:attribute name="display-align">center</xsl:attribute>
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+ </xsl:attribute-set><xsl:attribute-set name="table-cell-style">
945
+ <xsl:attribute name="display-align">center</xsl:attribute>
946
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
947
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
948
+
949
+
950
+
951
+
952
+
953
+
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
962
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
963
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
964
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
965
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
966
+
967
+
968
+
969
+
970
+
971
+
972
+
973
+
974
+
975
+
976
+
977
+ </xsl:attribute-set><xsl:attribute-set name="table-note-style">
978
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
979
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
980
+
981
+
982
+
983
+
984
+
985
+
986
+
987
+
988
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-style">
989
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
990
+
991
+
992
+
993
+
994
+
995
+
996
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
997
+ <xsl:attribute name="font-size">80%</xsl:attribute>
998
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
999
+
1000
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+ </xsl:attribute-set><xsl:attribute-set name="fn-container-body-style">
1014
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1015
+ <xsl:attribute name="start-indent">0</xsl:attribute>
1016
+
1017
+
1018
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-body-style">
1019
+
1020
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-number-style">
1021
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1022
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
1023
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1024
+
1025
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-body-style">
1026
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1027
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1028
+
1029
+ </xsl:attribute-set><xsl:attribute-set name="dt-row-style">
1030
+
1031
+
1032
+ </xsl:attribute-set><xsl:attribute-set name="dt-style">
1033
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1034
+
1035
+ <xsl:attribute name="margin-left">7mm</xsl:attribute>
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1047
+
1048
+ <xsl:attribute name="font-size">12pt</xsl:attribute>
1049
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1050
+ <xsl:attribute name="margin-top">12pt</xsl:attribute>
1051
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1052
+
1053
+
1054
+
1055
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1025
1056
 
1026
1057
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1027
1058
  <xsl:attribute name="margin-top">8pt</xsl:attribute>
@@ -1082,6 +1113,7 @@
1082
1113
 
1083
1114
 
1084
1115
  </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
1116
+ <xsl:attribute name="padding-right">2mm</xsl:attribute>
1085
1117
 
1086
1118
 
1087
1119
 
@@ -1119,12 +1151,11 @@
1119
1151
 
1120
1152
 
1121
1153
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1122
- <xsl:attribute name="role">BlockQuote</xsl:attribute>
1154
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
1155
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
1123
1156
 
1124
1157
 
1125
1158
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1126
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
1127
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
1128
1159
 
1129
1160
 
1130
1161
 
@@ -1132,10 +1163,8 @@
1132
1163
 
1133
1164
 
1134
1165
  </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1166
+ <xsl:attribute name="text-align">right</xsl:attribute>
1135
1167
 
1136
-
1137
- <xsl:attribute name="text-align">right</xsl:attribute>
1138
-
1139
1168
 
1140
1169
  </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1141
1170
 
@@ -1148,6 +1177,9 @@
1148
1177
 
1149
1178
 
1150
1179
 
1180
+ </xsl:attribute-set><xsl:attribute-set name="termsource-text-style">
1181
+
1182
+
1151
1183
  </xsl:attribute-set><xsl:attribute-set name="origin-style">
1152
1184
 
1153
1185
 
@@ -1155,6 +1187,11 @@
1155
1187
 
1156
1188
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1157
1189
 
1190
+ </xsl:attribute-set><xsl:attribute-set name="term-name-style">
1191
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1192
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1193
+ </xsl:attribute-set><xsl:attribute-set name="figure-style">
1194
+
1158
1195
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1159
1196
 
1160
1197
 
@@ -1183,6 +1220,36 @@
1183
1220
 
1184
1221
 
1185
1222
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1223
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1224
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-block-style">
1232
+ <xsl:attribute name="text-align">center</xsl:attribute>
1233
+
1234
+
1235
+
1236
+ <xsl:attribute name="text-align">left</xsl:attribute>
1237
+ <xsl:attribute name="margin-left">5mm</xsl:attribute>
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-number-style">
1248
+ <xsl:attribute name="text-align">right</xsl:attribute>
1249
+
1250
+
1251
+
1252
+
1186
1253
 
1187
1254
  </xsl:attribute-set><xsl:attribute-set name="image-style">
1188
1255
  <xsl:attribute name="text-align">center</xsl:attribute>
@@ -1218,6 +1285,20 @@
1218
1285
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1219
1286
  <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1220
1287
 
1288
+ </xsl:attribute-set><xsl:attribute-set name="preferred-block-style">
1289
+
1290
+ <xsl:attribute name="line-height">1.1</xsl:attribute>
1291
+
1292
+
1293
+
1294
+
1295
+
1296
+
1297
+ </xsl:attribute-set><xsl:attribute-set name="preferred-term-style">
1298
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1299
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1300
+
1301
+
1221
1302
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
1222
1303
 
1223
1304
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -1236,13 +1317,19 @@
1236
1317
  </xsl:attribute-set><xsl:variable name="color-added-text">
1237
1318
  <xsl:text>rgb(0, 255, 0)</xsl:text>
1238
1319
  </xsl:variable><xsl:attribute-set name="add-style">
1239
- <xsl:attribute name="color">red</xsl:attribute>
1240
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1241
- <!-- <xsl:attribute name="color">black</xsl:attribute>
1242
- <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
1243
- <xsl:attribute name="padding-top">1mm</xsl:attribute>
1244
- <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
1245
- </xsl:attribute-set><xsl:variable name="color-deleted-text">
1320
+
1321
+ <xsl:attribute name="color">red</xsl:attribute>
1322
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1323
+ <!-- <xsl:attribute name="color">black</xsl:attribute>
1324
+ <xsl:attribute name="background-color"><xsl:value-of select="$color-added-text"/></xsl:attribute>
1325
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
1326
+ <xsl:attribute name="padding-bottom">0.5mm</xsl:attribute> -->
1327
+
1328
+ </xsl:attribute-set><xsl:variable name="add-style">
1329
+ <add-style xsl:use-attribute-sets="add-style"/>
1330
+ </xsl:variable><xsl:template name="append_add-style">
1331
+ <xsl:copy-of select="xalan:nodeset($add-style)/add-style/@*"/>
1332
+ </xsl:template><xsl:variable name="color-deleted-text">
1246
1333
  <xsl:text>red</xsl:text>
1247
1334
  </xsl:variable><xsl:attribute-set name="del-style">
1248
1335
  <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute>
@@ -1253,8 +1340,49 @@
1253
1340
 
1254
1341
  </xsl:attribute-set><xsl:attribute-set name="list-style">
1255
1342
 
1343
+
1344
+
1345
+ <xsl:attribute name="provisional-distance-between-starts">6.5mm</xsl:attribute>
1346
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+ </xsl:attribute-set><xsl:attribute-set name="list-item-style">
1363
+
1364
+
1365
+ </xsl:attribute-set><xsl:attribute-set name="list-item-label-style">
1366
+
1367
+
1368
+
1369
+ </xsl:attribute-set><xsl:attribute-set name="list-item-body-style">
1370
+
1371
+
1372
+
1256
1373
  </xsl:attribute-set><xsl:attribute-set name="toc-style">
1257
1374
  <xsl:attribute name="line-height">135%</xsl:attribute>
1375
+ </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
1376
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1377
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1378
+
1379
+
1380
+
1381
+
1382
+
1383
+
1384
+
1385
+
1258
1386
  </xsl:attribute-set><xsl:attribute-set name="fn-style">
1259
1387
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1260
1388
  </xsl:attribute-set><xsl:attribute-set name="fn-num-style">
@@ -1263,13 +1391,173 @@
1263
1391
 
1264
1392
 
1265
1393
 
1266
- <xsl:attribute name="font-size">65%</xsl:attribute>
1267
- <xsl:attribute name="vertical-align">super</xsl:attribute>
1394
+ <xsl:attribute name="font-size">65%</xsl:attribute>
1395
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+ </xsl:attribute-set><xsl:attribute-set name="fn-body-style">
1410
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
1411
+ <xsl:attribute name="font-style">normal</xsl:attribute>
1412
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1413
+ <xsl:attribute name="start-indent">0</xsl:attribute>
1414
+
1415
+
1416
+
1417
+
1418
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1419
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+
1435
+ </xsl:attribute-set><xsl:attribute-set name="fn-body-num-style">
1436
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
1437
+
1438
+
1439
+
1440
+
1441
+ <xsl:attribute name="font-size">60%</xsl:attribute>
1442
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+ </xsl:attribute-set><xsl:attribute-set name="admonition-style">
1458
+
1459
+
1460
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1461
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+ </xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+ </xsl:attribute-set><xsl:attribute-set name="admonition-name-style">
1487
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+ </xsl:attribute-set><xsl:attribute-set name="admonition-p-style">
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-style">
1514
+
1515
+
1516
+
1517
+
1518
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-style">
1535
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
1536
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-style">
1551
+
1268
1552
 
1269
1553
 
1270
1554
 
1555
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-style">
1556
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
1557
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1271
1558
 
1272
1559
 
1560
+
1273
1561
 
1274
1562
 
1275
1563
 
@@ -1278,22 +1566,23 @@
1278
1566
 
1279
1567
 
1280
1568
 
1281
- </xsl:attribute-set><xsl:attribute-set name="fn-body-style">
1282
- <xsl:attribute name="font-weight">normal</xsl:attribute>
1283
- <xsl:attribute name="font-style">normal</xsl:attribute>
1284
- <xsl:attribute name="text-indent">0</xsl:attribute>
1285
- <xsl:attribute name="start-indent">0</xsl:attribute>
1286
1569
 
1287
1570
 
1571
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-body-style">
1288
1572
 
1289
1573
 
1290
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1291
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1574
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-body-style">
1575
+
1292
1576
 
1293
1577
 
1578
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-style">
1579
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1580
+ <xsl:attribute name="font-size">65%</xsl:attribute>
1581
+
1294
1582
 
1295
1583
 
1296
1584
 
1585
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1297
1586
 
1298
1587
 
1299
1588
 
@@ -1304,7 +1593,10 @@
1304
1593
 
1305
1594
 
1306
1595
 
1307
- </xsl:attribute-set><xsl:attribute-set name="fn-body-num-style">
1596
+
1597
+
1598
+
1599
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-number-style">
1308
1600
  <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
1309
1601
 
1310
1602
 
@@ -1325,35 +1617,167 @@
1325
1617
 
1326
1618
 
1327
1619
 
1620
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-body-style">
1621
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1622
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1623
+ <xsl:attribute name="start-indent">0pt</xsl:attribute>
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+ </xsl:attribute-set><xsl:attribute-set name="references-non-normative-style">
1636
+
1637
+
1638
+
1639
+ </xsl:attribute-set><xsl:attribute-set name="hljs-doctag">
1640
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1641
+ </xsl:attribute-set><xsl:attribute-set name="hljs-keyword">
1642
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1643
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-keyword">
1644
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1645
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-tag">
1646
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1647
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-variable">
1648
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1649
+ </xsl:attribute-set><xsl:attribute-set name="hljs-type">
1650
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1651
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable_and_language_">
1652
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1653
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title">
1654
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1655
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class_">
1656
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1657
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class__and_inherited__">
1658
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1659
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_function_">
1660
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1661
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attr">
1662
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1663
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attribute">
1664
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1665
+ </xsl:attribute-set><xsl:attribute-set name="hljs-literal">
1666
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1667
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta">
1668
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1669
+ </xsl:attribute-set><xsl:attribute-set name="hljs-number">
1670
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1671
+ </xsl:attribute-set><xsl:attribute-set name="hljs-operator">
1672
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1673
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable">
1674
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1675
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-attr">
1676
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1677
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-class">
1678
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1679
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-id">
1680
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1681
+ </xsl:attribute-set><xsl:attribute-set name="hljs-regexp">
1682
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1683
+ </xsl:attribute-set><xsl:attribute-set name="hljs-string">
1684
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1685
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-string">
1686
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1687
+ </xsl:attribute-set><xsl:attribute-set name="hljs-built_in">
1688
+ <xsl:attribute name="color">#e36209</xsl:attribute>
1689
+ </xsl:attribute-set><xsl:attribute-set name="hljs-symbol">
1690
+ <xsl:attribute name="color">#e36209</xsl:attribute>
1691
+ </xsl:attribute-set><xsl:attribute-set name="hljs-comment">
1692
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1693
+ </xsl:attribute-set><xsl:attribute-set name="hljs-code">
1694
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1695
+ </xsl:attribute-set><xsl:attribute-set name="hljs-formula">
1696
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1697
+ </xsl:attribute-set><xsl:attribute-set name="hljs-name">
1698
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1699
+ </xsl:attribute-set><xsl:attribute-set name="hljs-quote">
1700
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1701
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-tag">
1702
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1703
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-pseudo">
1704
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1705
+ </xsl:attribute-set><xsl:attribute-set name="hljs-subst">
1706
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1707
+ </xsl:attribute-set><xsl:attribute-set name="hljs-section">
1708
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1709
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1710
+ </xsl:attribute-set><xsl:attribute-set name="hljs-bullet">
1711
+ <xsl:attribute name="color">#735c0f</xsl:attribute>
1712
+ </xsl:attribute-set><xsl:attribute-set name="hljs-emphasis">
1713
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1714
+ <xsl:attribute name="font-style">italic</xsl:attribute>
1715
+ </xsl:attribute-set><xsl:attribute-set name="hljs-strong">
1716
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1717
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1718
+ </xsl:attribute-set><xsl:attribute-set name="hljs-addition">
1719
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1720
+ <xsl:attribute name="background-color">#f0fff4</xsl:attribute>
1721
+ </xsl:attribute-set><xsl:attribute-set name="hljs-deletion">
1722
+ <xsl:attribute name="color">#b31d28</xsl:attribute>
1723
+ <xsl:attribute name="background-color">#ffeef0</xsl:attribute>
1724
+ </xsl:attribute-set><xsl:attribute-set name="hljs-char_and_escape_">
1725
+ </xsl:attribute-set><xsl:attribute-set name="hljs-link">
1726
+ </xsl:attribute-set><xsl:attribute-set name="hljs-params">
1727
+ </xsl:attribute-set><xsl:attribute-set name="hljs-property">
1728
+ </xsl:attribute-set><xsl:attribute-set name="hljs-punctuation">
1729
+ </xsl:attribute-set><xsl:attribute-set name="hljs-tag">
1730
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-title-style">
1731
+ <xsl:attribute name="role">H1</xsl:attribute>
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-clause-title-style">
1738
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1739
+
1740
+
1741
+
1742
+
1743
+
1744
+ </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">
1745
+ <xsl:variable name="nodes_preface_">
1746
+ <xsl:for-each select="/*/*[local-name()='preface']/*">
1747
+ <node id="{@id}"/>
1748
+ </xsl:for-each>
1749
+ </xsl:variable>
1750
+ <xsl:variable name="nodes_preface" select="xalan:nodeset($nodes_preface_)"/>
1328
1751
 
1329
- </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="OLD_processPrefaceSectionsDefault_Contents">
1330
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1331
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1332
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1333
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1334
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1335
- </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
1336
1752
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1337
1753
  <xsl:sort select="@displayorder" data-type="number"/>
1754
+
1755
+ <!-- process Section's title -->
1756
+ <xsl:variable name="preceding-sibling_id" select="$nodes_preface/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
1757
+ <xsl:if test="$preceding-sibling_id != ''">
1758
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
1759
+ </xsl:if>
1760
+
1338
1761
  <xsl:apply-templates select="." mode="contents"/>
1339
1762
  </xsl:for-each>
1340
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
1341
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1342
-
1343
- <!-- Normative references -->
1344
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true'] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][@normative='true']]" mode="contents"/>
1345
- <!-- Terms and definitions -->
1346
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]" mode="contents"/>
1347
- <!-- Another main sections -->
1348
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]" mode="contents"/>
1349
- <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
1350
- <!-- Bibliography -->
1351
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')] | /*/*[local-name()='bibliography']/*[local-name()='clause'][*[local-name()='references'][not(@normative='true')]]" mode="contents"/>
1352
-
1353
1763
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1354
1764
 
1765
+ <xsl:variable name="nodes_sections_">
1766
+ <xsl:for-each select="/*/*[local-name()='sections']/*">
1767
+ <node id="{@id}"/>
1768
+ </xsl:for-each>
1769
+ </xsl:variable>
1770
+ <xsl:variable name="nodes_sections" select="xalan:nodeset($nodes_sections_)"/>
1771
+
1355
1772
  <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']]">
1356
1773
  <xsl:sort select="@displayorder" data-type="number"/>
1774
+
1775
+ <!-- process Section's title -->
1776
+ <xsl:variable name="preceding-sibling_id" select="$nodes_sections/node[@id = current()/@id]/preceding-sibling::node[1]/@id"/>
1777
+ <xsl:if test="$preceding-sibling_id != ''">
1778
+ <xsl:apply-templates select="parent::*/*[@type = 'section-title' and @id = $preceding-sibling_id and not(@displayorder)]" mode="contents_no_displayorder"/>
1779
+ </xsl:if>
1780
+
1357
1781
  <xsl:apply-templates select="." mode="contents"/>
1358
1782
  </xsl:for-each>
1359
1783
 
@@ -1366,29 +1790,11 @@
1366
1790
  <xsl:sort select="@displayorder" data-type="number"/>
1367
1791
  <xsl:apply-templates select="." mode="contents"/>
1368
1792
  </xsl:for-each>
1369
- </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
1370
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1371
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1372
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1373
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1374
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1375
1793
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1376
1794
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1377
1795
  <xsl:sort select="@displayorder" data-type="number"/>
1378
1796
  <xsl:apply-templates select="."/>
1379
1797
  </xsl:for-each>
1380
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
1381
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1382
-
1383
- <!-- Normative references -->
1384
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
1385
- <!-- Terms and definitions -->
1386
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='terms'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='terms']] | /*/*[local-name()='sections']/*[local-name()='definitions'] | /*/*[local-name()='sections']/*[local-name()='clause'][.//*[local-name()='definitions']]"/>
1387
- <!-- Another main sections -->
1388
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name() != 'terms' and local-name() != 'definitions' and not(@type='scope') and not(local-name() = 'clause' and .//*[local-name()='terms']) and not(local-name() = 'clause' and .//*[local-name()='definitions'])]"/>
1389
- <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1390
- <!-- Bibliography -->
1391
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1392
1798
  </xsl:template><xsl:template name="processMainSectionsDefault">
1393
1799
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
1394
1800
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -1409,6 +1815,70 @@
1409
1815
  <xsl:value-of select="."/>
1410
1816
  </xsl:template><xsl:template match="*[local-name()='br']">
1411
1817
  <xsl:value-of select="$linebreak"/>
1818
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']">
1819
+ <fo:block xsl:use-attribute-sets="copyright-statement-style">
1820
+ <xsl:apply-templates/>
1821
+ </fo:block>
1822
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']//*[local-name()='title']">
1823
+
1824
+ <!-- process in the template 'title' -->
1825
+ <xsl:call-template name="title"/>
1826
+
1827
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']//*[local-name()='p']">
1828
+
1829
+
1830
+ <!-- process in the template 'paragraph' -->
1831
+ <xsl:call-template name="paragraph"/>
1832
+
1833
+ </xsl:template><xsl:template match="*[local-name()='license-statement']">
1834
+ <fo:block xsl:use-attribute-sets="license-statement-style">
1835
+ <xsl:apply-templates/>
1836
+ </fo:block>
1837
+ </xsl:template><xsl:template match="*[local-name()='license-statement']//*[local-name()='title']">
1838
+
1839
+ <!-- process in the template 'title' -->
1840
+ <xsl:call-template name="title"/>
1841
+
1842
+ </xsl:template><xsl:template match="*[local-name()='license-statement']//*[local-name()='p']">
1843
+
1844
+ <!-- process in the template 'paragraph' -->
1845
+ <xsl:call-template name="paragraph"/>
1846
+
1847
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']">
1848
+ <fo:block xsl:use-attribute-sets="legal-statement-style">
1849
+ <xsl:apply-templates/>
1850
+ </fo:block>
1851
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='title']">
1852
+
1853
+ <!-- process in the template 'title' -->
1854
+ <xsl:call-template name="title"/>
1855
+
1856
+
1857
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='p']">
1858
+ <xsl:param name="margin"/>
1859
+
1860
+ <!-- process in the template 'paragraph' -->
1861
+ <xsl:call-template name="paragraph">
1862
+ <xsl:with-param name="margin" select="$margin"/>
1863
+ </xsl:call-template>
1864
+
1865
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']">
1866
+ <fo:block xsl:use-attribute-sets="feedback-statement-style">
1867
+ <xsl:apply-templates/>
1868
+ </fo:block>
1869
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='title']">
1870
+
1871
+ <!-- process in the template 'title' -->
1872
+ <xsl:call-template name="title"/>
1873
+
1874
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='p']">
1875
+ <xsl:param name="margin"/>
1876
+
1877
+ <!-- process in the template 'paragraph' -->
1878
+ <xsl:call-template name="paragraph">
1879
+ <xsl:with-param name="margin" select="$margin"/>
1880
+ </xsl:call-template>
1881
+
1412
1882
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1413
1883
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
1414
1884
  <xsl:call-template name="add-zero-spaces-java"/>
@@ -1425,43 +1895,19 @@
1425
1895
  <xsl:call-template name="getSimpleTable"/>
1426
1896
  </xsl:variable>
1427
1897
 
1428
- <!-- <xsl:if test="$namespace = 'bipm'">
1429
- <fo:block>&#xA0;</fo:block>
1430
- </xsl:if> -->
1431
-
1432
1898
 
1433
1899
  <!-- Display table's name before table as standalone block -->
1434
1900
  <!-- $namespace = 'iso' or -->
1435
1901
 
1436
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1437
-
1438
-
1439
-
1440
-
1902
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- table's title rendered before table -->
1903
+
1441
1904
 
1442
- <xsl:call-template name="fn_name_display"/>
1443
1905
 
1906
+ <xsl:call-template name="table_name_fn_display"/>
1444
1907
 
1445
1908
 
1446
1909
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>
1447
1910
 
1448
- <!-- <xsl:variable name="cols-count">
1449
- <xsl:choose>
1450
- <xsl:when test="*[local-name()='thead']">
1451
- <xsl:call-template name="calculate-columns-numbers">
1452
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
1453
- </xsl:call-template>
1454
- </xsl:when>
1455
- <xsl:otherwise>
1456
- <xsl:call-template name="calculate-columns-numbers">
1457
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
1458
- </xsl:call-template>
1459
- </xsl:otherwise>
1460
- </xsl:choose>
1461
- </xsl:variable> -->
1462
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
1463
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
1464
-
1465
1911
  <xsl:variable name="colwidths">
1466
1912
  <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
1467
1913
  <xsl:call-template name="calculate-column-widths">
@@ -1470,19 +1916,10 @@
1470
1916
  </xsl:call-template>
1471
1917
  </xsl:if>
1472
1918
  </xsl:variable>
1473
- <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1474
-
1475
- <!-- <xsl:variable name="colwidths2">
1476
- <xsl:call-template name="calculate-column-widths">
1477
- <xsl:with-param name="cols-count" select="$cols-count"/>
1478
- </xsl:call-template>
1479
- </xsl:variable> -->
1919
+ <!-- DEBUG colwidths=<xsl:copy-of select="$colwidths"/> -->
1480
1920
 
1481
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
1482
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
1483
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
1484
1921
 
1485
- <xsl:variable name="margin-left">
1922
+ <xsl:variable name="margin-side">
1486
1923
  <xsl:choose>
1487
1924
  <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
1488
1925
  <xsl:otherwise>0</xsl:otherwise>
@@ -1490,65 +1927,67 @@
1490
1927
  </xsl:variable>
1491
1928
 
1492
1929
 
1493
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1494
-
1495
-
1496
- <xsl:attribute name="font-size">10pt</xsl:attribute>
1497
-
1498
-
1499
-
1500
-
1501
-
1930
+ <fo:block-container xsl:use-attribute-sets="table-container-style">
1931
+
1502
1932
 
1933
+ <xsl:attribute name="margin-left"><xsl:value-of select="-$margin-side"/>mm</xsl:attribute>
1934
+ <xsl:attribute name="margin-right"><xsl:value-of select="-$margin-side"/>mm</xsl:attribute>
1503
1935
 
1504
-
1936
+
1505
1937
 
1938
+
1506
1939
 
1940
+
1507
1941
 
1508
1942
 
1509
1943
 
1944
+
1510
1945
 
1511
1946
 
1512
1947
 
1513
1948
 
1514
1949
 
1950
+ <!-- end table block-container attributes -->
1515
1951
 
1516
1952
  <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
1517
1953
 
1518
1954
 
1955
+ <xsl:variable name="table_width_default">100%</xsl:variable>
1519
1956
  <xsl:variable name="table_width">
1520
1957
  <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
1521
- 100%
1522
-
1523
-
1958
+ <xsl:value-of select="$table_width_default"/>
1524
1959
  </xsl:variable>
1525
1960
 
1961
+
1526
1962
  <xsl:variable name="table_attributes">
1527
- <attribute name="table-layout">fixed</attribute>
1528
- <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
1529
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1530
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1531
-
1532
-
1533
-
1534
-
1535
-
1536
-
1537
-
1538
-
1539
-
1540
-
1541
-
1542
-
1543
-
1544
-
1963
+
1964
+ <xsl:element name="table_attributes" use-attribute-sets="table-style">
1965
+ <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
1966
+
1967
+
1968
+ <xsl:attribute name="margin-left"><xsl:value-of select="$margin-side"/>mm</xsl:attribute>
1969
+ <xsl:attribute name="margin-right"><xsl:value-of select="$margin-side"/>mm</xsl:attribute>
1970
+
1971
+
1972
+
1973
+
1974
+
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+
1981
+
1982
+
1983
+ </xsl:element>
1545
1984
  </xsl:variable>
1546
1985
 
1547
1986
 
1548
- <fo:table id="{@id}" table-omit-footer-at-break="true">
1987
+ <fo:table id="{@id}">
1549
1988
 
1550
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1551
- <xsl:attribute name="{@name}">
1989
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
1990
+ <xsl:attribute name="{local-name()}">
1552
1991
  <xsl:value-of select="."/>
1553
1992
  </xsl:attribute>
1554
1993
  </xsl:for-each>
@@ -1559,7 +1998,6 @@
1559
1998
  </xsl:if>
1560
1999
 
1561
2000
 
1562
-
1563
2001
  <xsl:choose>
1564
2002
  <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
1565
2003
  <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
@@ -1585,7 +2023,7 @@
1585
2023
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
1586
2024
  </xsl:when>
1587
2025
  <xsl:otherwise>
1588
- <xsl:apply-templates/>
2026
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'note') and not(local-name() = 'thead') and not(local-name() = 'tfoot')]"/> <!-- process all table' elements, except name, header, footer and note that renders separaterely -->
1589
2027
  </xsl:otherwise>
1590
2028
  </xsl:choose>
1591
2029
 
@@ -1600,25 +2038,6 @@
1600
2038
  </xsl:call-template>
1601
2039
  </xsl:for-each>
1602
2040
 
1603
- <!-- insert footer as table -->
1604
- <!-- <fo:table>
1605
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
1606
- <xsl:attribute name="{@name}">
1607
- <xsl:value-of select="."/>
1608
- </xsl:attribute>
1609
- </xsl:for-each>
1610
-
1611
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
1612
- <xsl:choose>
1613
- <xsl:when test=". = 1 or . = 0">
1614
- <fo:table-column column-width="proportional-column-width(2)"/>
1615
- </xsl:when>
1616
- <xsl:otherwise>
1617
- <fo:table-column column-width="proportional-column-width({.})"/>
1618
- </xsl:otherwise>
1619
- </xsl:choose>
1620
- </xsl:for-each>
1621
- </fo:table>-->
1622
2041
 
1623
2042
 
1624
2043
 
@@ -1679,18 +2098,17 @@
1679
2098
  </xsl:otherwise>
1680
2099
  </xsl:choose>
1681
2100
 
1682
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
2101
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
1683
2102
  <xsl:param name="continued"/>
1684
2103
  <xsl:if test="normalize-space() != ''">
1685
2104
  <fo:block xsl:use-attribute-sets="table-name-style">
1686
-
2105
+
1687
2106
 
1688
2107
 
1689
2108
 
1690
2109
 
1691
2110
  <xsl:choose>
1692
2111
  <xsl:when test="$continued = 'true'">
1693
- <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->
1694
2112
 
1695
2113
  </xsl:when>
1696
2114
  <xsl:otherwise>
@@ -1753,13 +2171,6 @@
1753
2171
  <xsl:for-each select="xalan:nodeset($table)/*/tr">
1754
2172
  <xsl:variable name="td_text">
1755
2173
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
1756
-
1757
- <!-- <xsl:if test="$namespace = 'bipm'">
1758
- <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
1759
- <word><xsl:value-of select="normalize-space(.)"/></word>
1760
- </xsl:for-each>
1761
- </xsl:if> -->
1762
-
1763
2174
  </xsl:variable>
1764
2175
  <xsl:variable name="words">
1765
2176
  <xsl:variable name="string_with_added_zerospaces">
@@ -1771,7 +2182,7 @@
1771
2182
  <!-- <xsl:with-param name="text" select="translate(td[$curr-col],'- —:', ' ')"/> -->
1772
2183
  <!-- 2009 thinspace -->
1773
2184
  <!-- <xsl:with-param name="text" select="translate(normalize-space($td_text),'- —:', ' ')"/> -->
1774
- <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '', ' '))"/>
2185
+ <xsl:with-param name="text" select="normalize-space(translate($string_with_added_zerospaces, '​­', ' '))"/> <!-- replace zero-width-space and soft-hyphen to space -->
1775
2186
  </xsl:call-template>
1776
2187
  </xsl:variable>
1777
2188
  <xsl:variable name="max_length">
@@ -1796,7 +2207,6 @@
1796
2207
  </xsl:otherwise>
1797
2208
  </xsl:choose>
1798
2209
  </xsl:variable>
1799
-
1800
2210
 
1801
2211
  <column>
1802
2212
  <xsl:for-each select="xalan:nodeset($widths)//width">
@@ -1813,8 +2223,7 @@
1813
2223
  </xsl:call-template>
1814
2224
  </xsl:if>
1815
2225
  </xsl:template><xsl:template match="text()" mode="td_text">
1816
- <xsl:variable name="zero-space">​</xsl:variable>
1817
- <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
2226
+ <xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
1818
2227
  </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
1819
2228
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
1820
2229
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
@@ -1830,9 +2239,8 @@
1830
2239
 
1831
2240
  <xsl:variable name="math_text" select="normalize-space(xalan:nodeset($mathml))"/>
1832
2241
  <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
1833
- </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2242
+ </xsl:template><xsl:template match="*[local-name()='thead']">
1834
2243
  <xsl:param name="cols-count"/>
1835
- <!-- font-weight="bold" -->
1836
2244
  <fo:table-header>
1837
2245
 
1838
2246
 
@@ -1844,85 +2252,26 @@
1844
2252
  <fo:table-row>
1845
2253
  <fo:table-cell number-columns-spanned="{$cols-count}" border-left="1.5pt solid white" border-right="1.5pt solid white" border-top="1.5pt solid white" border-bottom="1.5pt solid black">
1846
2254
 
1847
- <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
2255
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
1848
2256
  <xsl:with-param name="continued">true</xsl:with-param>
1849
2257
  </xsl:apply-templates>
1850
2258
 
1851
2259
 
1852
2260
 
1853
-
1854
2261
  </fo:table-cell>
1855
2262
  </fo:table-row>
1856
2263
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
1857
2264
  <fo:table-body>
1858
2265
  <xsl:apply-templates/>
1859
2266
  </fo:table-body>
1860
- </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2267
+ </xsl:template><xsl:template match="*[local-name()='tfoot']">
1861
2268
  <xsl:apply-templates/>
1862
2269
  </xsl:template><xsl:template name="insertTableFooter">
1863
2270
  <xsl:param name="cols-count"/>
1864
2271
  <xsl:if test="../*[local-name()='tfoot']">
1865
2272
  <fo:table-footer>
1866
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
1867
- </fo:table-footer>
1868
- </xsl:if>
1869
- </xsl:template><xsl:template name="insertTableFooter2">
1870
- <xsl:param name="cols-count"/>
1871
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1872
- <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
1873
-
1874
- <fo:table-footer>
1875
-
1876
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
1877
-
1878
- <!-- if there are note(s) or fn(s) then create footer row -->
1879
- <xsl:if test="$isNoteOrFnExist = 'true'">
1880
-
1881
-
1882
-
1883
- <fo:table-row>
1884
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
1885
-
1886
-
1887
-
1888
- <!-- fn will be processed inside 'note' processing -->
1889
-
1890
-
1891
-
1892
-
1893
-
1894
-
1895
- <!-- except gb -->
1896
-
1897
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1898
-
1899
-
1900
- <!-- show Note under table in preface (ex. abstract) sections -->
1901
- <!-- empty, because notes show at page side in main sections -->
1902
- <!-- <xsl:if test="$namespace = 'bipm'">
1903
- <xsl:choose>
1904
- <xsl:when test="ancestor::*[local-name()='preface']">
1905
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1906
- </xsl:when>
1907
- <xsl:otherwise>
1908
- <fo:block/>
1909
- </xsl:otherwise>
1910
- </xsl:choose>
1911
- </xsl:if> -->
1912
-
1913
-
1914
- <!-- horizontal row separator -->
1915
-
1916
-
1917
- <!-- fn processing -->
1918
- <xsl:call-template name="fn_display"/>
1919
-
1920
- </fo:table-cell>
1921
- </fo:table-row>
1922
-
1923
- </xsl:if>
2273
+ <xsl:apply-templates select="../*[local-name()='tfoot']"/>
1924
2274
  </fo:table-footer>
1925
-
1926
2275
  </xsl:if>
1927
2276
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
1928
2277
  <xsl:param name="table_attributes"/>
@@ -1949,17 +2298,18 @@
1949
2298
  </xsl:variable>
1950
2299
 
1951
2300
  <fo:table keep-with-previous="always">
1952
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2301
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
2302
+ <xsl:variable name="name" select="local-name()"/>
1953
2303
  <xsl:choose>
1954
- <xsl:when test="@name = 'border-top'">
1955
- <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
2304
+ <xsl:when test="$name = 'border-top'">
2305
+ <xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
1956
2306
  </xsl:when>
1957
- <xsl:when test="@name = 'border'">
1958
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2307
+ <xsl:when test="$name = 'border'">
2308
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
1959
2309
  <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
1960
2310
  </xsl:when>
1961
2311
  <xsl:otherwise>
1962
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2312
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
1963
2313
  </xsl:otherwise>
1964
2314
  </xsl:choose>
1965
2315
  </xsl:for-each>
@@ -1988,9 +2338,10 @@
1988
2338
 
1989
2339
  <fo:table-body>
1990
2340
  <fo:table-row>
1991
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2341
+ <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
1992
2342
 
1993
2343
 
2344
+
1994
2345
 
1995
2346
 
1996
2347
  <!-- fn will be processed inside 'note' processing -->
@@ -2000,37 +2351,20 @@
2000
2351
 
2001
2352
 
2002
2353
 
2003
-
2004
-
2005
-
2006
2354
  <!-- for BSI (not PAS) display Notes before footnotes -->
2007
2355
 
2008
2356
 
2009
- <!-- except gb -->
2010
-
2011
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2357
+ <!-- except gb and bsi -->
2012
2358
 
2013
-
2014
- <!-- <xsl:if test="$namespace = 'bipm'">
2015
- <xsl:choose>
2016
- <xsl:when test="ancestor::*[local-name()='preface']">
2017
- show Note under table in preface (ex. abstract) sections
2018
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2019
- </xsl:when>
2020
- <xsl:otherwise>
2021
- empty, because notes show at page side in main sections
2022
- <fo:block/>
2023
- </xsl:otherwise>
2024
- </xsl:choose>
2025
- </xsl:if> -->
2359
+ <xsl:apply-templates select="../*[local-name()='note']"/>
2360
+
2026
2361
 
2027
2362
 
2028
2363
  <!-- horizontal row separator -->
2029
2364
 
2030
2365
 
2031
2366
  <!-- fn processing -->
2032
- <xsl:call-template name="fn_display"/>
2033
-
2367
+ <xsl:call-template name="table_fn_display"/>
2034
2368
 
2035
2369
  <!-- for PAS display Notes after footnotes -->
2036
2370
 
@@ -2060,7 +2394,7 @@
2060
2394
 
2061
2395
 
2062
2396
 
2063
- <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
2397
+ <xsl:apply-templates select="../*[local-name()='thead']">
2064
2398
  <xsl:with-param name="cols-count" select="$cols-count"/>
2065
2399
  </xsl:apply-templates>
2066
2400
 
@@ -2072,78 +2406,57 @@
2072
2406
 
2073
2407
 
2074
2408
  <xsl:apply-templates/>
2075
- <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
2076
-
2409
+
2077
2410
  </fo:table-body>
2078
2411
 
2079
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
2080
- <xsl:choose>
2081
- <xsl:when test="substring-after(., '—') != ''">
2082
- <xsl:text>—</xsl:text><xsl:value-of select="substring-after(., '—')"/>
2083
- </xsl:when>
2084
- <xsl:otherwise>
2085
- <xsl:value-of select="."/>
2086
- </xsl:otherwise>
2087
- </xsl:choose>
2088
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="presentation_name">
2089
- <xsl:apply-templates mode="presentation_name"/>
2090
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/node()" mode="presentation_name">
2091
- <xsl:apply-templates select="."/>
2092
- </xsl:template><xsl:template match="*[local-name()='tr']">
2093
- <xsl:variable name="parent-name" select="local-name(..)"/>
2094
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2095
- <fo:table-row min-height="4mm">
2096
- <xsl:if test="$parent-name = 'thead'">
2097
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2098
-
2099
-
2100
-
2101
-
2102
-
2103
-
2104
-
2105
-
2106
- </xsl:if>
2107
- <xsl:if test="$parent-name = 'tfoot'">
2108
-
2109
-
2110
-
2111
- </xsl:if>
2112
-
2113
-
2114
-
2115
-
2116
-
2117
-
2118
-
2119
-
2120
-
2121
-
2122
- <!-- <xsl:if test="$namespace = 'bipm'">
2123
- <xsl:attribute name="height">8mm</xsl:attribute>
2124
- </xsl:if> -->
2125
-
2412
+ </xsl:template><xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
2413
+ <fo:table-row xsl:use-attribute-sets="table-header-row-style">
2414
+
2415
+
2416
+
2417
+
2418
+
2419
+
2420
+
2421
+ <xsl:call-template name="setTableRowAttributes"/>
2422
+
2126
2423
  <xsl:apply-templates/>
2127
2424
  </fo:table-row>
2128
- </xsl:template><xsl:template match="*[local-name()='th']">
2129
- <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2130
- <xsl:attribute name="text-align">
2131
- <xsl:choose>
2132
- <xsl:when test="@align">
2133
- <xsl:call-template name="setAlignment"/>
2134
- <!-- <xsl:value-of select="@align"/> -->
2135
- </xsl:when>
2136
- <xsl:otherwise>center</xsl:otherwise>
2137
- </xsl:choose>
2138
- </xsl:attribute>
2139
-
2425
+ </xsl:template><xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
2426
+ <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
2140
2427
 
2428
+ <xsl:call-template name="setTableRowAttributes"/>
2429
+ <xsl:apply-templates/>
2430
+ </fo:table-row>
2431
+ </xsl:template><xsl:template match="*[local-name()='tr']">
2432
+ <fo:table-row xsl:use-attribute-sets="table-body-row-style">
2433
+
2141
2434
 
2435
+
2142
2436
 
2437
+
2438
+ <xsl:call-template name="setTableRowAttributes"/>
2439
+ <xsl:apply-templates/>
2440
+ </fo:table-row>
2441
+ </xsl:template><xsl:template name="setTableRowAttributes">
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+ </xsl:template><xsl:template match="*[local-name()='th']">
2451
+ <fo:table-cell xsl:use-attribute-sets="table-header-cell-style"> <!-- text-align="{@align}" -->
2452
+ <xsl:call-template name="setTextAlignment">
2453
+ <xsl:with-param name="default">center</xsl:with-param>
2454
+ </xsl:call-template>
2143
2455
 
2144
2456
 
2145
2457
 
2146
2458
 
2459
+
2147
2460
 
2148
2461
 
2149
2462
 
@@ -2152,21 +2465,25 @@
2152
2465
  <xsl:if test="$lang = 'ar'">
2153
2466
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2154
2467
  </xsl:if>
2155
- <xsl:if test="@colspan">
2156
- <xsl:attribute name="number-columns-spanned">
2157
- <xsl:value-of select="@colspan"/>
2158
- </xsl:attribute>
2159
- </xsl:if>
2160
- <xsl:if test="@rowspan">
2161
- <xsl:attribute name="number-rows-spanned">
2162
- <xsl:value-of select="@rowspan"/>
2163
- </xsl:attribute>
2164
- </xsl:if>
2165
- <xsl:call-template name="display-align"/>
2468
+
2469
+ <xsl:call-template name="setTableCellAttributes"/>
2470
+
2166
2471
  <fo:block>
2167
2472
  <xsl:apply-templates/>
2168
2473
  </fo:block>
2169
2474
  </fo:table-cell>
2475
+ </xsl:template><xsl:template name="setTableCellAttributes">
2476
+ <xsl:if test="@colspan">
2477
+ <xsl:attribute name="number-columns-spanned">
2478
+ <xsl:value-of select="@colspan"/>
2479
+ </xsl:attribute>
2480
+ </xsl:if>
2481
+ <xsl:if test="@rowspan">
2482
+ <xsl:attribute name="number-rows-spanned">
2483
+ <xsl:value-of select="@rowspan"/>
2484
+ </xsl:attribute>
2485
+ </xsl:if>
2486
+ <xsl:call-template name="display-align"/>
2170
2487
  </xsl:template><xsl:template name="display-align">
2171
2488
  <xsl:if test="@valign">
2172
2489
  <xsl:attribute name="display-align">
@@ -2179,22 +2496,18 @@
2179
2496
  </xsl:attribute>
2180
2497
  </xsl:if>
2181
2498
  </xsl:template><xsl:template match="*[local-name()='td']">
2182
- <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2183
- <xsl:attribute name="text-align">
2184
- <xsl:choose>
2185
- <xsl:when test="@align">
2186
- <xsl:call-template name="setAlignment"/>
2187
- <!-- <xsl:value-of select="@align"/> -->
2188
- </xsl:when>
2189
- <xsl:otherwise>left</xsl:otherwise>
2190
- </xsl:choose>
2191
- </xsl:attribute>
2499
+ <fo:table-cell xsl:use-attribute-sets="table-cell-style"> <!-- text-align="{@align}" -->
2500
+ <xsl:call-template name="setTextAlignment">
2501
+ <xsl:with-param name="default">left</xsl:with-param>
2502
+ </xsl:call-template>
2503
+
2192
2504
  <xsl:if test="$lang = 'ar'">
2193
2505
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2194
2506
  </xsl:if>
2195
2507
 
2196
2508
 
2197
2509
 
2510
+ <!-- bsi -->
2198
2511
 
2199
2512
 
2200
2513
 
@@ -2203,34 +2516,36 @@
2203
2516
 
2204
2517
 
2205
2518
 
2519
+
2520
+
2206
2521
 
2207
2522
 
2208
2523
 
2209
2524
 
2210
2525
 
2211
- <xsl:if test=".//*[local-name() = 'table']">
2526
+ <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
2212
2527
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2213
2528
  </xsl:if>
2214
- <xsl:if test="@colspan">
2215
- <xsl:attribute name="number-columns-spanned">
2216
- <xsl:value-of select="@colspan"/>
2217
- </xsl:attribute>
2218
- </xsl:if>
2219
- <xsl:if test="@rowspan">
2220
- <xsl:attribute name="number-rows-spanned">
2221
- <xsl:value-of select="@rowspan"/>
2222
- </xsl:attribute>
2223
- </xsl:if>
2224
- <xsl:call-template name="display-align"/>
2529
+
2530
+ <xsl:call-template name="setTableCellAttributes"/>
2531
+
2225
2532
  <fo:block>
2226
-
2533
+
2534
+
2535
+
2227
2536
  <xsl:apply-templates/>
2228
2537
  </fo:block>
2229
2538
  </fo:table-cell>
2230
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
2231
-
2539
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
2540
+
2541
+ <fo:block xsl:use-attribute-sets="table-note-style">
2542
+
2543
+
2544
+
2545
+
2232
2546
 
2233
- <fo:block font-size="10pt" margin-bottom="12pt">
2547
+ <!-- Table's note name (NOTE, for example) -->
2548
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
2234
2549
 
2235
2550
 
2236
2551
 
@@ -2238,25 +2553,16 @@
2238
2553
 
2239
2554
 
2240
2555
 
2241
-
2242
- <!-- Table's note name (NOTE, for example) -->
2243
-
2244
- <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
2556
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
2245
2557
 
2246
-
2247
-
2248
-
2249
-
2250
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2251
-
2252
- </fo:inline>
2253
-
2254
-
2255
-
2256
- <xsl:apply-templates mode="process"/>
2257
- </fo:block>
2558
+ </fo:inline>
2559
+
2560
+
2561
+
2562
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
2563
+ </fo:block>
2258
2564
 
2259
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='name']" mode="process"/><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" mode="process">
2565
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" priority="2">
2260
2566
  <xsl:apply-templates/>
2261
2567
  </xsl:template><xsl:template match="*[local-name() = 'fn'][not(ancestor::*[(local-name() = 'table' or local-name() = 'figure') and not(ancestor::*[local-name() = 'name'])])]" priority="2" name="fn">
2262
2568
 
@@ -2334,8 +2640,7 @@
2334
2640
  <xsl:copy-of select="$footnote_inline"/>
2335
2641
  <fo:footnote-body>
2336
2642
 
2337
- <fo:block-container text-indent="0" start-indent="0">
2338
-
2643
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
2339
2644
 
2340
2645
  <fo:block xsl:use-attribute-sets="fn-body-style">
2341
2646
 
@@ -2354,7 +2659,7 @@
2354
2659
  <xsl:copy-of select="$footnote_inline"/>
2355
2660
  </xsl:otherwise>
2356
2661
  </xsl:choose>
2357
- </xsl:template><xsl:template name="fn_display">
2662
+ </xsl:template><xsl:template name="table_fn_display">
2358
2663
  <xsl:variable name="references">
2359
2664
 
2360
2665
  <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
@@ -2365,33 +2670,26 @@
2365
2670
  <xsl:for-each select="xalan:nodeset($references)//fn">
2366
2671
  <xsl:variable name="reference" select="@reference"/>
2367
2672
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2368
- <fo:block margin-bottom="12pt">
2673
+ <fo:block xsl:use-attribute-sets="table-fn-style">
2369
2674
 
2370
2675
 
2371
2676
 
2372
-
2373
-
2374
-
2375
-
2376
- <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2677
+ <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
2377
2678
 
2378
- <xsl:attribute name="vertical-align">super</xsl:attribute>
2379
2679
 
2380
2680
 
2381
2681
 
2382
2682
 
2683
+ <xsl:value-of select="@reference"/>
2383
2684
 
2384
2685
 
2385
2686
 
2386
2687
 
2387
- <xsl:value-of select="@reference"/>
2388
2688
 
2389
2689
 
2390
2690
 
2391
2691
  </fo:inline>
2392
- <fo:inline>
2393
-
2394
- <!-- <xsl:apply-templates /> -->
2692
+ <fo:inline xsl:use-attribute-sets="table-fn-body-style">
2395
2693
  <xsl:copy-of select="./node()"/>
2396
2694
  </fo:inline>
2397
2695
  </fo:block>
@@ -2403,15 +2701,7 @@
2403
2701
 
2404
2702
  <xsl:apply-templates/>
2405
2703
  </fn>
2406
- </xsl:template><xsl:template name="fn_name_display">
2407
- <!-- <xsl:variable name="references">
2408
- <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2409
- <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2410
- <xsl:apply-templates />
2411
- </fn>
2412
- </xsl:for-each>
2413
- </xsl:variable>
2414
- $references=<xsl:copy-of select="$references"/> -->
2704
+ </xsl:template><xsl:template name="table_name_fn_display">
2415
2705
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2416
2706
  <xsl:variable name="reference" select="@reference"/>
2417
2707
  <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
@@ -2420,9 +2710,7 @@
2420
2710
  </fo:block>
2421
2711
  </xsl:for-each>
2422
2712
  </xsl:template><xsl:template name="fn_display_figure">
2423
- <xsl:variable name="key_iso">
2424
- <!-- and (not(@class) or @class !='pseudocode') -->
2425
- </xsl:variable>
2713
+
2426
2714
  <xsl:variable name="references">
2427
2715
  <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
2428
2716
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -2430,50 +2718,52 @@
2430
2718
  </fn>
2431
2719
  </xsl:for-each>
2432
2720
  </xsl:variable>
2721
+
2722
+ <xsl:if test="xalan:nodeset($references)//fn">
2433
2723
 
2434
- <!-- current hierarchy is 'figure' element -->
2435
- <xsl:variable name="following_dl_colwidths">
2436
- <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2437
- <xsl:variable name="html-table">
2438
- <xsl:variable name="doc_ns">
2724
+ <xsl:variable name="key_iso">
2725
+
2726
+ </xsl:variable>
2727
+
2728
+ <!-- current hierarchy is 'figure' element -->
2729
+ <xsl:variable name="following_dl_colwidths">
2730
+ <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2731
+ <xsl:variable name="html-table">
2732
+ <xsl:variable name="doc_ns">
2733
+
2734
+ </xsl:variable>
2735
+ <xsl:variable name="ns">
2736
+ <xsl:choose>
2737
+ <xsl:when test="normalize-space($doc_ns) != ''">
2738
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2739
+ </xsl:when>
2740
+ <xsl:otherwise>
2741
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2742
+ </xsl:otherwise>
2743
+ </xsl:choose>
2744
+ </xsl:variable>
2439
2745
 
2440
- </xsl:variable>
2441
- <xsl:variable name="ns">
2442
- <xsl:choose>
2443
- <xsl:when test="normalize-space($doc_ns) != ''">
2444
- <xsl:value-of select="normalize-space($doc_ns)"/>
2445
- </xsl:when>
2446
- <xsl:otherwise>
2447
- <xsl:value-of select="substring-before(name(/*), '-')"/>
2448
- </xsl:otherwise>
2449
- </xsl:choose>
2450
- </xsl:variable>
2451
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2452
- <!-- <xsl:element name="{$ns}:table"> -->
2453
2746
  <xsl:for-each select="*[local-name() = 'dl'][1]">
2454
2747
  <tbody>
2455
2748
  <xsl:apply-templates mode="dl"/>
2456
2749
  </tbody>
2457
2750
  </xsl:for-each>
2458
- <!-- </xsl:element> -->
2459
- </xsl:variable>
2460
-
2461
- <xsl:call-template name="calculate-column-widths">
2462
- <xsl:with-param name="cols-count" select="2"/>
2463
- <xsl:with-param name="table" select="$html-table"/>
2464
- </xsl:call-template>
2465
-
2466
- </xsl:if>
2467
- </xsl:variable>
2468
-
2469
-
2470
- <xsl:variable name="maxlength_dt">
2471
- <xsl:for-each select="*[local-name() = 'dl'][1]">
2472
- <xsl:call-template name="getMaxLength_dt"/>
2473
- </xsl:for-each>
2474
- </xsl:variable>
2475
-
2476
- <xsl:if test="xalan:nodeset($references)//fn">
2751
+ </xsl:variable>
2752
+
2753
+ <xsl:call-template name="calculate-column-widths">
2754
+ <xsl:with-param name="cols-count" select="2"/>
2755
+ <xsl:with-param name="table" select="$html-table"/>
2756
+ </xsl:call-template>
2757
+
2758
+ </xsl:if>
2759
+ </xsl:variable>
2760
+
2761
+ <xsl:variable name="maxlength_dt">
2762
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
2763
+ <xsl:call-template name="getMaxLength_dt"/>
2764
+ </xsl:for-each>
2765
+ </xsl:variable>
2766
+
2477
2767
  <fo:block>
2478
2768
  <fo:table width="95%" table-layout="fixed">
2479
2769
  <xsl:if test="normalize-space($key_iso) = 'true'">
@@ -2500,20 +2790,18 @@
2500
2790
  <fo:table-row>
2501
2791
  <fo:table-cell>
2502
2792
  <fo:block>
2503
- <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
2504
-
2793
+ <fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
2505
2794
  <xsl:value-of select="@reference"/>
2506
2795
  </fo:inline>
2507
2796
  </fo:block>
2508
2797
  </fo:table-cell>
2509
2798
  <fo:table-cell>
2510
- <fo:block text-align="justify" margin-bottom="12pt">
2511
-
2799
+ <fo:block xsl:use-attribute-sets="figure-fn-body-style">
2512
2800
  <xsl:if test="normalize-space($key_iso) = 'true'">
2513
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
2801
+
2802
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
2803
+
2514
2804
  </xsl:if>
2515
-
2516
- <!-- <xsl:apply-templates /> -->
2517
2805
  <xsl:copy-of select="./node()"/>
2518
2806
  </fo:block>
2519
2807
  </fo:table-cell>
@@ -2526,14 +2814,8 @@
2526
2814
  </xsl:if>
2527
2815
 
2528
2816
  </xsl:template><xsl:template match="*[local-name()='fn']">
2529
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2530
- <fo:inline font-size="80%" keep-with-previous.within-line="always">
2531
-
2532
-
2533
-
2534
-
2535
-
2536
-
2817
+ <fo:inline xsl:use-attribute-sets="fn-reference-style">
2818
+
2537
2819
 
2538
2820
 
2539
2821
 
@@ -2557,10 +2839,10 @@
2557
2839
  <xsl:variable name="isDeleted" select="@deleted"/>
2558
2840
  <fo:block-container>
2559
2841
 
2560
- <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
2561
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2562
- </xsl:if>
2563
-
2842
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
2843
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2844
+ </xsl:if>
2845
+
2564
2846
 
2565
2847
  <xsl:if test="parent::*[local-name() = 'note']">
2566
2848
  <xsl:attribute name="margin-left">
@@ -2577,11 +2859,11 @@
2577
2859
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
2578
2860
  </xsl:call-template>
2579
2861
 
2580
- <fo:block-container>
2581
-
2582
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2583
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2862
+ <fo:block-container margin-left="0mm">
2863
+
2584
2864
 
2865
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2866
+
2585
2867
 
2586
2868
  <xsl:variable name="parent" select="local-name(..)"/>
2587
2869
 
@@ -2592,20 +2874,19 @@
2592
2874
  <xsl:choose>
2593
2875
  <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2594
2876
 
2595
-
2596
- <fo:block margin-bottom="12pt" text-align="left">
2597
-
2598
- <xsl:variable name="title-where">
2599
- <xsl:call-template name="getLocalizedString">
2600
- <xsl:with-param name="key">where</xsl:with-param>
2601
- </xsl:call-template>
2602
- </xsl:variable>
2603
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2604
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
2605
- <xsl:text/>
2606
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2607
- </fo:block>
2608
-
2877
+ <fo:block margin-bottom="12pt" text-align="left">
2878
+
2879
+ <xsl:variable name="title-where">
2880
+ <xsl:call-template name="getLocalizedString">
2881
+ <xsl:with-param name="key">where</xsl:with-param>
2882
+ </xsl:call-template>
2883
+ </xsl:variable>
2884
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2885
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
2886
+ <xsl:text/>
2887
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2888
+ </fo:block>
2889
+
2609
2890
  </xsl:when>
2610
2891
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2611
2892
  <fo:block margin-bottom="12pt" text-align="left">
@@ -2652,9 +2933,7 @@
2652
2933
  <fo:table width="95%" table-layout="fixed">
2653
2934
 
2654
2935
  <xsl:choose>
2655
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2656
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2657
- </xsl:when>
2936
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
2658
2937
  <xsl:when test="normalize-space($key_iso) = 'true'">
2659
2938
  <xsl:attribute name="font-size">10pt</xsl:attribute>
2660
2939
 
@@ -2675,12 +2954,9 @@
2675
2954
  </xsl:otherwise>
2676
2955
  </xsl:choose>
2677
2956
  </xsl:variable>
2678
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2679
- <!-- <xsl:element name="{$ns}:table"> -->
2680
- <tbody>
2681
- <xsl:apply-templates mode="dl"/>
2682
- </tbody>
2683
- <!-- </xsl:element> -->
2957
+ <tbody>
2958
+ <xsl:apply-templates mode="dl"/>
2959
+ </tbody>
2684
2960
  </xsl:variable>
2685
2961
  <!-- html-table<xsl:copy-of select="$html-table"/> -->
2686
2962
  <xsl:variable name="colwidths">
@@ -2760,8 +3036,6 @@
2760
3036
  </xsl:for-each>
2761
3037
  </xsl:otherwise>
2762
3038
  </xsl:choose>
2763
- <!-- <fo:table-column column-width="15%"/>
2764
- <fo:table-column column-width="85%"/> -->
2765
3039
  </xsl:otherwise>
2766
3040
  </xsl:choose>
2767
3041
  </xsl:template><xsl:template name="getMaxLength_dt">
@@ -2776,12 +3050,6 @@
2776
3050
  </xsl:for-each>
2777
3051
  </xsl:variable>
2778
3052
  <xsl:variable name="maxLength">
2779
- <!-- <xsl:for-each select="*[local-name()='dt']">
2780
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
2781
- <xsl:if test="position() = 1">
2782
- <xsl:value-of select="string-length(normalize-space(.))"/>
2783
- </xsl:if>
2784
- </xsl:for-each> -->
2785
3053
  <xsl:for-each select="xalan:nodeset($lengths)/length">
2786
3054
  <xsl:sort select="." data-type="number" order="descending"/>
2787
3055
  <xsl:if test="position() = 1">
@@ -2807,12 +3075,12 @@
2807
3075
  <xsl:if test="normalize-space($key_iso) = 'true'">
2808
3076
  <xsl:attribute name="margin-top">0</xsl:attribute>
2809
3077
  </xsl:if>
2810
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3078
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
2811
3079
  </fo:block>
2812
3080
  </fo:table-cell>
2813
3081
  <fo:table-cell>
2814
3082
  <fo:block>
2815
- <xsl:apply-templates/>
3083
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
2816
3084
  </fo:block>
2817
3085
  </fo:table-cell>
2818
3086
  </fo:table-row>
@@ -2823,83 +3091,49 @@
2823
3091
  </td>
2824
3092
  <td>
2825
3093
 
2826
-
2827
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2828
-
3094
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
3095
+ <xsl:with-param name="process">true</xsl:with-param>
3096
+ </xsl:apply-templates>
3097
+
2829
3098
  </td>
2830
3099
  </tr>
2831
3100
 
2832
3101
  </xsl:template><xsl:template match="*[local-name()='dt']">
2833
3102
  <xsl:param name="key_iso"/>
2834
3103
 
2835
- <fo:table-row>
2836
-
2837
-
3104
+ <fo:table-row xsl:use-attribute-sets="dt-row-style">
2838
3105
  <fo:table-cell>
2839
3106
 
2840
- <fo:block margin-top="6pt">
3107
+ <fo:block xsl:use-attribute-sets="dt-style">
2841
3108
  <xsl:copy-of select="@id"/>
2842
3109
 
2843
-
2844
3110
  <xsl:if test="normalize-space($key_iso) = 'true'">
2845
3111
  <xsl:attribute name="margin-top">0</xsl:attribute>
2846
-
2847
3112
  </xsl:if>
2848
3113
 
2849
3114
 
2850
- <xsl:attribute name="margin-left">7mm</xsl:attribute>
2851
-
2852
-
2853
-
2854
-
2855
-
2856
3115
 
2857
3116
  <xsl:apply-templates/>
2858
- <!-- <xsl:if test="$namespace = 'gb'">
2859
- <xsl:if test="ancestor::*[local-name()='formula']">
2860
- <xsl:text>—</xsl:text>
2861
- </xsl:if>
2862
- </xsl:if> -->
2863
3117
  </fo:block>
2864
3118
  </fo:table-cell>
2865
3119
  <fo:table-cell>
2866
3120
  <fo:block>
2867
3121
 
2868
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2869
- <xsl:if test="local-name(*[1]) != 'stem'">
2870
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2871
- </xsl:if>
2872
- </xsl:if> -->
2873
-
2874
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2875
-
3122
+
3123
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
3124
+ <xsl:with-param name="process">true</xsl:with-param>
3125
+ </xsl:apply-templates>
2876
3126
  </fo:block>
2877
3127
  </fo:table-cell>
2878
3128
  </fo:table-row>
2879
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2880
- <xsl:if test="local-name(*[1]) = 'stem'">
2881
- <fo:table-row>
2882
- <fo:table-cell>
2883
- <fo:block margin-top="6pt">
2884
- <xsl:if test="normalize-space($key_iso) = 'true'">
2885
- <xsl:attribute name="margin-top">0</xsl:attribute>
2886
- </xsl:if>
2887
- <xsl:text>&#xA0;</xsl:text>
2888
- </fo:block>
2889
- </fo:table-cell>
2890
- <fo:table-cell>
2891
- <fo:block>
2892
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2893
- </fo:block>
2894
- </fo:table-cell>
2895
- </fo:table-row>
2896
- </xsl:if>
2897
- </xsl:if> -->
2898
3129
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
2899
3130
  <xsl:apply-templates/>
2900
- </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
2901
- <xsl:apply-templates select="@language"/>
2902
- <xsl:apply-templates/>
3131
+ </xsl:template><xsl:template match="*[local-name()='dd']">
3132
+ <xsl:param name="process">false</xsl:param>
3133
+ <xsl:if test="$process = 'true'">
3134
+ <xsl:apply-templates select="@language"/>
3135
+ <xsl:apply-templates/>
3136
+ </xsl:if>
2903
3137
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
2904
3138
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
2905
3139
  </xsl:template><xsl:template match="*[local-name()='em']">
@@ -2923,6 +3157,7 @@
2923
3157
  </fo:inline>
2924
3158
  </xsl:template><xsl:template match="*[local-name()='tt']">
2925
3159
  <fo:inline xsl:use-attribute-sets="tt-style">
3160
+
2926
3161
  <xsl:variable name="_font-size">
2927
3162
 
2928
3163
  10
@@ -2958,16 +3193,46 @@
2958
3193
  <fo:inline text-decoration="underline">
2959
3194
  <xsl:apply-templates/>
2960
3195
  </fo:inline>
2961
- </xsl:template><xsl:template match="*[local-name()='add']">
3196
+ </xsl:template><xsl:template match="*[local-name()='add']" name="tag_add">
3197
+ <xsl:param name="skip">true</xsl:param>
3198
+ <xsl:param name="block">false</xsl:param>
3199
+ <xsl:param name="type"/>
3200
+ <xsl:param name="text-align"/>
2962
3201
  <xsl:choose>
2963
3202
  <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
2964
- <fo:inline>
2965
- <xsl:call-template name="insertTag">
2966
- <xsl:with-param name="type" select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end -->
2967
- <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
2968
- <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
2969
- </xsl:call-template>
2970
- </fo:inline>
3203
+ <xsl:choose>
3204
+ <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>
3205
+ <xsl:otherwise>
3206
+ <xsl:variable name="tag">
3207
+ <xsl:call-template name="insertTag">
3208
+ <xsl:with-param name="type">
3209
+ <xsl:choose>
3210
+ <xsl:when test="$type = ''"><xsl:value-of select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end --></xsl:when>
3211
+ <xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
3212
+ </xsl:choose>
3213
+ </xsl:with-param>
3214
+ <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
3215
+ <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
3216
+ </xsl:call-template>
3217
+ </xsl:variable>
3218
+ <xsl:choose>
3219
+ <xsl:when test="$block = 'false'">
3220
+ <fo:inline>
3221
+ <xsl:copy-of select="$tag"/>
3222
+ </fo:inline>
3223
+ </xsl:when>
3224
+ <xsl:otherwise>
3225
+ <fo:block> <!-- for around figures -->
3226
+ <xsl:if test="$text-align != ''">
3227
+ <xsl:attribute name="text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
3228
+ </xsl:if>
3229
+ <xsl:copy-of select="$tag"/>
3230
+ </fo:block>
3231
+ </xsl:otherwise>
3232
+ </xsl:choose>
3233
+
3234
+ </xsl:otherwise>
3235
+ </xsl:choose>
2971
3236
  </xsl:when>
2972
3237
  <xsl:when test="@amendment">
2973
3238
  <fo:inline>
@@ -3010,8 +3275,6 @@
3010
3275
  <xsl:variable name="add_width" select="string-length($value) * 20"/>
3011
3276
  <xsl:variable name="maxwidth" select="60 + $add_width"/>
3012
3277
  <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
3013
- <!-- <xsl:attribute name="width">7mm</xsl:attribute>
3014
- <xsl:attribute name="content-height">100%</xsl:attribute> -->
3015
3278
  <xsl:attribute name="height">5mm</xsl:attribute>
3016
3279
  <xsl:attribute name="content-width">100%</xsl:attribute>
3017
3280
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
@@ -3069,7 +3332,11 @@
3069
3332
  <xsl:with-param name="text" select="substring($text,2)"/>
3070
3333
  </xsl:call-template>
3071
3334
  </xsl:if>
3072
- </xsl:template><xsl:template name="tokenize">
3335
+ </xsl:template><xsl:template match="*[local-name() = 'pagebreak']">
3336
+ <fo:block break-after="page"/>
3337
+ <fo:block> </fo:block>
3338
+ <fo:block break-after="page"/>
3339
+ </xsl:template><xsl:template name="tokenize">
3073
3340
  <xsl:param name="text"/>
3074
3341
  <xsl:param name="separator" select="' '"/>
3075
3342
  <xsl:choose>
@@ -3229,14 +3496,6 @@
3229
3496
 
3230
3497
  <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
3231
3498
 
3232
- <!-- <xsl:choose>
3233
- <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
3234
-
3235
- </xsl:when>
3236
- <xsl:otherwise>
3237
- <xsl:copy-of select="current()"/>
3238
- </xsl:otherwise>
3239
- </xsl:choose> -->
3240
3499
  </xsl:variable>
3241
3500
  <xsl:copy-of select="$simple-table"/>
3242
3501
  </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
@@ -3330,17 +3589,21 @@
3330
3589
  </xsl:apply-templates>
3331
3590
  </xsl:template><xsl:template name="getLang">
3332
3591
  <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3333
- <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3334
3592
  <xsl:variable name="language">
3335
3593
  <xsl:choose>
3336
3594
  <xsl:when test="$language_current != ''">
3337
3595
  <xsl:value-of select="$language_current"/>
3338
3596
  </xsl:when>
3339
- <xsl:when test="$language_current_2 != ''">
3340
- <xsl:value-of select="$language_current_2"/>
3341
- </xsl:when>
3342
3597
  <xsl:otherwise>
3343
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3598
+ <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3599
+ <xsl:choose>
3600
+ <xsl:when test="$language_current_2 != ''">
3601
+ <xsl:value-of select="$language_current_2"/>
3602
+ </xsl:when>
3603
+ <xsl:otherwise>
3604
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3605
+ </xsl:otherwise>
3606
+ </xsl:choose>
3344
3607
  </xsl:otherwise>
3345
3608
  </xsl:choose>
3346
3609
  </xsl:variable>
@@ -3355,8 +3618,6 @@
3355
3618
  <xsl:choose>
3356
3619
  <xsl:when test="contains($str2, ' ')">
3357
3620
  <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3358
- <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3359
- <xsl:value-of select="substring($substr, 2)"/> -->
3360
3621
  <xsl:call-template name="capitalize">
3361
3622
  <xsl:with-param name="str" select="$substr"/>
3362
3623
  </xsl:call-template>
@@ -3366,8 +3627,6 @@
3366
3627
  </xsl:call-template>
3367
3628
  </xsl:when>
3368
3629
  <xsl:otherwise>
3369
- <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3370
- <xsl:value-of select="substring($str2, 2)"/> -->
3371
3630
  <xsl:call-template name="capitalize">
3372
3631
  <xsl:with-param name="str" select="$str2"/>
3373
3632
  </xsl:call-template>
@@ -3395,6 +3654,7 @@
3395
3654
  <xsl:apply-templates select="." mode="mathml"/>
3396
3655
  </xsl:variable>
3397
3656
  <fo:instream-foreign-object fox:alt-text="Math">
3657
+
3398
3658
 
3399
3659
 
3400
3660
  <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
@@ -3426,7 +3686,7 @@
3426
3686
  </xsl:attribute>
3427
3687
 
3428
3688
 
3429
- <!-- <xsl:copy-of select="."/> -->
3689
+
3430
3690
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
3431
3691
  </fo:instream-foreign-object>
3432
3692
  </fo:inline>
@@ -3485,6 +3745,10 @@
3485
3745
 
3486
3746
 
3487
3747
 
3748
+
3749
+
3750
+
3751
+
3488
3752
  <xsl:choose>
3489
3753
  <xsl:when test="$target_text = ''">
3490
3754
  <xsl:apply-templates/>
@@ -3508,10 +3772,10 @@
3508
3772
  </fo:inline>
3509
3773
  </xsl:template><xsl:template match="*[local-name()='appendix']">
3510
3774
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
3511
- <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
3775
+ <xsl:apply-templates select="*[local-name()='title']"/>
3512
3776
  </fo:block>
3513
- <xsl:apply-templates/>
3514
- </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
3777
+ <xsl:apply-templates select="node()[not(local-name()='title')]"/>
3778
+ </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" priority="2">
3515
3779
  <xsl:variable name="level">
3516
3780
  <xsl:call-template name="getLevel"/>
3517
3781
  </xsl:variable>
@@ -3542,7 +3806,9 @@
3542
3806
  </fo:inline>
3543
3807
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
3544
3808
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3545
-
3809
+ <xsl:if test="parent::*[local-name() = 'add']">
3810
+ <xsl:call-template name="append_add-style"/>
3811
+ </xsl:if>
3546
3812
  <xsl:apply-templates/>
3547
3813
  </fo:basic-link>
3548
3814
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -3557,8 +3823,8 @@
3557
3823
 
3558
3824
  </xsl:if>
3559
3825
  <fo:block-container margin-left="0mm">
3560
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
3561
- <xsl:apply-templates/>
3826
+ <fo:block id="{@id}">
3827
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
3562
3828
  </fo:block>
3563
3829
  </fo:block-container>
3564
3830
  </fo:block-container>
@@ -3570,49 +3836,104 @@
3570
3836
  <fo:inline>
3571
3837
  <xsl:apply-templates/>
3572
3838
  </fo:inline>
3573
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
3839
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
3574
3840
  <xsl:if test="normalize-space() != ''">
3575
3841
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
3576
3842
  </xsl:if>
3843
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][*[local-name() = 'name']]/*[local-name() = 'stem']">
3844
+ <fo:block xsl:use-attribute-sets="formula-style">
3845
+
3846
+
3847
+
3848
+ <fo:table table-layout="fixed" width="100%">
3849
+ <fo:table-column column-width="95%"/>
3850
+ <fo:table-column column-width="5%"/>
3851
+ <fo:table-body>
3852
+ <fo:table-row>
3853
+ <fo:table-cell display-align="center">
3854
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
3855
+
3856
+
3857
+
3858
+ <xsl:apply-templates/>
3859
+ </fo:block>
3860
+ </fo:table-cell>
3861
+ <fo:table-cell display-align="center">
3862
+ <fo:block xsl:use-attribute-sets="formula-stem-number-style">
3863
+ <xsl:apply-templates select="../*[local-name() = 'name']"/>
3864
+ </fo:block>
3865
+ </fo:table-cell>
3866
+ </fo:table-row>
3867
+ </fo:table-body>
3868
+ </fo:table>
3869
+ </fo:block>
3870
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][not(*[local-name() = 'name'])]/*[local-name() = 'stem']">
3871
+ <fo:block xsl:use-attribute-sets="formula-style">
3872
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
3873
+ <xsl:apply-templates/>
3874
+ </fo:block>
3875
+ </fo:block>
3577
3876
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
3578
3877
 
3579
3878
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
3879
+
3880
+
3881
+
3882
+
3883
+
3580
3884
 
3581
3885
 
3582
3886
 
3887
+
3583
3888
 
3584
3889
 
3585
3890
  <fo:block-container margin-left="0mm">
3891
+
3586
3892
 
3587
3893
 
3588
3894
 
3895
+
3589
3896
 
3590
-
3591
-
3592
-
3593
-
3594
- <fo:block>
3595
-
3596
-
3597
-
3598
-
3599
-
3897
+ <fo:block>
3898
+
3899
+
3600
3900
 
3601
- <fo:inline xsl:use-attribute-sets="note-name-style">
3602
3901
 
3603
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3604
- </fo:inline>
3605
- <xsl:apply-templates/>
3606
- </fo:block>
3607
-
3608
-
3902
+
3903
+
3904
+
3905
+ <fo:inline xsl:use-attribute-sets="note-name-style">
3906
+
3907
+
3908
+
3909
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
3910
+ <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
3911
+ <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
3912
+ <xsl:call-template name="append_add-style"/>
3913
+ </xsl:if>
3914
+
3915
+
3916
+ <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
3917
+ <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
3918
+ <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
3919
+ <xsl:with-param name="skip">false</xsl:with-param>
3920
+ </xsl:apply-templates>
3921
+ </xsl:if>
3922
+
3923
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3924
+
3925
+ </fo:inline>
3926
+
3927
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3928
+ </fo:block>
3929
+
3609
3930
  </fo:block-container>
3610
3931
  </fo:block-container>
3611
3932
 
3612
3933
  </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
3613
3934
  <xsl:variable name="num"><xsl:number/></xsl:variable>
3614
3935
  <xsl:choose>
3615
- <xsl:when test="$num = 1">
3936
+ <xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
3616
3937
  <fo:inline xsl:use-attribute-sets="note-p-style">
3617
3938
  <xsl:apply-templates/>
3618
3939
  </fo:inline>
@@ -3627,12 +3948,22 @@
3627
3948
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
3628
3949
 
3629
3950
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
3951
+
3952
+
3953
+
3954
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
3955
+ <!-- <xsl:if test="*[not(local-name()='name')][1][node()[normalize-space() != ''][1][local-name() = 'add'] and node()[normalize-space() != ''][last()][local-name() = 'add']]"> -->
3956
+ <xsl:if test="*[not(local-name()='name')][1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
3957
+ <xsl:call-template name="append_add-style"/>
3958
+ </xsl:if>
3959
+
3960
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3630
3961
 
3631
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3632
3962
  </fo:inline>
3633
- <xsl:apply-templates/>
3963
+
3964
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3634
3965
  </fo:block>
3635
- </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name'] | *[local-name() = 'termnote']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']" mode="presentation">
3966
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']">
3636
3967
  <xsl:param name="sfx"/>
3637
3968
  <xsl:variable name="suffix">
3638
3969
  <xsl:choose>
@@ -3649,7 +3980,7 @@
3649
3980
  <xsl:apply-templates/>
3650
3981
  <xsl:value-of select="$suffix"/>
3651
3982
  </xsl:if>
3652
- </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
3983
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']">
3653
3984
  <xsl:param name="sfx"/>
3654
3985
  <xsl:variable name="suffix">
3655
3986
  <xsl:choose>
@@ -3674,25 +4005,24 @@
3674
4005
  <xsl:apply-templates/>
3675
4006
  </fo:block>
3676
4007
  </xsl:template><xsl:template match="*[local-name() = 'term']">
3677
- <!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
3678
4008
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
4009
+
4010
+
4011
+
3679
4012
 
3680
4013
 
3681
4014
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])">
3682
4015
 
3683
4016
  </xsl:if>
3684
- <xsl:apply-templates/>
4017
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3685
4018
  </fo:block>
3686
- </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
4019
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
3687
4020
  <xsl:if test="normalize-space() != ''">
3688
4021
  <xsl:variable name="level">
3689
4022
  <xsl:call-template name="getLevelTermName"/>
3690
4023
  </xsl:variable>
3691
4024
  <fo:inline role="H{$level}">
3692
4025
  <xsl:apply-templates/>
3693
- <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
3694
- <xsl:text>.</xsl:text>
3695
- </xsl:if> -->
3696
4026
  </fo:inline>
3697
4027
  </xsl:if>
3698
4028
  </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
@@ -3705,9 +4035,10 @@
3705
4035
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
3706
4036
  </xsl:call-template>
3707
4037
 
3708
- <fo:block>
3709
-
3710
- <xsl:apply-templates/>
4038
+
4039
+
4040
+ <fo:block xsl:use-attribute-sets="figure-style">
4041
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3711
4042
  </fo:block>
3712
4043
  <xsl:call-template name="fn_display_figure"/>
3713
4044
  <xsl:for-each select="*[local-name() = 'note']">
@@ -3715,14 +4046,15 @@
3715
4046
  </xsl:for-each>
3716
4047
 
3717
4048
 
3718
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4049
+ <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
4050
+
3719
4051
 
3720
4052
  </fo:block-container>
3721
4053
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
3722
4054
  <fo:block id="{@id}">
3723
- <xsl:apply-templates/>
4055
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3724
4056
  </fo:block>
3725
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
4057
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3726
4058
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
3727
4059
  <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
3728
4060
  <xsl:apply-templates/>
@@ -3829,9 +4161,7 @@
3829
4161
  <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
3830
4162
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
3831
4163
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
3832
- <!-- width=<xsl:value-of select="$width"/> -->
3833
4164
  <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
3834
- <!-- height=<xsl:value-of select="$height"/> -->
3835
4165
  <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 595.28 841.89;" height="{$height}" width="{$width}" viewBox="0 0 {$width} {$height}" y="0px" x="0px" id="Layer_1" version="1.1">
3836
4166
  <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
3837
4167
  <xsl:call-template name="svg_cross">
@@ -4101,7 +4431,7 @@
4101
4431
  </fo:basic-link>
4102
4432
  </fo:block>
4103
4433
  </fo:block-container>
4104
- </xsl:template><xsl:template match="*[local-name() = 'emf']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
4434
+ </xsl:template><xsl:template match="*[local-name() = 'emf']"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name']" mode="contents">
4105
4435
  <xsl:apply-templates mode="contents"/>
4106
4436
  <xsl:text> </xsl:text>
4107
4437
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'table']/*[local-name() = 'name'] | *[local-name() = 'permission']/*[local-name() = 'name'] | *[local-name() = 'recommendation']/*[local-name() = 'name'] | *[local-name() = 'requirement']/*[local-name() = 'name'] | *[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="bookmarks">
@@ -4113,7 +4443,11 @@
4113
4443
  <xsl:value-of select="."/>
4114
4444
  </xsl:template><xsl:template match="node()" mode="contents">
4115
4445
  <xsl:apply-templates mode="contents"/>
4116
- </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="2" mode="contents">
4446
+ </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">
4447
+ <xsl:call-template name="contents_section-title"/>
4448
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'section-title']" mode="contents_in_clause">
4449
+ <xsl:call-template name="contents_section-title"/>
4450
+ </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">
4117
4451
  <xsl:variable name="level">
4118
4452
  <xsl:call-template name="getLevel">
4119
4453
  <xsl:with-param name="depth" select="@depth"/>
@@ -4121,10 +4455,15 @@
4121
4455
  </xsl:variable>
4122
4456
 
4123
4457
  <xsl:variable name="section">
4124
- <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4458
+ <xsl:choose>
4459
+ <xsl:when test="@type = 'section-title'"/>
4460
+ <xsl:otherwise>
4461
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4462
+ </xsl:otherwise>
4463
+ </xsl:choose>
4125
4464
  </xsl:variable>
4126
4465
 
4127
- <xsl:variable name="type">floating-title</xsl:variable>
4466
+ <xsl:variable name="type"><xsl:value-of select="@type"/></xsl:variable>
4128
4467
 
4129
4468
  <xsl:variable name="display">
4130
4469
  <xsl:choose>
@@ -4141,7 +4480,16 @@
4141
4480
  <xsl:variable name="title">
4142
4481
  <xsl:choose>
4143
4482
  <xsl:when test="*[local-name() = 'tab']">
4144
- <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4483
+ <xsl:choose>
4484
+ <xsl:when test="@type = 'section-title'">
4485
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4486
+ <xsl:text>: </xsl:text>
4487
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4488
+ </xsl:when>
4489
+ <xsl:otherwise>
4490
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4491
+ </xsl:otherwise>
4492
+ </xsl:choose>
4145
4493
  </xsl:when>
4146
4494
  <xsl:otherwise>
4147
4495
  <xsl:copy-of select="node()"/>
@@ -4254,8 +4602,6 @@
4254
4602
 
4255
4603
 
4256
4604
 
4257
-
4258
-
4259
4605
  </fo:bookmark-tree>
4260
4606
  </xsl:if>
4261
4607
  </xsl:template><xsl:template name="insertFigureBookmarks">
@@ -4326,7 +4672,7 @@
4326
4672
  <xsl:apply-templates mode="bookmark"/>
4327
4673
  </xsl:otherwise>
4328
4674
  </xsl:choose>
4329
- </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']" mode="presentation">
4675
+ </xsl:template><xsl:template match="title" mode="bookmark"/><xsl:template match="text()" mode="bookmark"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'name'] | *[local-name() = 'image']/*[local-name() = 'name']">
4330
4676
  <xsl:if test="normalize-space() != ''">
4331
4677
  <fo:block xsl:use-attribute-sets="figure-name-style">
4332
4678
 
@@ -4342,12 +4688,6 @@
4342
4688
  <!-- <xsl:text> </xsl:text> -->
4343
4689
  </xsl:template><xsl:template name="getSection">
4344
4690
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4345
- <!--
4346
- <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
4347
- <xsl:value-of select="."/>
4348
- </xsl:for-each>
4349
- -->
4350
-
4351
4691
  </xsl:template><xsl:template name="getName">
4352
4692
  <xsl:choose>
4353
4693
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -4416,16 +4756,21 @@
4416
4756
  <xsl:apply-templates mode="contents_item">
4417
4757
  <xsl:with-param name="mode" select="$mode"/>
4418
4758
  </xsl:apply-templates>
4419
- </xsl:template><xsl:template match="*[local-name() = 'add'][starts-with(text(), $ace_tag)]" mode="contents_item">
4759
+ </xsl:template><xsl:template match="*[local-name() = 'add']" mode="contents_item">
4420
4760
  <xsl:param name="mode">bookmarks</xsl:param>
4421
- <xsl:if test="$mode = 'contents'">
4422
- <xsl:copy>
4423
- <xsl:apply-templates mode="contents_item"/>
4424
- </xsl:copy>
4425
- </xsl:if>
4761
+ <xsl:choose>
4762
+ <xsl:when test="starts-with(text(), $ace_tag)">
4763
+ <xsl:if test="$mode = 'contents'">
4764
+ <xsl:copy>
4765
+ <xsl:apply-templates mode="contents_item"/>
4766
+ </xsl:copy>
4767
+ </xsl:if>
4768
+ </xsl:when>
4769
+ <xsl:otherwise><xsl:apply-templates mode="contents_item"/></xsl:otherwise>
4770
+ </xsl:choose>
4426
4771
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
4427
4772
 
4428
- <fo:block-container margin-left="0mm">
4773
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
4429
4774
  <xsl:copy-of select="@id"/>
4430
4775
 
4431
4776
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -4462,6 +4807,7 @@
4462
4807
 
4463
4808
 
4464
4809
  </xsl:variable>
4810
+
4465
4811
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
4466
4812
  <xsl:if test="$font-size != ''">
4467
4813
  <xsl:attribute name="font-size">
@@ -4478,11 +4824,11 @@
4478
4824
 
4479
4825
 
4480
4826
 
4481
- <xsl:apply-templates/>
4827
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4482
4828
  </fo:block>
4483
4829
 
4484
4830
 
4485
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4831
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
4486
4832
 
4487
4833
 
4488
4834
 
@@ -4490,13 +4836,141 @@
4490
4836
  </fo:block-container>
4491
4837
  </fo:block-container>
4492
4838
  </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
4493
- <xsl:variable name="text">
4839
+ <xsl:choose>
4840
+ <xsl:when test="normalize-space($syntax-highlight) = 'true' and normalize-space(../@lang) != ''"> <!-- condition for turn on of highlighting -->
4841
+ <xsl:variable name="syntax" select="java:org.metanorma.fop.Util.syntaxHighlight(., ../@lang)"/>
4842
+ <xsl:choose>
4843
+ <xsl:when test="normalize-space($syntax) != ''"><!-- if there is highlighted result -->
4844
+ <xsl:apply-templates select="xalan:nodeset($syntax)" mode="syntax_highlight"/> <!-- process span tags -->
4845
+ </xsl:when>
4846
+ <xsl:otherwise> <!-- if case of non-succesfull syntax highlight (for instance, unknown lang), process without highlighting -->
4847
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4848
+ </xsl:otherwise>
4849
+ </xsl:choose>
4850
+ </xsl:when>
4851
+ <xsl:otherwise>
4852
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4853
+ </xsl:otherwise>
4854
+ </xsl:choose>
4855
+
4856
+ </xsl:template><xsl:template name="add_spaces_to_sourcecode">
4857
+ <xsl:variable name="text_step1">
4494
4858
  <xsl:call-template name="add-zero-spaces-equal"/>
4495
4859
  </xsl:variable>
4496
- <xsl:call-template name="add-zero-spaces-java">
4497
- <xsl:with-param name="text" select="$text"/>
4498
- </xsl:call-template>
4499
- </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
4860
+ <xsl:variable name="text_step2">
4861
+ <xsl:call-template name="add-zero-spaces-java">
4862
+ <xsl:with-param name="text" select="$text_step1"/>
4863
+ </xsl:call-template>
4864
+ </xsl:variable>
4865
+ <xsl:value-of select="$text_step2"/>
4866
+ </xsl:template><xsl:template match="*" mode="syntax_highlight">
4867
+ <xsl:apply-templates mode="syntax_highlight"/>
4868
+ </xsl:template><xsl:variable name="syntax_highlight_styles_">
4869
+ <style class="hljs-addition" xsl:use-attribute-sets="hljs-addition"/>
4870
+ <style class="hljs-attr" xsl:use-attribute-sets="hljs-attr"/>
4871
+ <style class="hljs-attribute" xsl:use-attribute-sets="hljs-attribute"/>
4872
+ <style class="hljs-built_in" xsl:use-attribute-sets="hljs-built_in"/>
4873
+ <style class="hljs-bullet" xsl:use-attribute-sets="hljs-bullet"/>
4874
+ <style class="hljs-char_and_escape_" xsl:use-attribute-sets="hljs-char_and_escape_"/>
4875
+ <style class="hljs-code" xsl:use-attribute-sets="hljs-code"/>
4876
+ <style class="hljs-comment" xsl:use-attribute-sets="hljs-comment"/>
4877
+ <style class="hljs-deletion" xsl:use-attribute-sets="hljs-deletion"/>
4878
+ <style class="hljs-doctag" xsl:use-attribute-sets="hljs-doctag"/>
4879
+ <style class="hljs-emphasis" xsl:use-attribute-sets="hljs-emphasis"/>
4880
+ <style class="hljs-formula" xsl:use-attribute-sets="hljs-formula"/>
4881
+ <style class="hljs-keyword" xsl:use-attribute-sets="hljs-keyword"/>
4882
+ <style class="hljs-link" xsl:use-attribute-sets="hljs-link"/>
4883
+ <style class="hljs-literal" xsl:use-attribute-sets="hljs-literal"/>
4884
+ <style class="hljs-meta" xsl:use-attribute-sets="hljs-meta"/>
4885
+ <style class="hljs-meta_hljs-string" xsl:use-attribute-sets="hljs-meta_hljs-string"/>
4886
+ <style class="hljs-meta_hljs-keyword" xsl:use-attribute-sets="hljs-meta_hljs-keyword"/>
4887
+ <style class="hljs-name" xsl:use-attribute-sets="hljs-name"/>
4888
+ <style class="hljs-number" xsl:use-attribute-sets="hljs-number"/>
4889
+ <style class="hljs-operator" xsl:use-attribute-sets="hljs-operator"/>
4890
+ <style class="hljs-params" xsl:use-attribute-sets="hljs-params"/>
4891
+ <style class="hljs-property" xsl:use-attribute-sets="hljs-property"/>
4892
+ <style class="hljs-punctuation" xsl:use-attribute-sets="hljs-punctuation"/>
4893
+ <style class="hljs-quote" xsl:use-attribute-sets="hljs-quote"/>
4894
+ <style class="hljs-regexp" xsl:use-attribute-sets="hljs-regexp"/>
4895
+ <style class="hljs-section" xsl:use-attribute-sets="hljs-section"/>
4896
+ <style class="hljs-selector-attr" xsl:use-attribute-sets="hljs-selector-attr"/>
4897
+ <style class="hljs-selector-class" xsl:use-attribute-sets="hljs-selector-class"/>
4898
+ <style class="hljs-selector-id" xsl:use-attribute-sets="hljs-selector-id"/>
4899
+ <style class="hljs-selector-pseudo" xsl:use-attribute-sets="hljs-selector-pseudo"/>
4900
+ <style class="hljs-selector-tag" xsl:use-attribute-sets="hljs-selector-tag"/>
4901
+ <style class="hljs-string" xsl:use-attribute-sets="hljs-string"/>
4902
+ <style class="hljs-strong" xsl:use-attribute-sets="hljs-strong"/>
4903
+ <style class="hljs-subst" xsl:use-attribute-sets="hljs-subst"/>
4904
+ <style class="hljs-symbol" xsl:use-attribute-sets="hljs-symbol"/>
4905
+ <style class="hljs-tag" xsl:use-attribute-sets="hljs-tag"/>
4906
+ <!-- <style class="hljs-tag_hljs-attr" xsl:use-attribute-sets="hljs-tag_hljs-attr"></style> -->
4907
+ <!-- <style class="hljs-tag_hljs-name" xsl:use-attribute-sets="hljs-tag_hljs-name"></style> -->
4908
+ <style class="hljs-template-tag" xsl:use-attribute-sets="hljs-template-tag"/>
4909
+ <style class="hljs-template-variable" xsl:use-attribute-sets="hljs-template-variable"/>
4910
+ <style class="hljs-title" xsl:use-attribute-sets="hljs-title"/>
4911
+ <style class="hljs-title_and_class_" xsl:use-attribute-sets="hljs-title_and_class_"/>
4912
+ <style class="hljs-title_and_class__and_inherited__" xsl:use-attribute-sets="hljs-title_and_class__and_inherited__"/>
4913
+ <style class="hljs-title_and_function_" xsl:use-attribute-sets="hljs-title_and_function_"/>
4914
+ <style class="hljs-type" xsl:use-attribute-sets="hljs-type"/>
4915
+ <style class="hljs-variable" xsl:use-attribute-sets="hljs-variable"/>
4916
+ <style class="hljs-variable_and_language_" xsl:use-attribute-sets="hljs-variable_and_language_"/>
4917
+ </xsl:variable><xsl:variable name="syntax_highlight_styles" select="xalan:nodeset($syntax_highlight_styles_)"/><xsl:template match="span" mode="syntax_highlight" priority="2">
4918
+ <!-- <fo:inline color="green" font-style="italic"><xsl:apply-templates mode="syntax_highlight"/></fo:inline> -->
4919
+ <fo:inline>
4920
+ <xsl:variable name="classes_">
4921
+ <xsl:call-template name="split">
4922
+ <xsl:with-param name="pText" select="@class"/>
4923
+ <xsl:with-param name="sep" select="' '"/>
4924
+ </xsl:call-template>
4925
+ <!-- a few classes together (_and_ suffix) -->
4926
+ <xsl:if test="contains(@class, 'hljs-char') and contains(@class, 'escape_')">
4927
+ <item>hljs-char_and_escape_</item>
4928
+ </xsl:if>
4929
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_')">
4930
+ <item>hljs-title_and_class_</item>
4931
+ </xsl:if>
4932
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_') and contains(@class, 'inherited__')">
4933
+ <item>hljs-title_and_class__and_inherited__</item>
4934
+ </xsl:if>
4935
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'function_')">
4936
+ <item>hljs-title_and_function_</item>
4937
+ </xsl:if>
4938
+ <xsl:if test="contains(@class, 'hljs-variable') and contains(@class, 'language_')">
4939
+ <item>hljs-variable_and_language_</item>
4940
+ </xsl:if>
4941
+ <!-- with parent classes (_ suffix) -->
4942
+ <xsl:if test="contains(@class, 'hljs-keyword') and contains(ancestor::*/@class, 'hljs-meta')">
4943
+ <item>hljs-meta_hljs-keyword</item>
4944
+ </xsl:if>
4945
+ <xsl:if test="contains(@class, 'hljs-string') and contains(ancestor::*/@class, 'hljs-meta')">
4946
+ <item>hljs-meta_hljs-string</item>
4947
+ </xsl:if>
4948
+ </xsl:variable>
4949
+ <xsl:variable name="classes" select="xalan:nodeset($classes_)"/>
4950
+
4951
+ <xsl:for-each select="$classes/item">
4952
+ <xsl:variable name="class_name" select="."/>
4953
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
4954
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
4955
+ </xsl:for-each>
4956
+ </xsl:for-each>
4957
+
4958
+ <!-- <xsl:variable name="class_name">
4959
+ <xsl:choose>
4960
+ <xsl:when test="@class = 'hljs-attr' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-attr</xsl:when>
4961
+ <xsl:when test="@class = 'hljs-name' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-name</xsl:when>
4962
+ <xsl:when test="@class = 'hljs-string' and ancestor::*/@class = 'hljs-meta'">hljs-meta_hljs-string</xsl:when>
4963
+ <xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
4964
+ </xsl:choose>
4965
+ </xsl:variable>
4966
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
4967
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
4968
+ </xsl:for-each> -->
4969
+
4970
+ <xsl:apply-templates mode="syntax_highlight"/></fo:inline>
4971
+ </xsl:template><xsl:template match="text()" mode="syntax_highlight" priority="2">
4972
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4973
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
4500
4974
  <xsl:if test="normalize-space() != ''">
4501
4975
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
4502
4976
  <xsl:apply-templates/>
@@ -4504,10 +4978,10 @@
4504
4978
  </xsl:if>
4505
4979
  </xsl:template><xsl:template match="*[local-name() = 'permission']">
4506
4980
  <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
4507
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4508
- <xsl:apply-templates/>
4981
+ <xsl:apply-templates select="*[local-name()='name']"/>
4982
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4509
4983
  </fo:block>
4510
- </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
4984
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']">
4511
4985
  <xsl:if test="normalize-space() != ''">
4512
4986
  <fo:block xsl:use-attribute-sets="permission-name-style">
4513
4987
  <xsl:apply-templates/>
@@ -4520,13 +4994,13 @@
4520
4994
  </fo:block>
4521
4995
  </xsl:template><xsl:template match="*[local-name() = 'requirement']">
4522
4996
  <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
4523
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4524
- <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
4525
- <xsl:apply-templates select="@obligation" mode="presentation"/>
4526
- <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
4527
- <xsl:apply-templates/>
4997
+ <xsl:apply-templates select="*[local-name()='name']"/>
4998
+ <xsl:apply-templates select="*[local-name()='label']"/>
4999
+ <xsl:apply-templates select="@obligation"/>
5000
+ <xsl:apply-templates select="*[local-name()='subject']"/>
5001
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'label') and not(local-name() = 'subject')]"/>
4528
5002
  </fo:block>
4529
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
5003
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']">
4530
5004
  <xsl:if test="normalize-space() != ''">
4531
5005
  <fo:block xsl:use-attribute-sets="requirement-name-style">
4532
5006
 
@@ -4534,20 +5008,24 @@
4534
5008
 
4535
5009
  </fo:block>
4536
5010
  </xsl:if>
4537
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
5011
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']">
4538
5012
  <fo:block xsl:use-attribute-sets="requirement-label-style">
4539
5013
  <xsl:apply-templates/>
4540
5014
  </fo:block>
4541
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
5015
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation">
4542
5016
  <fo:block>
4543
5017
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
4544
5018
  </fo:block>
5019
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2">
5020
+ <fo:block xsl:use-attribute-sets="subject-style">
5021
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
5022
+ </fo:block>
4545
5023
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
4546
5024
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
4547
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4548
- <xsl:apply-templates/>
5025
+ <xsl:apply-templates select="*[local-name()='name']"/>
5026
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4549
5027
  </fo:block>
4550
- </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
5028
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']">
4551
5029
  <xsl:if test="normalize-space() != ''">
4552
5030
  <fo:block xsl:use-attribute-sets="recommendation-name-style">
4553
5031
  <xsl:apply-templates/>
@@ -4558,10 +5036,6 @@
4558
5036
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
4559
5037
  <xsl:apply-templates/>
4560
5038
  </fo:block>
4561
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4562
- <fo:block xsl:use-attribute-sets="subject-style">
4563
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4564
- </fo:block>
4565
5039
  </xsl:template><xsl:template match="*[local-name() = 'subject']">
4566
5040
  <fo:block xsl:use-attribute-sets="subject-style">
4567
5041
  <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
@@ -4605,8 +5079,6 @@
4605
5079
  </xsl:variable>
4606
5080
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
4607
5081
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
4608
- <!-- <fo:table-column column-width="35mm"/>
4609
- <fo:table-column column-width="115mm"/> -->
4610
5082
  <fo:table-column column-width="30%"/>
4611
5083
  <fo:table-column column-width="70%"/>
4612
5084
  </xsl:if>
@@ -4616,7 +5088,7 @@
4616
5088
  <xsl:if test=".//*[local-name() = 'fn']">
4617
5089
  <xsl:for-each select="*[local-name() = 'tbody']">
4618
5090
  <fo:block font-size="90%" border-bottom="1pt solid black">
4619
- <xsl:call-template name="fn_display"/>
5091
+ <xsl:call-template name="table_fn_display"/>
4620
5092
  </fo:block>
4621
5093
  </xsl:for-each>
4622
5094
  </xsl:if>
@@ -4633,7 +5105,6 @@
4633
5105
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
4634
5106
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
4635
5107
  <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
4636
- <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
4637
5108
  <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
4638
5109
  </xsl:if>
4639
5110
  <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
@@ -4646,34 +5117,11 @@
4646
5117
  </fo:table-row>
4647
5118
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
4648
5119
  <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
4649
- <xsl:attribute name="text-align">
4650
- <xsl:choose>
4651
- <xsl:when test="@align">
4652
- <xsl:value-of select="@align"/>
4653
- </xsl:when>
4654
- <xsl:otherwise>left</xsl:otherwise>
4655
- </xsl:choose>
4656
- </xsl:attribute>
4657
- <xsl:if test="@colspan">
4658
- <xsl:attribute name="number-columns-spanned">
4659
- <xsl:value-of select="@colspan"/>
4660
- </xsl:attribute>
4661
- </xsl:if>
4662
- <xsl:if test="@rowspan">
4663
- <xsl:attribute name="number-rows-spanned">
4664
- <xsl:value-of select="@rowspan"/>
4665
- </xsl:attribute>
4666
- </xsl:if>
4667
- <xsl:call-template name="display-align"/>
5120
+ <xsl:call-template name="setTextAlignment">
5121
+ <xsl:with-param name="default">left</xsl:with-param>
5122
+ </xsl:call-template>
4668
5123
 
4669
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4670
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4671
- <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
4672
- </xsl:if>
4673
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
4674
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4675
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
4676
- </xsl:if> -->
5124
+ <xsl:call-template name="setTableCellAttributes"/>
4677
5125
 
4678
5126
  <fo:block>
4679
5127
  <xsl:apply-templates/>
@@ -4685,37 +5133,15 @@
4685
5133
  <xsl:attribute name="padding">0mm</xsl:attribute>
4686
5134
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
4687
5135
  </xsl:if>
4688
- <xsl:attribute name="text-align">
4689
- <xsl:choose>
4690
- <xsl:when test="@align">
4691
- <xsl:value-of select="@align"/>
4692
- </xsl:when>
4693
- <xsl:otherwise>left</xsl:otherwise>
4694
- </xsl:choose>
4695
- </xsl:attribute>
5136
+ <xsl:call-template name="setTextAlignment">
5137
+ <xsl:with-param name="default">left</xsl:with-param>
5138
+ </xsl:call-template>
5139
+
4696
5140
  <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
4697
5141
  <xsl:attribute name="font-weight">bold</xsl:attribute>
4698
5142
  </xsl:if>
4699
- <xsl:if test="@colspan">
4700
- <xsl:attribute name="number-columns-spanned">
4701
- <xsl:value-of select="@colspan"/>
4702
- </xsl:attribute>
4703
- </xsl:if>
4704
- <xsl:if test="@rowspan">
4705
- <xsl:attribute name="number-rows-spanned">
4706
- <xsl:value-of select="@rowspan"/>
4707
- </xsl:attribute>
4708
- </xsl:if>
4709
- <xsl:call-template name="display-align"/>
4710
5143
 
4711
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4712
- <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
4713
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4714
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
4715
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
4716
- </xsl:if>
4717
- </xsl:if> -->
4718
- <!-- 2nd line and below -->
5144
+ <xsl:call-template name="setTableCellAttributes"/>
4719
5145
 
4720
5146
  <fo:block>
4721
5147
  <xsl:apply-templates/>
@@ -4727,15 +5153,15 @@
4727
5153
  <xsl:apply-templates/>
4728
5154
  </fo:block>
4729
5155
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
4730
- <fo:block> <!-- margin-bottom="10pt" -->
5156
+ <fo:block>
4731
5157
  <xsl:apply-templates/>
4732
5158
  </fo:block>
4733
5159
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
4734
5160
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
4735
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4736
- <xsl:apply-templates/>
5161
+ <xsl:apply-templates select="*[local-name()='name']"/>
5162
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4737
5163
  </fo:block>
4738
- </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
5164
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
4739
5165
  <xsl:if test="normalize-space() != ''">
4740
5166
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
4741
5167
  <xsl:apply-templates/>
@@ -4761,9 +5187,7 @@
4761
5187
 
4762
5188
  <xsl:variable name="fo_element">
4763
5189
  <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl']">block</xsl:if>
4764
- block
4765
-
4766
-
5190
+ block
4767
5191
  </xsl:variable>
4768
5192
 
4769
5193
  <!-- display 'EXAMPLE' -->
@@ -4836,6 +5260,8 @@
4836
5260
  </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
4837
5261
  <fo:block xsl:use-attribute-sets="termsource-style">
4838
5262
 
5263
+
5264
+
4839
5265
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
4840
5266
  <xsl:variable name="termsource_text">
4841
5267
  <xsl:apply-templates/>
@@ -4873,9 +5299,7 @@
4873
5299
  <xsl:value-of select="."/>
4874
5300
  </xsl:if>
4875
5301
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/*[local-name() = 'strong'][1][following-sibling::*[1][local-name() = 'origin']]/text()">
4876
- <fo:inline>
4877
-
4878
-
5302
+ <fo:inline xsl:use-attribute-sets="termsource-text-style">
4879
5303
  <xsl:value-of select="."/>
4880
5304
  </fo:inline>
4881
5305
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
@@ -4916,12 +5340,14 @@
4916
5340
 
4917
5341
 
4918
5342
  <fo:block-container margin-left="0mm">
4919
-
4920
- <fo:block xsl:use-attribute-sets="quote-style">
4921
- <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
5343
+ <fo:block-container xsl:use-attribute-sets="quote-style">
4922
5344
 
4923
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
4924
- </fo:block>
5345
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5346
+ <fo:block role="BlockQuote">
5347
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5348
+ </fo:block>
5349
+ </fo:block-container>
5350
+ </fo:block-container>
4925
5351
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
4926
5352
  <fo:block xsl:use-attribute-sets="quote-source-style">
4927
5353
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
@@ -4961,15 +5387,13 @@
4961
5387
  </xsl:variable>
4962
5388
 
4963
5389
  <xsl:choose>
4964
- <xsl:when test="normalize-space($bibitemid) != ''">
5390
+ <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
4965
5391
  <fo:inline xsl:use-attribute-sets="eref-style">
4966
5392
  <xsl:if test="@type = 'footnote'">
4967
-
4968
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
4969
- <xsl:attribute name="font-size">80%</xsl:attribute>
4970
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
4971
- <xsl:attribute name="vertical-align">super</xsl:attribute>
4972
-
5393
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
5394
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
5395
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
5396
+ <xsl:attribute name="font-size">80%</xsl:attribute>
4973
5397
 
4974
5398
  </xsl:if>
4975
5399
 
@@ -4989,7 +5413,6 @@
4989
5413
 
4990
5414
 
4991
5415
 
4992
-
4993
5416
  </xsl:if>
4994
5417
 
4995
5418
 
@@ -5048,8 +5471,6 @@
5048
5471
  </xsl:choose>
5049
5472
  </xsl:variable>
5050
5473
 
5051
- <!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
5052
-
5053
5474
  <xsl:choose>
5054
5475
  <xsl:when test="$lang = 'zh'">
5055
5476
  <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
@@ -5075,6 +5496,36 @@
5075
5496
  <xsl:with-param name="count" select="$count - 1"/>
5076
5497
  </xsl:call-template>
5077
5498
  </xsl:if>
5499
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']">
5500
+ <xsl:variable name="level">
5501
+ <xsl:call-template name="getLevel"/>
5502
+ </xsl:variable>
5503
+ <xsl:variable name="font-size">
5504
+
5505
+ <xsl:choose>
5506
+ <xsl:when test="$level &gt;= 3">11pt</xsl:when>
5507
+ <xsl:otherwise>12pt</xsl:otherwise>
5508
+ </xsl:choose>
5509
+
5510
+ </xsl:variable>
5511
+ <xsl:variable name="levelTerm">
5512
+ <xsl:call-template name="getLevelTermName"/>
5513
+ </xsl:variable>
5514
+ <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
5515
+
5516
+
5517
+
5518
+ <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
5519
+ <fo:block xsl:use-attribute-sets="term-name-style">
5520
+ <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
5521
+ </fo:block>
5522
+ </xsl:if>
5523
+
5524
+ <fo:block xsl:use-attribute-sets="preferred-term-style">
5525
+ <xsl:call-template name="setStyle_preferred"/>
5526
+ <xsl:apply-templates/>
5527
+ </fo:block>
5528
+ </fo:block>
5078
5529
  </xsl:template><xsl:template match="*[local-name() = 'domain']">
5079
5530
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
5080
5531
  <xsl:text> </xsl:text>
@@ -5105,7 +5556,6 @@
5105
5556
  <xsl:apply-templates/>
5106
5557
  </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p'][1]">
5107
5558
  <fo:inline> <xsl:apply-templates/></fo:inline>
5108
- <!-- <fo:block>&#xA0;</fo:block> -->
5109
5559
  <fo:block/>
5110
5560
  </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
5111
5561
 
@@ -5146,11 +5596,6 @@
5146
5596
  <xsl:apply-templates/>
5147
5597
  </fo:block>
5148
5598
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
5149
- <fo:block id="{@id}">
5150
- <xsl:apply-templates/>
5151
- </fo:block>
5152
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="/*/*[local-name() = 'bibliography']/*[local-name() = 'references'][@normative='true']">
5153
-
5154
5599
  <fo:block id="{@id}">
5155
5600
  <xsl:apply-templates/>
5156
5601
  </fo:block>
@@ -5169,24 +5614,8 @@
5169
5614
  <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
5170
5615
  </xsl:template><xsl:variable name="ul_labels_">
5171
5616
 
5172
-
5173
-
5174
-
5175
- <label>—</label> <!-- em dash -->
5176
-
5177
-
5178
-
5179
-
5180
-
5181
-
5182
-
5183
-
5184
-
5185
-
5186
-
5187
-
5188
-
5189
-
5617
+ <label>—</label> <!-- em dash -->
5618
+
5190
5619
  </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
5191
5620
  <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
5192
5621
  <xsl:variable name="list_level">
@@ -5209,9 +5638,94 @@
5209
5638
  <xsl:apply-templates select="$ul_labels/label[@level = 1]" mode="ul_labels"/>
5210
5639
  </xsl:otherwise>
5211
5640
  </xsl:choose>
5212
- </xsl:template><xsl:template match="label" mode="ul_labels">
5213
- <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
5214
- <xsl:value-of select="."/>
5641
+ </xsl:template><xsl:template match="label" mode="ul_labels">
5642
+ <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
5643
+ <xsl:value-of select="."/>
5644
+ </xsl:template><xsl:template name="getListItemFormat">
5645
+ <!-- Example: for BSI <?list-type loweralpha?> -->
5646
+ <xsl:variable name="processing_instruction_type" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-type'))"/>
5647
+ <xsl:choose>
5648
+ <xsl:when test="local-name(..) = 'ul'">
5649
+ <xsl:choose>
5650
+ <xsl:when test="normalize-space($processing_instruction_type) = 'simple'"/>
5651
+ <xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
5652
+ </xsl:choose>
5653
+ </xsl:when>
5654
+ <xsl:otherwise> <!-- for ordered lists 'ol' -->
5655
+
5656
+ <!-- Example: for BSI <?list-start 2?> -->
5657
+ <xsl:variable name="processing_instruction_start" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-start'))"/>
5658
+
5659
+ <xsl:variable name="start_value">
5660
+ <xsl:choose>
5661
+ <xsl:when test="normalize-space($processing_instruction_start) != ''">
5662
+ <xsl:value-of select="number($processing_instruction_start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
5663
+ </xsl:when>
5664
+ <xsl:when test="normalize-space(../@start) != ''">
5665
+ <xsl:value-of select="number(../@start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
5666
+ </xsl:when>
5667
+ <xsl:otherwise>0</xsl:otherwise>
5668
+ </xsl:choose>
5669
+ </xsl:variable>
5670
+
5671
+ <xsl:variable name="curr_value"><xsl:number/></xsl:variable>
5672
+
5673
+ <xsl:variable name="type">
5674
+ <xsl:choose>
5675
+ <xsl:when test="normalize-space($processing_instruction_type) != ''"><xsl:value-of select="$processing_instruction_type"/></xsl:when>
5676
+ <xsl:when test="normalize-space(../@type) != ''"><xsl:value-of select="../@type"/></xsl:when>
5677
+
5678
+ <xsl:otherwise> <!-- if no @type or @class = 'steps' -->
5679
+
5680
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
5681
+ <xsl:variable name="list_level">
5682
+ <xsl:choose>
5683
+ <xsl:when test="$list_level_ &lt;= 5"><xsl:value-of select="$list_level_"/></xsl:when>
5684
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 5"/></xsl:otherwise>
5685
+ </xsl:choose>
5686
+ </xsl:variable>
5687
+
5688
+ <xsl:choose>
5689
+ <xsl:when test="$list_level mod 5 = 0">roman_upper</xsl:when> <!-- level 5 -->
5690
+ <xsl:when test="$list_level mod 4 = 0">alphabet_upper</xsl:when> <!-- level 4 -->
5691
+ <xsl:when test="$list_level mod 3 = 0">roman</xsl:when> <!-- level 3 -->
5692
+ <xsl:when test="$list_level mod 2 = 0 and ancestor::*/@class = 'steps'">alphabet</xsl:when> <!-- level 2 and @class = 'steps'-->
5693
+ <xsl:when test="$list_level mod 2 = 0">arabic</xsl:when> <!-- level 2 -->
5694
+ <xsl:otherwise> <!-- level 1 -->
5695
+ <xsl:choose>
5696
+ <xsl:when test="ancestor::*/@class = 'steps'">arabic</xsl:when>
5697
+ <xsl:otherwise>alphabet</xsl:otherwise>
5698
+ </xsl:choose>
5699
+ </xsl:otherwise>
5700
+ </xsl:choose>
5701
+
5702
+ </xsl:otherwise>
5703
+ </xsl:choose>
5704
+ </xsl:variable>
5705
+
5706
+ <xsl:variable name="format">
5707
+ <xsl:choose>
5708
+ <xsl:when test="$type = 'arabic'">
5709
+ 1)
5710
+ </xsl:when>
5711
+ <xsl:when test="$type = 'alphabet'">
5712
+ a)
5713
+ </xsl:when>
5714
+ <xsl:when test="$type = 'alphabet_upper'">
5715
+ A.
5716
+ </xsl:when>
5717
+ <xsl:when test="$type = 'roman'">
5718
+ i)
5719
+ </xsl:when>
5720
+ <xsl:when test="$type = 'roman_upper'">I.</xsl:when>
5721
+ <xsl:otherwise>1.</xsl:otherwise> <!-- for any case, if $type has non-determined value, not using -->
5722
+ </xsl:choose>
5723
+ </xsl:variable>
5724
+
5725
+ <xsl:number value="$start_value + $curr_value" format="{normalize-space($format)}" lang="en"/>
5726
+
5727
+ </xsl:otherwise>
5728
+ </xsl:choose>
5215
5729
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
5216
5730
  <xsl:choose>
5217
5731
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -5227,18 +5741,75 @@
5227
5741
 
5228
5742
  <fo:block-container margin-left="0mm">
5229
5743
  <fo:block>
5230
- <xsl:apply-templates select="." mode="ul_ol"/>
5744
+ <xsl:apply-templates select="." mode="list"/>
5231
5745
  </fo:block>
5232
5746
  </fo:block-container>
5233
5747
  </fo:block-container>
5234
5748
  </xsl:when>
5235
5749
  <xsl:otherwise>
5236
5750
  <fo:block>
5237
- <xsl:apply-templates select="." mode="ul_ol"/>
5751
+ <xsl:apply-templates select="." mode="list"/>
5238
5752
  </fo:block>
5239
5753
  </xsl:otherwise>
5240
5754
  </xsl:choose>
5241
- </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="dash" select="'–'"/><xsl:variable name="bookmark_in_fn">
5755
+ </xsl:template><xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
5756
+ <fo:list-block xsl:use-attribute-sets="list-style">
5757
+
5758
+
5759
+ <xsl:if test="ancestor::csd:ol">
5760
+ <xsl:attribute name="margin-bottom">0pt</xsl:attribute>
5761
+ </xsl:if>
5762
+
5763
+
5764
+
5765
+
5766
+
5767
+
5768
+
5769
+
5770
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
5771
+ </fo:list-block>
5772
+ <!-- <xsl:for-each select="./iho:note">
5773
+ <xsl:call-template name="note"/>
5774
+ </xsl:for-each> -->
5775
+ <xsl:apply-templates select="./*[local-name() = 'note']"/>
5776
+ </xsl:template><xsl:template match="*[local-name()='li']">
5777
+ <fo:list-item xsl:use-attribute-sets="list-item-style">
5778
+ <xsl:copy-of select="@id"/>
5779
+
5780
+
5781
+
5782
+ <fo:list-item-label end-indent="label-end()">
5783
+ <fo:block xsl:use-attribute-sets="list-item-label-style">
5784
+
5785
+
5786
+
5787
+ <!-- if 'p' contains all text in 'add' first and last elements in first p are 'add' -->
5788
+ <xsl:if test="*[1][count(node()[normalize-space() != '']) = 1 and *[local-name() = 'add']]">
5789
+ <xsl:call-template name="append_add-style"/>
5790
+ </xsl:if>
5791
+
5792
+ <xsl:call-template name="getListItemFormat"/>
5793
+ </fo:block>
5794
+ </fo:list-item-label>
5795
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
5796
+ <fo:block>
5797
+
5798
+
5799
+
5800
+
5801
+
5802
+ <xsl:apply-templates/>
5803
+
5804
+ <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
5805
+
5806
+ <xsl:for-each select="./bsi:note">
5807
+ <xsl:call-template name="note"/>
5808
+ </xsl:for-each> -->
5809
+ </fo:block>
5810
+ </fo:list-item-body>
5811
+ </fo:list-item>
5812
+ </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="bookmark_in_fn">
5242
5813
  <xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
5243
5814
  <bookmark><xsl:value-of select="@id"/></bookmark>
5244
5815
  </xsl:for-each>
@@ -5260,7 +5831,7 @@
5260
5831
  <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
5261
5832
  <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
5262
5833
  <xsl:if test="@to">
5263
- <xsl:value-of select="$dash"/>
5834
+ <xsl:value-of select="$en_dash"/>
5264
5835
  <xsl:copy>
5265
5836
  <xsl:copy-of select="@*"/>
5266
5837
  <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
@@ -5285,7 +5856,7 @@
5285
5856
  <xsl:param name="target"/>
5286
5857
  <!-- <node></node> -->
5287
5858
  <xsl:choose>
5288
- <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
5859
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $en_dash) and $remove = 'true'">
5289
5860
  <!-- skip text (i.e. remove it) and process next element -->
5290
5861
  <!-- [removed_<xsl:value-of select="."/>] -->
5291
5862
  <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
@@ -5369,12 +5940,22 @@
5369
5940
  </xsl:variable>
5370
5941
  <xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
5371
5942
  <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
5943
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
5944
+ <fo:block xsl:use-attribute-sets="indexsect-title-style">
5945
+ <!-- Index -->
5946
+ <xsl:apply-templates/>
5947
+ </fo:block>
5948
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']/*[local-name() = 'title']" priority="4">
5949
+ <!-- Letter A, B, C, ... -->
5950
+ <fo:block xsl:use-attribute-sets="indexsect-clause-title-style">
5951
+ <xsl:apply-templates/>
5952
+ </fo:block>
5372
5953
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
5373
5954
  <xsl:apply-templates/>
5374
5955
  <fo:block>
5375
- <xsl:if test="following-sibling::*[local-name() = 'clause']">
5376
- <fo:block> </fo:block>
5377
- </xsl:if>
5956
+ <xsl:if test="following-sibling::*[local-name() = 'clause']">
5957
+ <fo:block> </fo:block>
5958
+ </xsl:if>
5378
5959
  </fo:block>
5379
5960
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
5380
5961
  <xsl:apply-templates/>
@@ -5384,6 +5965,9 @@
5384
5965
 
5385
5966
  <xsl:apply-templates/>
5386
5967
  </fo:block>
5968
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/text()">
5969
+ <!-- to split by '_' and other chars -->
5970
+ <xsl:call-template name="add-zero-spaces-java"/>
5387
5971
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
5388
5972
  <fo:inline id="{@id}" font-size="1pt"/>
5389
5973
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
@@ -5418,56 +6002,100 @@
5418
6002
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
5419
6003
  <fo:block><xsl:apply-templates/></fo:block>
5420
6004
  </fo:table-cell>
5421
- </xsl:template><xsl:template name="processBibitem">
5422
-
5423
-
5424
-
5425
-
6005
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][@hidden='true']" priority="3"/><xsl:template match="*[local-name() = 'bibitem'][starts-with(@id, 'hidden_bibitem_')]" priority="3"/><xsl:template match="*[local-name() = 'references'][@normative='true']" priority="2">
5426
6006
 
5427
6007
 
5428
6008
 
6009
+ <fo:block id="{@id}">
6010
+ <xsl:apply-templates/>
6011
+ </fo:block>
6012
+ </xsl:template><xsl:template match="*[local-name() = 'references']">
6013
+ <xsl:if test="not(ancestor::*[local-name() = 'annex'])">
6014
+
6015
+ <fo:block break-after="page"/>
6016
+
6017
+ </xsl:if>
5429
6018
 
5430
- <!-- start CSD bibtem processing -->
5431
- <xsl:if test=".//csd:fn">
5432
- <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
6019
+ <!-- <xsl:if test="ancestor::*[local-name() = 'annex']">
6020
+ <xsl:if test="$namespace = 'csa' or $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'itu'">
6021
+ <fo:block break-after="page"/>
5433
6022
  </xsl:if>
5434
- <xsl:variable name="docidentifier">
5435
- <xsl:choose>
5436
- <xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
5437
- <xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma-ordinal')]"/></xsl:otherwise>
5438
- </xsl:choose>
5439
- </xsl:variable>
5440
- <xsl:value-of select="$docidentifier"/>
5441
- <xsl:apply-templates select="csd:note"/>
5442
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
5443
- <xsl:choose>
5444
- <xsl:when test="csd:title[@type = 'main' and @language = 'en']">
5445
- <xsl:apply-templates select="csd:title[@type = 'main' and @language = 'en']"/>
5446
- </xsl:when>
5447
- <xsl:otherwise>
5448
- <xsl:apply-templates select="csd:title"/>
5449
- </xsl:otherwise>
5450
- </xsl:choose>
5451
- <xsl:apply-templates select="csd:formattedref"/>
5452
- <!-- end CSD bibtem processing -->
5453
-
6023
+ </xsl:if> -->
5454
6024
 
6025
+ <fo:block id="{@id}" xsl:use-attribute-sets="references-non-normative-style">
6026
+ <xsl:apply-templates/>
6027
+ </fo:block>
5455
6028
 
5456
6029
 
5457
-
5458
6030
 
5459
6031
 
5460
-
6032
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']">
6033
+ <xsl:call-template name="bibitem"/>
6034
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
5461
6035
 
6036
+ <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
6037
+ <xsl:call-template name="processBibitem"/>
6038
+ </fo:block>
6039
+
5462
6040
 
6041
+ </xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" priority="2">
6042
+
6043
+ <!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
6044
+ $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
6045
+ <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
6046
+ <fo:list-block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-style">
6047
+ <fo:list-item>
6048
+ <fo:list-item-label end-indent="label-end()">
6049
+ <fo:block>
6050
+ <fo:inline>
6051
+
6052
+ <xsl:value-of select="*[local-name()='docidentifier'][@type = 'metanorma-ordinal']"/>
6053
+ <xsl:if test="not(*[local-name()='docidentifier'][@type = 'metanorma-ordinal'])">
6054
+ <xsl:number format="[1]"/>
6055
+ </xsl:if>
6056
+
6057
+ </fo:inline>
6058
+ </fo:block>
6059
+ </fo:list-item-label>
6060
+ <fo:list-item-body start-indent="body-start()">
6061
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style">
6062
+ <xsl:call-template name="processBibitem"/>
6063
+ </fo:block>
6064
+ </fo:list-item-body>
6065
+ </fo:list-item>
6066
+ </fo:list-block>
6067
+
5463
6068
 
5464
- <!-- end MPFD bibitem processing -->
5465
-
5466
- <!-- start M3D bibitem processing -->
5467
-
6069
+ </xsl:template><xsl:template name="processBibitem">
5468
6070
 
5469
-
5470
6071
 
6072
+ <!-- start bibitem processing -->
6073
+ <xsl:if test=".//*[local-name() = 'fn']">
6074
+ <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
6075
+ </xsl:if>
6076
+ <xsl:variable name="docidentifier">
6077
+ <xsl:choose>
6078
+ <xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
6079
+ <xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma-ordinal')]"/></xsl:otherwise>
6080
+ </xsl:choose>
6081
+ </xsl:variable>
6082
+ <fo:inline><xsl:value-of select="$docidentifier"/></fo:inline>
6083
+ <xsl:apply-templates select="*[local-name() = 'note']"/>
6084
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
6085
+ <xsl:choose>
6086
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $lang]">
6087
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $lang]"/>
6088
+ </xsl:when>
6089
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
6090
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
6091
+ </xsl:when>
6092
+ <xsl:otherwise>
6093
+ <xsl:apply-templates select="*[local-name() = 'title']"/>
6094
+ </xsl:otherwise>
6095
+ </xsl:choose>
6096
+ <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
6097
+ <!-- end bibitem processing -->
6098
+
5471
6099
  </xsl:template><xsl:template name="processBibitemDocId">
5472
6100
  <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'metanorma-ordinal' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
5473
6101
  <xsl:choose>
@@ -5524,6 +6152,55 @@
5524
6152
  <xsl:value-of select="substring(.,1,1)"/>
5525
6153
  </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
5526
6154
  <fo:inline><xsl:apply-templates/></fo:inline>
6155
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'title']" priority="2">
6156
+ <!-- <fo:inline><xsl:apply-templates /></fo:inline> -->
6157
+ <fo:inline font-style="italic"> <!-- BIPM BSI CSD CSA GB IEC IHO ISO ITU JCGM -->
6158
+ <xsl:apply-templates/>
6159
+ </fo:inline>
6160
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
6161
+ <fo:footnote>
6162
+ <xsl:variable name="number">
6163
+
6164
+ <xsl:choose>
6165
+ <xsl:when test="ancestor::*[local-name() = 'references'][preceding-sibling::*[local-name() = 'references']]">
6166
+ <xsl:number level="any" count="*[local-name() = 'references'][preceding-sibling::*[local-name() = 'references']]//*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
6167
+ </xsl:when>
6168
+ <xsl:otherwise>
6169
+ <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
6170
+ </xsl:otherwise>
6171
+ </xsl:choose>
6172
+
6173
+ </xsl:variable>
6174
+ <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
6175
+ <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
6176
+ <xsl:value-of select="$number"/>
6177
+
6178
+ </fo:basic-link>
6179
+ </fo:inline>
6180
+ <fo:footnote-body>
6181
+ <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
6182
+ <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6183
+ <xsl:value-of select="$number"/>
6184
+
6185
+ </fo:inline>
6186
+ <xsl:apply-templates/>
6187
+ </fo:block>
6188
+ </fo:footnote-body>
6189
+ </fo:footnote>
6190
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'edition']"> <!-- for iho -->
6191
+ <xsl:text> edition </xsl:text>
6192
+ <xsl:value-of select="."/>
6193
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'uri']"> <!-- for iho -->
6194
+ <xsl:text> (</xsl:text>
6195
+ <fo:inline xsl:use-attribute-sets="link-style">
6196
+ <fo:basic-link external-destination="." fox:alt-text=".">
6197
+ <xsl:value-of select="."/>
6198
+ </fo:basic-link>
6199
+ </fo:inline>
6200
+ <xsl:text>)</xsl:text>
6201
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'docidentifier']"/><xsl:template match="*[local-name() = 'formattedref']">
6202
+
6203
+ <xsl:apply-templates/>
5527
6204
  </xsl:template><xsl:template match="*[local-name() = 'form']">
5528
6205
  <fo:block>
5529
6206
  <xsl:apply-templates/>
@@ -5596,24 +6273,7 @@
5596
6273
  <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
5597
6274
  <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
5598
6275
  <xsl:otherwise><!-- default value -->
5599
-
5600
-
5601
-
5602
6276
  2
5603
-
5604
-
5605
-
5606
-
5607
-
5608
-
5609
-
5610
-
5611
-
5612
-
5613
-
5614
-
5615
-
5616
-
5617
6277
  </xsl:otherwise>
5618
6278
  </xsl:choose>
5619
6279
  </xsl:variable><xsl:template match="*[local-name() = 'toc']">
@@ -5647,7 +6307,7 @@
5647
6307
  </fo:table-body>
5648
6308
  </fo:table>
5649
6309
  </fo:block>
5650
- </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
6310
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']" priority="2">
5651
6311
  <fo:table-row min-height="5mm">
5652
6312
  <xsl:apply-templates/>
5653
6313
  </fo:table-row>
@@ -5709,8 +6369,58 @@
5709
6369
  </fo:inline>
5710
6370
  </xsl:template><xsl:template match="@language">
5711
6371
  <xsl:copy-of select="."/>
5712
- </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
6372
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="4">
5713
6373
  <xsl:call-template name="title"/>
6374
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']">
6375
+
6376
+
6377
+
6378
+
6379
+
6380
+
6381
+ <fo:block xsl:use-attribute-sets="admonition-style">
6382
+
6383
+
6384
+
6385
+
6386
+
6387
+
6388
+ <xsl:call-template name="displayAdmonitionName"/>
6389
+ <xsl:text> — </xsl:text>
6390
+
6391
+
6392
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6393
+ </fo:block>
6394
+
6395
+ </xsl:template><xsl:template name="displayAdmonitionName">
6396
+
6397
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
6398
+ <xsl:if test="not(*[local-name() = 'name'])">
6399
+ <xsl:apply-templates select="@type"/>
6400
+ </xsl:if>
6401
+
6402
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'name']">
6403
+ <xsl:apply-templates/>
6404
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/@type">
6405
+ <xsl:variable name="admonition_type_">
6406
+ <xsl:call-template name="getLocalizedString">
6407
+ <xsl:with-param name="key">admonition.<xsl:value-of select="."/></xsl:with-param>
6408
+ </xsl:call-template>
6409
+ </xsl:variable>
6410
+ <xsl:variable name="admonition_type" select="normalize-space(java:toUpperCase(java:java.lang.String.new($admonition_type_)))"/>
6411
+ <xsl:value-of select="$admonition_type"/>
6412
+ <xsl:if test="$admonition_type = ''">
6413
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
6414
+ </xsl:if>
6415
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'p']">
6416
+
6417
+ <fo:block xsl:use-attribute-sets="admonition-p-style">
6418
+
6419
+
6420
+
6421
+ <xsl:apply-templates/>
6422
+ </fo:block>
6423
+
5714
6424
  </xsl:template><xsl:template name="convertDate">
5715
6425
  <xsl:param name="date"/>
5716
6426
  <xsl:param name="format" select="'short'"/>
@@ -5718,83 +6428,80 @@
5718
6428
  <xsl:variable name="month" select="substring($date, 6, 2)"/>
5719
6429
  <xsl:variable name="day" select="substring($date, 9, 2)"/>
5720
6430
  <xsl:variable name="monthStr">
5721
- <xsl:choose>
5722
- <xsl:when test="$month = '01'">January</xsl:when>
5723
- <xsl:when test="$month = '02'">February</xsl:when>
5724
- <xsl:when test="$month = '03'">March</xsl:when>
5725
- <xsl:when test="$month = '04'">April</xsl:when>
5726
- <xsl:when test="$month = '05'">May</xsl:when>
5727
- <xsl:when test="$month = '06'">June</xsl:when>
5728
- <xsl:when test="$month = '07'">July</xsl:when>
5729
- <xsl:when test="$month = '08'">August</xsl:when>
5730
- <xsl:when test="$month = '09'">September</xsl:when>
5731
- <xsl:when test="$month = '10'">October</xsl:when>
5732
- <xsl:when test="$month = '11'">November</xsl:when>
5733
- <xsl:when test="$month = '12'">December</xsl:when>
5734
- </xsl:choose>
6431
+ <xsl:call-template name="getMonthByNum">
6432
+ <xsl:with-param name="num" select="$month"/>
6433
+ <xsl:with-param name="lowercase" select="'true'"/>
6434
+ </xsl:call-template>
6435
+ </xsl:variable>
6436
+ <xsl:variable name="monthStr_localized">
6437
+ <xsl:if test="normalize-space($monthStr) != ''"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_<xsl:value-of select="$monthStr"/></xsl:with-param></xsl:call-template></xsl:if>
5735
6438
  </xsl:variable>
5736
6439
  <xsl:variable name="result">
5737
6440
  <xsl:choose>
5738
- <xsl:when test="$format = 'ddMMyyyy'">
6441
+ <xsl:when test="$format = 'ddMMyyyy'"> <!-- convert date from format 2007-04-01 to 1 April 2007 -->
5739
6442
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5740
6443
  <xsl:text> </xsl:text>
5741
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
6444
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ' , $year))"/>
5742
6445
  </xsl:when>
5743
6446
  <xsl:when test="$format = 'ddMM'">
5744
6447
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5745
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
6448
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr_localized"/>
5746
6449
  </xsl:when>
5747
6450
  <xsl:when test="$format = 'short' or $day = ''">
5748
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6451
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $year))"/>
5749
6452
  </xsl:when>
5750
6453
  <xsl:otherwise>
5751
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
6454
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $day, ', ' , $year))"/> <!-- January 01, 2022 -->
5752
6455
  </xsl:otherwise>
5753
6456
  </xsl:choose>
5754
6457
  </xsl:variable>
5755
6458
  <xsl:value-of select="$result"/>
5756
- </xsl:template><xsl:template name="convertDateLocalized">
5757
- <xsl:param name="date"/>
5758
- <xsl:param name="format" select="'short'"/>
5759
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
5760
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
5761
- <xsl:variable name="day" select="substring($date, 9, 2)"/>
5762
- <xsl:variable name="monthStr">
5763
- <xsl:choose>
5764
- <xsl:when test="$month = '01'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_january</xsl:with-param></xsl:call-template></xsl:when>
5765
- <xsl:when test="$month = '02'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_february</xsl:with-param></xsl:call-template></xsl:when>
5766
- <xsl:when test="$month = '03'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_march</xsl:with-param></xsl:call-template></xsl:when>
5767
- <xsl:when test="$month = '04'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_april</xsl:with-param></xsl:call-template></xsl:when>
5768
- <xsl:when test="$month = '05'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_may</xsl:with-param></xsl:call-template></xsl:when>
5769
- <xsl:when test="$month = '06'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_june</xsl:with-param></xsl:call-template></xsl:when>
5770
- <xsl:when test="$month = '07'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_july</xsl:with-param></xsl:call-template></xsl:when>
5771
- <xsl:when test="$month = '08'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_august</xsl:with-param></xsl:call-template></xsl:when>
5772
- <xsl:when test="$month = '09'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_september</xsl:with-param></xsl:call-template></xsl:when>
5773
- <xsl:when test="$month = '10'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_october</xsl:with-param></xsl:call-template></xsl:when>
5774
- <xsl:when test="$month = '11'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_november</xsl:with-param></xsl:call-template></xsl:when>
5775
- <xsl:when test="$month = '12'"><xsl:call-template name="getLocalizedString"><xsl:with-param name="key">month_december</xsl:with-param></xsl:call-template></xsl:when>
5776
- </xsl:choose>
5777
- </xsl:variable>
5778
- <xsl:variable name="result">
6459
+ </xsl:template><xsl:template name="getMonthByNum">
6460
+ <xsl:param name="num"/>
6461
+ <xsl:param name="lang">en</xsl:param>
6462
+ <xsl:param name="lowercase">false</xsl:param> <!-- return 'january' instead of 'January' -->
6463
+ <xsl:variable name="monthStr_">
5779
6464
  <xsl:choose>
5780
- <xsl:when test="$format = 'ddMMyyyy'">
5781
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5782
- <xsl:text> </xsl:text>
5783
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
5784
- </xsl:when>
5785
- <xsl:when test="$format = 'ddMM'">
5786
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5787
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
5788
- </xsl:when>
5789
- <xsl:when test="$format = 'short' or $day = ''">
5790
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6465
+ <xsl:when test="$lang = 'fr'">
6466
+ <xsl:choose>
6467
+ <xsl:when test="$num = '01'">Janvier</xsl:when>
6468
+ <xsl:when test="$num = '02'">Février</xsl:when>
6469
+ <xsl:when test="$num = '03'">Mars</xsl:when>
6470
+ <xsl:when test="$num = '04'">Avril</xsl:when>
6471
+ <xsl:when test="$num = '05'">Mai</xsl:when>
6472
+ <xsl:when test="$num = '06'">Juin</xsl:when>
6473
+ <xsl:when test="$num = '07'">Juillet</xsl:when>
6474
+ <xsl:when test="$num = '08'">Août</xsl:when>
6475
+ <xsl:when test="$num = '09'">Septembre</xsl:when>
6476
+ <xsl:when test="$num = '10'">Octobre</xsl:when>
6477
+ <xsl:when test="$num = '11'">Novembre</xsl:when>
6478
+ <xsl:when test="$num = '12'">Décembre</xsl:when>
6479
+ </xsl:choose>
5791
6480
  </xsl:when>
5792
6481
  <xsl:otherwise>
5793
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
6482
+ <xsl:choose>
6483
+ <xsl:when test="$num = '01'">January</xsl:when>
6484
+ <xsl:when test="$num = '02'">February</xsl:when>
6485
+ <xsl:when test="$num = '03'">March</xsl:when>
6486
+ <xsl:when test="$num = '04'">April</xsl:when>
6487
+ <xsl:when test="$num = '05'">May</xsl:when>
6488
+ <xsl:when test="$num = '06'">June</xsl:when>
6489
+ <xsl:when test="$num = '07'">July</xsl:when>
6490
+ <xsl:when test="$num = '08'">August</xsl:when>
6491
+ <xsl:when test="$num = '09'">September</xsl:when>
6492
+ <xsl:when test="$num = '10'">October</xsl:when>
6493
+ <xsl:when test="$num = '11'">November</xsl:when>
6494
+ <xsl:when test="$num = '12'">December</xsl:when>
6495
+ </xsl:choose>
5794
6496
  </xsl:otherwise>
5795
6497
  </xsl:choose>
5796
6498
  </xsl:variable>
5797
- <xsl:value-of select="$result"/>
6499
+ <xsl:choose>
6500
+ <xsl:when test="normalize-space($lowercase) = 'true'">
6501
+ <xsl:value-of select="java:toLowerCase(java:java.lang.String.new($monthStr_))"/>
6502
+ </xsl:when>
6503
+ <xsl:otherwise><xsl:value-of select="$monthStr_"/></xsl:otherwise>
6504
+ </xsl:choose>
5798
6505
  </xsl:template><xsl:template name="insertKeywords">
5799
6506
  <xsl:param name="sorting" select="'true'"/>
5800
6507
  <xsl:param name="charAtEnd" select="'.'"/>
@@ -5827,9 +6534,6 @@
5827
6534
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
5828
6535
  </xsl:choose>
5829
6536
  </xsl:template><xsl:template name="addPDFUAmeta">
5830
- <xsl:variable name="lang">
5831
- <xsl:call-template name="getLang"/>
5832
- </xsl:variable>
5833
6537
  <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
5834
6538
  <pdf:dictionary type="normal" key="ViewerPreferences">
5835
6539
  <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
@@ -5842,14 +6546,9 @@
5842
6546
  <dc:title>
5843
6547
  <xsl:variable name="title">
5844
6548
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5845
-
5846
-
5847
-
5848
-
5849
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang]"/>
5850
-
5851
-
5852
6549
 
6550
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang]"/>
6551
+
5853
6552
  </xsl:for-each>
5854
6553
  </xsl:variable>
5855
6554
  <xsl:choose>
@@ -5864,21 +6563,18 @@
5864
6563
  <dc:creator>
5865
6564
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5866
6565
 
5867
- <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
5868
- <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
5869
- <xsl:if test="position() != last()">; </xsl:if>
5870
- </xsl:for-each>
5871
-
5872
-
5873
-
6566
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
6567
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
6568
+ <xsl:if test="position() != last()">; </xsl:if>
6569
+ </xsl:for-each>
6570
+
5874
6571
  </xsl:for-each>
5875
6572
  </dc:creator>
5876
6573
  <dc:description>
5877
6574
  <xsl:variable name="abstract">
5878
6575
 
5879
- <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
5880
-
5881
-
6576
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
6577
+
5882
6578
  </xsl:variable>
5883
6579
  <xsl:value-of select="normalize-space($abstract)"/>
5884
6580
  </dc:description>
@@ -5898,7 +6594,6 @@
5898
6594
  <xsl:value-of select="../@id"/>
5899
6595
  </xsl:when>
5900
6596
  <xsl:otherwise>
5901
- <!-- <xsl:value-of select="concat(local-name(..), '_', text())"/> -->
5902
6597
  <xsl:value-of select="concat(generate-id(..), '_', text())"/>
5903
6598
  </xsl:otherwise>
5904
6599
  </xsl:choose>
@@ -5924,9 +6619,6 @@
5924
6619
  <xsl:when test="ancestor::*[local-name() = 'preface']">
5925
6620
  <xsl:value-of select="$level_total - 2"/>
5926
6621
  </xsl:when>
5927
- <!-- <xsl:when test="parent::*[local-name() = 'sections']">
5928
- <xsl:value-of select="$level_total - 1"/>
5929
- </xsl:when> -->
5930
6622
  <xsl:when test="ancestor::*[local-name() = 'sections']">
5931
6623
  <xsl:value-of select="$level_total - 1"/>
5932
6624
  </xsl:when>
@@ -6069,10 +6761,12 @@
6069
6761
  <xsl:param name="key"/>
6070
6762
  <xsl:param name="formatted">false</xsl:param>
6071
6763
  <xsl:param name="lang"/>
6764
+ <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
6072
6765
 
6073
6766
  <xsl:variable name="curr_lang">
6074
6767
  <xsl:choose>
6075
6768
  <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
6769
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
6076
6770
  <xsl:otherwise>
6077
6771
  <xsl:call-template name="getLang"/>
6078
6772
  </xsl:otherwise>
@@ -6107,6 +6801,7 @@
6107
6801
  </xsl:otherwise>
6108
6802
  </xsl:choose>
6109
6803
  </xsl:when>
6804
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
6110
6805
  <xsl:otherwise>
6111
6806
  <xsl:variable name="key_">
6112
6807
  <xsl:call-template name="capitalize">
@@ -6116,7 +6811,6 @@
6116
6811
  <xsl:value-of select="$key_"/>
6117
6812
  </xsl:otherwise>
6118
6813
  </xsl:choose>
6119
-
6120
6814
  </xsl:template><xsl:template name="setTrackChangesStyles">
6121
6815
  <xsl:param name="isAdded"/>
6122
6816
  <xsl:param name="isDeleted"/>
@@ -6139,7 +6833,6 @@
6139
6833
  <xsl:if test="local-name() = 'table'">
6140
6834
  <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
6141
6835
  </xsl:if>
6142
- <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
6143
6836
  <xsl:attribute name="padding">2mm</xsl:attribute>
6144
6837
  </xsl:if>
6145
6838
  </xsl:otherwise>
@@ -6159,15 +6852,18 @@
6159
6852
  </xsl:choose>
6160
6853
  </xsl:template><xsl:template name="setTextAlignment">
6161
6854
  <xsl:param name="default">left</xsl:param>
6855
+ <xsl:variable name="align" select="normalize-space(@align)"/>
6162
6856
  <xsl:attribute name="text-align">
6163
6857
  <xsl:choose>
6164
- <xsl:when test="@align and not(@align = 'indent')"><xsl:value-of select="@align"/></xsl:when>
6858
+ <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
6859
+ <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
6860
+ <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
6165
6861
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
6166
6862
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
6167
6863
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
6168
6864
  </xsl:choose>
6169
6865
  </xsl:attribute>
6170
- <xsl:if test="@align = 'indent'">
6866
+ <xsl:if test="$align = 'indent'">
6171
6867
  <xsl:attribute name="margin-left">7mm</xsl:attribute>
6172
6868
  </xsl:if>
6173
6869
  </xsl:template><xsl:template name="number-to-words">
@@ -6175,53 +6871,153 @@
6175
6871
  <xsl:param name="first"/>
6176
6872
  <xsl:if test="$number != ''">
6177
6873
  <xsl:variable name="words">
6178
- <words>
6179
- <word cardinal="1">One-</word>
6180
- <word ordinal="1">First </word>
6181
- <word cardinal="2">Two-</word>
6182
- <word ordinal="2">Second </word>
6183
- <word cardinal="3">Three-</word>
6184
- <word ordinal="3">Third </word>
6185
- <word cardinal="4">Four-</word>
6186
- <word ordinal="4">Fourth </word>
6187
- <word cardinal="5">Five-</word>
6188
- <word ordinal="5">Fifth </word>
6189
- <word cardinal="6">Six-</word>
6190
- <word ordinal="6">Sixth </word>
6191
- <word cardinal="7">Seven-</word>
6192
- <word ordinal="7">Seventh </word>
6193
- <word cardinal="8">Eight-</word>
6194
- <word ordinal="8">Eighth </word>
6195
- <word cardinal="9">Nine-</word>
6196
- <word ordinal="9">Ninth </word>
6197
- <word ordinal="10">Tenth </word>
6198
- <word ordinal="11">Eleventh </word>
6199
- <word ordinal="12">Twelfth </word>
6200
- <word ordinal="13">Thirteenth </word>
6201
- <word ordinal="14">Fourteenth </word>
6202
- <word ordinal="15">Fifteenth </word>
6203
- <word ordinal="16">Sixteenth </word>
6204
- <word ordinal="17">Seventeenth </word>
6205
- <word ordinal="18">Eighteenth </word>
6206
- <word ordinal="19">Nineteenth </word>
6207
- <word cardinal="20">Twenty-</word>
6208
- <word ordinal="20">Twentieth </word>
6209
- <word cardinal="30">Thirty-</word>
6210
- <word ordinal="30">Thirtieth </word>
6211
- <word cardinal="40">Forty-</word>
6212
- <word ordinal="40">Fortieth </word>
6213
- <word cardinal="50">Fifty-</word>
6214
- <word ordinal="50">Fiftieth </word>
6215
- <word cardinal="60">Sixty-</word>
6216
- <word ordinal="60">Sixtieth </word>
6217
- <word cardinal="70">Seventy-</word>
6218
- <word ordinal="70">Seventieth </word>
6219
- <word cardinal="80">Eighty-</word>
6220
- <word ordinal="80">Eightieth </word>
6221
- <word cardinal="90">Ninety-</word>
6222
- <word ordinal="90">Ninetieth </word>
6223
- <word cardinal="100">Hundred-</word>
6224
- <word ordinal="100">Hundredth </word>
6874
+ <words>
6875
+ <xsl:choose>
6876
+ <xsl:when test="$lang = 'fr'"> <!-- https://en.wiktionary.org/wiki/Appendix:French_numbers -->
6877
+ <word cardinal="1">Une-</word>
6878
+ <word ordinal="1">Première </word>
6879
+ <word cardinal="2">Deux-</word>
6880
+ <word ordinal="2">Seconde </word>
6881
+ <word cardinal="3">Trois-</word>
6882
+ <word ordinal="3">Tierce </word>
6883
+ <word cardinal="4">Quatre-</word>
6884
+ <word ordinal="4">Quatrième </word>
6885
+ <word cardinal="5">Cinq-</word>
6886
+ <word ordinal="5">Cinquième </word>
6887
+ <word cardinal="6">Six-</word>
6888
+ <word ordinal="6">Sixième </word>
6889
+ <word cardinal="7">Sept-</word>
6890
+ <word ordinal="7">Septième </word>
6891
+ <word cardinal="8">Huit-</word>
6892
+ <word ordinal="8">Huitième </word>
6893
+ <word cardinal="9">Neuf-</word>
6894
+ <word ordinal="9">Neuvième </word>
6895
+ <word ordinal="10">Dixième </word>
6896
+ <word ordinal="11">Onzième </word>
6897
+ <word ordinal="12">Douzième </word>
6898
+ <word ordinal="13">Treizième </word>
6899
+ <word ordinal="14">Quatorzième </word>
6900
+ <word ordinal="15">Quinzième </word>
6901
+ <word ordinal="16">Seizième </word>
6902
+ <word ordinal="17">Dix-septième </word>
6903
+ <word ordinal="18">Dix-huitième </word>
6904
+ <word ordinal="19">Dix-neuvième </word>
6905
+ <word cardinal="20">Vingt-</word>
6906
+ <word ordinal="20">Vingtième </word>
6907
+ <word cardinal="30">Trente-</word>
6908
+ <word ordinal="30">Trentième </word>
6909
+ <word cardinal="40">Quarante-</word>
6910
+ <word ordinal="40">Quarantième </word>
6911
+ <word cardinal="50">Cinquante-</word>
6912
+ <word ordinal="50">Cinquantième </word>
6913
+ <word cardinal="60">Soixante-</word>
6914
+ <word ordinal="60">Soixantième </word>
6915
+ <word cardinal="70">Septante-</word>
6916
+ <word ordinal="70">Septantième </word>
6917
+ <word cardinal="80">Huitante-</word>
6918
+ <word ordinal="80">Huitantième </word>
6919
+ <word cardinal="90">Nonante-</word>
6920
+ <word ordinal="90">Nonantième </word>
6921
+ <word cardinal="100">Cent-</word>
6922
+ <word ordinal="100">Centième </word>
6923
+ </xsl:when>
6924
+ <xsl:when test="$lang = 'ru'">
6925
+ <word cardinal="1">Одна-</word>
6926
+ <word ordinal="1">Первое </word>
6927
+ <word cardinal="2">Две-</word>
6928
+ <word ordinal="2">Второе </word>
6929
+ <word cardinal="3">Три-</word>
6930
+ <word ordinal="3">Третье </word>
6931
+ <word cardinal="4">Четыре-</word>
6932
+ <word ordinal="4">Четвертое </word>
6933
+ <word cardinal="5">Пять-</word>
6934
+ <word ordinal="5">Пятое </word>
6935
+ <word cardinal="6">Шесть-</word>
6936
+ <word ordinal="6">Шестое </word>
6937
+ <word cardinal="7">Семь-</word>
6938
+ <word ordinal="7">Седьмое </word>
6939
+ <word cardinal="8">Восемь-</word>
6940
+ <word ordinal="8">Восьмое </word>
6941
+ <word cardinal="9">Девять-</word>
6942
+ <word ordinal="9">Девятое </word>
6943
+ <word ordinal="10">Десятое </word>
6944
+ <word ordinal="11">Одиннадцатое </word>
6945
+ <word ordinal="12">Двенадцатое </word>
6946
+ <word ordinal="13">Тринадцатое </word>
6947
+ <word ordinal="14">Четырнадцатое </word>
6948
+ <word ordinal="15">Пятнадцатое </word>
6949
+ <word ordinal="16">Шестнадцатое </word>
6950
+ <word ordinal="17">Семнадцатое </word>
6951
+ <word ordinal="18">Восемнадцатое </word>
6952
+ <word ordinal="19">Девятнадцатое </word>
6953
+ <word cardinal="20">Двадцать-</word>
6954
+ <word ordinal="20">Двадцатое </word>
6955
+ <word cardinal="30">Тридцать-</word>
6956
+ <word ordinal="30">Тридцатое </word>
6957
+ <word cardinal="40">Сорок-</word>
6958
+ <word ordinal="40">Сороковое </word>
6959
+ <word cardinal="50">Пятьдесят-</word>
6960
+ <word ordinal="50">Пятидесятое </word>
6961
+ <word cardinal="60">Шестьдесят-</word>
6962
+ <word ordinal="60">Шестидесятое </word>
6963
+ <word cardinal="70">Семьдесят-</word>
6964
+ <word ordinal="70">Семидесятое </word>
6965
+ <word cardinal="80">Восемьдесят-</word>
6966
+ <word ordinal="80">Восьмидесятое </word>
6967
+ <word cardinal="90">Девяносто-</word>
6968
+ <word ordinal="90">Девяностое </word>
6969
+ <word cardinal="100">Сто-</word>
6970
+ <word ordinal="100">Сотое </word>
6971
+ </xsl:when>
6972
+ <xsl:otherwise> <!-- default english -->
6973
+ <word cardinal="1">One-</word>
6974
+ <word ordinal="1">First </word>
6975
+ <word cardinal="2">Two-</word>
6976
+ <word ordinal="2">Second </word>
6977
+ <word cardinal="3">Three-</word>
6978
+ <word ordinal="3">Third </word>
6979
+ <word cardinal="4">Four-</word>
6980
+ <word ordinal="4">Fourth </word>
6981
+ <word cardinal="5">Five-</word>
6982
+ <word ordinal="5">Fifth </word>
6983
+ <word cardinal="6">Six-</word>
6984
+ <word ordinal="6">Sixth </word>
6985
+ <word cardinal="7">Seven-</word>
6986
+ <word ordinal="7">Seventh </word>
6987
+ <word cardinal="8">Eight-</word>
6988
+ <word ordinal="8">Eighth </word>
6989
+ <word cardinal="9">Nine-</word>
6990
+ <word ordinal="9">Ninth </word>
6991
+ <word ordinal="10">Tenth </word>
6992
+ <word ordinal="11">Eleventh </word>
6993
+ <word ordinal="12">Twelfth </word>
6994
+ <word ordinal="13">Thirteenth </word>
6995
+ <word ordinal="14">Fourteenth </word>
6996
+ <word ordinal="15">Fifteenth </word>
6997
+ <word ordinal="16">Sixteenth </word>
6998
+ <word ordinal="17">Seventeenth </word>
6999
+ <word ordinal="18">Eighteenth </word>
7000
+ <word ordinal="19">Nineteenth </word>
7001
+ <word cardinal="20">Twenty-</word>
7002
+ <word ordinal="20">Twentieth </word>
7003
+ <word cardinal="30">Thirty-</word>
7004
+ <word ordinal="30">Thirtieth </word>
7005
+ <word cardinal="40">Forty-</word>
7006
+ <word ordinal="40">Fortieth </word>
7007
+ <word cardinal="50">Fifty-</word>
7008
+ <word ordinal="50">Fiftieth </word>
7009
+ <word cardinal="60">Sixty-</word>
7010
+ <word ordinal="60">Sixtieth </word>
7011
+ <word cardinal="70">Seventy-</word>
7012
+ <word ordinal="70">Seventieth </word>
7013
+ <word cardinal="80">Eighty-</word>
7014
+ <word ordinal="80">Eightieth </word>
7015
+ <word cardinal="90">Ninety-</word>
7016
+ <word ordinal="90">Ninetieth </word>
7017
+ <word cardinal="100">Hundred-</word>
7018
+ <word ordinal="100">Hundredth </word>
7019
+ </xsl:otherwise>
7020
+ </xsl:choose>
6225
7021
  </words>
6226
7022
  </xsl:variable>
6227
7023
 
@@ -6266,6 +7062,25 @@
6266
7062
  </xsl:otherwise>
6267
7063
  </xsl:choose>
6268
7064
  </xsl:if>
7065
+ </xsl:template><xsl:template name="number-to-ordinal">
7066
+ <xsl:param name="number"/>
7067
+ <xsl:param name="curr_lang"/>
7068
+ <xsl:choose>
7069
+ <xsl:when test="$curr_lang = 'fr'">
7070
+ <xsl:choose>
7071
+ <xsl:when test="$number = '1'">re</xsl:when>
7072
+ <xsl:otherwise>e</xsl:otherwise>
7073
+ </xsl:choose>
7074
+ </xsl:when>
7075
+ <xsl:otherwise>
7076
+ <xsl:choose>
7077
+ <xsl:when test="$number = 1">st</xsl:when>
7078
+ <xsl:when test="$number = 2">nd</xsl:when>
7079
+ <xsl:when test="$number = 3">rd</xsl:when>
7080
+ <xsl:otherwise>th</xsl:otherwise>
7081
+ </xsl:choose>
7082
+ </xsl:otherwise>
7083
+ </xsl:choose>
6269
7084
  </xsl:template><xsl:template name="setAltText">
6270
7085
  <xsl:param name="value"/>
6271
7086
  <xsl:attribute name="fox:alt-text">
@@ -6276,4 +7091,18 @@
6276
7091
  <xsl:otherwise>_</xsl:otherwise>
6277
7092
  </xsl:choose>
6278
7093
  </xsl:attribute>
7094
+ </xsl:template><xsl:template name="substring-after-last">
7095
+ <xsl:param name="value"/>
7096
+ <xsl:param name="delimiter"/>
7097
+ <xsl:choose>
7098
+ <xsl:when test="contains($value, $delimiter)">
7099
+ <xsl:call-template name="substring-after-last">
7100
+ <xsl:with-param name="value" select="substring-after($value, $delimiter)"/>
7101
+ <xsl:with-param name="delimiter" select="$delimiter"/>
7102
+ </xsl:call-template>
7103
+ </xsl:when>
7104
+ <xsl:otherwise>
7105
+ <xsl:value-of select="$value"/>
7106
+ </xsl:otherwise>
7107
+ </xsl:choose>
6279
7108
  </xsl:template></xsl:stylesheet>