metanorma-ogc 1.3.6 → 1.3.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -2677,6 +2677,7 @@
2677
2677
 
2678
2678
 
2679
2679
 
2680
+
2680
2681
  <!-- fn will be processed inside 'note' processing -->
2681
2682
 
2682
2683
 
@@ -2687,6 +2688,10 @@
2687
2688
 
2688
2689
 
2689
2690
 
2691
+
2692
+ <!-- for BSI (not PAS) display Notes before footnotes -->
2693
+
2694
+
2690
2695
  <!-- except gb -->
2691
2696
 
2692
2697
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
@@ -2712,6 +2717,10 @@
2712
2717
  <!-- fn processing -->
2713
2718
  <xsl:call-template name="fn_display"/>
2714
2719
 
2720
+
2721
+ <!-- for PAS display Notes after footnotes -->
2722
+
2723
+
2715
2724
  </fo:table-cell>
2716
2725
  </fo:table-row>
2717
2726
  </fo:table-body>
@@ -2769,6 +2778,7 @@
2769
2778
  <xsl:if test="$parent-name = 'tfoot'">
2770
2779
 
2771
2780
 
2781
+
2772
2782
  </xsl:if>
2773
2783
 
2774
2784
 
@@ -2913,8 +2923,13 @@
2913
2923
 
2914
2924
 
2915
2925
 
2926
+
2927
+ <!-- Table's note name (NOTE, for example) -->
2928
+
2916
2929
  <fo:inline padding-right="2mm">
2917
2930
 
2931
+
2932
+
2918
2933
 
2919
2934
 
2920
2935
 
@@ -2922,6 +2937,8 @@
2922
2937
 
2923
2938
  </fo:inline>
2924
2939
 
2940
+
2941
+
2925
2942
  <xsl:apply-templates mode="process"/>
2926
2943
  </fo:block>
2927
2944
 
@@ -2947,6 +2964,8 @@
2947
2964
  <xsl:variable name="reference" select="@reference"/>
2948
2965
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2949
2966
  <fo:block margin-bottom="12pt">
2967
+
2968
+
2950
2969
 
2951
2970
 
2952
2971
 
@@ -2966,6 +2985,7 @@
2966
2985
  <xsl:value-of select="@reference"/>
2967
2986
 
2968
2987
 
2988
+
2969
2989
  </fo:inline>
2970
2990
  <fo:inline>
2971
2991
 
@@ -3122,6 +3142,7 @@
3122
3142
 
3123
3143
  <xsl:value-of select="@reference"/>
3124
3144
 
3145
+
3125
3146
  </fo:basic-link>
3126
3147
  </fo:inline>
3127
3148
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -4134,6 +4155,7 @@
4134
4155
 
4135
4156
 
4136
4157
 
4158
+
4137
4159
  <fo:block-container margin-left="0mm">
4138
4160
 
4139
4161
 
@@ -5390,9 +5412,10 @@
5390
5412
 
5391
5413
 
5392
5414
  </xsl:if>
5393
-
5415
+
5416
+
5417
+
5394
5418
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5395
-
5396
5419
  <xsl:if test="normalize-space(@citeas) = ''">
5397
5420
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
5398
5421
  </xsl:if>
@@ -5401,6 +5424,7 @@
5401
5424
 
5402
5425
 
5403
5426
 
5427
+
5404
5428
  </xsl:if>
5405
5429
 
5406
5430
  <xsl:apply-templates/>
@@ -6461,4 +6485,100 @@
6461
6485
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
6462
6486
  </xsl:choose>
6463
6487
  </xsl:attribute>
6488
+ </xsl:template><xsl:template name="number-to-words">
6489
+ <xsl:param name="number"/>
6490
+ <xsl:param name="first"/>
6491
+ <xsl:if test="$number != ''">
6492
+ <xsl:variable name="words">
6493
+ <words>
6494
+ <word cardinal="1">One-</word>
6495
+ <word ordinal="1">First </word>
6496
+ <word cardinal="2">Two-</word>
6497
+ <word ordinal="2">Second </word>
6498
+ <word cardinal="3">Three-</word>
6499
+ <word ordinal="3">Third </word>
6500
+ <word cardinal="4">Four-</word>
6501
+ <word ordinal="4">Fourth </word>
6502
+ <word cardinal="5">Five-</word>
6503
+ <word ordinal="5">Fifth </word>
6504
+ <word cardinal="6">Six-</word>
6505
+ <word ordinal="6">Sixth </word>
6506
+ <word cardinal="7">Seven-</word>
6507
+ <word ordinal="7">Seventh </word>
6508
+ <word cardinal="8">Eight-</word>
6509
+ <word ordinal="8">Eighth </word>
6510
+ <word cardinal="9">Nine-</word>
6511
+ <word ordinal="9">Ninth </word>
6512
+ <word ordinal="10">Tenth </word>
6513
+ <word ordinal="11">Eleventh </word>
6514
+ <word ordinal="12">Twelfth </word>
6515
+ <word ordinal="13">Thirteenth </word>
6516
+ <word ordinal="14">Fourteenth </word>
6517
+ <word ordinal="15">Fifteenth </word>
6518
+ <word ordinal="16">Sixteenth </word>
6519
+ <word ordinal="17">Seventeenth </word>
6520
+ <word ordinal="18">Eighteenth </word>
6521
+ <word ordinal="19">Nineteenth </word>
6522
+ <word cardinal="20">Twenty-</word>
6523
+ <word ordinal="20">Twentieth </word>
6524
+ <word cardinal="30">Thirty-</word>
6525
+ <word ordinal="30">Thirtieth </word>
6526
+ <word cardinal="40">Forty-</word>
6527
+ <word ordinal="40">Fortieth </word>
6528
+ <word cardinal="50">Fifty-</word>
6529
+ <word ordinal="50">Fiftieth </word>
6530
+ <word cardinal="60">Sixty-</word>
6531
+ <word ordinal="60">Sixtieth </word>
6532
+ <word cardinal="70">Seventy-</word>
6533
+ <word ordinal="70">Seventieth </word>
6534
+ <word cardinal="80">Eighty-</word>
6535
+ <word ordinal="80">Eightieth </word>
6536
+ <word cardinal="90">Ninety-</word>
6537
+ <word ordinal="90">Ninetieth </word>
6538
+ <word cardinal="100">Hundred-</word>
6539
+ <word ordinal="100">Hundredth </word>
6540
+ </words>
6541
+ </xsl:variable>
6542
+
6543
+ <xsl:variable name="ordinal" select="xalan:nodeset($words)//word[@ordinal = $number]/text()"/>
6544
+
6545
+ <xsl:variable name="value">
6546
+ <xsl:choose>
6547
+ <xsl:when test="$ordinal != ''">
6548
+ <xsl:value-of select="$ordinal"/>
6549
+ </xsl:when>
6550
+ <xsl:otherwise>
6551
+ <xsl:choose>
6552
+ <xsl:when test="$number &lt; 100">
6553
+ <xsl:variable name="decade" select="concat(substring($number,1,1), '0')"/>
6554
+ <xsl:variable name="digit" select="substring($number,2)"/>
6555
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $decade]/text()"/>
6556
+ <xsl:value-of select="xalan:nodeset($words)//word[@ordinal = $digit]/text()"/>
6557
+ </xsl:when>
6558
+ <xsl:otherwise>
6559
+ <!-- more 100 -->
6560
+ <xsl:variable name="hundred" select="substring($number,1,1)"/>
6561
+ <xsl:variable name="digits" select="number(substring($number,2))"/>
6562
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $hundred]/text()"/>
6563
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = '100']/text()"/>
6564
+ <xsl:call-template name="number-to-words">
6565
+ <xsl:with-param name="number" select="$digits"/>
6566
+ </xsl:call-template>
6567
+ </xsl:otherwise>
6568
+ </xsl:choose>
6569
+ </xsl:otherwise>
6570
+ </xsl:choose>
6571
+ </xsl:variable>
6572
+ <xsl:choose>
6573
+ <xsl:when test="$first = 'true'">
6574
+ <xsl:variable name="value_lc" select="java:toLowerCase(java:java.lang.String.new($value))"/>
6575
+ <xsl:call-template name="capitalize">
6576
+ <xsl:with-param name="str" select="$value_lc"/>
6577
+ </xsl:call-template>
6578
+ </xsl:when>
6579
+ <xsl:otherwise>
6580
+ <xsl:value-of select="$value"/>
6581
+ </xsl:otherwise>
6582
+ </xsl:choose>
6583
+ </xsl:if>
6464
6584
  </xsl:template></xsl:stylesheet>
@@ -2677,6 +2677,7 @@
2677
2677
 
2678
2678
 
2679
2679
 
2680
+
2680
2681
  <!-- fn will be processed inside 'note' processing -->
2681
2682
 
2682
2683
 
@@ -2687,6 +2688,10 @@
2687
2688
 
2688
2689
 
2689
2690
 
2691
+
2692
+ <!-- for BSI (not PAS) display Notes before footnotes -->
2693
+
2694
+
2690
2695
  <!-- except gb -->
2691
2696
 
2692
2697
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
@@ -2712,6 +2717,10 @@
2712
2717
  <!-- fn processing -->
2713
2718
  <xsl:call-template name="fn_display"/>
2714
2719
 
2720
+
2721
+ <!-- for PAS display Notes after footnotes -->
2722
+
2723
+
2715
2724
  </fo:table-cell>
2716
2725
  </fo:table-row>
2717
2726
  </fo:table-body>
@@ -2769,6 +2778,7 @@
2769
2778
  <xsl:if test="$parent-name = 'tfoot'">
2770
2779
 
2771
2780
 
2781
+
2772
2782
  </xsl:if>
2773
2783
 
2774
2784
 
@@ -2913,8 +2923,13 @@
2913
2923
 
2914
2924
 
2915
2925
 
2926
+
2927
+ <!-- Table's note name (NOTE, for example) -->
2928
+
2916
2929
  <fo:inline padding-right="2mm">
2917
2930
 
2931
+
2932
+
2918
2933
 
2919
2934
 
2920
2935
 
@@ -2922,6 +2937,8 @@
2922
2937
 
2923
2938
  </fo:inline>
2924
2939
 
2940
+
2941
+
2925
2942
  <xsl:apply-templates mode="process"/>
2926
2943
  </fo:block>
2927
2944
 
@@ -2947,6 +2964,8 @@
2947
2964
  <xsl:variable name="reference" select="@reference"/>
2948
2965
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2949
2966
  <fo:block margin-bottom="12pt">
2967
+
2968
+
2950
2969
 
2951
2970
 
2952
2971
 
@@ -2966,6 +2985,7 @@
2966
2985
  <xsl:value-of select="@reference"/>
2967
2986
 
2968
2987
 
2988
+
2969
2989
  </fo:inline>
2970
2990
  <fo:inline>
2971
2991
 
@@ -3122,6 +3142,7 @@
3122
3142
 
3123
3143
  <xsl:value-of select="@reference"/>
3124
3144
 
3145
+
3125
3146
  </fo:basic-link>
3126
3147
  </fo:inline>
3127
3148
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -4134,6 +4155,7 @@
4134
4155
 
4135
4156
 
4136
4157
 
4158
+
4137
4159
  <fo:block-container margin-left="0mm">
4138
4160
 
4139
4161
 
@@ -5390,9 +5412,10 @@
5390
5412
 
5391
5413
 
5392
5414
  </xsl:if>
5393
-
5415
+
5416
+
5417
+
5394
5418
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5395
-
5396
5419
  <xsl:if test="normalize-space(@citeas) = ''">
5397
5420
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
5398
5421
  </xsl:if>
@@ -5401,6 +5424,7 @@
5401
5424
 
5402
5425
 
5403
5426
 
5427
+
5404
5428
  </xsl:if>
5405
5429
 
5406
5430
  <xsl:apply-templates/>
@@ -6461,4 +6485,100 @@
6461
6485
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
6462
6486
  </xsl:choose>
6463
6487
  </xsl:attribute>
6488
+ </xsl:template><xsl:template name="number-to-words">
6489
+ <xsl:param name="number"/>
6490
+ <xsl:param name="first"/>
6491
+ <xsl:if test="$number != ''">
6492
+ <xsl:variable name="words">
6493
+ <words>
6494
+ <word cardinal="1">One-</word>
6495
+ <word ordinal="1">First </word>
6496
+ <word cardinal="2">Two-</word>
6497
+ <word ordinal="2">Second </word>
6498
+ <word cardinal="3">Three-</word>
6499
+ <word ordinal="3">Third </word>
6500
+ <word cardinal="4">Four-</word>
6501
+ <word ordinal="4">Fourth </word>
6502
+ <word cardinal="5">Five-</word>
6503
+ <word ordinal="5">Fifth </word>
6504
+ <word cardinal="6">Six-</word>
6505
+ <word ordinal="6">Sixth </word>
6506
+ <word cardinal="7">Seven-</word>
6507
+ <word ordinal="7">Seventh </word>
6508
+ <word cardinal="8">Eight-</word>
6509
+ <word ordinal="8">Eighth </word>
6510
+ <word cardinal="9">Nine-</word>
6511
+ <word ordinal="9">Ninth </word>
6512
+ <word ordinal="10">Tenth </word>
6513
+ <word ordinal="11">Eleventh </word>
6514
+ <word ordinal="12">Twelfth </word>
6515
+ <word ordinal="13">Thirteenth </word>
6516
+ <word ordinal="14">Fourteenth </word>
6517
+ <word ordinal="15">Fifteenth </word>
6518
+ <word ordinal="16">Sixteenth </word>
6519
+ <word ordinal="17">Seventeenth </word>
6520
+ <word ordinal="18">Eighteenth </word>
6521
+ <word ordinal="19">Nineteenth </word>
6522
+ <word cardinal="20">Twenty-</word>
6523
+ <word ordinal="20">Twentieth </word>
6524
+ <word cardinal="30">Thirty-</word>
6525
+ <word ordinal="30">Thirtieth </word>
6526
+ <word cardinal="40">Forty-</word>
6527
+ <word ordinal="40">Fortieth </word>
6528
+ <word cardinal="50">Fifty-</word>
6529
+ <word ordinal="50">Fiftieth </word>
6530
+ <word cardinal="60">Sixty-</word>
6531
+ <word ordinal="60">Sixtieth </word>
6532
+ <word cardinal="70">Seventy-</word>
6533
+ <word ordinal="70">Seventieth </word>
6534
+ <word cardinal="80">Eighty-</word>
6535
+ <word ordinal="80">Eightieth </word>
6536
+ <word cardinal="90">Ninety-</word>
6537
+ <word ordinal="90">Ninetieth </word>
6538
+ <word cardinal="100">Hundred-</word>
6539
+ <word ordinal="100">Hundredth </word>
6540
+ </words>
6541
+ </xsl:variable>
6542
+
6543
+ <xsl:variable name="ordinal" select="xalan:nodeset($words)//word[@ordinal = $number]/text()"/>
6544
+
6545
+ <xsl:variable name="value">
6546
+ <xsl:choose>
6547
+ <xsl:when test="$ordinal != ''">
6548
+ <xsl:value-of select="$ordinal"/>
6549
+ </xsl:when>
6550
+ <xsl:otherwise>
6551
+ <xsl:choose>
6552
+ <xsl:when test="$number &lt; 100">
6553
+ <xsl:variable name="decade" select="concat(substring($number,1,1), '0')"/>
6554
+ <xsl:variable name="digit" select="substring($number,2)"/>
6555
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $decade]/text()"/>
6556
+ <xsl:value-of select="xalan:nodeset($words)//word[@ordinal = $digit]/text()"/>
6557
+ </xsl:when>
6558
+ <xsl:otherwise>
6559
+ <!-- more 100 -->
6560
+ <xsl:variable name="hundred" select="substring($number,1,1)"/>
6561
+ <xsl:variable name="digits" select="number(substring($number,2))"/>
6562
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $hundred]/text()"/>
6563
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = '100']/text()"/>
6564
+ <xsl:call-template name="number-to-words">
6565
+ <xsl:with-param name="number" select="$digits"/>
6566
+ </xsl:call-template>
6567
+ </xsl:otherwise>
6568
+ </xsl:choose>
6569
+ </xsl:otherwise>
6570
+ </xsl:choose>
6571
+ </xsl:variable>
6572
+ <xsl:choose>
6573
+ <xsl:when test="$first = 'true'">
6574
+ <xsl:variable name="value_lc" select="java:toLowerCase(java:java.lang.String.new($value))"/>
6575
+ <xsl:call-template name="capitalize">
6576
+ <xsl:with-param name="str" select="$value_lc"/>
6577
+ </xsl:call-template>
6578
+ </xsl:when>
6579
+ <xsl:otherwise>
6580
+ <xsl:value-of select="$value"/>
6581
+ </xsl:otherwise>
6582
+ </xsl:choose>
6583
+ </xsl:if>
6464
6584
  </xsl:template></xsl:stylesheet>
@@ -2677,6 +2677,7 @@
2677
2677
 
2678
2678
 
2679
2679
 
2680
+
2680
2681
  <!-- fn will be processed inside 'note' processing -->
2681
2682
 
2682
2683
 
@@ -2687,6 +2688,10 @@
2687
2688
 
2688
2689
 
2689
2690
 
2691
+
2692
+ <!-- for BSI (not PAS) display Notes before footnotes -->
2693
+
2694
+
2690
2695
  <!-- except gb -->
2691
2696
 
2692
2697
  <xsl:apply-templates select="../*[local-name()='note']" mode="process"/>
@@ -2712,6 +2717,10 @@
2712
2717
  <!-- fn processing -->
2713
2718
  <xsl:call-template name="fn_display"/>
2714
2719
 
2720
+
2721
+ <!-- for PAS display Notes after footnotes -->
2722
+
2723
+
2715
2724
  </fo:table-cell>
2716
2725
  </fo:table-row>
2717
2726
  </fo:table-body>
@@ -2769,6 +2778,7 @@
2769
2778
  <xsl:if test="$parent-name = 'tfoot'">
2770
2779
 
2771
2780
 
2781
+
2772
2782
  </xsl:if>
2773
2783
 
2774
2784
 
@@ -2913,8 +2923,13 @@
2913
2923
 
2914
2924
 
2915
2925
 
2926
+
2927
+ <!-- Table's note name (NOTE, for example) -->
2928
+
2916
2929
  <fo:inline padding-right="2mm">
2917
2930
 
2931
+
2932
+
2918
2933
 
2919
2934
 
2920
2935
 
@@ -2922,6 +2937,8 @@
2922
2937
 
2923
2938
  </fo:inline>
2924
2939
 
2940
+
2941
+
2925
2942
  <xsl:apply-templates mode="process"/>
2926
2943
  </fo:block>
2927
2944
 
@@ -2947,6 +2964,8 @@
2947
2964
  <xsl:variable name="reference" select="@reference"/>
2948
2965
  <xsl:if test="not(preceding-sibling::*[@reference = $reference])"> <!-- only unique reference puts in note-->
2949
2966
  <fo:block margin-bottom="12pt">
2967
+
2968
+
2950
2969
 
2951
2970
 
2952
2971
 
@@ -2966,6 +2985,7 @@
2966
2985
  <xsl:value-of select="@reference"/>
2967
2986
 
2968
2987
 
2988
+
2969
2989
  </fo:inline>
2970
2990
  <fo:inline>
2971
2991
 
@@ -3122,6 +3142,7 @@
3122
3142
 
3123
3143
  <xsl:value-of select="@reference"/>
3124
3144
 
3145
+
3125
3146
  </fo:basic-link>
3126
3147
  </fo:inline>
3127
3148
  </xsl:template><xsl:template match="*[local-name()='fn']/*[local-name()='p']">
@@ -4134,6 +4155,7 @@
4134
4155
 
4135
4156
 
4136
4157
 
4158
+
4137
4159
  <fo:block-container margin-left="0mm">
4138
4160
 
4139
4161
 
@@ -5390,9 +5412,10 @@
5390
5412
 
5391
5413
 
5392
5414
  </xsl:if>
5393
-
5415
+
5416
+
5417
+
5394
5418
  <fo:basic-link internal-destination="{@bibitemid}" fox:alt-text="{@citeas}">
5395
-
5396
5419
  <xsl:if test="normalize-space(@citeas) = ''">
5397
5420
  <xsl:attribute name="fox:alt-text"><xsl:value-of select="."/></xsl:attribute>
5398
5421
  </xsl:if>
@@ -5401,6 +5424,7 @@
5401
5424
 
5402
5425
 
5403
5426
 
5427
+
5404
5428
  </xsl:if>
5405
5429
 
5406
5430
  <xsl:apply-templates/>
@@ -6461,4 +6485,100 @@
6461
6485
  <xsl:otherwise><xsl:value-of select="$default"/></xsl:otherwise>
6462
6486
  </xsl:choose>
6463
6487
  </xsl:attribute>
6488
+ </xsl:template><xsl:template name="number-to-words">
6489
+ <xsl:param name="number"/>
6490
+ <xsl:param name="first"/>
6491
+ <xsl:if test="$number != ''">
6492
+ <xsl:variable name="words">
6493
+ <words>
6494
+ <word cardinal="1">One-</word>
6495
+ <word ordinal="1">First </word>
6496
+ <word cardinal="2">Two-</word>
6497
+ <word ordinal="2">Second </word>
6498
+ <word cardinal="3">Three-</word>
6499
+ <word ordinal="3">Third </word>
6500
+ <word cardinal="4">Four-</word>
6501
+ <word ordinal="4">Fourth </word>
6502
+ <word cardinal="5">Five-</word>
6503
+ <word ordinal="5">Fifth </word>
6504
+ <word cardinal="6">Six-</word>
6505
+ <word ordinal="6">Sixth </word>
6506
+ <word cardinal="7">Seven-</word>
6507
+ <word ordinal="7">Seventh </word>
6508
+ <word cardinal="8">Eight-</word>
6509
+ <word ordinal="8">Eighth </word>
6510
+ <word cardinal="9">Nine-</word>
6511
+ <word ordinal="9">Ninth </word>
6512
+ <word ordinal="10">Tenth </word>
6513
+ <word ordinal="11">Eleventh </word>
6514
+ <word ordinal="12">Twelfth </word>
6515
+ <word ordinal="13">Thirteenth </word>
6516
+ <word ordinal="14">Fourteenth </word>
6517
+ <word ordinal="15">Fifteenth </word>
6518
+ <word ordinal="16">Sixteenth </word>
6519
+ <word ordinal="17">Seventeenth </word>
6520
+ <word ordinal="18">Eighteenth </word>
6521
+ <word ordinal="19">Nineteenth </word>
6522
+ <word cardinal="20">Twenty-</word>
6523
+ <word ordinal="20">Twentieth </word>
6524
+ <word cardinal="30">Thirty-</word>
6525
+ <word ordinal="30">Thirtieth </word>
6526
+ <word cardinal="40">Forty-</word>
6527
+ <word ordinal="40">Fortieth </word>
6528
+ <word cardinal="50">Fifty-</word>
6529
+ <word ordinal="50">Fiftieth </word>
6530
+ <word cardinal="60">Sixty-</word>
6531
+ <word ordinal="60">Sixtieth </word>
6532
+ <word cardinal="70">Seventy-</word>
6533
+ <word ordinal="70">Seventieth </word>
6534
+ <word cardinal="80">Eighty-</word>
6535
+ <word ordinal="80">Eightieth </word>
6536
+ <word cardinal="90">Ninety-</word>
6537
+ <word ordinal="90">Ninetieth </word>
6538
+ <word cardinal="100">Hundred-</word>
6539
+ <word ordinal="100">Hundredth </word>
6540
+ </words>
6541
+ </xsl:variable>
6542
+
6543
+ <xsl:variable name="ordinal" select="xalan:nodeset($words)//word[@ordinal = $number]/text()"/>
6544
+
6545
+ <xsl:variable name="value">
6546
+ <xsl:choose>
6547
+ <xsl:when test="$ordinal != ''">
6548
+ <xsl:value-of select="$ordinal"/>
6549
+ </xsl:when>
6550
+ <xsl:otherwise>
6551
+ <xsl:choose>
6552
+ <xsl:when test="$number &lt; 100">
6553
+ <xsl:variable name="decade" select="concat(substring($number,1,1), '0')"/>
6554
+ <xsl:variable name="digit" select="substring($number,2)"/>
6555
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $decade]/text()"/>
6556
+ <xsl:value-of select="xalan:nodeset($words)//word[@ordinal = $digit]/text()"/>
6557
+ </xsl:when>
6558
+ <xsl:otherwise>
6559
+ <!-- more 100 -->
6560
+ <xsl:variable name="hundred" select="substring($number,1,1)"/>
6561
+ <xsl:variable name="digits" select="number(substring($number,2))"/>
6562
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = $hundred]/text()"/>
6563
+ <xsl:value-of select="xalan:nodeset($words)//word[@cardinal = '100']/text()"/>
6564
+ <xsl:call-template name="number-to-words">
6565
+ <xsl:with-param name="number" select="$digits"/>
6566
+ </xsl:call-template>
6567
+ </xsl:otherwise>
6568
+ </xsl:choose>
6569
+ </xsl:otherwise>
6570
+ </xsl:choose>
6571
+ </xsl:variable>
6572
+ <xsl:choose>
6573
+ <xsl:when test="$first = 'true'">
6574
+ <xsl:variable name="value_lc" select="java:toLowerCase(java:java.lang.String.new($value))"/>
6575
+ <xsl:call-template name="capitalize">
6576
+ <xsl:with-param name="str" select="$value_lc"/>
6577
+ </xsl:call-template>
6578
+ </xsl:when>
6579
+ <xsl:otherwise>
6580
+ <xsl:value-of select="$value"/>
6581
+ </xsl:otherwise>
6582
+ </xsl:choose>
6583
+ </xsl:if>
6464
6584
  </xsl:template></xsl:stylesheet>