mb_language("uni"); mb_internal_encoding("utf-8"); mb_http_input("auto"); mb_http_output("utf-8"); ?>
全文については,Printers Circle(2008年 2月号)をご覧ください。
▼図1 XML文書
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE CARD [
<!ELEMENT CARD (NAME,COMPANY,LOGO?) >
<!ELEMENT NAME (#PCDATA) >
<!ELEMENT COMPANY (#PCDATA) >
<!ELEMENT LOGO EMPTY >
<!ATTLIST LOGO HREF CDATA #REQUIRED >
]>
<CARD>
<NAME>桃 太郎</NAME>
<COMPANY>鬼が島商店</COMPANY>
<LOGO HREF="momo.jpg"/>
</CARD>
注:DSSSLではこの文書はSGML構文に書き換えるものとします。
▼図2 変換結果としてのHTML文書
<HTML>
<BODY>
<P>桃 太郎</P>
<P>鬼が島商店</P>
<IMG SRC="momo.jpg"/>
</BODY>
</HTML>
▼図3 ボキャブラリ変換のXSLTスタイルシート
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<HTML>
<BODY>
<P><xsl:value-of select="CARD/NAME" /></P>
<P><xsl:value-of select="CARD/COMPANY" /></P>
<IMG SRC="{CARD/LOGO/@HREF}"/>
</BODY>
</HTML>
</xsl:template>
</xsl:stylesheet>
▼図4 文書インスタンス
<?xml version="1.0"?>
<名簿>
<名刺>
<名前><姓>金</姓><名>太郎</名></名前>
<会社名>金時茶屋</会社名>
<住所>箱根足柄山</住所>
<メール>kintaro@kintoki.com</メール>
<ロゴ 画像="kintaro.png" />
</名刺>
<名刺>
<名前><姓>桃</姓><名>太郎</名></名前>
<会社名>鬼が島</会社名>
<住所>瀬戸内鬼が島</住所>
<メール>momotaro@onigashima.co.jp</メール>
<ロゴ 画像="momotaro.png" />
</名刺>
</名簿>
注:このXSLTスタイルシートの働きは,XTで確認しました。
▼図4 ボキャブラリ変換のDSSSLスタイルシート
<!doctype style-sheet PUBLIC "-//James Clark//DTD DSSSL Style Sheet//EN">
(declare-flow-object-class element
"UNREGISTERED::James Clark//Flow Object Class::element")
(declare-flow-object-class empty-element
"UNREGISTERED::James Clark//Flow Object Class::empty-element")
(element (CARD) (make sequence
(make element gi: "HTML"
(make element gi: "BODY" (process-children) ) ) ) )
(element (CARD NAME)
(make sequence
(make element gi: "P" ) ) )
(element (CARD COMPANY)
(make sequence
(make element gi: "P" ) ) )
(element (CARD LOGO)
(make sequence
(make empty-element
gi: "IMG"
attributes: (list (list "SRC" (attribute-string "HREF") ) ) ) ) )
▲このページのTOPへ