XMLをIEで表示(基礎編) xsl:output

2004年04月04日(日)更新


xsl:outputで変換結果の出力方法を指定する

さらら: xsl:outputで変換結果の出力方法を指定する、って?? 出力する要素名として、htmlとかxmlって書くだけでいいんのじゃないの?

たけち: うん。これまでの例のように、XMLデータをXSLTを使ってXMLとかHTMLに変換する場合には、実際上はあんまり気にしなくてもいいんだけどね。それ以外、たとえばCSV(Comma Separated Value)形式とかで出力したいときには、このxsl:outputで出力結果を指定する必要があるんだよね。

さらら: あっ、そっか。ずっ〜とHTMLへの変換しか見てこなかったから、すっかり忘れていたわ。

たけち: xsl:outputのパラメタは次のようにたくさんあるんだ。ひととおり、属性について簡単な説明もしておくね。実際には、ある属性の値によって別の属性がどう扱われるか、といったことがあるんだけど、ここでは省略しておくね。

xsl:outputの書式説明図

■ method=("xml" | "html" | "text" | QNAME)

結果ツリーの出力形式を指定します。

■ version=バージョン番号(任意)

method属性に"xml"か"html"を指定した場合に、該当するバージョン番号を指定します。versionを指定しなかった場合には、次のようにデフォルト値が設定されます。

method属性指定version属性のデフォルト値
"xml""1.0"
"html"XSLTプロセッサによって異なりますが、通常、"4.0"と想定されます。

■ encoding=文字エンコーディング名(任意)

出力されるファイルの文字エンコーディング名を指定します。"UTF-8"、"UTF-16"が指定可能です。XSLTプロセッサによっては、"Shift_JIS"なども可能です。

■ omit-xml-declaration=("yes" | "no")(任意)

method属性指定を"xml"とした場合に有効な属性です。"yes"の場合は、XML宣言を出力しないことを示します。

■ standalone=("yes" | "no")(任意)

method属性指定を"xml"とした場合に有効な属性です。"yes"の場合は、XML宣言に、standalone="yes"が出力されます。"no"の場合には、XML宣言に、standalone="no"が出力されます。

■ doctype-public=公開識別子(任意)

DOCTYPE宣言の公開識別子を指定します。

■ doctype-system=SYSTEM識別子(任意)

DOCTYPE宣言のSYSTEM識別子を指定します。

■ cdata-section-elements=要素名リスト(任意)

method属性指定を"xml"とした場合に有効な属性です。子ノードとしてのテキストノードをCDATAセクションとして出力したい場合、その要素名を指定します。そのような要素が複数ある場合には、要素名を空白で区切って記述します。

■ indent=("yes" | "no")(任意)

"yes"を指定した場合、出力結果ファイルにインデントのための適当な空白が挿入されます。どのように空白が挿入されるかはXSLTプロセッサ次第です。indent属性を指定しなかった場合や"no"を指定した場合、インデントのための空白は挿入されません。

■ media-type=文字列(任意)

出力されるファイルのメディアタイプを指定します。指定しなかった場合、次のようにデフォルト値が設定されます。

method属性指定media-type属性のデフォルト値
"xml""text/xml"
"html""text/html"
"text""text/plain"

さらら: あら。ずい分と属性があるのね。。。(^ ^;

たけち: そうだね。でも、ぼくたちが使っているようなサンプルだとほとんどパターンが決まっちゃうからね。


xsl:output記述例

たけち: 今回は、xsl:outputの記述例だけを載せておくね。

さらら: あっ、そうなの。

たけち: その代わり、CSVの例を次回以降で具体的に説明するね。

さらら: あっ、はい。

xsl:output サンプル(1)【xmlを出力する場合の記述例】

<xsl:output method="xml" encoding="UTF-8"
    doctype-system="sample.dtd" />

xsl:output サンプル(2)【htmlを出力する場合の記述例】

<xsl:output method="html" encoding="Shift_JIS"
    doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" />

xsl:output サンプル(3)【textを出力する場合の記述例】

<xsl:output method="text" encoding="Shift_JIS" />

さらら: ふ〜ん。

たけち: さっき言ったように、CSVの例を次回以降で具体的に説明するね。

さらら: えぇ。やっぱり具体的に見てみないといまひとつピンとこないわ、私には。

たけち: じゃあ、そのためにはIE以外のものを使ってみるね。。

さらら: あっ、そうなの?! 

→次回はCSVファイルへの変換です・・・ (^ ^;