XSL 変換

FrameMaker での XSLT 変換とは何かを説明します。

FrameMaker では、XML を処理するためのオプションを提供しています。 また、FrameMaker では、XML の読み込みや書き出しで XSL 変換(スキーマでの XMLを参照)や構文およびルール定義用のスキーマ言語(スキーマでの 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 との間の取り込みおよび書き出しの際に適用することができます。 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 準拠です。

注意: FrameMaker(2019 年リリース)は 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.in ファイルで、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

変換を作成する

FrameMaker で XSLT 変換を作成する方法について説明します。

注意: 必ず、XML 表示に切り替えてからこの手順を行ってください。
  1. XSLT > 変換の管理を選択します。


    FrameMaker の XML 表示の変換を管理ダイアログ

  2. 変換の管理 ダイアログ:

    デフォルトの変換ファイルを使用するには、デフォルトの変換ファイルを選択し、新規をクリックします。

    変換ファイルを新規に作成するには、変換ファイルを選択し、新規をクリックします。

    注意: 既に変換ファイルがある場合は、「参照」をクリックして、その変換ファイルを選択してください。
  3. 新規」をクリックします。

  4. 新規変換 ダイアログで以下の情報を指定し、別名で保存 をクリックすると、変換ファイルが作成されます。

    注意: 手順 1 で「参照」ボタンを使用して既存の変換ファイルを選択した場合は、選択した変換ファイルで新規変換を保存します。
    1. 変換名:変換設定の名前。

    2. 使用:XSL ファイルを選択するか、XML ファイル内の処理命令(PI)を使用するかを選択します。

    3. プロセッサー:SAXON、XALAN、または FrameMaker で登録されたその他の解析。

    4. 出力:保存場所、接尾辞、および出力ファイルの開き方などの出力ファイルに関連する設定。

変換を編集

FrameMaker で変換ファイルを XML アプリケーションに関連付ける方法について説明します。

変換を作成すると、structapps.fmで変換ファイルを 1 つまたは複数の XML アプリケーションに関連付けることができます。

  1. WYSIWYG 表示で、構造 > アプリケーションの定義 > グローバルアプリケーション定義の編集を選択します。

  2. 構造化アプリケーションでは、<TransformationFile> エレメントを配置し、変換ファイルのパスと名前を指定します。


    変換ファイルエレメントを検索し、構造図で変換ファイルのパスと名前を指定

  3. StructApps.fm ファイルを保存し、構造 > アプリケーションの定義 > アプリケーションの定義の読み取りを選択します。

これにより、関連するアプリケーションの変換を使用して、ファイル出力を生成するように選択できます。

アプリケーション特有の変換

FrameMaker でアプリケーション固有の変換を使用する方法について説明します。

  1. XML 表示で XML ファイルに焦点を当てた状態で、XSLT ツールバーの 選択 ドロップダウンから変換を選択します。

  2. 変換を選択ダイアログで、「構造化アプリケーション」を選択します。


    変換を管理ダイアログのアプリケーション固有の変換

  3. ドロップダウンリストから structapps.fmで指定された関連するアプリケーションが選択され、関連する変換が変換 フィールドに表示されます。

  4. 変換」で、出力の生成に使用する変換を選択し、「OK」をクリックします。

  5. XSLT ツールバーで「実行」をクリックします。

    FrameMaker は、ハイパーテキスト出力を生成し、ファイルを表示します。

拡張実行を使用した複数ファイルの変換

FrameMaker で複数の XML ファイルに対する高度な実行による変換を行う方法を説明します。

XSLT ツールバーを使用すると、複数のファイル上で変換を実行することができます。

  1. XSLT ツールバーで、「拡張実行」を選択します。

    XSLT ツールバーの拡張実行

  2. 拡張実行 ダイアログで、変換を実行する範囲を選択します。

    1. 現在のファイル:FrameMaker で開いている XML ファイルから出力を生成します。

    2. アクティブな文書がブックまたはマップの場合は、「含める子エレメント」を選択します。 このオプションを選択すると、XSLT が親エレメントとともに子エレメントに適用されます。

    3. 開いているすべてのファイル:変換または XSL を使用して、FrameMaker で開いているすべての XML ファイルから出力を生成します。

    4. フォルダー:変換または XSL を使用して、フォルダー内のすべての XML ファイルから出力を生成します。 必要に応じて「サブフォルダーを含める」を選択します。

  3. 変換または XSL を選択し、「実行」をクリックします。

出力ファイルが関連アプリケーションで起動します。


January 24, 2022

Legal Notices | Online Privacy Policy