Listing 1• Transform the XML data into an XSL-FO file

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <xsl:stylesheet version="1.0"
 3   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 4   xmlns:fo="http://www.w3.org/1999/XSL/Format">

 5  <xsl:template match="/">

 6  <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">

 7    <fo:layout-master-set>
 8      <fo:simple-page-master master-name="simple"
 9                    page-height="29.7cm"
10                    page-width="21cm"
11                    margin-top="1cm"
12                    margin-bottom="2cm"
13                    margin-left="2.5cm"
14                    margin-right="2.5cm">
15        <fo:region-body margin-top="3cm"/>
16        <fo:region-before extent="1.5cm"/>
17        <fo:region-after extent="1.5cm"/>
18        <fo:region-end extent="1.5cm"/>
19      </fo:simple-page-master>
20    </fo:layout-master-set>

21    <fo:page-sequence master-reference="simple">
22    <fo:title>Server Statistcs</fo:title>
23    <fo:static-content flow-name="xsl-region-before">
24       <fo:block text-align="center">
25    Server Statistics at <xsl:value-of select="/statistics/@date"/>
26       </fo:block>
27    </fo:static-content>
28    <fo:static-content flow-name="xsl-region-after">
29      <fo:block text-align="center">Page
         <fo:page-number/></fo:block>
30    </fo:static-content>
31    <fo:flow flow-name="xsl-region-body">
32     <fo:block>
33       <fo:table table-layout="fixed">
34         <fo:table-column column-width="150pt"/>
35         <fo:table-column column-width="150pt"/>
36         <fo:table-body>
37           <fo:table-row>
38              <fo:table-cell border-
                  style="solid" display-
                    align="center"
39                      border-color="black"
                         border-width="1pt"
40                         padding-before="3pt"
                            padding-after="3pt"
41                            padding-start="3pt"
                               padding-end="3pt">
42                 <fo:block>Type of
                     Object</fo:block>
43               </fo:table-cell>
44 	           <fo:table-cell border-style="solid"
                 display-align="center"
45                  border-color="black" border-
                     width="1pt"
46                      padding-before="3pt"
                         padding-after="3pt"
47                          padding-start="3pt"
                             padding-end="3pt">
48                 <fo:block>Total
                    Number</fo:block>
49               </fo:table-cell>
50           </fo:table-row>
51 	       <xsl:for-each select="/statistics/*">
52           <fo:table-row>
53 	           <fo:table-cell border-style="solid"
                display-align="center"
54                 border-color="black" border-
                    width="1pt"
55                     padding-before="3pt"
                        padding-after="3pt"
56                         padding-start="3pt"
                            padding-end="3pt">
57 		        <fo:block>
58                     <xsl:value-of
                        select="name()"/>
59                  </fo:block>
60               </fo:table-cell>
61 		     <fo:table-cell border-style="solid"
           display-align="center"
62            border-color="black" border-
               width="1pt"
63                padding-before="3pt" padding-
                   after="3pt"
64                    padding-start="3pt" padding-
                       end="3pt">
65 		        <fo:block>
66                     <xsl:value-of select="."/>
67                  </fo:block>
68               </fo:table-cell>
69           </fo:table-row>
70           </xsl:for-each>
71        </fo:table-body>
72       </fo:table>
73       </fo:block>
74      </fo:flow>
75    </fo:page-sequence>
76   </fo:root>
77  </xsl:template>
78 </xsl:stylesheet>

<strong>Listing 2• XSLT commands to translate XML to HTML</strong>

 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <xsl:stylesheet version="1.0"
 3  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 4 <xsl:template match="/">

 5 <HTML>
 6 <HEAD>
 7     <TITLE>Server Statistics - HTML
        format</TITLE>
 8 </HEAD>
 9 <BODY>

10 <H1>
11 Server Statistics at <xsl:value-of select="
    /statistics/@date"/>
12 </H1>

13 <Table border="1">
14       <TR>
15           <TH>Type of Object</TH>
16           <TH>Total Number</TH>
17       </TR>
18       <xsl:for-each select="/statistics/*">
19       <TR>
20 	      <TD><xsl:value-of select="name()"/></TD>
21 	      <TD><xsl:value-of select="."/></TD>
22       </TR>
23       </xsl:for-each>
24 </Table>
25 </BODY>
26 </HTML>
27  </xsl:template>
28 </xsl:stylesheet>