linkdeveloperxmlxpriorisolutionxmldbdownloadtop
トップページ ご利用ガイド サイトマップ


↑Get! NeoCore!


↑ITスキルを
のばすなら


↑XMLのことなら

↑セミナー開催
NeoCoreXMS/Xpriori


TOP  >>  XML解説  >>  探検 XMLボキャブラリの世界



2008年5月26日 更新


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

著者:岸 和孝(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ボキャブラリの世界




  探検 XMLボキャブラリの世界
  第1回  ホームページのボキャブラリ − XHTML
  第2回  印刷のボキャブラリ − JDF,JMF,PrintTalk
  第3回  書誌情報のボキャブラリ − RDF,RSS,Atom
  第4回  新聞記事のボキャブラリ − NewsML
  第5回  電子商取引のボキャブラリ − PrintTalk
  第6回  ビジネス・グラフのボキャブラリ − ODF,xChart,JMSL chart,ChartSVG,XML/SWF Charts,xfy
  第7回  化学のボキャブラリ − CML
  第8回  文書型定義のボキャブラリ − XML Schema,RELAX NG
  第9回  地理情報のボキャブラリ − GML,G-XML
  第10回  楽譜のボキャブラリ − MusicXML
  第11回  数式のボキャブラリ − MathML
  第12回  オフィス文書のボキャブラリ − ODF(その1)
  第13回  オフィス文書のボキャブラリ − ODF(その2)
  第14回  オフィス文書のボキャブラリ − ODF(その3)
  第15回  オフィス文書のボキャブラリ − ODF(その4)
  第16回  オフィス文書のボキャブラリ − ODF(その5)
  第17回  ユーザー・インターフェースのボキャブラリ − XUL
  第18回  音声対話のボキャブラリ − VoiceXML,CCXML,SCXML
  第19回  文書型定義のボキャブラリ − RELAX NG Compact Syntax
  第20回  ボキャブラリ変換のボキャブラリ − XSLT

  関連記事
  XPathを使ってみよう
  属性を記述してみよう

^ ページのトップへ

Copyright(c)2004 Nihon Unitec Co., Ltd. All right reserved.