Home   Single Page

XML コンポーネント セット

出力に XML タグを直接生成することに加え、XML コンポーネントセットは XSLT のような複雑な仕事を簡単にするコンポーネントを幾つか提供します。

XML 変換器
The XML Transformer

XML ドキュメントを他の形式に変換するには、次のように変換 コンポーネントを使用できます。

<?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>

ここで変換器は XML コンポーネントセットのコンポーネントです。それで、ネームスペースを指定します。でなければ、ネィティブネームスペースとみなされます。

そこで、book.xsl のコンテンツを次のように想定します。

<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>

すると、生成された XML 出力は次のような XHTML になるでしょう。

<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>