The XML Component Set

In addition to generating XML tags directly to the output, the XML component set provides a few components to simplify sophisticated tasks, such as XSLT.

The XML Transformer

To translate a XML document to another, you can use the transformer component as follows.

<?page contentType="text/html;charset=UTF-8"?>
<x:transformer xsl="book.xsl" xmlns:x="http://www.zkoss.org/2007/xml">
    <book>    
        <title>ZK - Ajax without the JavaScript Framework</title>        
        <for-who>Web application designers and programmers who wish to implement rich Ajax web applications in the simplest way.</for-who>        
        <author>Henri Chen and Robbie Cheng</author>        
    </book>    
</x:transformer>

where transformer is a component of the XML component set, so we have to specify the namespace. Otherwise, the Native namespace is assumed.

Then, let us assume the content of book.xsl is as follows.

<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="/">    
        <html>        
            <head>            
                <title>Book Info</title>                
            </head>            
            <body>            
                <h1>Book Info</h1>                
                <xsl:apply-templates select="book"/>                
            </body>            
        </html>        
    </xsl:template>    
    <xsl:template match="book">    
        <dl>        
            <dt>Title:</dt>            
            <dd><xsl:value-of select="title"/></dd>            
            <dt>Who is this book for:</dt>            
            <dd><xsl:value-of select="for-who"/></dd>            
            <dt>Authors</dt>            
            <dd><xsl:value-of select="author"/></dd>            
        </dl>        
    </xsl:template>    
</xsl:stylesheet>

Then, the generated XML output will be XHTML as follows.

<html>
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Book Info</title>
</head>
<body>
<h1>Book Info</h1>
<dl>

<dt>Title:</dt>
<dd>
ZK - Ajax without the JavaScript Framework</dd>
<dt>Who is this book for:</dt>
<dd>
Web application designers and programmers who wish to implement rich Ajax web applications in the simplest way.</dd>
<dt>Authors</dt>
<dd>
Henri Chen and Robbie Cheng</dd>
</dl>
</body>
</html>