29 XSLT Processor for C++の使用

Extensible Stylesheet Language Transformation (XSLT) Processor for C++の使用方法について説明します。

注意:

Oracle XML Developer's Kit (XDK)アプリケーションには、xml.hppに統合されたC++アプリケーション・プログラミング・インタフェース(API)を使用してください。oraxml.hpp内の非統合の旧C++ APIは非推奨で、下位互換性のためにのみサポートされています。これは、将来のリリースでは削除される予定です。

29.1 XSLT for C++の入手方法

Extensible Stylesheet Language Transformation (XSLT) for C++は、Oracle Databaseに付属しています。

サンプル・ファイルはxdk/demo/cpp/newにあります。

ソフトウェア・アーカイブのルート・ディレクトリにあるreadme.htmlファイルには、不具合の修正や追加のAPIなどのリリース固有の情報が含まれています。

29.2 XSLネームスペース

これは、XSLTコンパイラおよびトランスフォーマの名前空間です。

29.2.1 XSLインタフェース

XSLインタフェースについて説明します。

XslExceptionインタフェース: XSLTに関連するすべての例外のルート・インタフェースです。

Transformerインタフェース: 基本的なXSLTプロセッサです。このインタフェースを使用して全XSLTプロセッサを起動できます。

CompTransformerインタフェース: 拡張XSLTプロセッサです。このインタフェースは、中間バイナリ・バイトコードを作成するプロセッサ(現行ではXVMベースのプロセッサのみ)とのみ併用できます。

Compilerインタフェース: XSLTコンパイラです。これは、XSLTをバイナリ・バイトコードにコンパイルするコンパイラに対して使用されます。

関連項目:

『Oracle Database XML C++ APIリファレンス』のパッケージXSL API for C++に関する項

29.3 XSLT for C++のDOMインタフェースの使用方法

XSLT for C++ DOMの基本的な使用方法について説明します。

XMLParser.xmlparse()には、次の2つの入力があります。

  • Extensible Markup Language (XML)文書

  • XML文書に適用するXSLTスタイルシート

ツール・ファクトリを起動して特定のXSLTトランスフォーマまたはコンパイラを作成すると、XSLTプロセッサが起動します。

setXSL()メンバー関数を起動すると、XSLTスタイルシートが任意のトランスフォーマに指定されます。

XMLインスタンス・ドキュメントがメンバー関数を変換するパラメータとして指定されます。

結果のドキュメント(XML、HTML、Vector Markup Language (VML)など)は、通常、アプリケーションに送られ、さらに処理されます。これは、Document Object Model (DOM)ツリーまたは一連のSimple API for XML (SAX)イベントとして送られます。ユーザーがSAXイベント・ハンドラを指定すると、SAXイベントが生成されます。

デストラクタを起動すると、アプリケーションではXSLTプロセッサが終了します。

29.4 XSLT for C++の起動

XSLT for C++は、コマンドラインで実行可能ファイルを起動するか、またはC++コードを記述して提供されるAPIを使用することによって起動できます。

29.4.1 コマンドラインの使用方法

XSLT for C++は、bin/xmlをコールすることによって、実行可能ファイルとしてコールできます

関連項目:

表5-4

29.4.2 提供されるAPIを使用するためのC++コードの記述

XSLT for C++は、提供されるAPIを使用するようにコードを記述することで起動できます。このコードは、ディレクトリpublicにあるヘッダーを使用してコンパイルし、ディレクトリlibにあるライブラリにリンクする必要があります。プログラムを作成する方法の詳細は、xdk/demo/cpp/newにある、MakeFileまたはmake.batを参照してください。

29.5 ソフトウェアに含まれるサンプル・ファイルの使用

ディレクトリ$ORACLE_HOME/xdk/demo/cpp/parser/には、XSLT for C++の使用方法を示す複数のXMLアプリケーションがあります。

表29-1 XSLT for C++のサンプル・ファイル

サンプル・ファイル名 説明
XSLSampleMain.cpp
XSLSampleGen.cpp
XSLSampleGen.hpp

サンプルのXSLT使用プログラムのソース。XSLSampleは、2つの引数、XSLTスタイルシートおよびXMLファイルを取ります。このプログラムのstdoutをファイルにリダイレクトすると、環境によっては出力の一部が欠落する場合があります。

XVMSampleMain.cpp
XVMSampleGen.cpp
XVMSampleGen.hpp

サンプルXSLT Virtual Machine (XVM)使用プログラムのソース。