1<xsl:stylesheet version="1.0"
2	      xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
4<xsl:output
5 method="xml"
6 indent="yes"
7 encoding="iso-8859-1"
8/>
9
10<xsl:decimal-format
11 name = "special"
12 decimal-separator = "*"
13/>
14
15<xsl:template match="/format-number">
16  <format-number>
17    <xsl:apply-templates/>
18  </format-number>
19</xsl:template>
20
21<xsl:template match="/format-number/fixes">
22  <fixes>
23    one <xsl:value-of select="format-number(pi, 'prefix#,#,###.##suffix')"/>
24    two <xsl:value-of select="format-number(negpi, '_#,#,###.##_')"/>
25    three <xsl:value-of select="format-number(negpi, '_#,#,000.000##_')"/>
26    four <xsl:value-of select="format-number(negpi, '_#.#_;_(#.#)_')"/>
27    five <xsl:value-of select="format-number(pi, 'prefix#,#,###*##suffix','special')"/>
28    <xsl:text>&#10;  </xsl:text>
29  </fixes>
30</xsl:template>
31
32<xsl:template match="/format-number/point-test">
33  <point-test>
34    <xsl:for-each select="number">
35    format-number(<xsl:value-of select="."/>,'#'  )<xsl:text> = </xsl:text>
36    <xsl:value-of select="format-number(.,'#')"/>
37    </xsl:for-each>
38    <xsl:text>&#10;  </xsl:text>
39  </point-test><xsl:text>&#10;  </xsl:text>
40
41  <point-test>
42    <xsl:for-each select="number">
43    format-number(<xsl:value-of select="."/>,'0'  )<xsl:text> = </xsl:text>
44    <xsl:value-of select="format-number(.,'0')"/>
45    </xsl:for-each>
46    <xsl:text>&#10;  </xsl:text>
47  </point-test><xsl:text>&#10;  </xsl:text>
48
49  <point-test>
50    <xsl:for-each select="number">
51    format-number(<xsl:value-of select="."/>, '.' )<xsl:text> = </xsl:text>
52    <xsl:value-of select="format-number(.,'.')"/>
53    </xsl:for-each>
54    <xsl:text>&#10;  </xsl:text>
55  </point-test><xsl:text>&#10;  </xsl:text>
56
57  <point-test>
58    <xsl:for-each select="number">
59    format-number(<xsl:value-of select="."/>,'#.' )<xsl:text> = </xsl:text>
60    <xsl:value-of select="format-number(.,'#.')"/>
61    </xsl:for-each>
62    <xsl:text>&#10;  </xsl:text>
63  </point-test><xsl:text>&#10;  </xsl:text>
64
65  <point-test>
66    <xsl:for-each select="number">
67    format-number(<xsl:value-of select="."/>,'0.' )<xsl:text> = </xsl:text>
68    <xsl:value-of select="format-number(.,'0.')"/>
69    </xsl:for-each>
70    <xsl:text>&#10;  </xsl:text>
71  </point-test><xsl:text>&#10;  </xsl:text>
72
73  <point-test>
74    <xsl:for-each select="number">
75    format-number(<xsl:value-of select="."/>, '.#')<xsl:text> = </xsl:text>
76    <xsl:value-of select="format-number(.,'.#')"/>
77    </xsl:for-each>
78    <xsl:text>&#10;  </xsl:text>
79  </point-test><xsl:text>&#10;  </xsl:text>
80
81  <point-test>
82    <xsl:for-each select="number">
83    format-number(<xsl:value-of select="."/>, '.##')<xsl:text> = </xsl:text>
84    <xsl:value-of select="format-number(.,'.##')"/>
85    </xsl:for-each>
86    <xsl:text>&#10;  </xsl:text>
87  </point-test><xsl:text>&#10;  </xsl:text>
88
89  <point-test>
90    <xsl:for-each select="number">
91    format-number(<xsl:value-of select="."/>, '.0')<xsl:text> = </xsl:text>
92    <xsl:value-of select="format-number(.,'.0')"/>
93    </xsl:for-each>
94    <xsl:text>&#10;  </xsl:text>
95  </point-test><xsl:text>&#10;  </xsl:text>
96
97  <point-test>
98    <xsl:for-each select="number">
99    format-number(<xsl:value-of select="."/>,'#.#')<xsl:text> = </xsl:text>
100    <xsl:value-of select="format-number(.,'#.#')"/>
101    </xsl:for-each>
102    <xsl:text>&#10;  </xsl:text>
103  </point-test><xsl:text>&#10;  </xsl:text>
104
105  <point-test>
106    <xsl:for-each select="number">
107    format-number(<xsl:value-of select="."/>,'0.0')<xsl:text> = </xsl:text>
108    <xsl:value-of select="format-number(.,'0.0')"/>
109    </xsl:for-each>
110    <xsl:text>&#10;  </xsl:text>
111  </point-test><xsl:text>&#10;  </xsl:text>
112
113  <point-test>
114    <xsl:for-each select="number">
115    format-number(<xsl:value-of select="."/>,'#.0')<xsl:text> = </xsl:text>
116    <xsl:value-of select="format-number(.,'#.0')"/>
117    </xsl:for-each>
118    <xsl:text>&#10;  </xsl:text>
119  </point-test><xsl:text>&#10;  </xsl:text>
120
121  <point-test>
122    <xsl:for-each select="number">
123    format-number(<xsl:value-of select="."/>,'0.#')<xsl:text> = </xsl:text>
124    <xsl:value-of select="format-number(.,'0.#')"/>
125    </xsl:for-each>
126    <xsl:text>&#10;  </xsl:text>
127  </point-test>
128</xsl:template>
129
130</xsl:stylesheet>
131