XMLDB.jp

XML技術

探検 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ボキャブラリの世界


  • TEchScore
  • xml master
  • SEshop
  • NeoCoreサミット2010

  • ■コンテンツ協力
    unitec
  • atit
  • builder
今注目のITキーワード:
Copyright (c) 2003-2009 CyberTech corporation ltd. All ights Reserved. | 運営会社 | ご利用ガイド