XMLDB.jp

XML技術
HOME  >  XML技術  >  探検 XMLボキャブラリの世界 第20回

探検 XMLボキャブラリの世界 第20回

第20回:ボキャブラリ変換のボキャブラリ ~XSLT~

2008年5月26日 更新



著者:岸 和孝(JAGAT客員研究員)



全文については,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>

注:この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") ) ) ) ) )
注:このDSSSLスタイルシートの働きは,Jadeで確認しました。これはDSSSLの変換言語で表すべきところですが,Jadeにはその機能がないため,DSSSLのスタイル言語で表してあります。


社団法人日本印刷技術協会(JAGAT) PrintersCircle 2008年2月号より転載







社団法人日本印刷技術協会(JAGAT) 探検 XMLボキャブラリの世界


▲このページのTOPへ

  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

◀ XMLマスター教則本です。試験対策はこれでばっちり!


Copyright (c) CyberTech corporation ltd. All ights Reserved. | サイバーテックについて | ご利用ガイド