metanorma-mpfa 0.7.5 → 0.8.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,23 +2,12 @@
2
2
 
3
3
  <xsl:output method="xml" encoding="UTF-8" indent="no"/>
4
4
 
5
- <xsl:param name="svg_images"/>
6
- <xsl:param name="external_index"/><!-- path to index xml, generated on 1st pass, based on FOP Intermediate Format -->
7
- <xsl:variable name="images" select="document($svg_images)"/>
8
- <xsl:param name="basepath"/>
9
-
10
5
  <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
7
 
13
8
 
14
9
  <xsl:variable name="debug">false</xsl:variable>
15
- <xsl:variable name="pageWidth" select="210"/>
16
- <xsl:variable name="pageHeight" select="297"/>
17
- <xsl:variable name="marginLeftRight1" select="19"/>
18
- <xsl:variable name="marginLeftRight2" select="19"/>
19
- <xsl:variable name="marginTop" select="16.5"/>
20
- <xsl:variable name="marginBottom" select="10"/>
21
-
10
+
22
11
  <xsl:variable name="copyrightHolder">Ribose Group Inc.</xsl:variable>
23
12
 
24
13
  <xsl:variable name="copyright">
@@ -57,13 +46,10 @@
57
46
  </contents>
58
47
  </xsl:variable>
59
48
 
60
- <xsl:variable name="lang">
61
- <xsl:call-template name="getLang"/>
62
- </xsl:variable>
63
49
 
64
50
  <xsl:template match="/">
65
51
  <xsl:call-template name="namespaceCheck"/>
66
- <fo:root font-family="Arial" font-size="10.5pt" xml:lang="{$lang}">
52
+ <fo:root xsl:use-attribute-sets="root-style" xml:lang="{$lang}">
67
53
  <fo:layout-master-set>
68
54
 
69
55
  <!-- cover page -->
@@ -153,9 +139,11 @@
153
139
  <xsl:with-param name="name" select="'title-edition'"/>
154
140
  </xsl:call-template>
155
141
  <xsl:value-of select="$linebreak"/>
156
- <xsl:call-template name="formatDate">
142
+ <xsl:call-template name="convertDate">
157
143
  <xsl:with-param name="date" select="/mpfd:mpfd-standard/mpfd:bibdata/mpfd:version/mpfd:revision-date"/>
158
- </xsl:call-template>
144
+ <xsl:with-param name="format">ddMMyyyy</xsl:with-param>
145
+ </xsl:call-template>
146
+
159
147
  </fo:block>
160
148
  <fo:block>Hong Kong</fo:block>
161
149
  </fo:block-container>
@@ -265,9 +253,6 @@
265
253
  <!-- ============================= -->
266
254
  <!-- CONTENTS -->
267
255
  <!-- ============================= -->
268
- <xsl:template match="node()" mode="contents">
269
- <xsl:apply-templates mode="contents"/>
270
- </xsl:template>
271
256
 
272
257
  <!-- element with title -->
273
258
  <xsl:template match="*[mpfd:title]" mode="contents">
@@ -322,37 +307,11 @@
322
307
  <fo:inline> </fo:inline>
323
308
  </xsl:template>
324
309
 
325
-
326
- <xsl:template match="mpfd:bibitem" mode="contents"/>
327
310
 
328
311
  <xsl:template match="mpfd:references" mode="contents">
329
312
  <xsl:apply-templates mode="contents"/>
330
313
  </xsl:template>
331
-
332
314
 
333
- <xsl:template name="getListItemFormat">
334
- <xsl:choose>
335
- <xsl:when test="local-name(..) = 'ul'">
336
- <xsl:call-template name="setULLabel"/>
337
- </xsl:when>
338
- <xsl:otherwise> <!-- for ordered lists -->
339
- <xsl:choose>
340
- <xsl:when test="../@type = 'arabic'">
341
- <xsl:number format="a)" lang="en"/>
342
- </xsl:when>
343
- <xsl:when test="../@type = 'roman'">
344
- <xsl:number format="1)"/>
345
- </xsl:when>
346
- <xsl:when test="../@type = 'alphabet'">
347
- <xsl:number format="a)" lang="en"/>
348
- </xsl:when>
349
- <xsl:otherwise>
350
- <xsl:number format="a)" lang="en"/>
351
- </xsl:otherwise>
352
- </xsl:choose>
353
- </xsl:otherwise>
354
- </xsl:choose>
355
- </xsl:template>
356
315
 
357
316
  <!-- ============================= -->
358
317
  <!-- ============================= -->
@@ -403,7 +362,7 @@
403
362
  </xsl:template>
404
363
 
405
364
 
406
- <xsl:template match="mpfd:p">
365
+ <xsl:template match="mpfd:p" name="paragraph">
407
366
  <xsl:param name="inline" select="'false'"/>
408
367
  <xsl:variable name="previous-element" select="local-name(preceding-sibling::*[1])"/>
409
368
  <xsl:variable name="element-name">
@@ -461,56 +420,7 @@
461
420
  </xsl:template>
462
421
 
463
422
 
464
-
465
- <xsl:template match="mpfd:bibitem">
466
- <fo:block id="{@id}" margin-bottom="12pt" text-indent="-11.7mm" margin-left="11.7mm"> <!-- 12 pt -->
467
- <!-- mpfd:docidentifier -->
468
- <xsl:if test="mpfd:docidentifier">
469
- <xsl:choose>
470
- <xsl:when test="mpfd:docidentifier/@type = 'metanorma'"/>
471
- <xsl:otherwise><fo:inline><xsl:value-of select="mpfd:docidentifier"/></fo:inline></xsl:otherwise>
472
- </xsl:choose>
473
- </xsl:if>
474
- <xsl:apply-templates select="mpfd:note"/>
475
- <xsl:if test="mpfd:docidentifier">, </xsl:if>
476
- <fo:inline font-style="italic">
477
- <xsl:choose>
478
- <xsl:when test="mpfd:title[@type = 'main' and @language = 'en']">
479
- <xsl:value-of select="mpfd:title[@type = 'main' and @language = 'en']"/>
480
- </xsl:when>
481
- <xsl:otherwise>
482
- <xsl:value-of select="mpfd:title"/>
483
- </xsl:otherwise>
484
- </xsl:choose>
485
- </fo:inline>
486
- </fo:block>
487
- </xsl:template>
488
-
489
-
490
- <xsl:template match="mpfd:bibitem/mpfd:note">
491
- <fo:footnote>
492
- <xsl:variable name="number">
493
- <xsl:number level="any" count="mpfd:bibitem/mpfd:note"/>
494
- </xsl:variable>
495
- <fo:inline font-size="7pt" keep-with-previous.within-line="always" baseline-shift="30%">
496
- <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
497
- <xsl:value-of select="$number"/>
498
- </fo:basic-link>
499
- </fo:inline>
500
- <fo:footnote-body>
501
- <fo:block font-size="9pt" margin-bottom="4pt" start-indent="0pt">
502
- <fo:inline font-size="6pt" id="{generate-id()}" keep-with-next.within-line="always" baseline-shift="30%" padding-right="1mm"><!-- alignment-baseline="hanging" font-size="60%" -->
503
- <xsl:value-of select="$number"/>
504
- </fo:inline>
505
- <xsl:apply-templates/>
506
- </fo:block>
507
- </fo:footnote-body>
508
- </fo:footnote>
509
- </xsl:template>
510
-
511
-
512
-
513
- <xsl:template match="mpfd:ul | mpfd:ol" mode="ul_ol">
423
+ <xsl:template match="mpfd:ul | mpfd:ol" mode="list" priority="2">
514
424
  <fo:block-container margin-left="0mm">
515
425
  <xsl:variable name="margin-left">
516
426
  <xsl:variable name="countAncestorLists" select="count(ancestor::mpfd:ul) + count(ancestor::mpfd:ol)"/>
@@ -521,41 +431,13 @@
521
431
  </xsl:attribute>
522
432
 
523
433
  <fo:block-container margin-left="0mm">
524
- <fo:list-block margin-bottom="12pt" provisional-distance-between-starts="6mm">
525
- <xsl:if test="local-name() = 'ol'">
526
- <xsl:attribute name="provisional-distance-between-starts">7mm</xsl:attribute>
527
- </xsl:if>
528
- <xsl:apply-templates/>
529
- </fo:list-block>
530
- <xsl:for-each select="./mpfd:note//mpfd:p">
531
- <xsl:call-template name="note"/>
532
- </xsl:for-each>
434
+ <xsl:call-template name="list"/>
533
435
  </fo:block-container>
534
436
  </fo:block-container>
535
437
  </xsl:template>
536
438
 
537
- <xsl:template match="mpfd:ul//mpfd:note | mpfd:ol//mpfd:note" priority="2"/>
538
-
539
- <xsl:template match="mpfd:li">
540
- <fo:list-item id="{@id}">
541
- <fo:list-item-label end-indent="label-end()">
542
- <fo:block>
543
- <xsl:call-template name="getListItemFormat"/>
544
- </fo:block>
545
- </fo:list-item-label>
546
- <fo:list-item-body start-indent="body-start()">
547
- <xsl:apply-templates/>
548
- <xsl:apply-templates select=".//mpfd:note" mode="process"/>
549
- </fo:list-item-body>
550
- </fo:list-item>
551
- </xsl:template>
552
-
553
- <xsl:template match="mpfd:note" mode="process">
554
- <xsl:call-template name="note"/>
555
- </xsl:template>
556
-
557
439
 
558
- <xsl:template match="mpfd:preferred">
440
+ <xsl:template match="mpfd:preferred" priority="2">
559
441
  <fo:inline font-weight="bold">
560
442
  <xsl:call-template name="setStyle_preferred"/>
561
443
  <xsl:apply-templates/>
@@ -574,78 +456,12 @@
574
456
  </xsl:template>
575
457
 
576
458
 
577
- <xsl:template match="mpfd:references">
578
- <fo:block break-after="page"/>
579
- <xsl:apply-templates/>
580
- <fo:block id="{@id}">
581
- <xsl:apply-templates/>
582
- </fo:block>
583
- </xsl:template>
584
-
585
- <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
586
- <xsl:template match="mpfd:references/mpfd:bibitem">
587
- <fo:list-block id="{@id}" margin-bottom="12pt" provisional-distance-between-starts="12mm">
588
- <fo:list-item>
589
- <fo:list-item-label end-indent="label-end()">
590
- <fo:block>
591
- <fo:inline>
592
- <xsl:number format="[1]"/>
593
- </fo:inline>
594
- </fo:block>
595
- </fo:list-item-label>
596
- <fo:list-item-body start-indent="body-start()">
597
- <fo:block text-align="justify">
598
- <xsl:variable name="docidentifier">
599
- <xsl:if test="mpfd:docidentifier">
600
- <xsl:choose>
601
- <xsl:when test="mpfd:docidentifier/@type = 'metanorma'"/>
602
- <xsl:otherwise><xsl:value-of select="mpfd:docidentifier"/></xsl:otherwise>
603
- </xsl:choose>
604
- </xsl:if>
605
- </xsl:variable>
606
- <fo:inline><xsl:value-of select="$docidentifier"/></fo:inline>
607
- <xsl:apply-templates select="mpfd:note"/>
608
- <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
609
- <xsl:choose>
610
- <xsl:when test="mpfd:title[@type = 'main' and @language = 'en']">
611
- <xsl:apply-templates select="mpfd:title[@type = 'main' and @language = 'en']"/>
612
- </xsl:when>
613
- <xsl:otherwise>
614
- <xsl:apply-templates select="mpfd:title"/>
615
- </xsl:otherwise>
616
- </xsl:choose>
617
- <xsl:apply-templates select="mpfd:formattedref"/>
618
- </fo:block>
619
- </fo:list-item-body>
620
- </fo:list-item>
621
- </fo:list-block>
622
- </xsl:template>
623
-
624
- <xsl:template match="mpfd:references[not(@normative='true')]/mpfd:bibitem" mode="contents"/>
625
-
626
- <xsl:template match="mpfd:references[not(@normative='true')]/mpfd:bibitem/mpfd:title">
627
- <fo:inline font-style="italic">
628
- <xsl:apply-templates/>
629
- </fo:inline>
630
- </xsl:template>
631
-
632
-
633
- <xsl:template match="mpfd:admonition">
634
- <fo:block text-align="center" margin-bottom="12pt" font-weight="bold">
635
- <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(@type))"/>
636
- </fo:block>
637
- <fo:block font-weight="bold">
638
- <xsl:apply-templates/>
639
- </fo:block>
640
- </xsl:template>
641
-
642
-
643
- <xsl:template match="mpfd:formula/mpfd:stem">
459
+ <xsl:template match="mpfd:formula/mpfd:stem" priority="2">
644
460
  <fo:block margin-top="14pt" margin-bottom="14pt" text-align-last="justify">
645
461
  <fo:inline padding-left="5mm"><xsl:apply-templates/></fo:inline>
646
462
  <fo:inline keep-together.within-line="always">
647
463
  <fo:leader leader-pattern="space"/>
648
- <xsl:apply-templates select="../mpfd:name" mode="presentation"/>
464
+ <xsl:apply-templates select="../mpfd:name"/>
649
465
  </fo:inline>
650
466
  </fo:block>
651
467
  </xsl:template>
@@ -653,31 +469,6 @@
653
469
  <xsl:variable name="Image-MPFD-Logo">
654
470
  <xsl:text>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</xsl:text>
655
471
  </xsl:variable>
656
-
657
- <!-- convert date from format 2007-04-01 to 1 April 2007-->
658
- <xsl:template name="formatDate">
659
- <xsl:param name="date"/>
660
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
661
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
662
- <xsl:variable name="day" select="number(substring($date, 9, 2))"/>
663
- <xsl:variable name="monthStr">
664
- <xsl:choose>
665
- <xsl:when test="$month = '01'">January</xsl:when>
666
- <xsl:when test="$month = '02'">February</xsl:when>
667
- <xsl:when test="$month = '03'">March</xsl:when>
668
- <xsl:when test="$month = '04'">April</xsl:when>
669
- <xsl:when test="$month = '05'">May</xsl:when>
670
- <xsl:when test="$month = '06'">June</xsl:when>
671
- <xsl:when test="$month = '07'">July</xsl:when>
672
- <xsl:when test="$month = '08'">August</xsl:when>
673
- <xsl:when test="$month = '09'">September</xsl:when>
674
- <xsl:when test="$month = '10'">October</xsl:when>
675
- <xsl:when test="$month = '11'">November</xsl:when>
676
- <xsl:when test="$month = '12'">December</xsl:when>
677
- </xsl:choose>
678
- </xsl:variable>
679
- <xsl:value-of select="normalize-space(concat($day, ' ', $monthStr, ' ', $year))"/>
680
- </xsl:template>
681
472
 
682
473
  <xsl:template name="insertHeaderFooter">
683
474
  <xsl:param name="font-weight">normal</xsl:param>
@@ -734,27 +525,33 @@
734
525
  </xsl:template>
735
526
 
736
527
 
737
- <xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="titles_">
738
-
739
- <title-annex lang="en">Annex </title-annex>
740
- <title-annex lang="fr">Annexe </title-annex>
741
-
742
-
528
+ <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">
529
+ <xsl:call-template name="getLang"/>
530
+ </xsl:variable><xsl:variable name="pageWidth_">
531
+ 210
532
+ </xsl:variable><xsl:variable name="pageWidth" select="normalize-space($pageWidth_)"/><xsl:variable name="pageHeight_">
533
+ 297
534
+ </xsl:variable><xsl:variable name="pageHeight" select="normalize-space($pageHeight_)"/><xsl:variable name="marginLeftRight1_">
535
+ 19
536
+ </xsl:variable><xsl:variable name="marginLeftRight1" select="normalize-space($marginLeftRight1_)"/><xsl:variable name="marginLeftRight2_">
537
+ 19
538
+ </xsl:variable><xsl:variable name="marginLeftRight2" select="normalize-space($marginLeftRight2_)"/><xsl:variable name="marginTop_">
539
+ 16.5
540
+ </xsl:variable><xsl:variable name="marginTop" select="normalize-space($marginTop_)"/><xsl:variable name="marginBottom_">
541
+ 10
542
+ </xsl:variable><xsl:variable name="marginBottom" select="normalize-space($marginBottom_)"/><xsl:variable name="titles_">
743
543
 
744
544
  <title-edition lang="en">
745
545
 
746
- <xsl:text>Edition </xsl:text>
747
-
748
-
546
+ <xsl:text>Edition </xsl:text>
547
+
749
548
  </title-edition>
750
549
 
751
550
  <title-edition lang="fr">
752
-
753
- <xsl:text>Édition </xsl:text>
754
-
551
+ <xsl:text>Édition </xsl:text>
755
552
  </title-edition>
756
553
 
757
-
554
+ <!-- These titles of Table of contents renders different than determined in localized-strings -->
758
555
  <title-toc lang="en">
759
556
 
760
557
  <xsl:text>Contents</xsl:text>
@@ -763,22 +560,13 @@
763
560
 
764
561
  </title-toc>
765
562
  <title-toc lang="fr">
563
+ <xsl:text>Sommaire</xsl:text>
564
+ </title-toc>
565
+ <title-toc lang="zh">
766
566
 
767
- <xsl:text>Sommaire</xsl:text>
768
-
769
-
770
- </title-toc>
771
-
772
-
773
-
774
- <title-page lang="en">Page</title-page>
775
- <title-page lang="fr">Page</title-page>
776
-
777
- <title-key lang="en">Key</title-key>
778
- <title-key lang="fr">Légende</title-key>
779
-
780
- <title-where lang="en">where</title-where>
781
- <title-where lang="fr">où</title-where>
567
+ <xsl:text>Contents</xsl:text>
568
+
569
+ </title-toc>
782
570
 
783
571
  <title-descriptors lang="en">Descriptors</title-descriptors>
784
572
 
@@ -794,32 +582,9 @@
794
582
  </title-part>
795
583
  <title-part lang="zh">第 # 部分:</title-part>
796
584
 
797
- <title-subpart lang="en">
798
-
799
- </title-subpart>
800
- <title-subpart lang="fr">
801
-
802
- </title-subpart>
803
-
804
- <title-modified lang="en">modified</title-modified>
805
- <title-modified lang="fr">modifiée</title-modified>
806
-
807
- <title-modified lang="zh">modified</title-modified>
808
-
809
-
810
-
811
- <title-source lang="en">
812
-
813
- <xsl:text>SOURCE</xsl:text>
814
-
815
-
816
- </title-source>
817
-
818
- <title-keywords lang="en">Keywords</title-keywords>
585
+ <title-subpart lang="en">Sub-part #</title-subpart>
586
+ <title-subpart lang="fr">Partie de sub #</title-subpart>
819
587
 
820
- <title-deprecated lang="en">DEPRECATED</title-deprecated>
821
- <title-deprecated lang="fr">DEPRECATED</title-deprecated>
822
-
823
588
  <title-list-tables lang="en">List of Tables</title-list-tables>
824
589
 
825
590
  <title-list-figures lang="en">List of Figures</title-list-figures>
@@ -828,44 +593,15 @@
828
593
 
829
594
  <title-list-recommendations lang="en">List of Recommendations</title-list-recommendations>
830
595
 
831
- <title-acknowledgements lang="en">Acknowledgements</title-acknowledgements>
832
-
833
- <title-abstract lang="en">Abstract</title-abstract>
834
-
835
596
  <title-summary lang="en">Summary</title-summary>
836
597
 
837
- <title-in lang="en">in </title-in>
838
-
839
- <title-partly-supercedes lang="en">Partly Supercedes </title-partly-supercedes>
840
- <title-partly-supercedes lang="zh">部分代替 </title-partly-supercedes>
841
-
842
- <title-completion-date lang="en">Completion date for this manuscript</title-completion-date>
843
- <title-completion-date lang="zh">本稿完成日期</title-completion-date>
844
-
845
- <title-issuance-date lang="en">Issuance Date: #</title-issuance-date>
846
- <title-issuance-date lang="zh"># 发布</title-issuance-date>
847
-
848
- <title-implementation-date lang="en">Implementation Date: #</title-implementation-date>
849
- <title-implementation-date lang="zh"># 实施</title-implementation-date>
850
-
851
- <title-obligation-normative lang="en">normative</title-obligation-normative>
852
- <title-obligation-normative lang="zh">规范性附录</title-obligation-normative>
853
-
854
- <title-caution lang="en">CAUTION</title-caution>
855
- <title-caution lang="zh">注意</title-caution>
856
-
857
- <title-warning lang="en">WARNING</title-warning>
858
- <title-warning lang="zh">警告</title-warning>
859
-
860
- <title-amendment lang="en">AMENDMENT</title-amendment>
861
-
862
598
  <title-continued lang="en">(continued)</title-continued>
863
599
  <title-continued lang="fr">(continué)</title-continued>
864
600
 
865
- </xsl:variable><xsl:variable name="bibdata">
601
+ </xsl:variable><xsl:variable name="titles" select="xalan:nodeset($titles_)"/><xsl:variable name="bibdata">
866
602
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'bibdata']"/>
867
603
  <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'localized-strings']"/>
868
- </xsl:variable><xsl:variable name="tab_zh"> </xsl:variable><xsl:template name="getTitle">
604
+ </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">
869
605
  <xsl:param name="name"/>
870
606
  <xsl:param name="lang"/>
871
607
  <xsl:variable name="lang_">
@@ -888,7 +624,71 @@
888
624
  <xsl:value-of select="$titles/*[local-name() = $name][@lang = 'en']"/>
889
625
  </xsl:otherwise>
890
626
  </xsl:choose>
891
- </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">
627
+ </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">
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+ <xsl:attribute name="font-family">Arial</xsl:attribute>
640
+ <xsl:attribute name="font-size">10.5pt</xsl:attribute>
641
+
642
+
643
+
644
+
645
+
646
+
647
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-style">
648
+
649
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-title-style">
650
+
651
+
652
+ </xsl:attribute-set><xsl:attribute-set name="copyright-statement-p-style">
653
+
654
+
655
+
656
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-style">
657
+
658
+
659
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-title-style">
660
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
661
+
662
+
663
+
664
+
665
+
666
+
667
+ </xsl:attribute-set><xsl:attribute-set name="license-statement-p-style">
668
+
669
+
670
+
671
+
672
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-style">
673
+
674
+
675
+
676
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-title-style">
677
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
678
+
679
+
680
+
681
+
682
+
683
+ </xsl:attribute-set><xsl:attribute-set name="legal-statement-p-style">
684
+
685
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-style">
686
+
687
+
688
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-title-style">
689
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
690
+
691
+ </xsl:attribute-set><xsl:attribute-set name="feedback-statement-p-style">
892
692
 
893
693
 
894
694
  </xsl:attribute-set><xsl:attribute-set name="link-style">
@@ -900,6 +700,9 @@
900
700
 
901
701
 
902
702
 
703
+ </xsl:attribute-set><xsl:attribute-set name="sourcecode-container-style">
704
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
705
+
903
706
  </xsl:attribute-set><xsl:attribute-set name="sourcecode-style">
904
707
  <xsl:attribute name="white-space">pre</xsl:attribute>
905
708
  <xsl:attribute name="wrap-option">wrap</xsl:attribute>
@@ -909,10 +712,17 @@
909
712
 
910
713
 
911
714
 
715
+
716
+
717
+
718
+
719
+
912
720
 
913
721
 
914
722
 
915
723
 
724
+
725
+
916
726
  </xsl:attribute-set><xsl:attribute-set name="permission-style">
917
727
 
918
728
  </xsl:attribute-set><xsl:attribute-set name="permission-name-style">
@@ -961,10 +771,12 @@
961
771
 
962
772
 
963
773
 
774
+
964
775
  </xsl:attribute-set><xsl:attribute-set name="example-body-style">
965
776
 
966
777
 
967
778
 
779
+
968
780
  <xsl:attribute name="margin-left">12.5mm</xsl:attribute>
969
781
  <xsl:attribute name="margin-bottom">18pt</xsl:attribute>
970
782
 
@@ -980,15 +792,16 @@
980
792
 
981
793
 
982
794
 
795
+
983
796
 
984
797
 
985
798
 
986
799
 
800
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
987
801
  <xsl:attribute name="font-size">10pt</xsl:attribute>
988
802
  <xsl:attribute name="font-weight">bold</xsl:attribute>
989
803
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
990
804
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
991
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
992
805
 
993
806
 
994
807
  </xsl:attribute-set><xsl:attribute-set name="example-p-style">
@@ -1006,6 +819,7 @@
1006
819
 
1007
820
 
1008
821
 
822
+
1009
823
  <xsl:attribute name="font-size">10pt</xsl:attribute>
1010
824
 
1011
825
 
@@ -1017,73 +831,267 @@
1017
831
 
1018
832
  </xsl:attribute-set><xsl:variable name="table-border_">
1019
833
 
1020
- </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-name-style">
1021
- <xsl:attribute name="keep-with-next">always</xsl:attribute>
1022
-
834
+ </xsl:variable><xsl:variable name="table-border" select="normalize-space($table-border_)"/><xsl:attribute-set name="table-container-style">
835
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
836
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1023
837
 
1024
838
 
1025
839
 
1026
840
 
1027
-
1028
841
 
1029
842
 
1030
843
 
1031
-
1032
844
 
1033
845
 
1034
- <xsl:attribute name="text-align">center</xsl:attribute>
1035
- <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
1036
- <xsl:attribute name="font-size">11pt</xsl:attribute>
1037
846
 
1038
847
 
1039
848
 
1040
- </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
1041
849
 
1042
- </xsl:attribute-set><xsl:attribute-set name="appendix-style">
850
+ <xsl:attribute name="space-after">12pt</xsl:attribute>
1043
851
 
1044
852
 
1045
853
 
1046
- </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1047
854
 
1048
855
 
1049
856
 
1050
- </xsl:attribute-set><xsl:attribute-set name="xref-style">
857
+
1051
858
 
1052
859
 
860
+ </xsl:attribute-set><xsl:attribute-set name="table-style">
861
+ <xsl:attribute name="table-omit-footer-at-break">true</xsl:attribute>
862
+ <xsl:attribute name="table-layout">fixed</xsl:attribute>
863
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
864
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
1053
865
 
1054
- <xsl:attribute name="color">blue</xsl:attribute>
1055
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1056
866
 
1057
867
 
1058
868
 
1059
- </xsl:attribute-set><xsl:attribute-set name="eref-style">
1060
869
 
1061
870
 
1062
871
 
1063
- <xsl:attribute name="color">blue</xsl:attribute>
1064
- <xsl:attribute name="text-decoration">underline</xsl:attribute>
1065
872
 
1066
873
 
1067
874
 
1068
875
 
1069
- </xsl:attribute-set><xsl:attribute-set name="note-style">
1070
876
 
1071
877
 
878
+ <xsl:attribute name="border-top">2pt solid black</xsl:attribute>
879
+ <xsl:attribute name="border-bottom">2pt solid black</xsl:attribute>
1072
880
 
1073
881
 
1074
-
1075
882
 
1076
883
 
1077
884
 
1078
885
 
1079
886
 
1080
887
 
888
+ </xsl:attribute-set><xsl:attribute-set name="table-name-style">
889
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
890
+
1081
891
 
1082
892
 
1083
893
 
1084
894
 
895
+
1085
896
 
1086
- </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
897
+
898
+
899
+
900
+
901
+
902
+ <xsl:attribute name="text-align">center</xsl:attribute>
903
+ <xsl:attribute name="margin-bottom">6pt</xsl:attribute>
904
+ <xsl:attribute name="font-size">11pt</xsl:attribute>
905
+
906
+
907
+
908
+ </xsl:attribute-set><xsl:attribute-set name="table-row-style">
909
+ <xsl:attribute name="min-height">4mm</xsl:attribute>
910
+
911
+
912
+
913
+
914
+ </xsl:attribute-set><xsl:attribute-set name="table-header-row-style" use-attribute-sets="table-row-style">
915
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
916
+
917
+
918
+
919
+
920
+
921
+
922
+
923
+
924
+
925
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-row-style" use-attribute-sets="table-row-style">
926
+
927
+
928
+
929
+ </xsl:attribute-set><xsl:attribute-set name="table-body-row-style" use-attribute-sets="table-row-style">
930
+
931
+ </xsl:attribute-set><xsl:attribute-set name="table-header-cell-style">
932
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
933
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
934
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
935
+ <xsl:attribute name="display-align">center</xsl:attribute>
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+ <xsl:attribute name="border-top">solid black 2pt</xsl:attribute>
944
+ <xsl:attribute name="border-bottom">solid black 2pt</xsl:attribute>
945
+
946
+
947
+
948
+
949
+
950
+
951
+
952
+ </xsl:attribute-set><xsl:attribute-set name="table-cell-style">
953
+ <xsl:attribute name="display-align">center</xsl:attribute>
954
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
955
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+ </xsl:attribute-set><xsl:attribute-set name="table-footer-cell-style">
970
+ <xsl:attribute name="border">solid black 1pt</xsl:attribute>
971
+ <xsl:attribute name="padding-left">1mm</xsl:attribute>
972
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
973
+ <xsl:attribute name="padding-top">1mm</xsl:attribute>
974
+
975
+
976
+
977
+
978
+
979
+
980
+
981
+
982
+
983
+
984
+
985
+ </xsl:attribute-set><xsl:attribute-set name="table-note-style">
986
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
987
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
988
+
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-style">
997
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-number-style">
1005
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1006
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+ </xsl:attribute-set><xsl:attribute-set name="fn-container-body-style">
1020
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1021
+ <xsl:attribute name="start-indent">0</xsl:attribute>
1022
+
1023
+
1024
+ </xsl:attribute-set><xsl:attribute-set name="table-fn-body-style">
1025
+
1026
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-number-style">
1027
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1028
+ <xsl:attribute name="padding-right">5mm</xsl:attribute>
1029
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1030
+
1031
+ </xsl:attribute-set><xsl:attribute-set name="figure-fn-body-style">
1032
+ <xsl:attribute name="text-align">justify</xsl:attribute>
1033
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1034
+
1035
+ </xsl:attribute-set><xsl:attribute-set name="dt-row-style">
1036
+
1037
+
1038
+ </xsl:attribute-set><xsl:attribute-set name="dt-style">
1039
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+ </xsl:attribute-set><xsl:attribute-set name="appendix-style">
1051
+
1052
+
1053
+
1054
+ </xsl:attribute-set><xsl:attribute-set name="appendix-example-style">
1055
+
1056
+
1057
+
1058
+ </xsl:attribute-set><xsl:attribute-set name="xref-style">
1059
+
1060
+
1061
+
1062
+ <xsl:attribute name="color">blue</xsl:attribute>
1063
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1064
+
1065
+
1066
+
1067
+ </xsl:attribute-set><xsl:attribute-set name="eref-style">
1068
+
1069
+
1070
+
1071
+ <xsl:attribute name="color">blue</xsl:attribute>
1072
+ <xsl:attribute name="text-decoration">underline</xsl:attribute>
1073
+
1074
+
1075
+
1076
+
1077
+ </xsl:attribute-set><xsl:attribute-set name="note-style">
1078
+
1079
+
1080
+
1081
+
1082
+
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+ </xsl:attribute-set><xsl:variable name="note-body-indent">10mm</xsl:variable><xsl:variable name="note-body-indent-table">5mm</xsl:variable><xsl:attribute-set name="note-name-style">
1087
1095
 
1088
1096
 
1089
1097
 
@@ -1098,6 +1106,7 @@
1098
1106
 
1099
1107
 
1100
1108
  </xsl:attribute-set><xsl:attribute-set name="table-note-name-style">
1109
+ <xsl:attribute name="padding-right">2mm</xsl:attribute>
1101
1110
 
1102
1111
 
1103
1112
 
@@ -1130,7 +1139,8 @@
1130
1139
 
1131
1140
 
1132
1141
  </xsl:attribute-set><xsl:attribute-set name="quote-style">
1133
- <xsl:attribute name="role">BlockQuote</xsl:attribute>
1142
+ <xsl:attribute name="margin-left">12mm</xsl:attribute>
1143
+ <xsl:attribute name="margin-right">12mm</xsl:attribute>
1134
1144
 
1135
1145
 
1136
1146
 
@@ -1139,14 +1149,12 @@
1139
1149
 
1140
1150
 
1141
1151
  <xsl:attribute name="margin-top">12pt</xsl:attribute>
1142
- <xsl:attribute name="margin-left">12mm</xsl:attribute>
1143
- <xsl:attribute name="margin-right">12mm</xsl:attribute>
1144
1152
  <xsl:attribute name="text-align">justify</xsl:attribute>
1145
1153
 
1146
1154
  </xsl:attribute-set><xsl:attribute-set name="quote-source-style">
1155
+ <xsl:attribute name="text-align">right</xsl:attribute>
1147
1156
 
1148
1157
 
1149
-
1150
1158
  </xsl:attribute-set><xsl:attribute-set name="termsource-style">
1151
1159
 
1152
1160
 
@@ -1155,6 +1163,9 @@
1155
1163
 
1156
1164
 
1157
1165
 
1166
+ </xsl:attribute-set><xsl:attribute-set name="termsource-text-style">
1167
+
1168
+
1158
1169
  </xsl:attribute-set><xsl:attribute-set name="origin-style">
1159
1170
 
1160
1171
 
@@ -1162,6 +1173,11 @@
1162
1173
 
1163
1174
  </xsl:attribute-set><xsl:attribute-set name="term-style">
1164
1175
 
1176
+ </xsl:attribute-set><xsl:attribute-set name="term-name-style">
1177
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1178
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1179
+ </xsl:attribute-set><xsl:attribute-set name="figure-style">
1180
+
1165
1181
  </xsl:attribute-set><xsl:attribute-set name="figure-name-style">
1166
1182
 
1167
1183
 
@@ -1191,6 +1207,33 @@
1191
1207
  <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1192
1208
 
1193
1209
  </xsl:attribute-set><xsl:attribute-set name="formula-style">
1210
+ <xsl:attribute name="margin-top">6pt</xsl:attribute>
1211
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-block-style">
1219
+ <xsl:attribute name="text-align">center</xsl:attribute>
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+ </xsl:attribute-set><xsl:attribute-set name="formula-stem-number-style">
1232
+ <xsl:attribute name="text-align">right</xsl:attribute>
1233
+
1234
+
1235
+
1236
+
1194
1237
 
1195
1238
  </xsl:attribute-set><xsl:attribute-set name="image-style">
1196
1239
  <xsl:attribute name="text-align">center</xsl:attribute>
@@ -1224,6 +1267,18 @@
1224
1267
  <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1225
1268
  <xsl:attribute name="keep-with-previous">always</xsl:attribute>
1226
1269
 
1270
+ </xsl:attribute-set><xsl:attribute-set name="preferred-block-style">
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+ </xsl:attribute-set><xsl:attribute-set name="preferred-term-style">
1278
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1279
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1280
+
1281
+
1227
1282
  </xsl:attribute-set><xsl:attribute-set name="domain-style">
1228
1283
 
1229
1284
  </xsl:attribute-set><xsl:attribute-set name="admitted-style">
@@ -1257,12 +1312,246 @@
1257
1312
 
1258
1313
  </xsl:attribute-set><xsl:attribute-set name="list-style">
1259
1314
 
1260
- </xsl:attribute-set><xsl:attribute-set name="toc-style">
1261
- <xsl:attribute name="line-height">135%</xsl:attribute>
1262
- </xsl:attribute-set><xsl:attribute-set name="fn-style">
1263
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1264
- </xsl:attribute-set><xsl:attribute-set name="fn-num-style">
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+ <xsl:attribute name="provisional-distance-between-starts">6mm</xsl:attribute>
1325
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+ </xsl:attribute-set><xsl:attribute-set name="list-item-style">
1335
+
1336
+
1337
+ </xsl:attribute-set><xsl:attribute-set name="list-item-label-style">
1338
+
1339
+
1340
+
1341
+ </xsl:attribute-set><xsl:attribute-set name="list-item-body-style">
1342
+
1343
+
1344
+
1345
+ </xsl:attribute-set><xsl:attribute-set name="toc-style">
1346
+ <xsl:attribute name="line-height">135%</xsl:attribute>
1347
+ </xsl:attribute-set><xsl:attribute-set name="fn-reference-style">
1348
+ <xsl:attribute name="font-size">80%</xsl:attribute>
1349
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+
1356
+
1357
+
1358
+ </xsl:attribute-set><xsl:attribute-set name="fn-style">
1359
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1360
+ </xsl:attribute-set><xsl:attribute-set name="fn-num-style">
1361
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+ <xsl:attribute name="font-size">7pt</xsl:attribute>
1374
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1375
+
1376
+
1377
+
1378
+
1379
+
1380
+
1381
+ </xsl:attribute-set><xsl:attribute-set name="fn-body-style">
1382
+ <xsl:attribute name="font-weight">normal</xsl:attribute>
1383
+ <xsl:attribute name="font-style">normal</xsl:attribute>
1384
+ <xsl:attribute name="text-indent">0</xsl:attribute>
1385
+ <xsl:attribute name="start-indent">0</xsl:attribute>
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
1398
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+ </xsl:attribute-set><xsl:attribute-set name="fn-body-num-style">
1408
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+ <xsl:attribute name="font-size">6pt</xsl:attribute>
1421
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
1422
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+ </xsl:attribute-set><xsl:attribute-set name="admonition-style">
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+ </xsl:attribute-set><xsl:attribute-set name="admonition-container-style">
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+ </xsl:attribute-set><xsl:attribute-set name="admonition-name-style">
1457
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1458
+
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+ <xsl:attribute name="text-align">center</xsl:attribute>
1466
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1467
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+ </xsl:attribute-set><xsl:attribute-set name="admonition-p-style">
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-style">
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1503
+ <xsl:attribute name="text-indent">-11.7mm</xsl:attribute>
1504
+ <xsl:attribute name="margin-left">11.7mm</xsl:attribute>
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-style">
1513
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
1514
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1515
+
1516
+
1517
+
1518
+
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-style">
1527
+
1528
+
1529
+
1530
+
1531
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-style">
1532
+ <xsl:attribute name="provisional-distance-between-starts">12mm</xsl:attribute>
1533
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-normative-list-body-style">
1546
+
1547
+
1548
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-non-normative-list-body-style">
1549
+
1550
+
1551
+
1552
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-style">
1265
1553
  <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
1554
+ <xsl:attribute name="font-size">65%</xsl:attribute>
1266
1555
 
1267
1556
 
1268
1557
 
@@ -1274,19 +1563,16 @@
1274
1563
 
1275
1564
 
1276
1565
 
1277
- <xsl:attribute name="font-size">7pt</xsl:attribute>
1278
- <xsl:attribute name="vertical-align">super</xsl:attribute>
1279
1566
 
1567
+ <xsl:attribute name="font-size">7pt</xsl:attribute>
1568
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
1280
1569
 
1281
1570
 
1282
1571
 
1283
1572
 
1284
1573
 
1285
- </xsl:attribute-set><xsl:attribute-set name="fn-body-style">
1286
- <xsl:attribute name="font-weight">normal</xsl:attribute>
1287
- <xsl:attribute name="font-style">normal</xsl:attribute>
1288
- <xsl:attribute name="text-indent">0</xsl:attribute>
1289
- <xsl:attribute name="start-indent">0</xsl:attribute>
1574
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-number-style">
1575
+ <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
1290
1576
 
1291
1577
 
1292
1578
 
@@ -1298,18 +1584,21 @@
1298
1584
 
1299
1585
 
1300
1586
 
1301
- <xsl:attribute name="font-size">9pt</xsl:attribute>
1302
- <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1303
1587
 
1588
+ <xsl:attribute name="font-size">6pt</xsl:attribute>
1589
+ <xsl:attribute name="baseline-shift">30%</xsl:attribute>
1590
+ <xsl:attribute name="padding-right">1mm</xsl:attribute>
1304
1591
 
1305
1592
 
1306
1593
 
1307
1594
 
1308
1595
 
1596
+ </xsl:attribute-set><xsl:attribute-set name="bibitem-note-fn-body-style">
1597
+ <xsl:attribute name="font-size">10pt</xsl:attribute>
1598
+ <xsl:attribute name="margin-bottom">12pt</xsl:attribute>
1599
+ <xsl:attribute name="start-indent">0pt</xsl:attribute>
1309
1600
 
1310
1601
 
1311
- </xsl:attribute-set><xsl:attribute-set name="fn-body-num-style">
1312
- <xsl:attribute name="keep-with-next.within-line">always</xsl:attribute>
1313
1602
 
1314
1603
 
1315
1604
 
@@ -1318,43 +1607,124 @@
1318
1607
 
1319
1608
 
1320
1609
 
1610
+ <xsl:attribute name="font-size">9pt</xsl:attribute>
1611
+ <xsl:attribute name="margin-bottom">4pt</xsl:attribute>
1612
+
1613
+
1614
+ </xsl:attribute-set><xsl:attribute-set name="references-non-normative-style">
1615
+
1616
+
1617
+
1618
+ </xsl:attribute-set><xsl:attribute-set name="hljs-doctag">
1619
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1620
+ </xsl:attribute-set><xsl:attribute-set name="hljs-keyword">
1621
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1622
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-keyword">
1623
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1624
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-tag">
1625
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1626
+ </xsl:attribute-set><xsl:attribute-set name="hljs-template-variable">
1627
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1628
+ </xsl:attribute-set><xsl:attribute-set name="hljs-type">
1629
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1630
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable_and_language_">
1631
+ <xsl:attribute name="color">#d73a49</xsl:attribute>
1632
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title">
1633
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1634
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class_">
1635
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1636
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_class__and_inherited__">
1637
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1638
+ </xsl:attribute-set><xsl:attribute-set name="hljs-title_and_function_">
1639
+ <xsl:attribute name="color">#6f42c1</xsl:attribute>
1640
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attr">
1641
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1642
+ </xsl:attribute-set><xsl:attribute-set name="hljs-attribute">
1643
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1644
+ </xsl:attribute-set><xsl:attribute-set name="hljs-literal">
1645
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1646
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta">
1647
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1648
+ </xsl:attribute-set><xsl:attribute-set name="hljs-number">
1649
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1650
+ </xsl:attribute-set><xsl:attribute-set name="hljs-operator">
1651
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1652
+ </xsl:attribute-set><xsl:attribute-set name="hljs-variable">
1653
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1654
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-attr">
1655
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1656
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-class">
1657
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1658
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-id">
1659
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1660
+ </xsl:attribute-set><xsl:attribute-set name="hljs-regexp">
1661
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1662
+ </xsl:attribute-set><xsl:attribute-set name="hljs-string">
1663
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1664
+ </xsl:attribute-set><xsl:attribute-set name="hljs-meta_hljs-string">
1665
+ <xsl:attribute name="color">#032f62</xsl:attribute>
1666
+ </xsl:attribute-set><xsl:attribute-set name="hljs-built_in">
1667
+ <xsl:attribute name="color">#e36209</xsl:attribute>
1668
+ </xsl:attribute-set><xsl:attribute-set name="hljs-symbol">
1669
+ <xsl:attribute name="color">#e36209</xsl:attribute>
1670
+ </xsl:attribute-set><xsl:attribute-set name="hljs-comment">
1671
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1672
+ </xsl:attribute-set><xsl:attribute-set name="hljs-code">
1673
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1674
+ </xsl:attribute-set><xsl:attribute-set name="hljs-formula">
1675
+ <xsl:attribute name="color">#6a737d</xsl:attribute>
1676
+ </xsl:attribute-set><xsl:attribute-set name="hljs-name">
1677
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1678
+ </xsl:attribute-set><xsl:attribute-set name="hljs-quote">
1679
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1680
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-tag">
1681
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1682
+ </xsl:attribute-set><xsl:attribute-set name="hljs-selector-pseudo">
1683
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1684
+ </xsl:attribute-set><xsl:attribute-set name="hljs-subst">
1685
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1686
+ </xsl:attribute-set><xsl:attribute-set name="hljs-section">
1687
+ <xsl:attribute name="color">#005cc5</xsl:attribute>
1688
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1689
+ </xsl:attribute-set><xsl:attribute-set name="hljs-bullet">
1690
+ <xsl:attribute name="color">#735c0f</xsl:attribute>
1691
+ </xsl:attribute-set><xsl:attribute-set name="hljs-emphasis">
1692
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1693
+ <xsl:attribute name="font-style">italic</xsl:attribute>
1694
+ </xsl:attribute-set><xsl:attribute-set name="hljs-strong">
1695
+ <xsl:attribute name="color">#24292e</xsl:attribute>
1696
+ <xsl:attribute name="font-weight">bold</xsl:attribute>
1697
+ </xsl:attribute-set><xsl:attribute-set name="hljs-addition">
1698
+ <xsl:attribute name="color">#22863a</xsl:attribute>
1699
+ <xsl:attribute name="background-color">#f0fff4</xsl:attribute>
1700
+ </xsl:attribute-set><xsl:attribute-set name="hljs-deletion">
1701
+ <xsl:attribute name="color">#b31d28</xsl:attribute>
1702
+ <xsl:attribute name="background-color">#ffeef0</xsl:attribute>
1703
+ </xsl:attribute-set><xsl:attribute-set name="hljs-char_and_escape_">
1704
+ </xsl:attribute-set><xsl:attribute-set name="hljs-link">
1705
+ </xsl:attribute-set><xsl:attribute-set name="hljs-params">
1706
+ </xsl:attribute-set><xsl:attribute-set name="hljs-property">
1707
+ </xsl:attribute-set><xsl:attribute-set name="hljs-punctuation">
1708
+ </xsl:attribute-set><xsl:attribute-set name="hljs-tag">
1709
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-title-style">
1710
+ <xsl:attribute name="role">H1</xsl:attribute>
1321
1711
 
1322
1712
 
1323
1713
 
1324
- <xsl:attribute name="font-size">6pt</xsl:attribute>
1325
- <xsl:attribute name="vertical-align">super</xsl:attribute>
1326
- <xsl:attribute name="padding-right">1mm</xsl:attribute>
1327
1714
 
1328
1715
 
1716
+ </xsl:attribute-set><xsl:attribute-set name="indexsect-clause-title-style">
1717
+ <xsl:attribute name="keep-with-next">always</xsl:attribute>
1329
1718
 
1330
1719
 
1331
1720
 
1332
1721
 
1333
1722
 
1334
- </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:template name="OLD_processPrefaceSectionsDefault_Contents">
1335
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']" mode="contents"/>
1336
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']" mode="contents"/>
1337
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']" mode="contents"/>
1338
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']" mode="contents"/>
1339
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']" mode="contents"/>
1340
- </xsl:template><xsl:template name="processPrefaceSectionsDefault_Contents">
1723
+ </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">
1341
1724
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1342
1725
  <xsl:sort select="@displayorder" data-type="number"/>
1343
1726
  <xsl:apply-templates select="." mode="contents"/>
1344
1727
  </xsl:for-each>
1345
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault_Contents">
1346
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']" mode="contents"/>
1347
-
1348
- <!-- Normative references -->
1349
- <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"/>
1350
- <!-- Terms and definitions -->
1351
- <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"/>
1352
- <!-- Another main sections -->
1353
- <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"/>
1354
- <xsl:apply-templates select="/*/*[local-name()='annex']" mode="contents"/>
1355
- <!-- Bibliography -->
1356
- <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"/>
1357
-
1358
1728
  </xsl:template><xsl:template name="processMainSectionsDefault_Contents">
1359
1729
 
1360
1730
  <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']]">
@@ -1371,29 +1741,11 @@
1371
1741
  <xsl:sort select="@displayorder" data-type="number"/>
1372
1742
  <xsl:apply-templates select="." mode="contents"/>
1373
1743
  </xsl:for-each>
1374
- </xsl:template><xsl:template name="OLD_processPrefaceSectionsDefault">
1375
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='abstract']"/>
1376
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='foreword']"/>
1377
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='introduction']"/>
1378
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name() != 'abstract' and local-name() != 'foreword' and local-name() != 'introduction' and local-name() != 'acknowledgements']"/>
1379
- <xsl:apply-templates select="/*/*[local-name()='preface']/*[local-name()='acknowledgements']"/>
1380
1744
  </xsl:template><xsl:template name="processPrefaceSectionsDefault">
1381
1745
  <xsl:for-each select="/*/*[local-name()='preface']/*">
1382
1746
  <xsl:sort select="@displayorder" data-type="number"/>
1383
1747
  <xsl:apply-templates select="."/>
1384
1748
  </xsl:for-each>
1385
- </xsl:template><xsl:template name="OLD_processMainSectionsDefault">
1386
- <xsl:apply-templates select="/*/*[local-name()='sections']/*[local-name()='clause'][@type='scope']"/>
1387
-
1388
- <!-- Normative references -->
1389
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']"/>
1390
- <!-- Terms and definitions -->
1391
- <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']]"/>
1392
- <!-- Another main sections -->
1393
- <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'])]"/>
1394
- <xsl:apply-templates select="/*/*[local-name()='annex']"/>
1395
- <!-- Bibliography -->
1396
- <xsl:apply-templates select="/*/*[local-name()='bibliography']/*[local-name()='references'][not(@normative='true')]"/>
1397
1749
  </xsl:template><xsl:template name="processMainSectionsDefault">
1398
1750
  <xsl:for-each select="/*/*[local-name()='sections']/* | /*/*[local-name()='bibliography']/*[local-name()='references'][@normative='true']">
1399
1751
  <xsl:sort select="@displayorder" data-type="number"/>
@@ -1414,6 +1766,70 @@
1414
1766
  <xsl:value-of select="."/>
1415
1767
  </xsl:template><xsl:template match="*[local-name()='br']">
1416
1768
  <xsl:value-of select="$linebreak"/>
1769
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']">
1770
+ <fo:block xsl:use-attribute-sets="copyright-statement-style">
1771
+ <xsl:apply-templates/>
1772
+ </fo:block>
1773
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']//*[local-name()='title']">
1774
+
1775
+ <!-- process in the template 'title' -->
1776
+ <xsl:call-template name="title"/>
1777
+
1778
+ </xsl:template><xsl:template match="*[local-name()='copyright-statement']//*[local-name()='p']">
1779
+
1780
+
1781
+ <!-- process in the template 'paragraph' -->
1782
+ <xsl:call-template name="paragraph"/>
1783
+
1784
+ </xsl:template><xsl:template match="*[local-name()='license-statement']">
1785
+ <fo:block xsl:use-attribute-sets="license-statement-style">
1786
+ <xsl:apply-templates/>
1787
+ </fo:block>
1788
+ </xsl:template><xsl:template match="*[local-name()='license-statement']//*[local-name()='title']">
1789
+
1790
+ <!-- process in the template 'title' -->
1791
+ <xsl:call-template name="title"/>
1792
+
1793
+ </xsl:template><xsl:template match="*[local-name()='license-statement']//*[local-name()='p']">
1794
+
1795
+ <!-- process in the template 'paragraph' -->
1796
+ <xsl:call-template name="paragraph"/>
1797
+
1798
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']">
1799
+ <fo:block xsl:use-attribute-sets="legal-statement-style">
1800
+ <xsl:apply-templates/>
1801
+ </fo:block>
1802
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='title']">
1803
+
1804
+ <!-- process in the template 'title' -->
1805
+ <xsl:call-template name="title"/>
1806
+
1807
+
1808
+ </xsl:template><xsl:template match="*[local-name()='legal-statement']//*[local-name()='p']">
1809
+ <xsl:param name="margin"/>
1810
+
1811
+ <!-- process in the template 'paragraph' -->
1812
+ <xsl:call-template name="paragraph">
1813
+ <xsl:with-param name="margin" select="$margin"/>
1814
+ </xsl:call-template>
1815
+
1816
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']">
1817
+ <fo:block xsl:use-attribute-sets="feedback-statement-style">
1818
+ <xsl:apply-templates/>
1819
+ </fo:block>
1820
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='title']">
1821
+
1822
+ <!-- process in the template 'title' -->
1823
+ <xsl:call-template name="title"/>
1824
+
1825
+ </xsl:template><xsl:template match="*[local-name()='feedback-statement']//*[local-name()='p']">
1826
+ <xsl:param name="margin"/>
1827
+
1828
+ <!-- process in the template 'paragraph' -->
1829
+ <xsl:call-template name="paragraph">
1830
+ <xsl:with-param name="margin" select="$margin"/>
1831
+ </xsl:call-template>
1832
+
1417
1833
  </xsl:template><xsl:template match="*[local-name()='td']//text() | *[local-name()='th']//text() | *[local-name()='dt']//text() | *[local-name()='dd']//text()" priority="1">
1418
1834
  <!-- <xsl:call-template name="add-zero-spaces"/> -->
1419
1835
  <xsl:call-template name="add-zero-spaces-java"/>
@@ -1430,43 +1846,19 @@
1430
1846
  <xsl:call-template name="getSimpleTable"/>
1431
1847
  </xsl:variable>
1432
1848
 
1433
- <!-- <xsl:if test="$namespace = 'bipm'">
1434
- <fo:block>&#xA0;</fo:block>
1435
- </xsl:if> -->
1436
-
1437
1849
 
1438
1850
  <!-- Display table's name before table as standalone block -->
1439
1851
  <!-- $namespace = 'iso' or -->
1440
1852
 
1441
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
1442
-
1443
-
1444
-
1445
-
1853
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- table's title rendered before table -->
1854
+
1446
1855
 
1447
- <xsl:call-template name="fn_name_display"/>
1448
1856
 
1857
+ <xsl:call-template name="table_name_fn_display"/>
1449
1858
 
1450
1859
 
1451
1860
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)/*/tr[1]/td)"/>
1452
1861
 
1453
- <!-- <xsl:variable name="cols-count">
1454
- <xsl:choose>
1455
- <xsl:when test="*[local-name()='thead']">
1456
- <xsl:call-template name="calculate-columns-numbers">
1457
- <xsl:with-param name="table-row" select="*[local-name()='thead']/*[local-name()='tr'][1]"/>
1458
- </xsl:call-template>
1459
- </xsl:when>
1460
- <xsl:otherwise>
1461
- <xsl:call-template name="calculate-columns-numbers">
1462
- <xsl:with-param name="table-row" select="*[local-name()='tbody']/*[local-name()='tr'][1]"/>
1463
- </xsl:call-template>
1464
- </xsl:otherwise>
1465
- </xsl:choose>
1466
- </xsl:variable> -->
1467
- <!-- cols-count=<xsl:copy-of select="$cols-count"/> -->
1468
- <!-- cols-count2=<xsl:copy-of select="$cols-count2"/> -->
1469
-
1470
1862
  <xsl:variable name="colwidths">
1471
1863
  <xsl:if test="not(*[local-name()='colgroup']/*[local-name()='col'])">
1472
1864
  <xsl:call-template name="calculate-column-widths">
@@ -1477,17 +1869,8 @@
1477
1869
  </xsl:variable>
1478
1870
  <!-- colwidths=<xsl:copy-of select="$colwidths"/> -->
1479
1871
 
1480
- <!-- <xsl:variable name="colwidths2">
1481
- <xsl:call-template name="calculate-column-widths">
1482
- <xsl:with-param name="cols-count" select="$cols-count"/>
1483
- </xsl:call-template>
1484
- </xsl:variable> -->
1485
-
1486
- <!-- cols-count=<xsl:copy-of select="$cols-count"/>
1487
- colwidthsNew=<xsl:copy-of select="$colwidths"/>
1488
- colwidthsOld=<xsl:copy-of select="$colwidths2"/>z -->
1489
1872
 
1490
- <xsl:variable name="margin-left">
1873
+ <xsl:variable name="margin-side">
1491
1874
  <xsl:choose>
1492
1875
  <xsl:when test="sum(xalan:nodeset($colwidths)//column) &gt; 75">15</xsl:when>
1493
1876
  <xsl:otherwise>0</xsl:otherwise>
@@ -1495,70 +1878,61 @@
1495
1878
  </xsl:variable>
1496
1879
 
1497
1880
 
1498
- <fo:block-container margin-left="-{$margin-left}mm" margin-right="-{$margin-left}mm">
1499
-
1500
-
1501
-
1502
-
1503
-
1504
-
1505
-
1506
-
1507
-
1881
+ <fo:block-container xsl:use-attribute-sets="table-container-style">
1882
+
1508
1883
 
1884
+
1509
1885
 
1886
+
1510
1887
 
1888
+
1511
1889
 
1512
1890
 
1513
1891
 
1514
- <xsl:attribute name="space-after">12pt</xsl:attribute>
1515
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
1516
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
1892
+
1517
1893
 
1518
1894
 
1519
1895
 
1520
1896
 
1521
1897
 
1898
+ <!-- end table block-container attributes -->
1522
1899
 
1523
1900
  <!-- display table's name before table for PAS inside block-container (2-columnn layout) -->
1524
1901
 
1525
1902
 
1903
+ <xsl:variable name="table_width_default">100%</xsl:variable>
1526
1904
  <xsl:variable name="table_width">
1527
1905
  <!-- for centered table always 100% (@width will be set for middle/second cell of outer table) -->
1528
- 100%
1529
-
1530
-
1906
+ <xsl:value-of select="$table_width_default"/>
1531
1907
  </xsl:variable>
1532
1908
 
1909
+
1533
1910
  <xsl:variable name="table_attributes">
1534
- <attribute name="table-layout">fixed</attribute>
1535
- <attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></attribute>
1536
- <attribute name="margin-left"><xsl:value-of select="$margin-left"/>mm</attribute>
1537
- <attribute name="margin-right"><xsl:value-of select="$margin-left"/>mm</attribute>
1538
-
1539
-
1540
-
1541
-
1542
-
1543
-
1544
-
1545
-
1546
-
1547
-
1548
-
1549
-
1550
- <attribute name="border-top">2pt solid black</attribute>
1551
- <attribute name="border-bottom">2pt solid black</attribute>
1552
-
1553
-
1554
-
1911
+
1912
+ <xsl:element name="table_attributes" use-attribute-sets="table-style">
1913
+ <xsl:attribute name="width"><xsl:value-of select="normalize-space($table_width)"/></xsl:attribute>
1914
+
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+ </xsl:element>
1555
1929
  </xsl:variable>
1556
1930
 
1557
1931
 
1558
- <fo:table id="{@id}" table-omit-footer-at-break="true">
1932
+ <fo:table id="{@id}">
1559
1933
 
1560
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
1561
- <xsl:attribute name="{@name}">
1934
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
1935
+ <xsl:attribute name="{local-name()}">
1562
1936
  <xsl:value-of select="."/>
1563
1937
  </xsl:attribute>
1564
1938
  </xsl:for-each>
@@ -1569,7 +1943,6 @@
1569
1943
  </xsl:if>
1570
1944
 
1571
1945
 
1572
-
1573
1946
  <xsl:choose>
1574
1947
  <xsl:when test="*[local-name()='colgroup']/*[local-name()='col']">
1575
1948
  <xsl:for-each select="*[local-name()='colgroup']/*[local-name()='col']">
@@ -1595,7 +1968,7 @@
1595
1968
  <xsl:apply-templates select="*[local-name()='thead']" mode="process_tbody"/>
1596
1969
  </xsl:when>
1597
1970
  <xsl:otherwise>
1598
- <xsl:apply-templates/>
1971
+ <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 -->
1599
1972
  </xsl:otherwise>
1600
1973
  </xsl:choose>
1601
1974
 
@@ -1610,25 +1983,6 @@
1610
1983
  </xsl:call-template>
1611
1984
  </xsl:for-each>
1612
1985
 
1613
- <!-- insert footer as table -->
1614
- <!-- <fo:table>
1615
- <xsl:for-each select="xalan::nodeset($table_attributes)/attribute">
1616
- <xsl:attribute name="{@name}">
1617
- <xsl:value-of select="."/>
1618
- </xsl:attribute>
1619
- </xsl:for-each>
1620
-
1621
- <xsl:for-each select="xalan:nodeset($colwidths)//column">
1622
- <xsl:choose>
1623
- <xsl:when test=". = 1 or . = 0">
1624
- <fo:table-column column-width="proportional-column-width(2)"/>
1625
- </xsl:when>
1626
- <xsl:otherwise>
1627
- <fo:table-column column-width="proportional-column-width({.})"/>
1628
- </xsl:otherwise>
1629
- </xsl:choose>
1630
- </xsl:for-each>
1631
- </fo:table>-->
1632
1986
 
1633
1987
 
1634
1988
 
@@ -1689,18 +2043,17 @@
1689
2043
  </xsl:otherwise>
1690
2044
  </xsl:choose>
1691
2045
 
1692
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']"/><xsl:template match="*[local-name()='table']/*[local-name() = 'name']" mode="presentation">
2046
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name() = 'name']">
1693
2047
  <xsl:param name="continued"/>
1694
2048
  <xsl:if test="normalize-space() != ''">
1695
2049
  <fo:block xsl:use-attribute-sets="table-name-style">
1696
-
2050
+
1697
2051
 
1698
2052
 
1699
2053
 
1700
2054
 
1701
2055
  <xsl:choose>
1702
2056
  <xsl:when test="$continued = 'true'">
1703
- <!-- <xsl:if test="$namespace = 'bsi'"></xsl:if> -->
1704
2057
 
1705
2058
  </xsl:when>
1706
2059
  <xsl:otherwise>
@@ -1763,13 +2116,6 @@
1763
2116
  <xsl:for-each select="xalan:nodeset($table)/*/tr">
1764
2117
  <xsl:variable name="td_text">
1765
2118
  <xsl:apply-templates select="td[$curr-col]" mode="td_text"/>
1766
-
1767
- <!-- <xsl:if test="$namespace = 'bipm'">
1768
- <xsl:for-each select="*[local-name()='td'][$curr-col]//*[local-name()='math']">
1769
- <word><xsl:value-of select="normalize-space(.)"/></word>
1770
- </xsl:for-each>
1771
- </xsl:if> -->
1772
-
1773
2119
  </xsl:variable>
1774
2120
  <xsl:variable name="words">
1775
2121
  <xsl:variable name="string_with_added_zerospaces">
@@ -1806,7 +2152,6 @@
1806
2152
  </xsl:otherwise>
1807
2153
  </xsl:choose>
1808
2154
  </xsl:variable>
1809
-
1810
2155
 
1811
2156
  <column>
1812
2157
  <xsl:for-each select="xalan:nodeset($widths)//width">
@@ -1823,8 +2168,7 @@
1823
2168
  </xsl:call-template>
1824
2169
  </xsl:if>
1825
2170
  </xsl:template><xsl:template match="text()" mode="td_text">
1826
- <xsl:variable name="zero-space">​</xsl:variable>
1827
- <xsl:value-of select="translate(., $zero-space, ' ')"/><xsl:text> </xsl:text>
2171
+ <xsl:value-of select="translate(., $zero_width_space, ' ')"/><xsl:text> </xsl:text>
1828
2172
  </xsl:template><xsl:template match="*[local-name()='termsource']" mode="td_text">
1829
2173
  <xsl:value-of select="*[local-name()='origin']/@citeas"/>
1830
2174
  </xsl:template><xsl:template match="*[local-name()='link']" mode="td_text">
@@ -1840,9 +2184,8 @@
1840
2184
 
1841
2185
  <xsl:variable name="math_text" select="normalize-space(xalan:nodeset($mathml))"/>
1842
2186
  <xsl:value-of select="translate($math_text, ' ', '#')"/><!-- mathml images as one 'word' without spaces -->
1843
- </xsl:template><xsl:template match="*[local-name()='table2']"/><xsl:template match="*[local-name()='thead']"/><xsl:template match="*[local-name()='thead']" mode="process">
2187
+ </xsl:template><xsl:template match="*[local-name()='thead']">
1844
2188
  <xsl:param name="cols-count"/>
1845
- <!-- font-weight="bold" -->
1846
2189
  <fo:table-header>
1847
2190
 
1848
2191
 
@@ -1854,85 +2197,26 @@
1854
2197
  <fo:table-row>
1855
2198
  <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">
1856
2199
 
1857
- <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']" mode="presentation">
2200
+ <xsl:apply-templates select="ancestor::*[local-name()='table']/*[local-name()='name']">
1858
2201
  <xsl:with-param name="continued">true</xsl:with-param>
1859
2202
  </xsl:apply-templates>
1860
2203
 
1861
2204
 
1862
2205
 
1863
-
1864
2206
  </fo:table-cell>
1865
2207
  </fo:table-row>
1866
2208
  </xsl:template><xsl:template match="*[local-name()='thead']" mode="process_tbody">
1867
2209
  <fo:table-body>
1868
2210
  <xsl:apply-templates/>
1869
2211
  </fo:table-body>
1870
- </xsl:template><xsl:template match="*[local-name()='tfoot']"/><xsl:template match="*[local-name()='tfoot']" mode="process">
2212
+ </xsl:template><xsl:template match="*[local-name()='tfoot']">
1871
2213
  <xsl:apply-templates/>
1872
2214
  </xsl:template><xsl:template name="insertTableFooter">
1873
2215
  <xsl:param name="cols-count"/>
1874
2216
  <xsl:if test="../*[local-name()='tfoot']">
1875
2217
  <fo:table-footer>
1876
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
1877
- </fo:table-footer>
1878
- </xsl:if>
1879
- </xsl:template><xsl:template name="insertTableFooter2">
1880
- <xsl:param name="cols-count"/>
1881
- <xsl:variable name="isNoteOrFnExist" select="../*[local-name()='note'] or ..//*[local-name()='fn'][local-name(..) != 'name']"/>
1882
- <xsl:if test="../*[local-name()='tfoot'] or $isNoteOrFnExist = 'true'">
1883
-
1884
- <fo:table-footer>
1885
-
1886
- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/>
1887
-
1888
- <!-- if there are note(s) or fn(s) then create footer row -->
1889
- <xsl:if test="$isNoteOrFnExist = 'true'">
1890
-
1891
-
1892
-
1893
- <fo:table-row>
1894
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
1895
-
1896
-
1897
-
1898
- <!-- fn will be processed inside 'note' processing -->
1899
-
1900
-
1901
-
1902
-
1903
-
1904
-
1905
- <!-- except gb -->
1906
-
1907
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1908
-
1909
-
1910
- <!-- show Note under table in preface (ex. abstract) sections -->
1911
- <!-- empty, because notes show at page side in main sections -->
1912
- <!-- <xsl:if test="$namespace = 'bipm'">
1913
- <xsl:choose>
1914
- <xsl:when test="ancestor::*[local-name()='preface']">
1915
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
1916
- </xsl:when>
1917
- <xsl:otherwise>
1918
- <fo:block/>
1919
- </xsl:otherwise>
1920
- </xsl:choose>
1921
- </xsl:if> -->
1922
-
1923
-
1924
- <!-- horizontal row separator -->
1925
-
1926
-
1927
- <!-- fn processing -->
1928
- <xsl:call-template name="fn_display"/>
1929
-
1930
- </fo:table-cell>
1931
- </fo:table-row>
1932
-
1933
- </xsl:if>
2218
+ <xsl:apply-templates select="../*[local-name()='tfoot']"/>
1934
2219
  </fo:table-footer>
1935
-
1936
2220
  </xsl:if>
1937
2221
  </xsl:template><xsl:template name="insertTableFooterInSeparateTable">
1938
2222
  <xsl:param name="table_attributes"/>
@@ -1959,17 +2243,18 @@
1959
2243
  </xsl:variable>
1960
2244
 
1961
2245
  <fo:table keep-with-previous="always">
1962
- <xsl:for-each select="xalan:nodeset($table_attributes)/attribute">
2246
+ <xsl:for-each select="xalan:nodeset($table_attributes)/table_attributes/@*">
2247
+ <xsl:variable name="name" select="local-name()"/>
1963
2248
  <xsl:choose>
1964
- <xsl:when test="@name = 'border-top'">
1965
- <xsl:attribute name="{@name}">0pt solid black</xsl:attribute>
2249
+ <xsl:when test="$name = 'border-top'">
2250
+ <xsl:attribute name="{$name}">0pt solid black</xsl:attribute>
1966
2251
  </xsl:when>
1967
- <xsl:when test="@name = 'border'">
1968
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2252
+ <xsl:when test="$name = 'border'">
2253
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
1969
2254
  <xsl:attribute name="border-top">0pt solid black</xsl:attribute>
1970
2255
  </xsl:when>
1971
2256
  <xsl:otherwise>
1972
- <xsl:attribute name="{@name}"><xsl:value-of select="."/></xsl:attribute>
2257
+ <xsl:attribute name="{$name}"><xsl:value-of select="."/></xsl:attribute>
1973
2258
  </xsl:otherwise>
1974
2259
  </xsl:choose>
1975
2260
  </xsl:for-each>
@@ -1998,9 +2283,10 @@
1998
2283
 
1999
2284
  <fo:table-body>
2000
2285
  <fo:table-row>
2001
- <fo:table-cell border="solid black 1pt" padding-left="1mm" padding-right="1mm" padding-top="1mm" number-columns-spanned="{$cols-count}">
2286
+ <fo:table-cell xsl:use-attribute-sets="table-footer-cell-style" number-columns-spanned="{$cols-count}">
2002
2287
 
2003
2288
 
2289
+
2004
2290
 
2005
2291
 
2006
2292
  <!-- fn will be processed inside 'note' processing -->
@@ -2010,37 +2296,20 @@
2010
2296
 
2011
2297
 
2012
2298
 
2013
-
2014
-
2015
-
2016
2299
  <!-- for BSI (not PAS) display Notes before footnotes -->
2017
2300
 
2018
2301
 
2019
- <!-- except gb -->
2020
-
2021
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2302
+ <!-- except gb and bsi -->
2022
2303
 
2023
-
2024
- <!-- <xsl:if test="$namespace = 'bipm'">
2025
- <xsl:choose>
2026
- <xsl:when test="ancestor::*[local-name()='preface']">
2027
- show Note under table in preface (ex. abstract) sections
2028
- <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
2029
- </xsl:when>
2030
- <xsl:otherwise>
2031
- empty, because notes show at page side in main sections
2032
- <fo:block/>
2033
- </xsl:otherwise>
2034
- </xsl:choose>
2035
- </xsl:if> -->
2304
+ <xsl:apply-templates select="../*[local-name()='note']"/>
2305
+
2036
2306
 
2037
2307
 
2038
2308
  <!-- horizontal row separator -->
2039
2309
 
2040
2310
 
2041
2311
  <!-- fn processing -->
2042
- <xsl:call-template name="fn_display"/>
2043
-
2312
+ <xsl:call-template name="table_fn_display"/>
2044
2313
 
2045
2314
  <!-- for PAS display Notes after footnotes -->
2046
2315
 
@@ -2070,7 +2339,7 @@
2070
2339
 
2071
2340
 
2072
2341
 
2073
- <xsl:apply-templates select="../*[local-name()='thead']" mode="process">
2342
+ <xsl:apply-templates select="../*[local-name()='thead']">
2074
2343
  <xsl:with-param name="cols-count" select="$cols-count"/>
2075
2344
  </xsl:apply-templates>
2076
2345
 
@@ -2082,104 +2351,84 @@
2082
2351
 
2083
2352
 
2084
2353
  <xsl:apply-templates/>
2085
- <!-- <xsl:apply-templates select="../*[local-name()='tfoot']" mode="process"/> -->
2086
-
2354
+
2087
2355
  </fo:table-body>
2088
2356
 
2089
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/text()[1]" priority="2" mode="presentation_name">
2090
- <xsl:choose>
2091
- <xsl:when test="substring-after(., '—') != ''">
2092
- <xsl:text>—</xsl:text><xsl:value-of select="substring-after(., '—')"/>
2093
- </xsl:when>
2094
- <xsl:otherwise>
2095
- <xsl:value-of select="."/>
2096
- </xsl:otherwise>
2097
- </xsl:choose>
2098
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']" mode="presentation_name">
2099
- <xsl:apply-templates mode="presentation_name"/>
2100
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='name']/node()" mode="presentation_name">
2101
- <xsl:apply-templates select="."/>
2102
- </xsl:template><xsl:template match="*[local-name()='tr']">
2103
- <xsl:variable name="parent-name" select="local-name(..)"/>
2104
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2105
- <fo:table-row min-height="4mm">
2106
- <xsl:if test="$parent-name = 'thead'">
2107
- <xsl:attribute name="font-weight">bold</xsl:attribute>
2108
-
2109
-
2110
-
2111
-
2112
-
2113
-
2114
-
2115
-
2116
- </xsl:if>
2117
- <xsl:if test="$parent-name = 'tfoot'">
2118
-
2119
-
2120
-
2121
- </xsl:if>
2122
-
2123
-
2124
-
2125
-
2126
-
2127
-
2128
-
2129
-
2130
-
2131
-
2132
- <!-- <xsl:if test="$namespace = 'bipm'">
2133
- <xsl:attribute name="height">8mm</xsl:attribute>
2134
- </xsl:if> -->
2135
-
2357
+ </xsl:template><xsl:template match="*[local-name()='thead']/*[local-name()='tr']" priority="2">
2358
+ <fo:table-row xsl:use-attribute-sets="table-header-row-style">
2359
+
2360
+
2361
+
2362
+
2363
+
2364
+
2365
+
2366
+ <xsl:call-template name="setTableRowAttributes"/>
2367
+
2136
2368
  <xsl:apply-templates/>
2137
2369
  </fo:table-row>
2138
- </xsl:template><xsl:template match="*[local-name()='th']">
2139
- <fo:table-cell text-align="{@align}" font-weight="bold" border="solid black 1pt" padding-left="1mm" display-align="center">
2140
- <xsl:attribute name="text-align">
2141
- <xsl:choose>
2142
- <xsl:when test="@align">
2143
- <xsl:call-template name="setAlignment"/>
2144
- <!-- <xsl:value-of select="@align"/> -->
2145
- </xsl:when>
2146
- <xsl:otherwise>center</xsl:otherwise>
2147
- </xsl:choose>
2148
- </xsl:attribute>
2149
-
2370
+ </xsl:template><xsl:template match="*[local-name()='tfoot']/*[local-name()='tr']" priority="2">
2371
+ <fo:table-row xsl:use-attribute-sets="table-footer-row-style">
2150
2372
 
2373
+ <xsl:call-template name="setTableRowAttributes"/>
2374
+ <xsl:apply-templates/>
2375
+ </fo:table-row>
2376
+ </xsl:template><xsl:template match="*[local-name()='tr']">
2377
+ <fo:table-row xsl:use-attribute-sets="table-body-row-style">
2378
+
2151
2379
 
2380
+
2152
2381
 
2382
+
2383
+ <xsl:call-template name="setTableRowAttributes"/>
2384
+ <xsl:apply-templates/>
2385
+ </fo:table-row>
2386
+ </xsl:template><xsl:template name="setTableRowAttributes">
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+ </xsl:template><xsl:template match="*[local-name()='th']">
2396
+ <fo:table-cell xsl:use-attribute-sets="table-header-cell-style"> <!-- text-align="{@align}" -->
2397
+ <xsl:call-template name="setTextAlignment">
2398
+ <xsl:with-param name="default">center</xsl:with-param>
2399
+ </xsl:call-template>
2153
2400
 
2154
2401
 
2155
2402
 
2156
2403
 
2404
+
2157
2405
 
2158
2406
 
2159
-
2160
- <xsl:attribute name="border-top">solid black 2pt</xsl:attribute>
2161
- <xsl:attribute name="border-bottom">solid black 2pt</xsl:attribute>
2162
2407
 
2163
2408
 
2164
2409
 
2165
2410
  <xsl:if test="$lang = 'ar'">
2166
2411
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2167
2412
  </xsl:if>
2168
- <xsl:if test="@colspan">
2169
- <xsl:attribute name="number-columns-spanned">
2170
- <xsl:value-of select="@colspan"/>
2171
- </xsl:attribute>
2172
- </xsl:if>
2173
- <xsl:if test="@rowspan">
2174
- <xsl:attribute name="number-rows-spanned">
2175
- <xsl:value-of select="@rowspan"/>
2176
- </xsl:attribute>
2177
- </xsl:if>
2178
- <xsl:call-template name="display-align"/>
2413
+
2414
+ <xsl:call-template name="setTableCellAttributes"/>
2415
+
2179
2416
  <fo:block>
2180
2417
  <xsl:apply-templates/>
2181
2418
  </fo:block>
2182
2419
  </fo:table-cell>
2420
+ </xsl:template><xsl:template name="setTableCellAttributes">
2421
+ <xsl:if test="@colspan">
2422
+ <xsl:attribute name="number-columns-spanned">
2423
+ <xsl:value-of select="@colspan"/>
2424
+ </xsl:attribute>
2425
+ </xsl:if>
2426
+ <xsl:if test="@rowspan">
2427
+ <xsl:attribute name="number-rows-spanned">
2428
+ <xsl:value-of select="@rowspan"/>
2429
+ </xsl:attribute>
2430
+ </xsl:if>
2431
+ <xsl:call-template name="display-align"/>
2183
2432
  </xsl:template><xsl:template name="display-align">
2184
2433
  <xsl:if test="@valign">
2185
2434
  <xsl:attribute name="display-align">
@@ -2192,22 +2441,19 @@
2192
2441
  </xsl:attribute>
2193
2442
  </xsl:if>
2194
2443
  </xsl:template><xsl:template match="*[local-name()='td']">
2195
- <fo:table-cell text-align="{@align}" display-align="center" border="solid black 1pt" padding-left="1mm">
2196
- <xsl:attribute name="text-align">
2197
- <xsl:choose>
2198
- <xsl:when test="@align">
2199
- <xsl:call-template name="setAlignment"/>
2200
- <!-- <xsl:value-of select="@align"/> -->
2201
- </xsl:when>
2202
- <xsl:otherwise>left</xsl:otherwise>
2203
- </xsl:choose>
2204
- </xsl:attribute>
2444
+ <fo:table-cell xsl:use-attribute-sets="table-cell-style"> <!-- text-align="{@align}" -->
2445
+ <xsl:call-template name="setTextAlignment">
2446
+ <xsl:with-param name="default">left</xsl:with-param>
2447
+ </xsl:call-template>
2448
+
2205
2449
  <xsl:if test="$lang = 'ar'">
2206
2450
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2207
2451
  </xsl:if>
2208
2452
 
2209
2453
 
2210
2454
 
2455
+ <!-- bsi -->
2456
+
2211
2457
 
2212
2458
 
2213
2459
 
@@ -2215,36 +2461,36 @@
2215
2461
 
2216
2462
 
2217
2463
 
2464
+
2218
2465
 
2219
2466
 
2220
2467
 
2221
2468
 
2222
2469
 
2223
2470
 
2224
- <xsl:if test=".//*[local-name() = 'table']">
2471
+ <xsl:if test=".//*[local-name() = 'table']"> <!-- if there is nested table -->
2225
2472
  <xsl:attribute name="padding-right">1mm</xsl:attribute>
2226
2473
  </xsl:if>
2227
- <xsl:if test="@colspan">
2228
- <xsl:attribute name="number-columns-spanned">
2229
- <xsl:value-of select="@colspan"/>
2230
- </xsl:attribute>
2231
- </xsl:if>
2232
- <xsl:if test="@rowspan">
2233
- <xsl:attribute name="number-rows-spanned">
2234
- <xsl:value-of select="@rowspan"/>
2235
- </xsl:attribute>
2236
- </xsl:if>
2237
- <xsl:call-template name="display-align"/>
2474
+
2475
+ <xsl:call-template name="setTableCellAttributes"/>
2476
+
2238
2477
  <fo:block>
2239
-
2478
+
2479
+
2480
+
2240
2481
  <xsl:apply-templates/>
2241
2482
  </fo:block>
2242
2483
  </fo:table-cell>
2243
- </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2"/><xsl:template match="*[local-name()='table']/*[local-name()='note']" mode="process">
2244
-
2484
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']" priority="2">
2485
+
2486
+ <fo:block xsl:use-attribute-sets="table-note-style">
2487
+
2488
+
2489
+
2490
+
2245
2491
 
2246
- <fo:block font-size="10pt" margin-bottom="12pt">
2247
-
2492
+ <!-- Table's note name (NOTE, for example) -->
2493
+ <fo:inline xsl:use-attribute-sets="table-note-name-style">
2248
2494
 
2249
2495
 
2250
2496
 
@@ -2252,24 +2498,16 @@
2252
2498
 
2253
2499
 
2254
2500
 
2255
- <!-- Table's note name (NOTE, for example) -->
2256
-
2257
- <fo:inline padding-right="2mm" xsl:use-attribute-sets="table-note-name-style">
2258
-
2501
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
2259
2502
 
2260
-
2261
-
2262
-
2263
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
2264
-
2265
- </fo:inline>
2266
-
2267
-
2268
-
2269
- <xsl:apply-templates mode="process"/>
2270
- </fo:block>
2503
+ </fo:inline>
2504
+
2505
+
2506
+
2507
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
2508
+ </fo:block>
2271
2509
 
2272
- </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">
2510
+ </xsl:template><xsl:template match="*[local-name()='table']/*[local-name()='note']/*[local-name()='p']" priority="2">
2273
2511
  <xsl:apply-templates/>
2274
2512
  </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">
2275
2513
 
@@ -2347,8 +2585,7 @@
2347
2585
  <xsl:copy-of select="$footnote_inline"/>
2348
2586
  <fo:footnote-body>
2349
2587
 
2350
- <fo:block-container text-indent="0" start-indent="0">
2351
-
2588
+ <fo:block-container xsl:use-attribute-sets="fn-container-body-style">
2352
2589
 
2353
2590
  <fo:block xsl:use-attribute-sets="fn-body-style">
2354
2591
 
@@ -2367,7 +2604,7 @@
2367
2604
  <xsl:copy-of select="$footnote_inline"/>
2368
2605
  </xsl:otherwise>
2369
2606
  </xsl:choose>
2370
- </xsl:template><xsl:template name="fn_display">
2607
+ </xsl:template><xsl:template name="table_fn_display">
2371
2608
  <xsl:variable name="references">
2372
2609
 
2373
2610
  <xsl:for-each select="..//*[local-name()='fn'][local-name(..) != 'name']">
@@ -2378,31 +2615,26 @@
2378
2615
  <xsl:for-each select="xalan:nodeset($references)//fn">
2379
2616
  <xsl:variable name="reference" select="@reference"/>
2380
2617
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2381
- <fo:block margin-bottom="12pt">
2618
+ <fo:block xsl:use-attribute-sets="table-fn-style">
2382
2619
 
2383
2620
 
2384
2621
 
2385
-
2386
-
2387
-
2388
-
2389
- <fo:inline font-size="80%" padding-right="5mm" id="{@id}">
2622
+ <fo:inline id="{@id}" xsl:use-attribute-sets="table-fn-number-style">
2623
+
2390
2624
 
2391
2625
 
2392
2626
 
2393
2627
 
2628
+ <xsl:value-of select="@reference"/>
2394
2629
 
2395
2630
 
2396
2631
 
2397
2632
 
2398
- <xsl:value-of select="@reference"/>
2399
2633
 
2400
2634
 
2401
2635
 
2402
2636
  </fo:inline>
2403
- <fo:inline>
2404
-
2405
- <!-- <xsl:apply-templates /> -->
2637
+ <fo:inline xsl:use-attribute-sets="table-fn-body-style">
2406
2638
  <xsl:copy-of select="./node()"/>
2407
2639
  </fo:inline>
2408
2640
  </fo:block>
@@ -2414,15 +2646,7 @@
2414
2646
 
2415
2647
  <xsl:apply-templates/>
2416
2648
  </fn>
2417
- </xsl:template><xsl:template name="fn_name_display">
2418
- <!-- <xsl:variable name="references">
2419
- <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2420
- <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
2421
- <xsl:apply-templates />
2422
- </fn>
2423
- </xsl:for-each>
2424
- </xsl:variable>
2425
- $references=<xsl:copy-of select="$references"/> -->
2649
+ </xsl:template><xsl:template name="table_name_fn_display">
2426
2650
  <xsl:for-each select="*[local-name()='name']//*[local-name()='fn']">
2427
2651
  <xsl:variable name="reference" select="@reference"/>
2428
2652
  <fo:block id="{@reference}_{ancestor::*[@id][1]/@id}"><xsl:value-of select="@reference"/></fo:block>
@@ -2431,9 +2655,7 @@
2431
2655
  </fo:block>
2432
2656
  </xsl:for-each>
2433
2657
  </xsl:template><xsl:template name="fn_display_figure">
2434
- <xsl:variable name="key_iso">
2435
- <!-- and (not(@class) or @class !='pseudocode') -->
2436
- </xsl:variable>
2658
+
2437
2659
  <xsl:variable name="references">
2438
2660
  <xsl:for-each select=".//*[local-name()='fn'][not(parent::*[local-name()='name'])]">
2439
2661
  <fn reference="{@reference}" id="{@reference}_{ancestor::*[@id][1]/@id}">
@@ -2441,50 +2663,52 @@
2441
2663
  </fn>
2442
2664
  </xsl:for-each>
2443
2665
  </xsl:variable>
2666
+
2667
+ <xsl:if test="xalan:nodeset($references)//fn">
2444
2668
 
2445
- <!-- current hierarchy is 'figure' element -->
2446
- <xsl:variable name="following_dl_colwidths">
2447
- <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2448
- <xsl:variable name="html-table">
2449
- <xsl:variable name="doc_ns">
2669
+ <xsl:variable name="key_iso">
2670
+
2671
+ </xsl:variable>
2672
+
2673
+ <!-- current hierarchy is 'figure' element -->
2674
+ <xsl:variable name="following_dl_colwidths">
2675
+ <xsl:if test="*[local-name() = 'dl']"><!-- if there is a 'dl', then set the same columns width as for 'dl' -->
2676
+ <xsl:variable name="html-table">
2677
+ <xsl:variable name="doc_ns">
2678
+
2679
+ </xsl:variable>
2680
+ <xsl:variable name="ns">
2681
+ <xsl:choose>
2682
+ <xsl:when test="normalize-space($doc_ns) != ''">
2683
+ <xsl:value-of select="normalize-space($doc_ns)"/>
2684
+ </xsl:when>
2685
+ <xsl:otherwise>
2686
+ <xsl:value-of select="substring-before(name(/*), '-')"/>
2687
+ </xsl:otherwise>
2688
+ </xsl:choose>
2689
+ </xsl:variable>
2450
2690
 
2451
- </xsl:variable>
2452
- <xsl:variable name="ns">
2453
- <xsl:choose>
2454
- <xsl:when test="normalize-space($doc_ns) != ''">
2455
- <xsl:value-of select="normalize-space($doc_ns)"/>
2456
- </xsl:when>
2457
- <xsl:otherwise>
2458
- <xsl:value-of select="substring-before(name(/*), '-')"/>
2459
- </xsl:otherwise>
2460
- </xsl:choose>
2461
- </xsl:variable>
2462
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2463
- <!-- <xsl:element name="{$ns}:table"> -->
2464
2691
  <xsl:for-each select="*[local-name() = 'dl'][1]">
2465
2692
  <tbody>
2466
2693
  <xsl:apply-templates mode="dl"/>
2467
2694
  </tbody>
2468
2695
  </xsl:for-each>
2469
- <!-- </xsl:element> -->
2470
- </xsl:variable>
2471
-
2472
- <xsl:call-template name="calculate-column-widths">
2473
- <xsl:with-param name="cols-count" select="2"/>
2474
- <xsl:with-param name="table" select="$html-table"/>
2475
- </xsl:call-template>
2476
-
2477
- </xsl:if>
2478
- </xsl:variable>
2479
-
2480
-
2481
- <xsl:variable name="maxlength_dt">
2482
- <xsl:for-each select="*[local-name() = 'dl'][1]">
2483
- <xsl:call-template name="getMaxLength_dt"/>
2484
- </xsl:for-each>
2485
- </xsl:variable>
2486
-
2487
- <xsl:if test="xalan:nodeset($references)//fn">
2696
+ </xsl:variable>
2697
+
2698
+ <xsl:call-template name="calculate-column-widths">
2699
+ <xsl:with-param name="cols-count" select="2"/>
2700
+ <xsl:with-param name="table" select="$html-table"/>
2701
+ </xsl:call-template>
2702
+
2703
+ </xsl:if>
2704
+ </xsl:variable>
2705
+
2706
+ <xsl:variable name="maxlength_dt">
2707
+ <xsl:for-each select="*[local-name() = 'dl'][1]">
2708
+ <xsl:call-template name="getMaxLength_dt"/>
2709
+ </xsl:for-each>
2710
+ </xsl:variable>
2711
+
2488
2712
  <fo:block>
2489
2713
  <fo:table width="95%" table-layout="fixed">
2490
2714
  <xsl:if test="normalize-space($key_iso) = 'true'">
@@ -2511,20 +2735,18 @@
2511
2735
  <fo:table-row>
2512
2736
  <fo:table-cell>
2513
2737
  <fo:block>
2514
- <fo:inline font-size="80%" padding-right="5mm" vertical-align="super" id="{@id}">
2515
-
2738
+ <fo:inline id="{@id}" xsl:use-attribute-sets="figure-fn-number-style">
2516
2739
  <xsl:value-of select="@reference"/>
2517
2740
  </fo:inline>
2518
2741
  </fo:block>
2519
2742
  </fo:table-cell>
2520
2743
  <fo:table-cell>
2521
- <fo:block text-align="justify" margin-bottom="12pt">
2522
-
2744
+ <fo:block xsl:use-attribute-sets="figure-fn-body-style">
2523
2745
  <xsl:if test="normalize-space($key_iso) = 'true'">
2524
- <xsl:attribute name="margin-bottom">0</xsl:attribute>
2746
+
2747
+ <xsl:attribute name="margin-bottom">0</xsl:attribute>
2748
+
2525
2749
  </xsl:if>
2526
-
2527
- <!-- <xsl:apply-templates /> -->
2528
2750
  <xsl:copy-of select="./node()"/>
2529
2751
  </fo:block>
2530
2752
  </fo:table-cell>
@@ -2537,14 +2759,8 @@
2537
2759
  </xsl:if>
2538
2760
 
2539
2761
  </xsl:template><xsl:template match="*[local-name()='fn']">
2540
- <!-- <xsl:variable name="namespace" select="substring-before(name(/*), '-')"/> -->
2541
- <fo:inline font-size="80%" keep-with-previous.within-line="always">
2542
-
2543
-
2544
-
2545
-
2546
-
2547
-
2762
+ <fo:inline xsl:use-attribute-sets="fn-reference-style">
2763
+
2548
2764
 
2549
2765
 
2550
2766
 
@@ -2568,10 +2784,10 @@
2568
2784
  <xsl:variable name="isDeleted" select="@deleted"/>
2569
2785
  <fo:block-container>
2570
2786
 
2571
- <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
2572
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2573
- </xsl:if>
2574
-
2787
+ <xsl:if test="not(ancestor::*[local-name() = 'quote'])">
2788
+ <xsl:attribute name="margin-left">0mm</xsl:attribute>
2789
+ </xsl:if>
2790
+
2575
2791
 
2576
2792
  <xsl:if test="parent::*[local-name() = 'note']">
2577
2793
  <xsl:attribute name="margin-left">
@@ -2588,11 +2804,11 @@
2588
2804
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
2589
2805
  </xsl:call-template>
2590
2806
 
2591
- <fo:block-container>
2592
-
2593
- <xsl:attribute name="margin-left">0mm</xsl:attribute>
2594
- <xsl:attribute name="margin-right">0mm</xsl:attribute>
2807
+ <fo:block-container margin-left="0mm">
2808
+
2595
2809
 
2810
+ <xsl:attribute name="margin-right">0mm</xsl:attribute>
2811
+
2596
2812
 
2597
2813
  <xsl:variable name="parent" select="local-name(..)"/>
2598
2814
 
@@ -2603,23 +2819,19 @@
2603
2819
  <xsl:choose>
2604
2820
  <xsl:when test="$parent = 'formula' and count(*[local-name()='dt']) = 1"> <!-- only one component -->
2605
2821
 
2606
-
2607
- <fo:block margin-bottom="12pt" text-align="left">
2608
-
2609
- <xsl:variable name="title-where">
2822
+ <fo:block margin-bottom="12pt" text-align="left">
2610
2823
 
2611
-
2612
- <xsl:call-template name="getTitle">
2613
- <xsl:with-param name="name" select="'title-where'"/>
2824
+ <xsl:variable name="title-where">
2825
+ <xsl:call-template name="getLocalizedString">
2826
+ <xsl:with-param name="key">where</xsl:with-param>
2614
2827
  </xsl:call-template>
2615
-
2616
- </xsl:variable>
2617
- <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2618
- <xsl:apply-templates select="*[local-name()='dt']/*"/>
2619
- <xsl:text/>
2620
- <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2621
- </fo:block>
2622
-
2828
+ </xsl:variable>
2829
+ <xsl:value-of select="$title-where"/><xsl:text> </xsl:text>
2830
+ <xsl:apply-templates select="*[local-name()='dt']/*"/>
2831
+ <xsl:text/>
2832
+ <xsl:apply-templates select="*[local-name()='dd']/*" mode="inline"/>
2833
+ </fo:block>
2834
+
2623
2835
  </xsl:when>
2624
2836
  <xsl:when test="$parent = 'formula'"> <!-- a few components -->
2625
2837
  <fo:block margin-bottom="12pt" text-align="left">
@@ -2628,12 +2840,9 @@
2628
2840
 
2629
2841
 
2630
2842
  <xsl:variable name="title-where">
2631
-
2632
-
2633
- <xsl:call-template name="getTitle">
2634
- <xsl:with-param name="name" select="'title-where'"/>
2635
- </xsl:call-template>
2636
-
2843
+ <xsl:call-template name="getLocalizedString">
2844
+ <xsl:with-param name="key">where</xsl:with-param>
2845
+ </xsl:call-template>
2637
2846
  </xsl:variable>
2638
2847
  <xsl:value-of select="$title-where"/>
2639
2848
  </fo:block>
@@ -2645,12 +2854,9 @@
2645
2854
 
2646
2855
 
2647
2856
  <xsl:variable name="title-key">
2648
-
2649
-
2650
- <xsl:call-template name="getTitle">
2651
- <xsl:with-param name="name" select="'title-key'"/>
2652
- </xsl:call-template>
2653
-
2857
+ <xsl:call-template name="getLocalizedString">
2858
+ <xsl:with-param name="key">key</xsl:with-param>
2859
+ </xsl:call-template>
2654
2860
  </xsl:variable>
2655
2861
  <xsl:value-of select="$title-key"/>
2656
2862
  </fo:block>
@@ -2672,9 +2878,7 @@
2672
2878
  <fo:table width="95%" table-layout="fixed">
2673
2879
 
2674
2880
  <xsl:choose>
2675
- <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'">
2676
- <!-- <xsl:attribute name="font-size">11pt</xsl:attribute> -->
2677
- </xsl:when>
2881
+ <xsl:when test="normalize-space($key_iso) = 'true' and $parent = 'formula'"/>
2678
2882
  <xsl:when test="normalize-space($key_iso) = 'true'">
2679
2883
  <xsl:attribute name="font-size">10pt</xsl:attribute>
2680
2884
 
@@ -2695,12 +2899,9 @@
2695
2899
  </xsl:otherwise>
2696
2900
  </xsl:choose>
2697
2901
  </xsl:variable>
2698
- <!-- <xsl:variable name="ns" select="substring-before(name(/*), '-')"/> -->
2699
- <!-- <xsl:element name="{$ns}:table"> -->
2700
- <tbody>
2701
- <xsl:apply-templates mode="dl"/>
2702
- </tbody>
2703
- <!-- </xsl:element> -->
2902
+ <tbody>
2903
+ <xsl:apply-templates mode="dl"/>
2904
+ </tbody>
2704
2905
  </xsl:variable>
2705
2906
  <!-- html-table<xsl:copy-of select="$html-table"/> -->
2706
2907
  <xsl:variable name="colwidths">
@@ -2780,8 +2981,6 @@
2780
2981
  </xsl:for-each>
2781
2982
  </xsl:otherwise>
2782
2983
  </xsl:choose>
2783
- <!-- <fo:table-column column-width="15%"/>
2784
- <fo:table-column column-width="85%"/> -->
2785
2984
  </xsl:otherwise>
2786
2985
  </xsl:choose>
2787
2986
  </xsl:template><xsl:template name="getMaxLength_dt">
@@ -2796,12 +2995,6 @@
2796
2995
  </xsl:for-each>
2797
2996
  </xsl:variable>
2798
2997
  <xsl:variable name="maxLength">
2799
- <!-- <xsl:for-each select="*[local-name()='dt']">
2800
- <xsl:sort select="string-length(normalize-space(.))" data-type="number" order="descending"/>
2801
- <xsl:if test="position() = 1">
2802
- <xsl:value-of select="string-length(normalize-space(.))"/>
2803
- </xsl:if>
2804
- </xsl:for-each> -->
2805
2998
  <xsl:for-each select="xalan:nodeset($lengths)/length">
2806
2999
  <xsl:sort select="." data-type="number" order="descending"/>
2807
3000
  <xsl:if test="position() = 1">
@@ -2827,12 +3020,12 @@
2827
3020
  <xsl:if test="normalize-space($key_iso) = 'true'">
2828
3021
  <xsl:attribute name="margin-top">0</xsl:attribute>
2829
3022
  </xsl:if>
2830
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3023
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
2831
3024
  </fo:block>
2832
3025
  </fo:table-cell>
2833
3026
  <fo:table-cell>
2834
3027
  <fo:block>
2835
- <xsl:apply-templates/>
3028
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
2836
3029
  </fo:block>
2837
3030
  </fo:table-cell>
2838
3031
  </fo:table-row>
@@ -2843,81 +3036,49 @@
2843
3036
  </td>
2844
3037
  <td>
2845
3038
 
2846
-
2847
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2848
-
3039
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
3040
+ <xsl:with-param name="process">true</xsl:with-param>
3041
+ </xsl:apply-templates>
3042
+
2849
3043
  </td>
2850
3044
  </tr>
2851
3045
 
2852
3046
  </xsl:template><xsl:template match="*[local-name()='dt']">
2853
3047
  <xsl:param name="key_iso"/>
2854
3048
 
2855
- <fo:table-row>
2856
-
2857
-
3049
+ <fo:table-row xsl:use-attribute-sets="dt-row-style">
2858
3050
  <fo:table-cell>
2859
3051
 
2860
- <fo:block margin-top="6pt">
3052
+ <fo:block xsl:use-attribute-sets="dt-style">
2861
3053
  <xsl:copy-of select="@id"/>
2862
3054
 
2863
-
2864
3055
  <xsl:if test="normalize-space($key_iso) = 'true'">
2865
3056
  <xsl:attribute name="margin-top">0</xsl:attribute>
2866
-
2867
3057
  </xsl:if>
2868
3058
 
2869
3059
 
2870
3060
 
2871
-
2872
-
2873
-
2874
-
2875
3061
  <xsl:apply-templates/>
2876
- <!-- <xsl:if test="$namespace = 'gb'">
2877
- <xsl:if test="ancestor::*[local-name()='formula']">
2878
- <xsl:text>—</xsl:text>
2879
- </xsl:if>
2880
- </xsl:if> -->
2881
3062
  </fo:block>
2882
3063
  </fo:table-cell>
2883
3064
  <fo:table-cell>
2884
3065
  <fo:block>
2885
3066
 
2886
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2887
- <xsl:if test="local-name(*[1]) != 'stem'">
2888
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2889
- </xsl:if>
2890
- </xsl:if> -->
2891
-
2892
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2893
-
3067
+
3068
+ <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]">
3069
+ <xsl:with-param name="process">true</xsl:with-param>
3070
+ </xsl:apply-templates>
2894
3071
  </fo:block>
2895
3072
  </fo:table-cell>
2896
3073
  </fo:table-row>
2897
- <!-- <xsl:if test="$namespace = 'nist-cswp' or $namespace = 'nist-sp'">
2898
- <xsl:if test="local-name(*[1]) = 'stem'">
2899
- <fo:table-row>
2900
- <fo:table-cell>
2901
- <fo:block margin-top="6pt">
2902
- <xsl:if test="normalize-space($key_iso) = 'true'">
2903
- <xsl:attribute name="margin-top">0</xsl:attribute>
2904
- </xsl:if>
2905
- <xsl:text>&#xA0;</xsl:text>
2906
- </fo:block>
2907
- </fo:table-cell>
2908
- <fo:table-cell>
2909
- <fo:block>
2910
- <xsl:apply-templates select="following-sibling::*[local-name()='dd'][1]" mode="process"/>
2911
- </fo:block>
2912
- </fo:table-cell>
2913
- </fo:table-row>
2914
- </xsl:if>
2915
- </xsl:if> -->
2916
3074
  </xsl:template><xsl:template match="*[local-name()='dd']" mode="dl"/><xsl:template match="*[local-name()='dd']" mode="dl_process">
2917
3075
  <xsl:apply-templates/>
2918
- </xsl:template><xsl:template match="*[local-name()='dd']"/><xsl:template match="*[local-name()='dd']" mode="process">
2919
- <xsl:apply-templates select="@language"/>
2920
- <xsl:apply-templates/>
3076
+ </xsl:template><xsl:template match="*[local-name()='dd']">
3077
+ <xsl:param name="process">false</xsl:param>
3078
+ <xsl:if test="$process = 'true'">
3079
+ <xsl:apply-templates select="@language"/>
3080
+ <xsl:apply-templates/>
3081
+ </xsl:if>
2921
3082
  </xsl:template><xsl:template match="*[local-name()='dd']/*[local-name()='p']" mode="inline">
2922
3083
  <fo:inline><xsl:text> </xsl:text><xsl:apply-templates/></fo:inline>
2923
3084
  </xsl:template><xsl:template match="*[local-name()='em']">
@@ -2941,6 +3102,7 @@
2941
3102
  </fo:inline>
2942
3103
  </xsl:template><xsl:template match="*[local-name()='tt']">
2943
3104
  <fo:inline xsl:use-attribute-sets="tt-style">
3105
+
2944
3106
  <xsl:variable name="_font-size">
2945
3107
 
2946
3108
 
@@ -2976,8 +3138,47 @@
2976
3138
  <fo:inline text-decoration="underline">
2977
3139
  <xsl:apply-templates/>
2978
3140
  </fo:inline>
2979
- </xsl:template><xsl:template match="*[local-name()='add']">
3141
+ </xsl:template><xsl:template match="*[local-name()='add']" name="tag_add">
3142
+ <xsl:param name="skip">true</xsl:param>
3143
+ <xsl:param name="block">false</xsl:param>
3144
+ <xsl:param name="type"/>
3145
+ <xsl:param name="text-align"/>
2980
3146
  <xsl:choose>
3147
+ <xsl:when test="starts-with(., $ace_tag)"> <!-- examples: ace-tag_A1_start, ace-tag_A2_end, C1_start, AC_start -->
3148
+ <xsl:choose>
3149
+ <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>
3150
+ <xsl:otherwise>
3151
+ <xsl:variable name="tag">
3152
+ <xsl:call-template name="insertTag">
3153
+ <xsl:with-param name="type">
3154
+ <xsl:choose>
3155
+ <xsl:when test="$type = ''"><xsl:value-of select="substring-after(substring-after(., $ace_tag), '_')"/> <!-- start or end --></xsl:when>
3156
+ <xsl:otherwise><xsl:value-of select="$type"/></xsl:otherwise>
3157
+ </xsl:choose>
3158
+ </xsl:with-param>
3159
+ <xsl:with-param name="kind" select="substring(substring-before(substring-after(., $ace_tag), '_'), 1, 1)"/> <!-- A or C -->
3160
+ <xsl:with-param name="value" select="substring(substring-before(substring-after(., $ace_tag), '_'), 2)"/> <!-- 1, 2, C -->
3161
+ </xsl:call-template>
3162
+ </xsl:variable>
3163
+ <xsl:choose>
3164
+ <xsl:when test="$block = 'false'">
3165
+ <fo:inline>
3166
+ <xsl:copy-of select="$tag"/>
3167
+ </fo:inline>
3168
+ </xsl:when>
3169
+ <xsl:otherwise>
3170
+ <fo:block> <!-- for around figures -->
3171
+ <xsl:if test="$text-align != ''">
3172
+ <xsl:attribute name="text-align"><xsl:value-of select="$text-align"/></xsl:attribute>
3173
+ </xsl:if>
3174
+ <xsl:copy-of select="$tag"/>
3175
+ </fo:block>
3176
+ </xsl:otherwise>
3177
+ </xsl:choose>
3178
+
3179
+ </xsl:otherwise>
3180
+ </xsl:choose>
3181
+ </xsl:when>
2981
3182
  <xsl:when test="@amendment">
2982
3183
  <fo:inline>
2983
3184
  <xsl:call-template name="insertTag">
@@ -3012,7 +3213,6 @@
3012
3213
  </fo:inline>
3013
3214
  </xsl:otherwise>
3014
3215
  </xsl:choose>
3015
-
3016
3216
  </xsl:template><xsl:template name="insertTag">
3017
3217
  <xsl:param name="type"/>
3018
3218
  <xsl:param name="kind"/>
@@ -3020,22 +3220,20 @@
3020
3220
  <xsl:variable name="add_width" select="string-length($value) * 20"/>
3021
3221
  <xsl:variable name="maxwidth" select="60 + $add_width"/>
3022
3222
  <fo:instream-foreign-object fox:alt-text="OpeningTag" baseline-shift="-20%"><!-- alignment-baseline="middle" -->
3023
- <!-- <xsl:attribute name="width">7mm</xsl:attribute>
3024
- <xsl:attribute name="content-height">100%</xsl:attribute> -->
3025
3223
  <xsl:attribute name="height">5mm</xsl:attribute>
3026
3224
  <xsl:attribute name="content-width">100%</xsl:attribute>
3027
3225
  <xsl:attribute name="content-width">scale-down-to-fit</xsl:attribute>
3028
3226
  <xsl:attribute name="scaling">uniform</xsl:attribute>
3029
3227
  <svg xmlns="http://www.w3.org/2000/svg" width="{$maxwidth + 32}" height="80">
3030
3228
  <g>
3031
- <xsl:if test="$type = 'closing'">
3229
+ <xsl:if test="$type = 'closing' or $type = 'end'">
3032
3230
  <xsl:attribute name="transform">scale(-1 1) translate(-<xsl:value-of select="$maxwidth + 32"/>,0)</xsl:attribute>
3033
3231
  </xsl:if>
3034
3232
  <polyline points="0,0 {$maxwidth},0 {$maxwidth + 30},40 {$maxwidth},80 0,80 " stroke="black" stroke-width="5" fill="white"/>
3035
3233
  <line x1="0" y1="0" x2="0" y2="80" stroke="black" stroke-width="20"/>
3036
3234
  </g>
3037
3235
  <text font-family="Arial" x="15" y="57" font-size="40pt">
3038
- <xsl:if test="$type = 'closing'">
3236
+ <xsl:if test="$type = 'closing' or $type = 'end'">
3039
3237
  <xsl:attribute name="x">25</xsl:attribute>
3040
3238
  </xsl:if>
3041
3239
  <xsl:value-of select="$kind"/><tspan dy="10" font-size="30pt"><xsl:value-of select="$value"/></tspan>
@@ -3079,7 +3277,11 @@
3079
3277
  <xsl:with-param name="text" select="substring($text,2)"/>
3080
3278
  </xsl:call-template>
3081
3279
  </xsl:if>
3082
- </xsl:template><xsl:template name="tokenize">
3280
+ </xsl:template><xsl:template match="*[local-name() = 'pagebreak']">
3281
+ <fo:block break-after="page"/>
3282
+ <fo:block> </fo:block>
3283
+ <fo:block break-after="page"/>
3284
+ </xsl:template><xsl:template name="tokenize">
3083
3285
  <xsl:param name="text"/>
3084
3286
  <xsl:param name="separator" select="' '"/>
3085
3287
  <xsl:choose>
@@ -3239,14 +3441,6 @@
3239
3441
 
3240
3442
  <xsl:copy-of select="xalan:nodeset($simple-table-rowspan)"/>
3241
3443
 
3242
- <!-- <xsl:choose>
3243
- <xsl:when test="current()//*[local-name()='th'][@colspan] or current()//*[local-name()='td'][@colspan] ">
3244
-
3245
- </xsl:when>
3246
- <xsl:otherwise>
3247
- <xsl:copy-of select="current()"/>
3248
- </xsl:otherwise>
3249
- </xsl:choose> -->
3250
3444
  </xsl:variable>
3251
3445
  <xsl:copy-of select="$simple-table"/>
3252
3446
  </xsl:template><xsl:template match="*[local-name()='thead'] | *[local-name()='tbody']" mode="simple-table-colspan">
@@ -3340,17 +3534,21 @@
3340
3534
  </xsl:apply-templates>
3341
3535
  </xsl:template><xsl:template name="getLang">
3342
3536
  <xsl:variable name="language_current" select="normalize-space(//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3343
- <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3344
3537
  <xsl:variable name="language">
3345
3538
  <xsl:choose>
3346
3539
  <xsl:when test="$language_current != ''">
3347
3540
  <xsl:value-of select="$language_current"/>
3348
3541
  </xsl:when>
3349
- <xsl:when test="$language_current_2 != ''">
3350
- <xsl:value-of select="$language_current_2"/>
3351
- </xsl:when>
3352
3542
  <xsl:otherwise>
3353
- <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3543
+ <xsl:variable name="language_current_2" select="normalize-space(xalan:nodeset($bibdata)//*[local-name()='bibdata']//*[local-name()='language'][@current = 'true'])"/>
3544
+ <xsl:choose>
3545
+ <xsl:when test="$language_current_2 != ''">
3546
+ <xsl:value-of select="$language_current_2"/>
3547
+ </xsl:when>
3548
+ <xsl:otherwise>
3549
+ <xsl:value-of select="//*[local-name()='bibdata']//*[local-name()='language']"/>
3550
+ </xsl:otherwise>
3551
+ </xsl:choose>
3354
3552
  </xsl:otherwise>
3355
3553
  </xsl:choose>
3356
3554
  </xsl:variable>
@@ -3365,8 +3563,6 @@
3365
3563
  <xsl:choose>
3366
3564
  <xsl:when test="contains($str2, ' ')">
3367
3565
  <xsl:variable name="substr" select="substring-before($str2, ' ')"/>
3368
- <!-- <xsl:value-of select="translate(substring($substr, 1, 1), $lower, $upper)"/>
3369
- <xsl:value-of select="substring($substr, 2)"/> -->
3370
3566
  <xsl:call-template name="capitalize">
3371
3567
  <xsl:with-param name="str" select="$substr"/>
3372
3568
  </xsl:call-template>
@@ -3376,8 +3572,6 @@
3376
3572
  </xsl:call-template>
3377
3573
  </xsl:when>
3378
3574
  <xsl:otherwise>
3379
- <!-- <xsl:value-of select="translate(substring($str2, 1, 1), $lower, $upper)"/>
3380
- <xsl:value-of select="substring($str2, 2)"/> -->
3381
3575
  <xsl:call-template name="capitalize">
3382
3576
  <xsl:with-param name="str" select="$str2"/>
3383
3577
  </xsl:call-template>
@@ -3405,6 +3599,7 @@
3405
3599
  <xsl:apply-templates select="." mode="mathml"/>
3406
3600
  </xsl:variable>
3407
3601
  <fo:instream-foreign-object fox:alt-text="Math">
3602
+
3408
3603
 
3409
3604
 
3410
3605
  <xsl:variable name="comment_text_following" select="following-sibling::node()[1][self::comment()]"/>
@@ -3436,7 +3631,7 @@
3436
3631
  </xsl:attribute>
3437
3632
 
3438
3633
 
3439
- <!-- <xsl:copy-of select="."/> -->
3634
+
3440
3635
  <xsl:copy-of select="xalan:nodeset($mathml)"/>
3441
3636
  </fo:instream-foreign-object>
3442
3637
  </fo:inline>
@@ -3495,6 +3690,10 @@
3495
3690
 
3496
3691
 
3497
3692
 
3693
+
3694
+
3695
+
3696
+
3498
3697
  <xsl:choose>
3499
3698
  <xsl:when test="$target_text = ''">
3500
3699
  <xsl:apply-templates/>
@@ -3518,19 +3717,19 @@
3518
3717
  </fo:inline>
3519
3718
  </xsl:template><xsl:template match="*[local-name()='appendix']">
3520
3719
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-style">
3521
- <xsl:apply-templates select="*[local-name()='title']" mode="process"/>
3720
+ <xsl:apply-templates select="*[local-name()='title']"/>
3522
3721
  </fo:block>
3523
- <xsl:apply-templates/>
3524
- </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']"/><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" mode="process">
3722
+ <xsl:apply-templates select="node()[not(local-name()='title')]"/>
3723
+ </xsl:template><xsl:template match="*[local-name()='appendix']/*[local-name()='title']" priority="2">
3525
3724
  <xsl:variable name="level">
3526
3725
  <xsl:call-template name="getLevel"/>
3527
3726
  </xsl:variable>
3528
3727
  <fo:inline role="H{$level}"><xsl:apply-templates/></fo:inline>
3529
3728
  </xsl:template><xsl:template match="*[local-name()='appendix']//*[local-name()='example']" priority="2">
3530
3729
  <fo:block id="{@id}" xsl:use-attribute-sets="appendix-example-style">
3531
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
3730
+ <xsl:apply-templates select="*[local-name()='name']"/>
3532
3731
  </fo:block>
3533
- <xsl:apply-templates/>
3732
+ <xsl:apply-templates select="node()[not(local-name()='name')]"/>
3534
3733
  </xsl:template><xsl:template match="*[local-name() = 'callout']">
3535
3734
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}">&lt;<xsl:apply-templates/>&gt;</fo:basic-link>
3536
3735
  </xsl:template><xsl:template match="*[local-name() = 'annotation']">
@@ -3552,7 +3751,6 @@
3552
3751
  </fo:inline>
3553
3752
  </xsl:template><xsl:template match="*[local-name() = 'xref']">
3554
3753
  <fo:basic-link internal-destination="{@target}" fox:alt-text="{@target}" xsl:use-attribute-sets="xref-style">
3555
-
3556
3754
  <xsl:apply-templates/>
3557
3755
  </fo:basic-link>
3558
3756
  </xsl:template><xsl:template match="*[local-name() = 'formula']" name="formula">
@@ -3567,8 +3765,8 @@
3567
3765
 
3568
3766
  </xsl:if>
3569
3767
  <fo:block-container margin-left="0mm">
3570
- <fo:block id="{@id}" xsl:use-attribute-sets="formula-style">
3571
- <xsl:apply-templates/>
3768
+ <fo:block id="{@id}">
3769
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/> <!-- formula's number will be process in 'stem' template -->
3572
3770
  </fo:block>
3573
3771
  </fo:block-container>
3574
3772
  </fo:block-container>
@@ -3580,49 +3778,97 @@
3580
3778
  <fo:inline>
3581
3779
  <xsl:apply-templates/>
3582
3780
  </fo:inline>
3583
- </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']" mode="presentation">
3781
+ </xsl:template><xsl:template match="*[local-name() = 'formula']/*[local-name() = 'name']"> <!-- show in 'stem' template -->
3584
3782
  <xsl:if test="normalize-space() != ''">
3585
3783
  <xsl:text>(</xsl:text><xsl:apply-templates/><xsl:text>)</xsl:text>
3586
3784
  </xsl:if>
3785
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][*[local-name() = 'name']]/*[local-name() = 'stem']">
3786
+ <fo:block xsl:use-attribute-sets="formula-style">
3787
+
3788
+
3789
+
3790
+ <fo:table table-layout="fixed" width="100%">
3791
+ <fo:table-column column-width="95%"/>
3792
+ <fo:table-column column-width="5%"/>
3793
+ <fo:table-body>
3794
+ <fo:table-row>
3795
+ <fo:table-cell display-align="center">
3796
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
3797
+
3798
+
3799
+
3800
+ <xsl:apply-templates/>
3801
+ </fo:block>
3802
+ </fo:table-cell>
3803
+ <fo:table-cell display-align="center">
3804
+ <fo:block xsl:use-attribute-sets="formula-stem-number-style">
3805
+ <xsl:apply-templates select="../*[local-name() = 'name']"/>
3806
+ </fo:block>
3807
+ </fo:table-cell>
3808
+ </fo:table-row>
3809
+ </fo:table-body>
3810
+ </fo:table>
3811
+ </fo:block>
3812
+ </xsl:template><xsl:template match="*[local-name() = 'formula'][not(*[local-name() = 'name'])]/*[local-name() = 'stem']">
3813
+ <fo:block xsl:use-attribute-sets="formula-style">
3814
+ <fo:block xsl:use-attribute-sets="formula-stem-block-style">
3815
+ <xsl:apply-templates/>
3816
+ </fo:block>
3817
+ </fo:block>
3587
3818
  </xsl:template><xsl:template match="*[local-name() = 'note']" name="note">
3588
3819
 
3589
3820
  <fo:block-container id="{@id}" xsl:use-attribute-sets="note-style">
3821
+
3822
+
3590
3823
 
3591
3824
 
3592
3825
 
3593
3826
 
3594
3827
 
3828
+
3829
+
3830
+
3831
+
3595
3832
  <fo:block-container margin-left="0mm">
3833
+
3596
3834
 
3597
3835
 
3598
3836
 
3837
+
3599
3838
 
3600
-
3601
-
3602
-
3603
-
3604
- <fo:block>
3605
-
3606
-
3607
-
3608
-
3609
-
3839
+ <fo:block>
3840
+
3841
+
3610
3842
 
3611
- <fo:inline xsl:use-attribute-sets="note-name-style">
3612
3843
 
3613
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3614
- </fo:inline>
3615
- <xsl:apply-templates/>
3616
- </fo:block>
3617
-
3618
-
3844
+
3845
+
3846
+
3847
+ <fo:inline xsl:use-attribute-sets="note-name-style">
3848
+
3849
+
3850
+
3851
+ <!-- if note contains only one element and first and last childs are `add` ace-tag, then move start ace-tag before NOTE's name-->
3852
+ <xsl:if test="count(*[not(local-name() = 'name')]) = 1 and *[not(local-name() = 'name')]/node()[last()][local-name() = 'add'][starts-with(text(), $ace_tag)]">
3853
+ <xsl:apply-templates select="*[not(local-name() = 'name')]/node()[1][local-name() = 'add'][starts-with(text(), $ace_tag)]">
3854
+ <xsl:with-param name="skip">false</xsl:with-param>
3855
+ </xsl:apply-templates>
3856
+ </xsl:if>
3857
+
3858
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3859
+
3860
+ </fo:inline>
3861
+
3862
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3863
+ </fo:block>
3864
+
3619
3865
  </fo:block-container>
3620
3866
  </fo:block-container>
3621
3867
 
3622
3868
  </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'p']">
3623
3869
  <xsl:variable name="num"><xsl:number/></xsl:variable>
3624
3870
  <xsl:choose>
3625
- <xsl:when test="$num = 1">
3871
+ <xsl:when test="$num = 1"> <!-- display first NOTE's paragraph in the same line with label NOTE -->
3626
3872
  <fo:inline xsl:use-attribute-sets="note-p-style">
3627
3873
  <xsl:apply-templates/>
3628
3874
  </fo:inline>
@@ -3637,12 +3883,16 @@
3637
3883
  <fo:block id="{@id}" xsl:use-attribute-sets="termnote-style">
3638
3884
 
3639
3885
  <fo:inline xsl:use-attribute-sets="termnote-name-style">
3886
+
3887
+
3888
+
3889
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3640
3890
 
3641
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3642
3891
  </fo:inline>
3643
- <xsl:apply-templates/>
3892
+
3893
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3644
3894
  </fo:block>
3645
- </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">
3895
+ </xsl:template><xsl:template match="*[local-name() = 'note']/*[local-name() = 'name']">
3646
3896
  <xsl:param name="sfx"/>
3647
3897
  <xsl:variable name="suffix">
3648
3898
  <xsl:choose>
@@ -3659,7 +3909,7 @@
3659
3909
  <xsl:apply-templates/>
3660
3910
  <xsl:value-of select="$suffix"/>
3661
3911
  </xsl:if>
3662
- </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']" mode="presentation">
3912
+ </xsl:template><xsl:template match="*[local-name() = 'termnote']/*[local-name() = 'name']">
3663
3913
  <xsl:param name="sfx"/>
3664
3914
  <xsl:variable name="suffix">
3665
3915
  <xsl:choose>
@@ -3684,25 +3934,23 @@
3684
3934
  <xsl:apply-templates/>
3685
3935
  </fo:block>
3686
3936
  </xsl:template><xsl:template match="*[local-name() = 'term']">
3687
- <!-- <xsl:message>'term' <xsl:number/> processing, name=<xsl:value-of select="iso:name"/>, preferred=<xsl:value-of select="iso:preferred"/>...</xsl:message> -->
3688
3937
  <fo:block id="{@id}" xsl:use-attribute-sets="term-style">
3689
3938
 
3690
3939
 
3940
+
3941
+
3691
3942
  <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'term'])">
3692
3943
 
3693
3944
  </xsl:if>
3694
- <xsl:apply-templates/>
3945
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3695
3946
  </fo:block>
3696
- </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']" mode="presentation">
3947
+ </xsl:template><xsl:template match="*[local-name() = 'term']/*[local-name() = 'name']">
3697
3948
  <xsl:if test="normalize-space() != ''">
3698
3949
  <xsl:variable name="level">
3699
3950
  <xsl:call-template name="getLevelTermName"/>
3700
3951
  </xsl:variable>
3701
3952
  <fo:inline role="H{$level}">
3702
3953
  <xsl:apply-templates/>
3703
- <!-- <xsl:if test="$namespace = 'gb' or $namespace = 'ogc'">
3704
- <xsl:text>.</xsl:text>
3705
- </xsl:if> -->
3706
3954
  </fo:inline>
3707
3955
  </xsl:if>
3708
3956
  </xsl:template><xsl:template match="*[local-name() = 'figure']" name="figure">
@@ -3715,9 +3963,10 @@
3715
3963
  <xsl:with-param name="isDeleted" select="$isDeleted"/>
3716
3964
  </xsl:call-template>
3717
3965
 
3718
- <fo:block>
3719
-
3720
- <xsl:apply-templates/>
3966
+
3967
+
3968
+ <fo:block xsl:use-attribute-sets="figure-style">
3969
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3721
3970
  </fo:block>
3722
3971
  <xsl:call-template name="fn_display_figure"/>
3723
3972
  <xsl:for-each select="*[local-name() = 'note']">
@@ -3725,14 +3974,15 @@
3725
3974
  </xsl:for-each>
3726
3975
 
3727
3976
 
3728
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3977
+ <xsl:apply-templates select="*[local-name() = 'name']"/> <!-- show figure's name AFTER image -->
3978
+
3729
3979
 
3730
3980
  </fo:block-container>
3731
3981
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']">
3732
3982
  <fo:block id="{@id}">
3733
- <xsl:apply-templates/>
3983
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
3734
3984
  </fo:block>
3735
- <xsl:apply-templates select="*[local-name() = 'name']" mode="presentation"/>
3985
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
3736
3986
  </xsl:template><xsl:template match="*[local-name() = 'figure'][@class = 'pseudocode']//*[local-name() = 'p']">
3737
3987
  <fo:block xsl:use-attribute-sets="figure-pseudocode-p-style">
3738
3988
  <xsl:apply-templates/>
@@ -3839,9 +4089,7 @@
3839
4089
  <xsl:variable name="bis" select="java:java.io.ByteArrayInputStream.new($fileContent)"/>
3840
4090
  <xsl:variable name="bufferedImage" select="java:javax.imageio.ImageIO.read($bis)"/>
3841
4091
  <xsl:variable name="width" select="java:getWidth($bufferedImage)"/>
3842
- <!-- width=<xsl:value-of select="$width"/> -->
3843
4092
  <xsl:variable name="height" select="java:getHeight($bufferedImage)"/>
3844
- <!-- height=<xsl:value-of select="$height"/> -->
3845
4093
  <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">
3846
4094
  <image xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="{@src}" height="{$height}" width="{$width}" style="overflow:visible;"/>
3847
4095
  <xsl:call-template name="svg_cross">
@@ -4111,7 +4359,7 @@
4111
4359
  </fo:basic-link>
4112
4360
  </fo:block>
4113
4361
  </fo:block-container>
4114
- </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">
4362
+ </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">
4115
4363
  <xsl:apply-templates mode="contents"/>
4116
4364
  <xsl:text> </xsl:text>
4117
4365
  </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">
@@ -4123,11 +4371,72 @@
4123
4371
  <xsl:value-of select="."/>
4124
4372
  </xsl:template><xsl:template match="node()" mode="contents">
4125
4373
  <xsl:apply-templates mode="contents"/>
4374
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="2" mode="contents">
4375
+ <xsl:variable name="level">
4376
+ <xsl:call-template name="getLevel">
4377
+ <xsl:with-param name="depth" select="@depth"/>
4378
+ </xsl:call-template>
4379
+ </xsl:variable>
4380
+
4381
+ <xsl:variable name="section">
4382
+ <xsl:choose>
4383
+ <xsl:when test="@type = 'section-title'"/>
4384
+ <xsl:otherwise>
4385
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4386
+ </xsl:otherwise>
4387
+ </xsl:choose>
4388
+ </xsl:variable>
4389
+
4390
+ <xsl:variable name="type"><xsl:value-of select="@type"/></xsl:variable>
4391
+
4392
+ <xsl:variable name="display">
4393
+ <xsl:choose>
4394
+ <xsl:when test="normalize-space(@id) = ''">false</xsl:when>
4395
+ <xsl:when test="$level &lt;= $toc_level">true</xsl:when>
4396
+ <xsl:otherwise>false</xsl:otherwise>
4397
+ </xsl:choose>
4398
+ </xsl:variable>
4399
+
4400
+ <xsl:variable name="skip">false</xsl:variable>
4401
+
4402
+ <xsl:if test="$skip = 'false'">
4403
+
4404
+ <xsl:variable name="title">
4405
+ <xsl:choose>
4406
+ <xsl:when test="*[local-name() = 'tab']">
4407
+ <xsl:choose>
4408
+ <xsl:when test="@type = 'section-title'">
4409
+ <xsl:value-of select="*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4410
+ <xsl:text>: </xsl:text>
4411
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4412
+ </xsl:when>
4413
+ <xsl:otherwise>
4414
+ <xsl:copy-of select="*[local-name() = 'tab'][1]/following-sibling::node()"/>
4415
+ </xsl:otherwise>
4416
+ </xsl:choose>
4417
+ </xsl:when>
4418
+ <xsl:otherwise>
4419
+ <xsl:copy-of select="node()"/>
4420
+ </xsl:otherwise>
4421
+ </xsl:choose>
4422
+ </xsl:variable>
4423
+
4424
+ <xsl:variable name="root">
4425
+ <xsl:if test="ancestor-or-self::*[local-name() = 'preface']">preface</xsl:if>
4426
+ <xsl:if test="ancestor-or-self::*[local-name() = 'annex']">annex</xsl:if>
4427
+ </xsl:variable>
4428
+
4429
+ <item id="{@id}" level="{$level}" section="{$section}" type="{$type}" root="{$root}" display="{$display}">
4430
+ <title>
4431
+ <xsl:apply-templates select="xalan:nodeset($title)" mode="contents_item"/>
4432
+ </title>
4433
+ </item>
4434
+ </xsl:if>
4126
4435
  </xsl:template><xsl:template match="node()" mode="bookmarks">
4127
4436
  <xsl:apply-templates mode="bookmarks"/>
4128
4437
  </xsl:template><xsl:template match="*[local-name() = 'title' or local-name() = 'name']//*[local-name() = 'stem']" mode="contents">
4129
4438
  <xsl:apply-templates select="."/>
4130
- </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
4439
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@hidden='true']" mode="contents" priority="3"/><xsl:template match="*[local-name() = 'references']/*[local-name() = 'bibitem']" mode="contents"/><xsl:template match="*[local-name() = 'stem']" mode="bookmarks">
4131
4440
  <xsl:apply-templates mode="bookmarks"/>
4132
4441
  </xsl:template><xsl:template name="addBookmarks">
4133
4442
  <xsl:param name="contents"/>
@@ -4217,8 +4526,6 @@
4217
4526
 
4218
4527
 
4219
4528
 
4220
-
4221
-
4222
4529
  </fo:bookmark-tree>
4223
4530
  </xsl:if>
4224
4531
  </xsl:template><xsl:template name="insertFigureBookmarks">
@@ -4289,7 +4596,7 @@
4289
4596
  <xsl:apply-templates mode="bookmark"/>
4290
4597
  </xsl:otherwise>
4291
4598
  </xsl:choose>
4292
- </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">
4599
+ </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']">
4293
4600
  <xsl:if test="normalize-space() != ''">
4294
4601
  <fo:block xsl:use-attribute-sets="figure-name-style">
4295
4602
 
@@ -4298,16 +4605,13 @@
4298
4605
  </fo:block>
4299
4606
  </xsl:if>
4300
4607
  </xsl:template><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'fn']" priority="2"/><xsl:template match="*[local-name() = 'figure']/*[local-name() = 'note']"/><xsl:template match="*[local-name() = 'title']" mode="contents_item">
4301
- <xsl:apply-templates mode="contents_item"/>
4608
+ <xsl:param name="mode">bookmarks</xsl:param>
4609
+ <xsl:apply-templates mode="contents_item">
4610
+ <xsl:with-param name="mode" select="$mode"/>
4611
+ </xsl:apply-templates>
4302
4612
  <!-- <xsl:text> </xsl:text> -->
4303
4613
  </xsl:template><xsl:template name="getSection">
4304
4614
  <xsl:value-of select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()"/>
4305
- <!--
4306
- <xsl:for-each select="*[local-name() = 'title']/*[local-name() = 'tab'][1]/preceding-sibling::node()">
4307
- <xsl:value-of select="."/>
4308
- </xsl:for-each>
4309
- -->
4310
-
4311
4615
  </xsl:template><xsl:template name="getName">
4312
4616
  <xsl:choose>
4313
4617
  <xsl:when test="*[local-name() = 'title']/*[local-name() = 'tab']">
@@ -4371,9 +4675,26 @@
4371
4675
  <xsl:copy-of select="."/>
4372
4676
  </xsl:template><xsl:template match="*[local-name() = 'br']" mode="contents_item">
4373
4677
  <xsl:text> </xsl:text>
4678
+ </xsl:template><xsl:template match="*[local-name() = 'name']" mode="contents_item">
4679
+ <xsl:param name="mode">bookmarks</xsl:param>
4680
+ <xsl:apply-templates mode="contents_item">
4681
+ <xsl:with-param name="mode" select="$mode"/>
4682
+ </xsl:apply-templates>
4683
+ </xsl:template><xsl:template match="*[local-name() = 'add']" mode="contents_item">
4684
+ <xsl:param name="mode">bookmarks</xsl:param>
4685
+ <xsl:choose>
4686
+ <xsl:when test="starts-with(text(), $ace_tag)">
4687
+ <xsl:if test="$mode = 'contents'">
4688
+ <xsl:copy>
4689
+ <xsl:apply-templates mode="contents_item"/>
4690
+ </xsl:copy>
4691
+ </xsl:if>
4692
+ </xsl:when>
4693
+ <xsl:otherwise><xsl:apply-templates mode="contents_item"/></xsl:otherwise>
4694
+ </xsl:choose>
4374
4695
  </xsl:template><xsl:template match="*[local-name()='sourcecode']" name="sourcecode">
4375
4696
 
4376
- <fo:block-container margin-left="0mm">
4697
+ <fo:block-container xsl:use-attribute-sets="sourcecode-container-style">
4377
4698
  <xsl:copy-of select="@id"/>
4378
4699
 
4379
4700
  <xsl:if test="parent::*[local-name() = 'note']">
@@ -4410,6 +4731,7 @@
4410
4731
 
4411
4732
 
4412
4733
  </xsl:variable>
4734
+
4413
4735
  <xsl:variable name="font-size" select="normalize-space($_font-size)"/>
4414
4736
  <xsl:if test="$font-size != ''">
4415
4737
  <xsl:attribute name="font-size">
@@ -4426,11 +4748,11 @@
4426
4748
 
4427
4749
 
4428
4750
 
4429
- <xsl:apply-templates/>
4751
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4430
4752
  </fo:block>
4431
4753
 
4432
4754
 
4433
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4755
+ <xsl:apply-templates select="*[local-name()='name']"/> <!-- show sourcecode's name AFTER content -->
4434
4756
 
4435
4757
 
4436
4758
 
@@ -4438,13 +4760,141 @@
4438
4760
  </fo:block-container>
4439
4761
  </fo:block-container>
4440
4762
  </xsl:template><xsl:template match="*[local-name()='sourcecode']/text()" priority="2">
4441
- <xsl:variable name="text">
4763
+ <xsl:choose>
4764
+ <xsl:when test="normalize-space($syntax-highlight) = 'true' and normalize-space(../@lang) != ''"> <!-- condition for turn on of highlighting -->
4765
+ <xsl:variable name="syntax" select="java:org.metanorma.fop.Util.syntaxHighlight(., ../@lang)"/>
4766
+ <xsl:choose>
4767
+ <xsl:when test="normalize-space($syntax) != ''"><!-- if there is highlighted result -->
4768
+ <xsl:apply-templates select="xalan:nodeset($syntax)" mode="syntax_highlight"/> <!-- process span tags -->
4769
+ </xsl:when>
4770
+ <xsl:otherwise> <!-- if case of non-succesfull syntax highlight (for instance, unknown lang), process without highlighting -->
4771
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4772
+ </xsl:otherwise>
4773
+ </xsl:choose>
4774
+ </xsl:when>
4775
+ <xsl:otherwise>
4776
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4777
+ </xsl:otherwise>
4778
+ </xsl:choose>
4779
+
4780
+ </xsl:template><xsl:template name="add_spaces_to_sourcecode">
4781
+ <xsl:variable name="text_step1">
4442
4782
  <xsl:call-template name="add-zero-spaces-equal"/>
4443
4783
  </xsl:variable>
4444
- <xsl:call-template name="add-zero-spaces-java">
4445
- <xsl:with-param name="text" select="$text"/>
4446
- </xsl:call-template>
4447
- </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']" mode="presentation">
4784
+ <xsl:variable name="text_step2">
4785
+ <xsl:call-template name="add-zero-spaces-java">
4786
+ <xsl:with-param name="text" select="$text_step1"/>
4787
+ </xsl:call-template>
4788
+ </xsl:variable>
4789
+ <xsl:value-of select="$text_step2"/>
4790
+ </xsl:template><xsl:template match="*" mode="syntax_highlight">
4791
+ <xsl:apply-templates mode="syntax_highlight"/>
4792
+ </xsl:template><xsl:variable name="syntax_highlight_styles_">
4793
+ <style class="hljs-addition" xsl:use-attribute-sets="hljs-addition"/>
4794
+ <style class="hljs-attr" xsl:use-attribute-sets="hljs-attr"/>
4795
+ <style class="hljs-attribute" xsl:use-attribute-sets="hljs-attribute"/>
4796
+ <style class="hljs-built_in" xsl:use-attribute-sets="hljs-built_in"/>
4797
+ <style class="hljs-bullet" xsl:use-attribute-sets="hljs-bullet"/>
4798
+ <style class="hljs-char_and_escape_" xsl:use-attribute-sets="hljs-char_and_escape_"/>
4799
+ <style class="hljs-code" xsl:use-attribute-sets="hljs-code"/>
4800
+ <style class="hljs-comment" xsl:use-attribute-sets="hljs-comment"/>
4801
+ <style class="hljs-deletion" xsl:use-attribute-sets="hljs-deletion"/>
4802
+ <style class="hljs-doctag" xsl:use-attribute-sets="hljs-doctag"/>
4803
+ <style class="hljs-emphasis" xsl:use-attribute-sets="hljs-emphasis"/>
4804
+ <style class="hljs-formula" xsl:use-attribute-sets="hljs-formula"/>
4805
+ <style class="hljs-keyword" xsl:use-attribute-sets="hljs-keyword"/>
4806
+ <style class="hljs-link" xsl:use-attribute-sets="hljs-link"/>
4807
+ <style class="hljs-literal" xsl:use-attribute-sets="hljs-literal"/>
4808
+ <style class="hljs-meta" xsl:use-attribute-sets="hljs-meta"/>
4809
+ <style class="hljs-meta_hljs-string" xsl:use-attribute-sets="hljs-meta_hljs-string"/>
4810
+ <style class="hljs-meta_hljs-keyword" xsl:use-attribute-sets="hljs-meta_hljs-keyword"/>
4811
+ <style class="hljs-name" xsl:use-attribute-sets="hljs-name"/>
4812
+ <style class="hljs-number" xsl:use-attribute-sets="hljs-number"/>
4813
+ <style class="hljs-operator" xsl:use-attribute-sets="hljs-operator"/>
4814
+ <style class="hljs-params" xsl:use-attribute-sets="hljs-params"/>
4815
+ <style class="hljs-property" xsl:use-attribute-sets="hljs-property"/>
4816
+ <style class="hljs-punctuation" xsl:use-attribute-sets="hljs-punctuation"/>
4817
+ <style class="hljs-quote" xsl:use-attribute-sets="hljs-quote"/>
4818
+ <style class="hljs-regexp" xsl:use-attribute-sets="hljs-regexp"/>
4819
+ <style class="hljs-section" xsl:use-attribute-sets="hljs-section"/>
4820
+ <style class="hljs-selector-attr" xsl:use-attribute-sets="hljs-selector-attr"/>
4821
+ <style class="hljs-selector-class" xsl:use-attribute-sets="hljs-selector-class"/>
4822
+ <style class="hljs-selector-id" xsl:use-attribute-sets="hljs-selector-id"/>
4823
+ <style class="hljs-selector-pseudo" xsl:use-attribute-sets="hljs-selector-pseudo"/>
4824
+ <style class="hljs-selector-tag" xsl:use-attribute-sets="hljs-selector-tag"/>
4825
+ <style class="hljs-string" xsl:use-attribute-sets="hljs-string"/>
4826
+ <style class="hljs-strong" xsl:use-attribute-sets="hljs-strong"/>
4827
+ <style class="hljs-subst" xsl:use-attribute-sets="hljs-subst"/>
4828
+ <style class="hljs-symbol" xsl:use-attribute-sets="hljs-symbol"/>
4829
+ <style class="hljs-tag" xsl:use-attribute-sets="hljs-tag"/>
4830
+ <!-- <style class="hljs-tag_hljs-attr" xsl:use-attribute-sets="hljs-tag_hljs-attr"></style> -->
4831
+ <!-- <style class="hljs-tag_hljs-name" xsl:use-attribute-sets="hljs-tag_hljs-name"></style> -->
4832
+ <style class="hljs-template-tag" xsl:use-attribute-sets="hljs-template-tag"/>
4833
+ <style class="hljs-template-variable" xsl:use-attribute-sets="hljs-template-variable"/>
4834
+ <style class="hljs-title" xsl:use-attribute-sets="hljs-title"/>
4835
+ <style class="hljs-title_and_class_" xsl:use-attribute-sets="hljs-title_and_class_"/>
4836
+ <style class="hljs-title_and_class__and_inherited__" xsl:use-attribute-sets="hljs-title_and_class__and_inherited__"/>
4837
+ <style class="hljs-title_and_function_" xsl:use-attribute-sets="hljs-title_and_function_"/>
4838
+ <style class="hljs-type" xsl:use-attribute-sets="hljs-type"/>
4839
+ <style class="hljs-variable" xsl:use-attribute-sets="hljs-variable"/>
4840
+ <style class="hljs-variable_and_language_" xsl:use-attribute-sets="hljs-variable_and_language_"/>
4841
+ </xsl:variable><xsl:variable name="syntax_highlight_styles" select="xalan:nodeset($syntax_highlight_styles_)"/><xsl:template match="span" mode="syntax_highlight" priority="2">
4842
+ <!-- <fo:inline color="green" font-style="italic"><xsl:apply-templates mode="syntax_highlight"/></fo:inline> -->
4843
+ <fo:inline>
4844
+ <xsl:variable name="classes_">
4845
+ <xsl:call-template name="split">
4846
+ <xsl:with-param name="pText" select="@class"/>
4847
+ <xsl:with-param name="sep" select="' '"/>
4848
+ </xsl:call-template>
4849
+ <!-- a few classes together (_and_ suffix) -->
4850
+ <xsl:if test="contains(@class, 'hljs-char') and contains(@class, 'escape_')">
4851
+ <item>hljs-char_and_escape_</item>
4852
+ </xsl:if>
4853
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_')">
4854
+ <item>hljs-title_and_class_</item>
4855
+ </xsl:if>
4856
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'class_') and contains(@class, 'inherited__')">
4857
+ <item>hljs-title_and_class__and_inherited__</item>
4858
+ </xsl:if>
4859
+ <xsl:if test="contains(@class, 'hljs-title') and contains(@class, 'function_')">
4860
+ <item>hljs-title_and_function_</item>
4861
+ </xsl:if>
4862
+ <xsl:if test="contains(@class, 'hljs-variable') and contains(@class, 'language_')">
4863
+ <item>hljs-variable_and_language_</item>
4864
+ </xsl:if>
4865
+ <!-- with parent classes (_ suffix) -->
4866
+ <xsl:if test="contains(@class, 'hljs-keyword') and contains(ancestor::*/@class, 'hljs-meta')">
4867
+ <item>hljs-meta_hljs-keyword</item>
4868
+ </xsl:if>
4869
+ <xsl:if test="contains(@class, 'hljs-string') and contains(ancestor::*/@class, 'hljs-meta')">
4870
+ <item>hljs-meta_hljs-string</item>
4871
+ </xsl:if>
4872
+ </xsl:variable>
4873
+ <xsl:variable name="classes" select="xalan:nodeset($classes_)"/>
4874
+
4875
+ <xsl:for-each select="$classes/item">
4876
+ <xsl:variable name="class_name" select="."/>
4877
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
4878
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
4879
+ </xsl:for-each>
4880
+ </xsl:for-each>
4881
+
4882
+ <!-- <xsl:variable name="class_name">
4883
+ <xsl:choose>
4884
+ <xsl:when test="@class = 'hljs-attr' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-attr</xsl:when>
4885
+ <xsl:when test="@class = 'hljs-name' and ancestor::*/@class = 'hljs-tag'">hljs-tag_hljs-name</xsl:when>
4886
+ <xsl:when test="@class = 'hljs-string' and ancestor::*/@class = 'hljs-meta'">hljs-meta_hljs-string</xsl:when>
4887
+ <xsl:otherwise><xsl:value-of select="@class"/></xsl:otherwise>
4888
+ </xsl:choose>
4889
+ </xsl:variable>
4890
+ <xsl:for-each select="$syntax_highlight_styles/style[@class = $class_name]/@*[not(local-name() = 'class')]">
4891
+ <xsl:attribute name="{local-name()}"><xsl:value-of select="."/></xsl:attribute>
4892
+ </xsl:for-each> -->
4893
+
4894
+ <xsl:apply-templates mode="syntax_highlight"/></fo:inline>
4895
+ </xsl:template><xsl:template match="text()" mode="syntax_highlight" priority="2">
4896
+ <xsl:call-template name="add_spaces_to_sourcecode"/>
4897
+ </xsl:template><xsl:template match="*[local-name() = 'sourcecode']/*[local-name() = 'name']">
4448
4898
  <xsl:if test="normalize-space() != ''">
4449
4899
  <fo:block xsl:use-attribute-sets="sourcecode-name-style">
4450
4900
  <xsl:apply-templates/>
@@ -4452,10 +4902,10 @@
4452
4902
  </xsl:if>
4453
4903
  </xsl:template><xsl:template match="*[local-name() = 'permission']">
4454
4904
  <fo:block id="{@id}" xsl:use-attribute-sets="permission-style">
4455
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4456
- <xsl:apply-templates/>
4905
+ <xsl:apply-templates select="*[local-name()='name']"/>
4906
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4457
4907
  </fo:block>
4458
- </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']" mode="presentation">
4908
+ </xsl:template><xsl:template match="*[local-name() = 'permission']/*[local-name() = 'name']">
4459
4909
  <xsl:if test="normalize-space() != ''">
4460
4910
  <fo:block xsl:use-attribute-sets="permission-name-style">
4461
4911
  <xsl:apply-templates/>
@@ -4468,13 +4918,13 @@
4468
4918
  </fo:block>
4469
4919
  </xsl:template><xsl:template match="*[local-name() = 'requirement']">
4470
4920
  <fo:block id="{@id}" xsl:use-attribute-sets="requirement-style">
4471
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4472
- <xsl:apply-templates select="*[local-name()='label']" mode="presentation"/>
4473
- <xsl:apply-templates select="@obligation" mode="presentation"/>
4474
- <xsl:apply-templates select="*[local-name()='subject']" mode="presentation"/>
4475
- <xsl:apply-templates/>
4921
+ <xsl:apply-templates select="*[local-name()='name']"/>
4922
+ <xsl:apply-templates select="*[local-name()='label']"/>
4923
+ <xsl:apply-templates select="@obligation"/>
4924
+ <xsl:apply-templates select="*[local-name()='subject']"/>
4925
+ <xsl:apply-templates select="node()[not(local-name() = 'name') and not(local-name() = 'label') and not(local-name() = 'subject')]"/>
4476
4926
  </fo:block>
4477
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']" mode="presentation">
4927
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'name']">
4478
4928
  <xsl:if test="normalize-space() != ''">
4479
4929
  <fo:block xsl:use-attribute-sets="requirement-name-style">
4480
4930
 
@@ -4482,20 +4932,24 @@
4482
4932
 
4483
4933
  </fo:block>
4484
4934
  </xsl:if>
4485
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']" mode="presentation">
4935
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'label']">
4486
4936
  <fo:block xsl:use-attribute-sets="requirement-label-style">
4487
4937
  <xsl:apply-templates/>
4488
4938
  </fo:block>
4489
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation" mode="presentation">
4939
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/@obligation">
4490
4940
  <fo:block>
4491
4941
  <fo:inline padding-right="3mm">Obligation</fo:inline><xsl:value-of select="."/>
4492
4942
  </fo:block>
4943
+ </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2">
4944
+ <fo:block xsl:use-attribute-sets="subject-style">
4945
+ <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4946
+ </fo:block>
4493
4947
  </xsl:template><xsl:template match="*[local-name() = 'recommendation']">
4494
4948
  <fo:block id="{@id}" xsl:use-attribute-sets="recommendation-style">
4495
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4496
- <xsl:apply-templates/>
4949
+ <xsl:apply-templates select="*[local-name()='name']"/>
4950
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4497
4951
  </fo:block>
4498
- </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']" mode="presentation">
4952
+ </xsl:template><xsl:template match="*[local-name() = 'recommendation']/*[local-name() = 'name']">
4499
4953
  <xsl:if test="normalize-space() != ''">
4500
4954
  <fo:block xsl:use-attribute-sets="recommendation-name-style">
4501
4955
  <xsl:apply-templates/>
@@ -4506,10 +4960,6 @@
4506
4960
  <fo:block xsl:use-attribute-sets="recommendation-label-style">
4507
4961
  <xsl:apply-templates/>
4508
4962
  </fo:block>
4509
- </xsl:template><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" priority="2"/><xsl:template match="*[local-name() = 'requirement']/*[local-name() = 'subject']" mode="presentation">
4510
- <fo:block xsl:use-attribute-sets="subject-style">
4511
- <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
4512
- </fo:block>
4513
4963
  </xsl:template><xsl:template match="*[local-name() = 'subject']">
4514
4964
  <fo:block xsl:use-attribute-sets="subject-style">
4515
4965
  <xsl:text>Target Type </xsl:text><xsl:apply-templates/>
@@ -4553,8 +5003,6 @@
4553
5003
  </xsl:variable>
4554
5004
  <xsl:variable name="cols-count" select="count(xalan:nodeset($simple-table)//tr[1]/td)"/>
4555
5005
  <xsl:if test="$cols-count = 2 and not(ancestor::*[local-name()='table'])">
4556
- <!-- <fo:table-column column-width="35mm"/>
4557
- <fo:table-column column-width="115mm"/> -->
4558
5006
  <fo:table-column column-width="30%"/>
4559
5007
  <fo:table-column column-width="70%"/>
4560
5008
  </xsl:if>
@@ -4564,7 +5012,7 @@
4564
5012
  <xsl:if test=".//*[local-name() = 'fn']">
4565
5013
  <xsl:for-each select="*[local-name() = 'tbody']">
4566
5014
  <fo:block font-size="90%" border-bottom="1pt solid black">
4567
- <xsl:call-template name="fn_display"/>
5015
+ <xsl:call-template name="table_fn_display"/>
4568
5016
  </fo:block>
4569
5017
  </xsl:for-each>
4570
5018
  </xsl:if>
@@ -4581,7 +5029,6 @@
4581
5029
  </xsl:template><xsl:template match="*[local-name()='tr']" mode="requirement">
4582
5030
  <fo:table-row height="7mm" border-bottom="0.5pt solid grey">
4583
5031
  <xsl:if test="parent::*[local-name()='thead']"> <!-- and not(ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']) -->
4584
- <!-- <xsl:attribute name="border">1pt solid black</xsl:attribute> -->
4585
5032
  <xsl:attribute name="background-color">rgb(33, 55, 92)</xsl:attribute>
4586
5033
  </xsl:if>
4587
5034
  <xsl:if test="starts-with(*[local-name()='td'][1], 'Requirement ')">
@@ -4594,34 +5041,11 @@
4594
5041
  </fo:table-row>
4595
5042
  </xsl:template><xsl:template match="*[local-name()='th']" mode="requirement">
4596
5043
  <fo:table-cell text-align="{@align}" display-align="center" padding="1mm" padding-left="2mm"> <!-- border="0.5pt solid black" -->
4597
- <xsl:attribute name="text-align">
4598
- <xsl:choose>
4599
- <xsl:when test="@align">
4600
- <xsl:value-of select="@align"/>
4601
- </xsl:when>
4602
- <xsl:otherwise>left</xsl:otherwise>
4603
- </xsl:choose>
4604
- </xsl:attribute>
4605
- <xsl:if test="@colspan">
4606
- <xsl:attribute name="number-columns-spanned">
4607
- <xsl:value-of select="@colspan"/>
4608
- </xsl:attribute>
4609
- </xsl:if>
4610
- <xsl:if test="@rowspan">
4611
- <xsl:attribute name="number-rows-spanned">
4612
- <xsl:value-of select="@rowspan"/>
4613
- </xsl:attribute>
4614
- </xsl:if>
4615
- <xsl:call-template name="display-align"/>
5044
+ <xsl:call-template name="setTextAlignment">
5045
+ <xsl:with-param name="default">left</xsl:with-param>
5046
+ </xsl:call-template>
4616
5047
 
4617
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4618
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4619
- <xsl:attribute name="background-color">rgb(165, 165, 165)</xsl:attribute>
4620
- </xsl:if>
4621
- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommendtest'">
4622
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4623
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
4624
- </xsl:if> -->
5048
+ <xsl:call-template name="setTableCellAttributes"/>
4625
5049
 
4626
5050
  <fo:block>
4627
5051
  <xsl:apply-templates/>
@@ -4633,37 +5057,15 @@
4633
5057
  <xsl:attribute name="padding">0mm</xsl:attribute>
4634
5058
  <xsl:attribute name="padding-left">0mm</xsl:attribute>
4635
5059
  </xsl:if>
4636
- <xsl:attribute name="text-align">
4637
- <xsl:choose>
4638
- <xsl:when test="@align">
4639
- <xsl:value-of select="@align"/>
4640
- </xsl:when>
4641
- <xsl:otherwise>left</xsl:otherwise>
4642
- </xsl:choose>
4643
- </xsl:attribute>
5060
+ <xsl:call-template name="setTextAlignment">
5061
+ <xsl:with-param name="default">left</xsl:with-param>
5062
+ </xsl:call-template>
5063
+
4644
5064
  <xsl:if test="following-sibling::*[local-name()='td'] and not(preceding-sibling::*[local-name()='td'])">
4645
5065
  <xsl:attribute name="font-weight">bold</xsl:attribute>
4646
5066
  </xsl:if>
4647
- <xsl:if test="@colspan">
4648
- <xsl:attribute name="number-columns-spanned">
4649
- <xsl:value-of select="@colspan"/>
4650
- </xsl:attribute>
4651
- </xsl:if>
4652
- <xsl:if test="@rowspan">
4653
- <xsl:attribute name="number-rows-spanned">
4654
- <xsl:value-of select="@rowspan"/>
4655
- </xsl:attribute>
4656
- </xsl:if>
4657
- <xsl:call-template name="display-align"/>
4658
5067
 
4659
- <!-- <xsl:if test="ancestor::*[local-name()='table']/@type = 'recommend'">
4660
- <xsl:attribute name="padding-left">0.5mm</xsl:attribute>
4661
- <xsl:attribute name="padding-top">0.5mm</xsl:attribute>
4662
- <xsl:if test="parent::*[local-name()='tr']/preceding-sibling::*[local-name()='tr'] and not(*[local-name()='table'])">
4663
- <xsl:attribute name="background-color">rgb(201, 201, 201)</xsl:attribute>
4664
- </xsl:if>
4665
- </xsl:if> -->
4666
- <!-- 2nd line and below -->
5068
+ <xsl:call-template name="setTableCellAttributes"/>
4667
5069
 
4668
5070
  <fo:block>
4669
5071
  <xsl:apply-templates/>
@@ -4675,15 +5077,15 @@
4675
5077
  <xsl:apply-templates/>
4676
5078
  </fo:block>
4677
5079
  </xsl:template><xsl:template match="*[local-name() = 'p2'][ancestor::*[local-name() = 'table'][@class = 'recommendation' or @class='requirement' or @class='permission']]">
4678
- <fo:block> <!-- margin-bottom="10pt" -->
5080
+ <fo:block>
4679
5081
  <xsl:apply-templates/>
4680
5082
  </fo:block>
4681
5083
  </xsl:template><xsl:template match="*[local-name() = 'termexample']">
4682
5084
  <fo:block id="{@id}" xsl:use-attribute-sets="termexample-style">
4683
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4684
- <xsl:apply-templates/>
5085
+ <xsl:apply-templates select="*[local-name()='name']"/>
5086
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
4685
5087
  </fo:block>
4686
- </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']" mode="presentation">
5088
+ </xsl:template><xsl:template match="*[local-name() = 'termexample']/*[local-name() = 'name']">
4687
5089
  <xsl:if test="normalize-space() != ''">
4688
5090
  <fo:inline xsl:use-attribute-sets="termexample-name-style">
4689
5091
  <xsl:apply-templates/>
@@ -4707,42 +5109,46 @@
4707
5109
  <fo:block id="{@id}" xsl:use-attribute-sets="example-style">
4708
5110
 
4709
5111
 
4710
- <xsl:apply-templates select="*[local-name()='name']" mode="presentation"/>
4711
-
4712
- <xsl:variable name="element">
4713
- block
4714
-
4715
- <xsl:if test=".//*[local-name() = 'table']">block</xsl:if>
5112
+ <xsl:variable name="fo_element">
5113
+ <xsl:if test=".//*[local-name() = 'table'] or .//*[local-name() = 'dl']">block</xsl:if>
5114
+ block
4716
5115
  </xsl:variable>
4717
5116
 
5117
+ <!-- display 'EXAMPLE' -->
5118
+ <xsl:apply-templates select="*[local-name()='name']">
5119
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5120
+ </xsl:apply-templates>
5121
+
4718
5122
  <xsl:choose>
4719
- <xsl:when test="contains(normalize-space($element), 'block')">
4720
- <fo:block xsl:use-attribute-sets="example-body-style">
4721
- <xsl:apply-templates/>
4722
- </fo:block>
5123
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
5124
+ <fo:block-container xsl:use-attribute-sets="example-body-style">
5125
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5126
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5127
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5128
+ </xsl:apply-templates>
5129
+ </fo:block-container>
5130
+ </fo:block-container>
4723
5131
  </xsl:when>
4724
5132
  <xsl:otherwise>
4725
5133
  <fo:inline>
4726
- <xsl:apply-templates/>
5134
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]">
5135
+ <xsl:with-param name="fo_element" select="$fo_element"/>
5136
+ </xsl:apply-templates>
4727
5137
  </fo:inline>
4728
5138
  </xsl:otherwise>
4729
5139
  </xsl:choose>
4730
5140
 
4731
5141
  </fo:block>
4732
- </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']"/><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']" mode="presentation">
4733
-
4734
- <xsl:variable name="element">
4735
- block
4736
-
4737
- <xsl:if test="following-sibling::*[1][local-name() = 'table']">block</xsl:if>
4738
- </xsl:variable>
5142
+ </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'name']">
5143
+ <xsl:param name="fo_element">block</xsl:param>
5144
+
4739
5145
  <xsl:choose>
4740
5146
  <xsl:when test="ancestor::*[local-name() = 'appendix']">
4741
5147
  <fo:inline>
4742
5148
  <xsl:apply-templates/>
4743
5149
  </fo:inline>
4744
5150
  </xsl:when>
4745
- <xsl:when test="contains(normalize-space($element), 'block')">
5151
+ <xsl:when test="contains(normalize-space($fo_element), 'block')">
4746
5152
  <fo:block xsl:use-attribute-sets="example-name-style">
4747
5153
  <xsl:apply-templates/>
4748
5154
  </fo:block>
@@ -4755,14 +5161,15 @@
4755
5161
  </xsl:choose>
4756
5162
 
4757
5163
  </xsl:template><xsl:template match="*[local-name() = 'example']/*[local-name() = 'p']">
5164
+ <xsl:param name="fo_element">block</xsl:param>
5165
+
4758
5166
  <xsl:variable name="num"><xsl:number/></xsl:variable>
4759
5167
  <xsl:variable name="element">
4760
- block
4761
-
4762
5168
 
5169
+ <xsl:value-of select="$fo_element"/>
4763
5170
  </xsl:variable>
4764
5171
  <xsl:choose>
4765
- <xsl:when test="normalize-space($element) = 'block'">
5172
+ <xsl:when test="starts-with(normalize-space($element), 'block')">
4766
5173
  <fo:block xsl:use-attribute-sets="example-p-style">
4767
5174
 
4768
5175
  <xsl:apply-templates/>
@@ -4777,6 +5184,8 @@
4777
5184
  </xsl:template><xsl:template match="*[local-name() = 'termsource']" name="termsource">
4778
5185
  <fo:block xsl:use-attribute-sets="termsource-style">
4779
5186
 
5187
+
5188
+
4780
5189
  <!-- Example: [SOURCE: ISO 5127:2017, 3.1.6.02] -->
4781
5190
  <xsl:variable name="termsource_text">
4782
5191
  <xsl:apply-templates/>
@@ -4814,9 +5223,7 @@
4814
5223
  <xsl:value-of select="."/>
4815
5224
  </xsl:if>
4816
5225
  </xsl:template><xsl:template match="*[local-name() = 'termsource']/*[local-name() = 'strong'][1][following-sibling::*[1][local-name() = 'origin']]/text()">
4817
- <fo:inline>
4818
-
4819
-
5226
+ <fo:inline xsl:use-attribute-sets="termsource-text-style">
4820
5227
  <xsl:value-of select="."/>
4821
5228
  </fo:inline>
4822
5229
  </xsl:template><xsl:template match="*[local-name() = 'origin']">
@@ -4830,12 +5237,9 @@
4830
5237
  </fo:basic-link>
4831
5238
  </xsl:template><xsl:template match="*[local-name() = 'modification']">
4832
5239
  <xsl:variable name="title-modified">
4833
-
4834
-
4835
- <xsl:call-template name="getTitle">
4836
- <xsl:with-param name="name" select="'title-modified'"/>
4837
- </xsl:call-template>
4838
-
5240
+ <xsl:call-template name="getLocalizedString">
5241
+ <xsl:with-param name="key">modified</xsl:with-param>
5242
+ </xsl:call-template>
4839
5243
  </xsl:variable>
4840
5244
 
4841
5245
  <xsl:variable name="text"><xsl:apply-templates/></xsl:variable>
@@ -4860,12 +5264,14 @@
4860
5264
 
4861
5265
 
4862
5266
  <fo:block-container margin-left="0mm">
4863
-
4864
- <fo:block xsl:use-attribute-sets="quote-style">
4865
- <!-- <xsl:apply-templates select=".//*[local-name() = 'p']"/> -->
5267
+ <fo:block-container xsl:use-attribute-sets="quote-style">
4866
5268
 
4867
- <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
4868
- </fo:block>
5269
+ <fo:block-container margin-left="0mm" margin-right="0mm">
5270
+ <fo:block role="BlockQuote">
5271
+ <xsl:apply-templates select="./node()[not(local-name() = 'author') and not(local-name() = 'source')]"/> <!-- process all nested nodes, except author and source -->
5272
+ </fo:block>
5273
+ </fo:block-container>
5274
+ </fo:block-container>
4869
5275
  <xsl:if test="*[local-name() = 'author'] or *[local-name() = 'source']">
4870
5276
  <fo:block xsl:use-attribute-sets="quote-source-style">
4871
5277
  <!-- — ISO, ISO 7301:2011, Clause 1 -->
@@ -4905,15 +5311,13 @@
4905
5311
  </xsl:variable>
4906
5312
 
4907
5313
  <xsl:choose>
4908
- <xsl:when test="normalize-space($bibitemid) != ''">
5314
+ <xsl:when test="normalize-space($bibitemid) != ''"> <!-- if in the bibliography there is the item with @bibitemid (and not hidden), then create link -->
4909
5315
  <fo:inline xsl:use-attribute-sets="eref-style">
4910
5316
  <xsl:if test="@type = 'footnote'">
4911
-
4912
- <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
4913
- <xsl:attribute name="font-size">80%</xsl:attribute>
4914
- <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
4915
- <xsl:attribute name="vertical-align">super</xsl:attribute>
4916
-
5317
+ <xsl:attribute name="keep-together.within-line">always</xsl:attribute>
5318
+ <xsl:attribute name="keep-with-previous.within-line">always</xsl:attribute>
5319
+ <xsl:attribute name="vertical-align">super</xsl:attribute>
5320
+ <xsl:attribute name="font-size">80%</xsl:attribute>
4917
5321
 
4918
5322
  </xsl:if>
4919
5323
 
@@ -4933,7 +5337,6 @@
4933
5337
 
4934
5338
 
4935
5339
 
4936
-
4937
5340
  </xsl:if>
4938
5341
 
4939
5342
 
@@ -4986,8 +5389,6 @@
4986
5389
  </xsl:choose>
4987
5390
  </xsl:variable>
4988
5391
 
4989
- <!-- <xsl:variable name="language" select="//*[local-name()='bibdata']//*[local-name()='language']"/> -->
4990
-
4991
5392
  <xsl:choose>
4992
5393
  <xsl:when test="$lang = 'zh'">
4993
5394
  <fo:inline><xsl:value-of select="$tab_zh"/></fo:inline>
@@ -5013,6 +5414,31 @@
5013
5414
  <xsl:with-param name="count" select="$count - 1"/>
5014
5415
  </xsl:call-template>
5015
5416
  </xsl:if>
5417
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']">
5418
+ <xsl:variable name="level">
5419
+ <xsl:call-template name="getLevel"/>
5420
+ </xsl:variable>
5421
+ <xsl:variable name="font-size">
5422
+ inherit
5423
+ </xsl:variable>
5424
+ <xsl:variable name="levelTerm">
5425
+ <xsl:call-template name="getLevelTermName"/>
5426
+ </xsl:variable>
5427
+ <fo:block font-size="{normalize-space($font-size)}" role="H{$levelTerm}" xsl:use-attribute-sets="preferred-block-style">
5428
+
5429
+
5430
+
5431
+ <xsl:if test="parent::*[local-name() = 'term'] and not(preceding-sibling::*[local-name() = 'preferred'])"> <!-- if first preffered in term, then display term's name -->
5432
+ <fo:block xsl:use-attribute-sets="term-name-style">
5433
+ <xsl:apply-templates select="ancestor::*[local-name() = 'term'][1]/*[local-name() = 'name']"/>
5434
+ </fo:block>
5435
+ </xsl:if>
5436
+
5437
+ <fo:block xsl:use-attribute-sets="preferred-term-style">
5438
+ <xsl:call-template name="setStyle_preferred"/>
5439
+ <xsl:apply-templates/>
5440
+ </fo:block>
5441
+ </fo:block>
5016
5442
  </xsl:template><xsl:template match="*[local-name() = 'domain']">
5017
5443
  <fo:inline xsl:use-attribute-sets="domain-style">&lt;<xsl:apply-templates/>&gt;</fo:inline>
5018
5444
  <xsl:text> </xsl:text>
@@ -5022,12 +5448,9 @@
5022
5448
  </fo:block>
5023
5449
  </xsl:template><xsl:template match="*[local-name() = 'deprecates']">
5024
5450
  <xsl:variable name="title-deprecated">
5025
-
5026
-
5027
- <xsl:call-template name="getTitle">
5028
- <xsl:with-param name="name" select="'title-deprecated'"/>
5029
- </xsl:call-template>
5030
-
5451
+ <xsl:call-template name="getLocalizedString">
5452
+ <xsl:with-param name="key">deprecated</xsl:with-param>
5453
+ </xsl:call-template>
5031
5454
  </xsl:variable>
5032
5455
  <fo:block xsl:use-attribute-sets="deprecates-style">
5033
5456
  <xsl:value-of select="$title-deprecated"/>: <xsl:apply-templates/>
@@ -5036,6 +5459,8 @@
5036
5459
  <xsl:if test="*[local-name() = 'strong']">
5037
5460
  <xsl:attribute name="font-weight">normal</xsl:attribute>
5038
5461
  </xsl:if>
5462
+ </xsl:template><xsl:template match="*[local-name() = 'preferred']/text()[contains(., ';')] | *[local-name() = 'preferred']/*[local-name() = 'strong']/text()[contains(., ';')]">
5463
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.), ';', $linebreak)"/>
5039
5464
  </xsl:template><xsl:template match="*[local-name() = 'definition']">
5040
5465
  <fo:block xsl:use-attribute-sets="definition-style">
5041
5466
  <xsl:apply-templates/>
@@ -5044,7 +5469,6 @@
5044
5469
  <xsl:apply-templates/>
5045
5470
  </xsl:template><xsl:template match="*[local-name() = 'definition'][preceding-sibling::*[local-name() = 'domain']]/*[local-name() = 'p'][1]">
5046
5471
  <fo:inline> <xsl:apply-templates/></fo:inline>
5047
- <!-- <fo:block>&#xA0;</fo:block> -->
5048
5472
  <fo:block/>
5049
5473
  </xsl:template><xsl:template match="/*/*[local-name() = 'sections']/*" priority="2">
5050
5474
 
@@ -5080,11 +5504,6 @@
5080
5504
  <xsl:apply-templates/>
5081
5505
  </fo:block>
5082
5506
  </xsl:template><xsl:template match="*[local-name() = 'definitions']">
5083
- <fo:block id="{@id}">
5084
- <xsl:apply-templates/>
5085
- </fo:block>
5086
- </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']">
5087
-
5088
5507
  <fo:block id="{@id}">
5089
5508
  <xsl:apply-templates/>
5090
5509
  </fo:block>
@@ -5099,28 +5518,12 @@
5099
5518
  <!-- <fo:block font-weight="bold">Review:</fo:block>
5100
5519
  <xsl:apply-templates /> -->
5101
5520
  </xsl:template><xsl:template match="*[local-name() = 'name']/text()">
5102
- <!-- 0xA0 to space replacement -->
5103
- <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
5104
- </xsl:template><xsl:variable name="ul_labels_">
5105
-
5106
-
5107
-
5108
-
5109
-
5110
-
5111
-
5112
-
5113
-
5114
-
5115
- <label>—</label> <!-- em dash -->
5116
-
5117
-
5118
-
5119
-
5120
-
5121
-
5122
-
5521
+ <!-- 0xA0 to space replacement -->
5522
+ <xsl:value-of select="java:replaceAll(java:java.lang.String.new(.),' ',' ')"/>
5523
+ </xsl:template><xsl:variable name="ul_labels_">
5123
5524
 
5525
+ <label>—</label> <!-- em dash -->
5526
+
5124
5527
  </xsl:variable><xsl:variable name="ul_labels" select="xalan:nodeset($ul_labels_)"/><xsl:template name="setULLabel">
5125
5528
  <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
5126
5529
  <xsl:variable name="list_level">
@@ -5146,6 +5549,91 @@
5146
5549
  </xsl:template><xsl:template match="label" mode="ul_labels">
5147
5550
  <xsl:copy-of select="@*[not(local-name() = 'level')]"/>
5148
5551
  <xsl:value-of select="."/>
5552
+ </xsl:template><xsl:template name="getListItemFormat">
5553
+ <!-- Example: for BSI <?list-type loweralpha?> -->
5554
+ <xsl:variable name="processing_instruction_type" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-type'))"/>
5555
+ <xsl:choose>
5556
+ <xsl:when test="local-name(..) = 'ul'">
5557
+ <xsl:choose>
5558
+ <xsl:when test="normalize-space($processing_instruction_type) = 'simple'"/>
5559
+ <xsl:otherwise><xsl:call-template name="setULLabel"/></xsl:otherwise>
5560
+ </xsl:choose>
5561
+ </xsl:when>
5562
+ <xsl:otherwise> <!-- for ordered lists 'ol' -->
5563
+
5564
+ <!-- Example: for BSI <?list-start 2?> -->
5565
+ <xsl:variable name="processing_instruction_start" select="normalize-space(../preceding-sibling::*[1]/processing-instruction('list-start'))"/>
5566
+
5567
+ <xsl:variable name="start_value">
5568
+ <xsl:choose>
5569
+ <xsl:when test="normalize-space($processing_instruction_start) != ''">
5570
+ <xsl:value-of select="number($processing_instruction_start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
5571
+ </xsl:when>
5572
+ <xsl:when test="normalize-space(../@start) != ''">
5573
+ <xsl:value-of select="number(../@start) - 1"/><!-- if start="3" then start_value=2 + xsl:number(1) = 3 -->
5574
+ </xsl:when>
5575
+ <xsl:otherwise>0</xsl:otherwise>
5576
+ </xsl:choose>
5577
+ </xsl:variable>
5578
+
5579
+ <xsl:variable name="curr_value"><xsl:number/></xsl:variable>
5580
+
5581
+ <xsl:variable name="type">
5582
+ <xsl:choose>
5583
+ <xsl:when test="normalize-space($processing_instruction_type) != ''"><xsl:value-of select="$processing_instruction_type"/></xsl:when>
5584
+ <xsl:when test="normalize-space(../@type) != ''"><xsl:value-of select="../@type"/></xsl:when>
5585
+
5586
+ <xsl:otherwise> <!-- if no @type or @class = 'steps' -->
5587
+
5588
+ <xsl:variable name="list_level_" select="count(ancestor::*[local-name() = 'ul']) + count(ancestor::*[local-name() = 'ol'])"/>
5589
+ <xsl:variable name="list_level">
5590
+ <xsl:choose>
5591
+ <xsl:when test="$list_level_ &lt;= 5"><xsl:value-of select="$list_level_"/></xsl:when>
5592
+ <xsl:otherwise><xsl:value-of select="$list_level_ mod 5"/></xsl:otherwise>
5593
+ </xsl:choose>
5594
+ </xsl:variable>
5595
+
5596
+ <xsl:choose>
5597
+ <xsl:when test="$list_level mod 5 = 0">roman_upper</xsl:when> <!-- level 5 -->
5598
+ <xsl:when test="$list_level mod 4 = 0">alphabet_upper</xsl:when> <!-- level 4 -->
5599
+ <xsl:when test="$list_level mod 3 = 0">roman</xsl:when> <!-- level 3 -->
5600
+ <xsl:when test="$list_level mod 2 = 0 and ancestor::*/@class = 'steps'">alphabet</xsl:when> <!-- level 2 and @class = 'steps'-->
5601
+ <xsl:when test="$list_level mod 2 = 0">arabic</xsl:when> <!-- level 2 -->
5602
+ <xsl:otherwise> <!-- level 1 -->
5603
+ <xsl:choose>
5604
+ <xsl:when test="ancestor::*/@class = 'steps'">arabic</xsl:when>
5605
+ <xsl:otherwise>alphabet</xsl:otherwise>
5606
+ </xsl:choose>
5607
+ </xsl:otherwise>
5608
+ </xsl:choose>
5609
+
5610
+ </xsl:otherwise>
5611
+ </xsl:choose>
5612
+ </xsl:variable>
5613
+
5614
+ <xsl:variable name="format">
5615
+ <xsl:choose>
5616
+ <xsl:when test="$type = 'arabic'">
5617
+ 1.
5618
+ </xsl:when>
5619
+ <xsl:when test="$type = 'alphabet'">
5620
+ a)
5621
+ </xsl:when>
5622
+ <xsl:when test="$type = 'alphabet_upper'">
5623
+ A.
5624
+ </xsl:when>
5625
+ <xsl:when test="$type = 'roman'">
5626
+ i)
5627
+ </xsl:when>
5628
+ <xsl:when test="$type = 'roman_upper'">I.</xsl:when>
5629
+ <xsl:otherwise>1.</xsl:otherwise> <!-- for any case, if $type has non-determined value, not using -->
5630
+ </xsl:choose>
5631
+ </xsl:variable>
5632
+
5633
+ <xsl:number value="$start_value + $curr_value" format="{normalize-space($format)}" lang="en"/>
5634
+
5635
+ </xsl:otherwise>
5636
+ </xsl:choose>
5149
5637
  </xsl:template><xsl:template match="*[local-name() = 'ul'] | *[local-name() = 'ol']">
5150
5638
  <xsl:choose>
5151
5639
  <xsl:when test="parent::*[local-name() = 'note'] or parent::*[local-name() = 'termnote']">
@@ -5161,18 +5649,70 @@
5161
5649
 
5162
5650
  <fo:block-container margin-left="0mm">
5163
5651
  <fo:block>
5164
- <xsl:apply-templates select="." mode="ul_ol"/>
5652
+ <xsl:apply-templates select="." mode="list"/>
5165
5653
  </fo:block>
5166
5654
  </fo:block-container>
5167
5655
  </fo:block-container>
5168
5656
  </xsl:when>
5169
5657
  <xsl:otherwise>
5170
5658
  <fo:block>
5171
- <xsl:apply-templates select="." mode="ul_ol"/>
5659
+ <xsl:apply-templates select="." mode="list"/>
5172
5660
  </fo:block>
5173
5661
  </xsl:otherwise>
5174
5662
  </xsl:choose>
5175
- </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="dash" select="'–'"/><xsl:variable name="bookmark_in_fn">
5663
+ </xsl:template><xsl:template match="*[local-name()='ul'] | *[local-name()='ol']" mode="list" name="list">
5664
+ <fo:list-block xsl:use-attribute-sets="list-style">
5665
+
5666
+
5667
+
5668
+
5669
+
5670
+
5671
+ <xsl:if test="local-name() = 'ol'">
5672
+ <xsl:attribute name="provisional-distance-between-starts">7mm</xsl:attribute>
5673
+ </xsl:if>
5674
+
5675
+
5676
+
5677
+
5678
+ <xsl:apply-templates select="node()[not(local-name() = 'note')]"/>
5679
+ </fo:list-block>
5680
+ <!-- <xsl:for-each select="./iho:note">
5681
+ <xsl:call-template name="note"/>
5682
+ </xsl:for-each> -->
5683
+ <xsl:apply-templates select="./*[local-name() = 'note']"/>
5684
+ </xsl:template><xsl:template match="*[local-name()='li']">
5685
+ <fo:list-item xsl:use-attribute-sets="list-item-style">
5686
+ <xsl:copy-of select="@id"/>
5687
+
5688
+
5689
+
5690
+ <fo:list-item-label end-indent="label-end()">
5691
+ <fo:block xsl:use-attribute-sets="list-item-label-style">
5692
+
5693
+
5694
+
5695
+ <xsl:call-template name="getListItemFormat"/>
5696
+ </fo:block>
5697
+ </fo:list-item-label>
5698
+ <fo:list-item-body start-indent="body-start()" xsl:use-attribute-sets="list-item-body-style">
5699
+ <fo:block>
5700
+
5701
+
5702
+
5703
+
5704
+
5705
+ <xsl:apply-templates/>
5706
+
5707
+ <!-- <xsl:apply-templates select="node()[not(local-name() = 'note')]" />
5708
+
5709
+ <xsl:for-each select="./bsi:note">
5710
+ <xsl:call-template name="note"/>
5711
+ </xsl:for-each> -->
5712
+ </fo:block>
5713
+ </fo:list-item-body>
5714
+ </fo:list-item>
5715
+ </xsl:template><xsl:variable name="index" select="document($external_index)"/><xsl:variable name="bookmark_in_fn">
5176
5716
  <xsl:for-each select="//*[local-name() = 'bookmark'][ancestor::*[local-name() = 'fn']]">
5177
5717
  <bookmark><xsl:value-of select="@id"/></bookmark>
5178
5718
  </xsl:for-each>
@@ -5194,7 +5734,7 @@
5194
5734
  <!-- split <xref target="bm1" to="End" pagenumber="true"> to two xref:
5195
5735
  <xref target="bm1" pagenumber="true"> and <xref target="End" pagenumber="true"> -->
5196
5736
  <xsl:if test="@to">
5197
- <xsl:value-of select="$dash"/>
5737
+ <xsl:value-of select="$en_dash"/>
5198
5738
  <xsl:copy>
5199
5739
  <xsl:copy-of select="@*"/>
5200
5740
  <xsl:attribute name="target"><xsl:value-of select="@to"/></xsl:attribute>
@@ -5219,7 +5759,7 @@
5219
5759
  <xsl:param name="target"/>
5220
5760
  <!-- <node></node> -->
5221
5761
  <xsl:choose>
5222
- <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $dash) and $remove = 'true'">
5762
+ <xsl:when test="self::text() and (normalize-space(.) = ',' or normalize-space(.) = $en_dash) and $remove = 'true'">
5223
5763
  <!-- skip text (i.e. remove it) and process next element -->
5224
5764
  <!-- [removed_<xsl:value-of select="."/>] -->
5225
5765
  <xsl:apply-templates select="following-sibling::node()[1]" mode="process_li_element">
@@ -5303,12 +5843,22 @@
5303
5843
  </xsl:variable>
5304
5844
  <xsl:variable name="xref_number"><xsl:number count="*[local-name() = 'xref']"/></xsl:variable>
5305
5845
  <xsl:value-of select="concat($docid, '_', $item_number, '_', $xref_number)"/> <!-- $level, '_', -->
5846
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'title']" priority="4">
5847
+ <fo:block xsl:use-attribute-sets="indexsect-title-style">
5848
+ <!-- Index -->
5849
+ <xsl:apply-templates/>
5850
+ </fo:block>
5851
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']/*[local-name() = 'title']" priority="4">
5852
+ <!-- Letter A, B, C, ... -->
5853
+ <fo:block xsl:use-attribute-sets="indexsect-clause-title-style">
5854
+ <xsl:apply-templates/>
5855
+ </fo:block>
5306
5856
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']/*[local-name() = 'clause']" priority="4">
5307
5857
  <xsl:apply-templates/>
5308
5858
  <fo:block>
5309
- <xsl:if test="following-sibling::*[local-name() = 'clause']">
5310
- <fo:block> </fo:block>
5311
- </xsl:if>
5859
+ <xsl:if test="following-sibling::*[local-name() = 'clause']">
5860
+ <fo:block> </fo:block>
5861
+ </xsl:if>
5312
5862
  </fo:block>
5313
5863
  </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'ul']" priority="4">
5314
5864
  <xsl:apply-templates/>
@@ -5318,6 +5868,9 @@
5318
5868
 
5319
5869
  <xsl:apply-templates/>
5320
5870
  </fo:block>
5871
+ </xsl:template><xsl:template match="*[local-name() = 'indexsect']//*[local-name() = 'li']/text()">
5872
+ <!-- to split by '_' and other chars -->
5873
+ <xsl:call-template name="add-zero-spaces-java"/>
5321
5874
  </xsl:template><xsl:template match="*[local-name() = 'bookmark']" name="bookmark">
5322
5875
  <fo:inline id="{@id}" font-size="1pt"/>
5323
5876
  </xsl:template><xsl:template match="*[local-name() = 'errata']">
@@ -5352,20 +5905,102 @@
5352
5905
  <fo:table-cell border="1pt solid black" padding-left="1mm" padding-top="0.5mm">
5353
5906
  <fo:block><xsl:apply-templates/></fo:block>
5354
5907
  </fo:table-cell>
5355
- </xsl:template><xsl:template name="processBibitem">
5908
+ </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">
5909
+
5910
+
5911
+
5912
+ <fo:block id="{@id}">
5913
+ <xsl:apply-templates/>
5914
+ </fo:block>
5915
+ </xsl:template><xsl:template match="*[local-name() = 'references']">
5916
+ <xsl:if test="not(ancestor::*[local-name() = 'annex'])">
5917
+
5918
+ <fo:block break-after="page"/>
5919
+
5920
+ </xsl:if>
5921
+
5922
+ <!-- <xsl:if test="ancestor::*[local-name() = 'annex']">
5923
+ <xsl:if test="$namespace = 'csa' or $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'itu'">
5924
+ <fo:block break-after="page"/>
5925
+ </xsl:if>
5926
+ </xsl:if> -->
5356
5927
 
5928
+ <fo:block id="{@id}" xsl:use-attribute-sets="references-non-normative-style">
5929
+ <xsl:apply-templates/>
5930
+ </fo:block>
5357
5931
 
5358
5932
 
5359
-
5360
5933
 
5361
5934
 
5362
-
5935
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']">
5936
+ <xsl:call-template name="bibitem"/>
5937
+ </xsl:template><xsl:template match="*[local-name() = 'references'][@normative='true']/*[local-name() = 'bibitem']" name="bibitem" priority="2">
5363
5938
 
5939
+ <fo:block id="{@id}" xsl:use-attribute-sets="bibitem-normative-style">
5940
+ <xsl:call-template name="processBibitem"/>
5941
+ </fo:block>
5942
+
5943
+
5944
+ </xsl:template><xsl:template match="*[local-name() = 'references'][not(@normative='true')]/*[local-name() = 'bibitem']" priority="2">
5945
+
5946
+ <!-- $namespace = 'csd' or $namespace = 'gb' or $namespace = 'iec' or $namespace = 'iso' or $namespace = 'jcgm' or $namespace = 'm3d' or
5947
+ $namespace = 'mpfd' or $namespace = 'ogc' or $namespace = 'ogc-white-paper' -->
5948
+ <!-- Example: [1] ISO 9:1995, Information and documentation – Transliteration of Cyrillic characters into Latin characters – Slavic and non-Slavic languages -->
5949
+ <fo:list-block id="{@id}" xsl:use-attribute-sets="bibitem-non-normative-list-style">
5950
+ <fo:list-item>
5951
+ <fo:list-item-label end-indent="label-end()">
5952
+ <fo:block>
5953
+ <fo:inline>
5954
+
5955
+ <xsl:value-of select="*[local-name()='docidentifier'][@type = 'metanorma-ordinal']"/>
5956
+ <xsl:if test="not(*[local-name()='docidentifier'][@type = 'metanorma-ordinal'])">
5957
+ <xsl:number format="[1]"/>
5958
+ </xsl:if>
5959
+
5960
+ </fo:inline>
5961
+ </fo:block>
5962
+ </fo:list-item-label>
5963
+ <fo:list-item-body start-indent="body-start()">
5964
+ <fo:block xsl:use-attribute-sets="bibitem-non-normative-list-body-style">
5965
+ <xsl:call-template name="processBibitem"/>
5966
+ </fo:block>
5967
+ </fo:list-item-body>
5968
+ </fo:list-item>
5969
+ </fo:list-block>
5970
+
5364
5971
 
5972
+ </xsl:template><xsl:template name="processBibitem">
5365
5973
 
5366
5974
 
5975
+ <!-- start bibitem processing -->
5976
+ <xsl:if test=".//*[local-name() = 'fn']">
5977
+ <xsl:attribute name="line-height-shift-adjustment">disregard-shifts</xsl:attribute>
5978
+ </xsl:if>
5979
+ <xsl:variable name="docidentifier">
5980
+ <xsl:choose>
5981
+ <xsl:when test="*[local-name() = 'docidentifier']/@type = 'metanorma'"/>
5982
+ <xsl:otherwise><xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma-ordinal')]"/></xsl:otherwise>
5983
+ </xsl:choose>
5984
+ </xsl:variable>
5985
+ <fo:inline><xsl:value-of select="$docidentifier"/></fo:inline>
5986
+ <xsl:apply-templates select="*[local-name() = 'note']"/>
5987
+ <xsl:if test="normalize-space($docidentifier) != ''">, </xsl:if>
5988
+ <xsl:choose>
5989
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = $lang]">
5990
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = $lang]"/>
5991
+ </xsl:when>
5992
+ <xsl:when test="*[local-name() = 'title'][@type = 'main' and @language = 'en']">
5993
+ <xsl:apply-templates select="*[local-name() = 'title'][@type = 'main' and @language = 'en']"/>
5994
+ </xsl:when>
5995
+ <xsl:otherwise>
5996
+ <xsl:apply-templates select="*[local-name() = 'title']"/>
5997
+ </xsl:otherwise>
5998
+ </xsl:choose>
5999
+ <xsl:apply-templates select="*[local-name() = 'formattedref']"/>
6000
+ <!-- end bibitem processing -->
6001
+
5367
6002
  </xsl:template><xsl:template name="processBibitemDocId">
5368
- <xsl:variable name="_doc_ident" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]"/>
6003
+ <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')]"/>
5369
6004
  <xsl:choose>
5370
6005
  <xsl:when test="normalize-space($_doc_ident) != ''">
5371
6006
  <!-- <xsl:variable name="type" select="*[local-name() = 'docidentifier'][not(@type = 'DOI' or @type = 'metanorma' or @type = 'ISSN' or @type = 'ISBN' or @type = 'rfc-anchor')]/@type"/>
@@ -5379,7 +6014,7 @@
5379
6014
  <xsl:if test="$type != ''">
5380
6015
  <xsl:value-of select="$type"/><xsl:text> </xsl:text>
5381
6016
  </xsl:if> -->
5382
- <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma')]"/>
6017
+ <xsl:value-of select="*[local-name() = 'docidentifier'][not(@type = 'metanorma') and not(@type = 'metanorma-ordinal')]"/>
5383
6018
  </xsl:otherwise>
5384
6019
  </xsl:choose>
5385
6020
  </xsl:template><xsl:template name="processPersonalAuthor">
@@ -5420,6 +6055,48 @@
5420
6055
  <xsl:value-of select="substring(.,1,1)"/>
5421
6056
  </xsl:template><xsl:template match="*[local-name() = 'title']" mode="title">
5422
6057
  <fo:inline><xsl:apply-templates/></fo:inline>
6058
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'title']" priority="2">
6059
+ <!-- <fo:inline><xsl:apply-templates /></fo:inline> -->
6060
+ <fo:inline font-style="italic"> <!-- BIPM BSI CSD CSA GB IEC IHO ISO ITU JCGM -->
6061
+ <xsl:apply-templates/>
6062
+ </fo:inline>
6063
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'note']" priority="2">
6064
+ <fo:footnote>
6065
+ <xsl:variable name="number">
6066
+
6067
+ <xsl:number level="any" count="*[local-name() = 'bibitem']/*[local-name() = 'note']"/>
6068
+
6069
+ </xsl:variable>
6070
+ <fo:inline xsl:use-attribute-sets="bibitem-note-fn-style">
6071
+ <fo:basic-link internal-destination="{generate-id()}" fox:alt-text="footnote {$number}">
6072
+ <xsl:value-of select="$number"/>
6073
+
6074
+ </fo:basic-link>
6075
+ </fo:inline>
6076
+ <fo:footnote-body>
6077
+ <fo:block xsl:use-attribute-sets="bibitem-note-fn-body-style">
6078
+ <fo:inline id="{generate-id()}" xsl:use-attribute-sets="bibitem-note-fn-number-style">
6079
+ <xsl:value-of select="$number"/>
6080
+
6081
+ </fo:inline>
6082
+ <xsl:apply-templates/>
6083
+ </fo:block>
6084
+ </fo:footnote-body>
6085
+ </fo:footnote>
6086
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'edition']"> <!-- for iho -->
6087
+ <xsl:text> edition </xsl:text>
6088
+ <xsl:value-of select="."/>
6089
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'uri']"> <!-- for iho -->
6090
+ <xsl:text> (</xsl:text>
6091
+ <fo:inline xsl:use-attribute-sets="link-style">
6092
+ <fo:basic-link external-destination="." fox:alt-text=".">
6093
+ <xsl:value-of select="."/>
6094
+ </fo:basic-link>
6095
+ </fo:inline>
6096
+ <xsl:text>)</xsl:text>
6097
+ </xsl:template><xsl:template match="*[local-name() = 'bibitem']/*[local-name() = 'docidentifier']"/><xsl:template match="*[local-name() = 'formattedref']">
6098
+
6099
+ <xsl:apply-templates/>
5423
6100
  </xsl:template><xsl:template match="*[local-name() = 'form']">
5424
6101
  <fo:block>
5425
6102
  <xsl:apply-templates/>
@@ -5485,27 +6162,14 @@
5485
6162
  <fo:block> </fo:block>
5486
6163
  </fo:block-container>
5487
6164
  </xsl:template><xsl:variable name="toc_level">
6165
+ <!-- https://www.metanorma.org/author/ref/document-attributes/ -->
6166
+ <xsl:variable name="htmltoclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'HTML TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- :htmltoclevels Number of table of contents levels to render in HTML/PDF output; used to override :toclevels:-->
6167
+ <xsl:variable name="toclevels" select="normalize-space(//*[local-name() = 'misc-container']/*[local-name() = 'presentation-metadata'][*[local-name() = 'name']/text() = 'TOC Heading Levels']/*[local-name() = 'value'])"/> <!-- Number of table of contents levels to render -->
5488
6168
  <xsl:choose>
5489
- <xsl:when test="1 = 2"/> <!-- to do https://github.com/metanorma/mn-native-pdf/issues/337: if there is value in xml -->
6169
+ <xsl:when test="$htmltoclevels != ''"><xsl:value-of select="number($htmltoclevels)"/></xsl:when> <!-- if there is value in xml -->
6170
+ <xsl:when test="$toclevels != ''"><xsl:value-of select="number($toclevels)"/></xsl:when> <!-- if there is value in xml -->
5490
6171
  <xsl:otherwise><!-- default value -->
5491
-
5492
-
5493
-
5494
-
5495
-
5496
-
5497
-
5498
-
5499
-
5500
-
5501
6172
  2
5502
-
5503
-
5504
-
5505
-
5506
-
5507
-
5508
-
5509
6173
  </xsl:otherwise>
5510
6174
  </xsl:choose>
5511
6175
  </xsl:variable><xsl:template match="*[local-name() = 'toc']">
@@ -5539,7 +6203,7 @@
5539
6203
  </fo:table-body>
5540
6204
  </fo:table>
5541
6205
  </fo:block>
5542
- </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']">
6206
+ </xsl:template><xsl:template match="*[local-name() = 'toc']//*[local-name() = 'li']" priority="2">
5543
6207
  <fo:table-row min-height="5mm">
5544
6208
  <xsl:apply-templates/>
5545
6209
  </fo:table-row>
@@ -5588,7 +6252,7 @@
5588
6252
  </td>
5589
6253
  </xsl:for-each>
5590
6254
  <td>333</td> <!-- page number, just for fill -->
5591
- </xsl:template><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
6255
+ </xsl:template><xsl:template match="*[local-name() = 'variant-title']"/><xsl:template match="*[local-name() = 'variant-title'][@type = 'sub']" mode="subtitle">
5592
6256
  <fo:inline padding-right="5mm"> </fo:inline>
5593
6257
  <fo:inline><xsl:apply-templates/></fo:inline>
5594
6258
  </xsl:template><xsl:template match="*[local-name() = 'blacksquare']" name="blacksquare">
@@ -5601,8 +6265,59 @@
5601
6265
  </fo:inline>
5602
6266
  </xsl:template><xsl:template match="@language">
5603
6267
  <xsl:copy-of select="."/>
5604
- </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title']" priority="4">
6268
+ </xsl:template><xsl:template match="*[local-name() = 'p'][@type = 'floating-title' or @type = 'section-title']" priority="4">
5605
6269
  <xsl:call-template name="title"/>
6270
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']">
6271
+
6272
+
6273
+
6274
+
6275
+
6276
+ <!-- text in the box -->
6277
+ <fo:block-container id="{@id}" xsl:use-attribute-sets="admonition-style">
6278
+
6279
+
6280
+
6281
+
6282
+
6283
+ <fo:block-container xsl:use-attribute-sets="admonition-container-style">
6284
+
6285
+
6286
+ <fo:block xsl:use-attribute-sets="admonition-name-style">
6287
+ <xsl:call-template name="displayAdmonitionName"/>
6288
+ </fo:block>
6289
+ <fo:block xsl:use-attribute-sets="admonition-p-style">
6290
+ <xsl:apply-templates select="node()[not(local-name() = 'name')]"/>
6291
+ </fo:block>
6292
+
6293
+ </fo:block-container>
6294
+
6295
+ </fo:block-container>
6296
+
6297
+ </xsl:template><xsl:template name="displayAdmonitionName">
6298
+
6299
+ <xsl:apply-templates select="*[local-name() = 'name']"/>
6300
+ <xsl:if test="not(*[local-name() = 'name'])">
6301
+ <xsl:apply-templates select="@type"/>
6302
+ </xsl:if>
6303
+
6304
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'name']">
6305
+ <xsl:apply-templates/>
6306
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/@type">
6307
+ <xsl:variable name="admonition_type_">
6308
+ <xsl:call-template name="getLocalizedString">
6309
+ <xsl:with-param name="key">admonition.<xsl:value-of select="."/></xsl:with-param>
6310
+ </xsl:call-template>
6311
+ </xsl:variable>
6312
+ <xsl:variable name="admonition_type" select="normalize-space(java:toUpperCase(java:java.lang.String.new($admonition_type_)))"/>
6313
+ <xsl:value-of select="$admonition_type"/>
6314
+ <xsl:if test="$admonition_type = ''">
6315
+ <xsl:value-of select="java:toUpperCase(java:java.lang.String.new(.))"/>
6316
+ </xsl:if>
6317
+ </xsl:template><xsl:template match="*[local-name() = 'admonition']/*[local-name() = 'p']">
6318
+ <!-- processing for admonition/p found in the template for 'p' -->
6319
+ <xsl:call-template name="paragraph"/>
6320
+
5606
6321
  </xsl:template><xsl:template name="convertDate">
5607
6322
  <xsl:param name="date"/>
5608
6323
  <xsl:param name="format" select="'short'"/>
@@ -5610,83 +6325,80 @@
5610
6325
  <xsl:variable name="month" select="substring($date, 6, 2)"/>
5611
6326
  <xsl:variable name="day" select="substring($date, 9, 2)"/>
5612
6327
  <xsl:variable name="monthStr">
5613
- <xsl:choose>
5614
- <xsl:when test="$month = '01'">January</xsl:when>
5615
- <xsl:when test="$month = '02'">February</xsl:when>
5616
- <xsl:when test="$month = '03'">March</xsl:when>
5617
- <xsl:when test="$month = '04'">April</xsl:when>
5618
- <xsl:when test="$month = '05'">May</xsl:when>
5619
- <xsl:when test="$month = '06'">June</xsl:when>
5620
- <xsl:when test="$month = '07'">July</xsl:when>
5621
- <xsl:when test="$month = '08'">August</xsl:when>
5622
- <xsl:when test="$month = '09'">September</xsl:when>
5623
- <xsl:when test="$month = '10'">October</xsl:when>
5624
- <xsl:when test="$month = '11'">November</xsl:when>
5625
- <xsl:when test="$month = '12'">December</xsl:when>
5626
- </xsl:choose>
6328
+ <xsl:call-template name="getMonthByNum">
6329
+ <xsl:with-param name="num" select="$month"/>
6330
+ <xsl:with-param name="lowercase" select="'true'"/>
6331
+ </xsl:call-template>
6332
+ </xsl:variable>
6333
+ <xsl:variable name="monthStr_localized">
6334
+ <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>
5627
6335
  </xsl:variable>
5628
6336
  <xsl:variable name="result">
5629
6337
  <xsl:choose>
5630
- <xsl:when test="$format = 'ddMMyyyy'">
6338
+ <xsl:when test="$format = 'ddMMyyyy'"> <!-- convert date from format 2007-04-01 to 1 April 2007 -->
5631
6339
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5632
6340
  <xsl:text> </xsl:text>
5633
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
6341
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ' , $year))"/>
5634
6342
  </xsl:when>
5635
6343
  <xsl:when test="$format = 'ddMM'">
5636
6344
  <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5637
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
6345
+ <xsl:text> </xsl:text><xsl:value-of select="$monthStr_localized"/>
5638
6346
  </xsl:when>
5639
6347
  <xsl:when test="$format = 'short' or $day = ''">
5640
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6348
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $year))"/>
5641
6349
  </xsl:when>
5642
6350
  <xsl:otherwise>
5643
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
6351
+ <xsl:value-of select="normalize-space(concat($monthStr_localized, ' ', $day, ', ' , $year))"/> <!-- January 01, 2022 -->
5644
6352
  </xsl:otherwise>
5645
6353
  </xsl:choose>
5646
6354
  </xsl:variable>
5647
6355
  <xsl:value-of select="$result"/>
5648
- </xsl:template><xsl:template name="convertDateLocalized">
5649
- <xsl:param name="date"/>
5650
- <xsl:param name="format" select="'short'"/>
5651
- <xsl:variable name="year" select="substring($date, 1, 4)"/>
5652
- <xsl:variable name="month" select="substring($date, 6, 2)"/>
5653
- <xsl:variable name="day" select="substring($date, 9, 2)"/>
5654
- <xsl:variable name="monthStr">
5655
- <xsl:choose>
5656
- <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>
5657
- <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>
5658
- <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>
5659
- <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>
5660
- <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>
5661
- <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>
5662
- <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>
5663
- <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>
5664
- <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>
5665
- <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>
5666
- <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>
5667
- <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>
5668
- </xsl:choose>
5669
- </xsl:variable>
5670
- <xsl:variable name="result">
6356
+ </xsl:template><xsl:template name="getMonthByNum">
6357
+ <xsl:param name="num"/>
6358
+ <xsl:param name="lang">en</xsl:param>
6359
+ <xsl:param name="lowercase">false</xsl:param> <!-- return 'january' instead of 'January' -->
6360
+ <xsl:variable name="monthStr_">
5671
6361
  <xsl:choose>
5672
- <xsl:when test="$format = 'ddMMyyyy'">
5673
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5674
- <xsl:text> </xsl:text>
5675
- <xsl:value-of select="normalize-space(concat($monthStr, ' ' , $year))"/>
5676
- </xsl:when>
5677
- <xsl:when test="$format = 'ddMM'">
5678
- <xsl:if test="$day != ''"><xsl:value-of select="number($day)"/></xsl:if>
5679
- <xsl:text> </xsl:text><xsl:value-of select="$monthStr"/>
5680
- </xsl:when>
5681
- <xsl:when test="$format = 'short' or $day = ''">
5682
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $year))"/>
6362
+ <xsl:when test="$lang = 'fr'">
6363
+ <xsl:choose>
6364
+ <xsl:when test="$num = '01'">Janvier</xsl:when>
6365
+ <xsl:when test="$num = '02'">Février</xsl:when>
6366
+ <xsl:when test="$num = '03'">Mars</xsl:when>
6367
+ <xsl:when test="$num = '04'">Avril</xsl:when>
6368
+ <xsl:when test="$num = '05'">Mai</xsl:when>
6369
+ <xsl:when test="$num = '06'">Juin</xsl:when>
6370
+ <xsl:when test="$num = '07'">Juillet</xsl:when>
6371
+ <xsl:when test="$num = '08'">Août</xsl:when>
6372
+ <xsl:when test="$num = '09'">Septembre</xsl:when>
6373
+ <xsl:when test="$num = '10'">Octobre</xsl:when>
6374
+ <xsl:when test="$num = '11'">Novembre</xsl:when>
6375
+ <xsl:when test="$num = '12'">Décembre</xsl:when>
6376
+ </xsl:choose>
5683
6377
  </xsl:when>
5684
6378
  <xsl:otherwise>
5685
- <xsl:value-of select="normalize-space(concat($monthStr, ' ', $day, ', ' , $year))"/>
6379
+ <xsl:choose>
6380
+ <xsl:when test="$num = '01'">January</xsl:when>
6381
+ <xsl:when test="$num = '02'">February</xsl:when>
6382
+ <xsl:when test="$num = '03'">March</xsl:when>
6383
+ <xsl:when test="$num = '04'">April</xsl:when>
6384
+ <xsl:when test="$num = '05'">May</xsl:when>
6385
+ <xsl:when test="$num = '06'">June</xsl:when>
6386
+ <xsl:when test="$num = '07'">July</xsl:when>
6387
+ <xsl:when test="$num = '08'">August</xsl:when>
6388
+ <xsl:when test="$num = '09'">September</xsl:when>
6389
+ <xsl:when test="$num = '10'">October</xsl:when>
6390
+ <xsl:when test="$num = '11'">November</xsl:when>
6391
+ <xsl:when test="$num = '12'">December</xsl:when>
6392
+ </xsl:choose>
5686
6393
  </xsl:otherwise>
5687
6394
  </xsl:choose>
5688
6395
  </xsl:variable>
5689
- <xsl:value-of select="$result"/>
6396
+ <xsl:choose>
6397
+ <xsl:when test="normalize-space($lowercase) = 'true'">
6398
+ <xsl:value-of select="java:toLowerCase(java:java.lang.String.new($monthStr_))"/>
6399
+ </xsl:when>
6400
+ <xsl:otherwise><xsl:value-of select="$monthStr_"/></xsl:otherwise>
6401
+ </xsl:choose>
5690
6402
  </xsl:template><xsl:template name="insertKeywords">
5691
6403
  <xsl:param name="sorting" select="'true'"/>
5692
6404
  <xsl:param name="charAtEnd" select="'.'"/>
@@ -5719,9 +6431,6 @@
5719
6431
  <xsl:otherwise><xsl:value-of select="$charAtEnd"/></xsl:otherwise>
5720
6432
  </xsl:choose>
5721
6433
  </xsl:template><xsl:template name="addPDFUAmeta">
5722
- <xsl:variable name="lang">
5723
- <xsl:call-template name="getLang"/>
5724
- </xsl:variable>
5725
6434
  <pdf:catalog xmlns:pdf="http://xmlgraphics.apache.org/fop/extensions/pdf">
5726
6435
  <pdf:dictionary type="normal" key="ViewerPreferences">
5727
6436
  <pdf:boolean key="DisplayDocTitle">true</pdf:boolean>
@@ -5734,14 +6443,9 @@
5734
6443
  <dc:title>
5735
6444
  <xsl:variable name="title">
5736
6445
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5737
-
5738
-
5739
-
5740
-
5741
- <xsl:value-of select="*[local-name() = 'title'][@language = $lang]"/>
5742
-
5743
-
5744
6446
 
6447
+ <xsl:value-of select="*[local-name() = 'title'][@language = $lang]"/>
6448
+
5745
6449
  </xsl:for-each>
5746
6450
  </xsl:variable>
5747
6451
  <xsl:choose>
@@ -5756,14 +6460,18 @@
5756
6460
  <dc:creator>
5757
6461
  <xsl:for-each select="(//*[contains(local-name(), '-standard')])[1]/*[local-name() = 'bibdata']">
5758
6462
 
5759
-
5760
-
6463
+ <xsl:for-each select="*[local-name() = 'contributor'][*[local-name() = 'role']/@type='author']">
6464
+ <xsl:value-of select="*[local-name() = 'organization']/*[local-name() = 'name']"/>
6465
+ <xsl:if test="position() != last()">; </xsl:if>
6466
+ </xsl:for-each>
6467
+
5761
6468
  </xsl:for-each>
5762
6469
  </dc:creator>
5763
6470
  <dc:description>
5764
6471
  <xsl:variable name="abstract">
5765
6472
 
5766
-
6473
+ <xsl:copy-of select="//*[contains(local-name(), '-standard')]/*[local-name() = 'preface']/*[local-name() = 'abstract']//text()"/>
6474
+
5767
6475
  </xsl:variable>
5768
6476
  <xsl:value-of select="normalize-space($abstract)"/>
5769
6477
  </dc:description>
@@ -5783,7 +6491,6 @@
5783
6491
  <xsl:value-of select="../@id"/>
5784
6492
  </xsl:when>
5785
6493
  <xsl:otherwise>
5786
- <!-- <xsl:value-of select="concat(local-name(..), '_', text())"/> -->
5787
6494
  <xsl:value-of select="concat(generate-id(..), '_', text())"/>
5788
6495
  </xsl:otherwise>
5789
6496
  </xsl:choose>
@@ -5809,9 +6516,6 @@
5809
6516
  <xsl:when test="ancestor::*[local-name() = 'preface']">
5810
6517
  <xsl:value-of select="$level_total - 2"/>
5811
6518
  </xsl:when>
5812
- <!-- <xsl:when test="parent::*[local-name() = 'sections']">
5813
- <xsl:value-of select="$level_total - 1"/>
5814
- </xsl:when> -->
5815
6519
  <xsl:when test="ancestor::*[local-name() = 'sections']">
5816
6520
  <xsl:value-of select="$level_total - 1"/>
5817
6521
  </xsl:when>
@@ -5953,9 +6657,17 @@
5953
6657
  </xsl:template><xsl:template name="getLocalizedString">
5954
6658
  <xsl:param name="key"/>
5955
6659
  <xsl:param name="formatted">false</xsl:param>
6660
+ <xsl:param name="lang"/>
6661
+ <xsl:param name="returnEmptyIfNotFound">false</xsl:param>
5956
6662
 
5957
6663
  <xsl:variable name="curr_lang">
5958
- <xsl:call-template name="getLang"/>
6664
+ <xsl:choose>
6665
+ <xsl:when test="$lang != ''"><xsl:value-of select="$lang"/></xsl:when>
6666
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
6667
+ <xsl:otherwise>
6668
+ <xsl:call-template name="getLang"/>
6669
+ </xsl:otherwise>
6670
+ </xsl:choose>
5959
6671
  </xsl:variable>
5960
6672
 
5961
6673
  <xsl:variable name="data_value">
@@ -5986,6 +6698,7 @@
5986
6698
  </xsl:otherwise>
5987
6699
  </xsl:choose>
5988
6700
  </xsl:when>
6701
+ <xsl:when test="$returnEmptyIfNotFound = 'true'"/>
5989
6702
  <xsl:otherwise>
5990
6703
  <xsl:variable name="key_">
5991
6704
  <xsl:call-template name="capitalize">
@@ -5995,7 +6708,6 @@
5995
6708
  <xsl:value-of select="$key_"/>
5996
6709
  </xsl:otherwise>
5997
6710
  </xsl:choose>
5998
-
5999
6711
  </xsl:template><xsl:template name="setTrackChangesStyles">
6000
6712
  <xsl:param name="isAdded"/>
6001
6713
  <xsl:param name="isDeleted"/>
@@ -6018,7 +6730,6 @@
6018
6730
  <xsl:if test="local-name() = 'table'">
6019
6731
  <xsl:attribute name="background-color">rgb(255, 185, 185)</xsl:attribute>
6020
6732
  </xsl:if>
6021
- <!-- <xsl:attribute name="color"><xsl:value-of select="$color-deleted-text"/></xsl:attribute> -->
6022
6733
  <xsl:attribute name="padding">2mm</xsl:attribute>
6023
6734
  </xsl:if>
6024
6735
  </xsl:otherwise>
@@ -6038,15 +6749,18 @@
6038
6749
  </xsl:choose>
6039
6750
  </xsl:template><xsl:template name="setTextAlignment">
6040
6751
  <xsl:param name="default">left</xsl:param>
6752
+ <xsl:variable name="align" select="normalize-space(@align)"/>
6041
6753
  <xsl:attribute name="text-align">
6042
6754
  <xsl:choose>
6043
- <xsl:when test="@align and not(@align = 'indent')"><xsl:value-of select="@align"/></xsl:when>
6755
+ <xsl:when test="$lang = 'ar' and $align = 'left'">start</xsl:when>
6756
+ <xsl:when test="$lang = 'ar' and $align = 'right'">end</xsl:when>
6757
+ <xsl:when test="$align != '' and not($align = 'indent')"><xsl:value-of select="$align"/></xsl:when>
6044
6758
  <xsl:when test="ancestor::*[local-name() = 'td']/@align"><xsl:value-of select="ancestor::*[local-name() = 'td']/@align"/></xsl:when>
6045
6759
  <xsl:when test="ancestor::*[local-name() = 'th']/@align"><xsl:value-of select="ancestor::*[local-name() = 'th']/@align"/></xsl:when>
6046
6760
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
6047
6761
  </xsl:choose>
6048
6762
  </xsl:attribute>
6049
- <xsl:if test="@align = 'indent'">
6763
+ <xsl:if test="$align = 'indent'">
6050
6764
  <xsl:attribute name="margin-left">7mm</xsl:attribute>
6051
6765
  </xsl:if>
6052
6766
  </xsl:template><xsl:template name="number-to-words">
@@ -6145,6 +6859,25 @@
6145
6859
  </xsl:otherwise>
6146
6860
  </xsl:choose>
6147
6861
  </xsl:if>
6862
+ </xsl:template><xsl:template name="number-to-ordinal">
6863
+ <xsl:param name="number"/>
6864
+ <xsl:param name="curr_lang"/>
6865
+ <xsl:choose>
6866
+ <xsl:when test="$curr_lang = 'fr'">
6867
+ <xsl:choose>
6868
+ <xsl:when test="$number = '1'">re</xsl:when>
6869
+ <xsl:otherwise>e</xsl:otherwise>
6870
+ </xsl:choose>
6871
+ </xsl:when>
6872
+ <xsl:otherwise>
6873
+ <xsl:choose>
6874
+ <xsl:when test="$number = 1">st</xsl:when>
6875
+ <xsl:when test="$number = 2">nd</xsl:when>
6876
+ <xsl:when test="$number = 3">rd</xsl:when>
6877
+ <xsl:otherwise>th</xsl:otherwise>
6878
+ </xsl:choose>
6879
+ </xsl:otherwise>
6880
+ </xsl:choose>
6148
6881
  </xsl:template><xsl:template name="setAltText">
6149
6882
  <xsl:param name="value"/>
6150
6883
  <xsl:attribute name="fox:alt-text">