Xslt/Style

説明

XSLT によりドキュメントの集合を処理します。

これは、XMLベースのドキュメントの見やすい形式を作ったり、 コードを生成するのに便利です。

注意:JDK 1.4かそれ以上を利用しているならば、このタスクは外部のライブラリを必要せず、 Antディストリビュージョンで提供されていません。 そうでないとき、詳しくは、ライブラリ依存関係をご覧ください。

処理するファイルの集合を区別することも可能です。 これは、 includesincludesfileexcludesexcludesfile、 およびdefaultexcludes属性によりできます。 includesincludesfile 属性により、 パターンを用いて含めたいファイルを指定します。 excludeexcludesfile 属性は 除外したいファイルを指定するのに使われます。 これもパターンにより指定されます。 そして最後に、 defaultexcludes 属性により、 デフォルトのファイル除外定義を使うかどうかを指定できます。 ファイルの選択と除外の仕組みや、 パターンの書き方については、 ディレクトリベースのタスクをご覧ください。

このタスクは暗黙的な ファイルセットを生成し、 ネストされた <include><exclude>および <patternset>要素と同様に <fileset> (dirbasedirとなります) の全ての属性をサポートしています。

このタスクは、 <xsl:param> 宣言に値を渡すために使うネストされた<param>要素の使用をサポートしています。

このタスクは、 エンティティとURIの解決を行うために使われる ネストされた xmlcatalog 要素の使用をサポートしています。

<style> および <xslt> は、 同じ Ant タスクを参照しており、 入れ替えて使用可能です。

If you want to use Xalan-J 1 または XSL:P を使いたい場合、 Ant の optional.jar も必要になります。

パラメータ

an exclude pattern
属性 説明 必須
basedir ソース XML ファイルを探す場所。 デフォルトはプロジェクトのベースディレクトリ No
destdir 結果を保存するディレクトリ in および out が指定されない限りは必須
extension ターゲットに用いられる望まれるファイル拡張子。 指定されない場合、デフォルトは ".html" No
style 使用するスタイルシート名。- プロジェクトベースディレクトリからの相対パスか、 絶対パスで与えられる。 非推奨 - 同様に、このタスクの basedir 属性に対する相対パスとして指定することができます。 Yes
classpath XSLT プロセッサを探すときに使われるクラスパス No
classpathref 使用するクラスパス。 他の場所で定義されたパスへの 参照として与えられます。 No
force 依存するソースファイルやスタイルシートよりも新しかったとしても、 ターゲットファイルを(強制的に)再生成します。 No; デフォルトは false
processor 使用する XSLT プロセッサの名前。 使用可能な値は、 TraX 互換のプロセッサ (即ち Xalan 2 や Saxon といった JAXP インタフェースの実装) では "trax" 、 XSL:P プロセッサでは "xslp"、 Apache XML Xalan (バージョン 1) では "xalan"、 または任意の XSLTLiaison クラスの名前です。 デフォルトは traxで、 次に xalan、xslp (と、その順序で)となります。 クラスパス中に最初のものが見つかると、それが使われます。 非推奨 - XSL:P および xalan 非推奨であり、今後サポートされません。 No
includes カンマあるいは空白で区切られた選択されるファイルのパターンのリスト; 省略された場合全てのファイルが選択される。 No
includesfile ファイルの名前; このファイルの各行が includes パターンとして扱われる No
excludes カンマあるいは空白で区切られた除外するファイルのパターンのリスト; 省略された場合、(デフォルト除外ファイルを除き)何も除外しない。 No
excludesfile ファイルの名前; このファイルの各行が excludes パターンとして扱われる No
defaultexcludes デフォルト除外パターンを使うかどうか指定します。 ("yes"/"no") 省略された場合デフォルト除外パターンは使われます。 No
in スタイルシートを適用される一つの XML ドキュメントを指定します。 out 属性と共に使用しなければなりません。 No
out in 属性にスタイルシートを適用した結果の出力名を指定します。 No
scanincludeddirectories ディレクトリがincludes/excludes パターンにマッチしたら、 これらのディレクトリにある全てのファイルの変換を試みます。 デフォルトはtrue No
reloadstylesheet スタイルシート変換が新しく作成されたかどうかに関わらず、どの変換操作も管理する。 trueに設定すると、パフォーマンスは落ちるかもしれないが、 Xalan-Jバージョンのバグ周りが作用しているかもしれない。 デフォルトは、false. Ant 1.5.2から. No

ネストする要素で指定されるパラメータ

classpath

プロセッサをロードするクラスパスは、 パスのような構造であり、 ネストされた<classpath> 要素により指定されます。

xmlcatalog

xmlcatalog 要素は エンティティや URI を解決するのに使われます。

param

param はパラメータを XSL スタイルシートに渡すのに使われます。

パラメータ

属性 説明 必須
name XSL パラメータの名前 Yes
expression param に置き換えられる XSL 式。
元々は、XSL表現のつもりでした。
Yes
if このプロパティがセットされると、そのパラメータだけパスする。 No
unless このプロパティがセットされないと、そのパラメータだけパスする。 No

outputproperty ('trax' プロセッサのみ)

XSLT 仕様書で規定されたように 出力結果の木構造を生成したいか指定するのに使います。

パラメータ

属性 説明 必須
name プロパティ名 Yes
value プロパティの値 Yes

factory ('trax' プロセッサのみ)

ファクトリ設定を指定するのに使います。

パラメータ

属性 説明 必須
name 変換ファクトリの使うための正しいクラスパス。 例えば、 org.apache.xalan.processor.TransformerFactoryImplorg.apache.xalan.xsltc.trax.TransformerFactoryImplnet.sf.saxon.TransformerFactoryImplなど。 No. JAXP探索メカニズムをデフォルトにします。

属性

プロセッサファクトリの設定を指定するために使います。 属性名と値は、プロセッサの詳細で、それを理解する実装を知っていなくてはいけない。 あなたのプロセッサのドキュメントを読んでください。
例えば、Xalan 2.xにて:

Saxon 7.xにて:

パラメータ

属性 説明 必須
name 属性の名前e Yes
value 属性の値 Yes

<style basedir="doc" destdir="build/doc"
       extension=".html" style="style/apache.xsl"/>

xmlcatalogを使用

<xslt basedir="doc" destdir="build/doc"
      extension=".html" style="style/apache.xsl">
  <xmlcatalog refid="mycatalog"/>
</xslt>

<xslt basedir="doc" destdir="build/doc"
   extension=".html" style="style/apache.xsl">
   <xmlcatalog>
       <dtd
         publicId="-//ArielPartners//DTD XML Article V1.0//EN"
         location="com/arielpartners/knowledgebase/dtd/article.dtd"/>
   </xmlcatalog>
</xslt>

XSL パラメータを使用

<xslt basedir="doc" destdir="build/doc"
      extension=".html" style="style/apache.xsl">
  <param name="date" expression="07-01-2000"/>
</xslt>

トップレベル要素で、グローバルパラメータの"date"を宣言したら、 <xsl:param name="date"/>になり、変数$dateは、 その後、07-01-2000という値を持ちます。

output プロパティを使用

<xslt in="doc.xml" out="build/doc/output.xml"
      style="style/apache.xsl">
  <outputproperty name="method" value="xml";/>
  <outputproperty name="standalone" value="yes"/>
  <outputproperty name="encoding" value="iso8859_1"/>
  <outputproperty name="indent" value="yes"/>
</xslt>

factoryの設定

<xslt in="doc.xml" out="build/doc/output.xml"
      style="style/apache.xsl">
  <factory name="org.apache.xalan.processor.TransformerFactoryImpl">
    <attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
  </factory>
</xslt>

Copyright © 2000-2004 The Apache Software Foundation. All rights Reserved.

[訳注:これは漆島賢二の訳を参考に、横田聡が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]