XSL 変換

Adobe FrameMaker の XSLT 変換について説明します。

FrameMaker では、XML を処理するためのオプションを提供しています。 また、FrameMaker は XSL 変換に対応する XML の読み込みや書き出し、および文法定義とルール定義用のスキーマ言語を許可します。参照先スキーマから自動的に Document Type Definition(DTD)を作成してスキーマを使用する XML 文書を取り込むことや、スキーマ定義から直接 Element Definition Document(EDD)を作成することができます。 読み込みと書き出し時に、関連付けられているスキーマに照らして検証することもできます。

XSL(EXtensible Stylesheet Language)は、XML 文書用のスタイルシート言語です。 XSLT(Extensible Stylesheet Language Transformation)は、XSL で定義した変換を XML 文書に適用するための手段です。

XSL は次の 3 つの仕様で構成されています。

XSLT

XML 文書を変換するための言語。

XPath

XML 文書内でナビゲーションをするための言語。

XSL-FO

XML 文書を書式設定するための言語。

FrameMaker には XSLT プロセッサーが含まれています。これを利用すると、XSLT ファイルを XML 構造化アプリケーションや XML 文書に関連付けて、XML からの取り込みまたは XML への書き出しを行うときに、その文書で定義された変換を適用できます。FrameMaker では、W3C XSLT 3.0 勧告をサポートしています。 XSLT プロセッサーを変更するには、 maker.ini ファイルまたは構造化アプリケーション内から編集できます。

取り込みの際には、初期設定の読み取りルールまたは定義した追加の読み取りルールの前に、XSL 変換が適用されます。 つまり、取り込みの際に XSL 変換を適用すると、新しいファイルが生成され、(XML ファイルの場合は)読み書きルールに渡される結果になります。

書き出しの際には、初期設定または明示的な書き込みルールの後に XSL 変換が適用されます。 書き出しの際に、読み書きルールを適用すると、新しい XML ファイルが生成され、有効な場合、XSLT プロセッサーに渡されます。

XSL を使用して XML ファイルからハイパーテキスト出力(XML または HTML)を作成することができます。 XML ファイル内で再利用可能な変換を作成し保存することができます。 再利用可能な変換には、XSLT の名前やパス、入出力ファイルのパスなどの情報が含まれます。

出力は、コンピューターにインストールされている解析を使用して作成され、 maker.ini 設定によって FrameMaker に登録されます。XALAN と SAXON が、FrameMaker によってデフォルトでコンピューターにインストールされます。 XALAN は XSLT 1.0 をサポートし、SAXON は XSLT 3.0 をサポートします。XALAN および SAXON は両方とも JAXP 準拠です。

Note: FrameMaker には Saxon Enterprise Edition 9.8.3 が付属しています。

SAXON は、XSL が直接実行されているか、変換固有の解析が指定されていない場合に使用されるデフォルトの解析です。 ただし、次のフラグを使用して、 maker.ini ファイルで新しいデフォルトのプロセッサーを指定することができます。

[XSLTProcessors] 
; processorName=jar path(all dependent jars should be in same dir), TransformerFactory class,
; default if default processor
; (if not specified – 1st processor would become default.)
XALAN=fminit\XSLT\XSLTProcessors\xalan\xalan-j_2_7_2-bin\xalan.jar, 
  org.apache.xalan.processor.TransformerFactoryImpl
SAXON=fminit\XSLT\XSLTProcessors\saxon\SaxonEE9-8-0-7J\saxon9ee.jar, 
  net.sf.saxon.TransformerFactoryImpl, Default

XSL 変換には、XML ファイルから出力を作成するための、XSL、解析、および出力フォルダーなどの情報が含まれます。 作成する変換は、XML ファイルに保存されます。 デフォルトおよびアプリケーション特有という 2 種類の変換があります。 デフォルトの変換は、TransformationFilePath フラグを使用して、 maker.ini ファイルで指定されているとおりに保存されます。アプリケーション固有の変換は、 structapps.fm ファイルで構造化アプリケーション用に指定する XML ファイルに保存されます。

XSLT ツールバーは、使用する変換の履歴を保持し、複数の XML ファイルから出力を作成するために拡張実行機能を使用できます。 ツールバーから、開いているファイルで変換\XSL を選択して実行することもできます。


FrameMaker の XSLT ツールバー

A. クリックして XSL ファイルを選択します B. クリックして変換を選択します C. 選択した変換または XSL を実行します D. クリックして 拡張実行 ダイアログを表示します

XALAN プロセッサーへの切り替え

  1. maker.ini ファイルで、「XSLTProcessors」セクションを見つけます。

  2. SAXON プロセッサーのエントリには接尾辞(Default)が入力されています。

    XALAN=fminit\XSLT\XSLTProcessors\xalan\xalan-j_2_7_2-bin\xalan.jar, 
       org.apache.xalan.processor.TransformerFactoryImpl
    SAXON=fminit\XSLT\XSLTProcessors\saxon\SaxonEE9-8-0-7J\saxon9ee.jar,
       net.sf.saxon.TransformerFactoryImpl, Default
  3. カット&ペーストして接頭辞を XALAN プロセッサーのエントリに次のように移動します。

    XALAN=fminit\XSLT\XSLTProcessors\xalan\xalan-j_2_7_2-bin\xalan.jar, 
       org.apache.xalan.processor.TransformerFactoryImpl, Default
    SAXON=fminit\XSLT\XSLTProcessors\saxon\SaxonEE9-8-0-7J\saxon9ee.jar,
       net.sf.saxon.TransformerFactoryImpl