この章の内容は次のとおりです。
XDK C++コンポーネントは、XML文書の読取り、操作および変換を行うための基本コンポーネントです。
Oracle XDK C++コンポーネントの構成は次のとおりです。
XML Parser for C++: DOMインタフェースまたはSAXインタフェースを使用したXML文書の解析をサポートします。
XSL Processor for C++: XML文書の変換をサポートします。
XML Schema Processor for C++: XML Schema定義ファイル(デフォルトの拡張子は.xsd
)に対するXMLファイルの解析および検証をサポートします。
Class Generator for C++: 入力DTDまたはXML Schemaに基づくC++ソース・ファイルのセットを生成します。
Oracle DatabaseまたはOracle Application Serverをインストールすると、すでにXDK C++コンポーネントがインストールされています。OTNからXDK C++コンポーネントの最新バージョンをダウンロードすることもできます。
OTNからXDKをダウンロードする場合は、次の手順を実行します。
「XML Developer's Kit」のリンクをクリックします。
OTNのユーザー名とパスワードでログオンします(アカウントをお持ちでない場合、登録は無料で行えます)。
ダウンロードするバージョンを選択します。
ライセンス契約のすべての条件を受諾します。
該当する*.tar.gz
または*.zip
ファイルをクリックします。
配布パッケージのファイルを解凍します。
xdk
ディレクトリとサブディレクトリを置くディレクトリを選択します。
そのディレクトリに移動し、次のツールを使用してXDKダウンロード・アーカイブ・ファイルを抽出します。
UNIX: tar xvfz xdk_xxx.tar.gz Windows: use WinZip visual archive extraction tool
XDKをインストールすると、ディレクトリ構造は次のようになります。
-$XDK_HOME | - bin: executable files | - lib: library files. | - nls/data: Globalization Support data files(*.nlb) | - xdk | - demo/cpp: demonstration code | - doc/cpp: documentation | - public: header files | - mesg: message files (*.msb)
次の表に、UNIXバージョンのXDK C++コンポーネントに付属するライブラリを示します。
表17-1 C++のXDKライブラリ(UNIX)
コンポーネント | ライブラリ | 説明 |
---|---|---|
XML Parser、XSL Processor、XML Schema Processor Class Generator |
libxml10.a |
DOM API、SAX APIおよびXSLT APIを含むXML Parser V2 for C++、XML Schema Processor for C++、Class Generator for C++ |
XDK C++コンポーネントは、次の表に示すOracleのCOREライブラリおよびGlobalization Supportライブラリに依存します。
環境変数ORA_NLS10
がグローバリゼーション・サポート・データ・ファイルの場所を指すように設定されているかどうかを確認します。Oracleデータベースをインストールすると、この変数を次のように設定できます。
setenv ORA_NLS10 ${ORACLE_HOME}/nls/data
Oracleデータベースをインストールしていない場合、XDKリリースに付属するグローバリゼーション・サポート・データ・ファイルを使用する必要があります。
setenv ORA_NLS10 ${XDK_HOME}/nls/data
環境変数ORA_XML_MESG
がmesg
ディレクトリへの絶対パスを指すように設定されているかどうかを確認します。Oracleデータベースをインストールすると(必須ではありません)、この変数を次のように設定できます。
setenv ORA_XML_MESG ${ORACLE_HOME}/xdk/mesg
Oracleデータベースをインストールしていない場合、XDKリリースに付属するエラー・メッセージ・ファイルのディレクトリになるようにこの変数を設定する必要があります。
setenv ORA_XML_MESG ${XDK_HOME}/xdk/mesg
XDKコンポーネントは、提供されるAPIを使用するための独自のプログラムを記述することで起動できます。xdk/include/
サブディレクトリにあるヘッダーを使用してプログラムをコンパイルし、lib/
サブディレクトリのライブラリにリンクします。プログラムを作成する方法の詳細は、xdk/demo/
サブディレクトリにあるMakefile
を参照してください。
パーサーは、bin/xml
を起動することによって、次のオプションを持つ実行可能ファイルとしてコールできます。
UNIXで使用するXDKバージョンの取得の手順:
strings libxml10.a | grep -i Version
これで、Makefile
を使用して、デモ・コードをコンパイルおよびリンクし、XDK C++コンポーネントでプログラムを開発できます。
次に、XDK C++コンポーネントに付属するWindowsライブラリを示します。
表17-3 WindowsのXDK C++コンポーネント・ライブラリ
コンポーネント | ライブラリ | 説明 |
---|---|---|
XML Parser XSL Processor XML Schema Processor Class Generator |
oraxml10.lib oraxml10.dll |
DOM API、SAX APIおよびXSLT APIを含むXML Parser V2 for C++ XML Schema Processor for C++ Class Generator for C++ |
XDK C++コンポーネント(Windows)は、次の表に示すOracleのCOREライブラリおよびGlobalization Supportライブラリに依存します。
表17-4 XDK C++コンポーネントの依存ライブラリ(Windows)
コンポーネント | ライブラリ | 説明 |
---|---|---|
COREライブラリ |
oracore10.dll |
Oracle COREライブラリ |
Globalization Supportライブラリ |
oranls.dll |
Oracle Globalization Support共通ライブラリ
|
Globalization Supportライブラリ |
oraunls.dll |
Unicodeサポート用のOracle Globalization Supportライブラリ |
環境変数ORA_NLS10
がグローバリゼーション・サポート・データ・ファイルの場所を指すように設定されているかどうかを確認します。Oracleデータベースをインストールする場合、次のようになります。
set ORA_NLS10 = %ORACLE_HOME%\nls\data
Oracleデータベースをインストールしていない場合、XDKリリースに付属するグローバリゼーション・サポート・データ・ファイルを使用する必要があります。
set ORA_NLS10 =%XDK_HOME%\nls\data
環境変数ORA_XML_MESG
がmesg
ディレクトリへの絶対パスを指すように設定されているかどうかを確認します。Oracleデータベースをインストールすると(必須ではありません)、この変数を次のように設定できます。
set ORA_XML_MESG =%ORACLE_HOME%\xdk\mesg
Oracleデータベースをインストールしていない場合、XDKリリースに付属するエラー・メッセージ・ファイルのディレクトリになるようにこの変数を設定する必要があります。
set ORA_XML_MESG =%XDK_HOME%\xdk\mesg
コマンドラインでmake.bat
を使用してコードをコンパイルする必要がある場合、cl
コンパイラのパスを設定します。
「スタート」メニューから、「設定」→「コントロール パネル」を選択します。「コントロール パネル」のポップアップ・ウィンドウで、「システム」アイコンを選択してタブルクリックします。「システムのプロパティ」という名前のウィンドウがポップアップ表示されます。「環境」タブを選択して、図17-1に示すように、PATH変数に対してcl.exe
のパスを入力します。
ライブラリおよびヘッダー・ファイルのパスをCOMPILEコマンドおよびLINKコマンドに追加して、Make.bat
ファイルを更新する必要があります。
:COMPILE set filename=%1 cl -c -Fo%filename%.obj %opt_flg% /DCRTAPI1=_cdecl /DCRTAPI2=_cdecl /nologo /Zl /Gy /DWIN32 /D_WIN32 /DWIN_NT /DWIN32COMMON /D_DLL /D_MT /D_X86_=1 /Doratext=OraText -I. -I..\..\..\include -ID:\Progra~1\Micros~1\VC98\Include
%filename%.c goto :EOF :LINK set filename=%1 link %link_dbg% /out:..\..\..\..\bin\%filename%.exe /libpath:%ORACLE_HOME%\lib/libpath:D:\Progra~1\Micros~1\VC98\lib
/libpath:..\..\..\..\lib %filename%.obj oraxml10.lib oracore10.lib oranls10.lib oraunls10.lib user32.lib kernel32.lib msvcrt.lib ADVAPI32.lib oldnames.lib winmm.lib :EOF
ここでは次のようになります。
D:\Progra~1\Micros~1\VC98\Include
がヘッダー・ファイルのパス、D:\Progra~1\Micros~1\VC98\lib
がライブラリ・ファイルのパスです。
これで、XDK C++コンポーネントを使用して開発を行えます。
環境変数ORA_NLS10
がグローバリゼーション・サポート・データ・ファイルの場所を指すように設定されているかどうかを確認します。
Visual C++で環境変数を認識するには、Windowsのシステム設定を使用して環境変数を定義する必要があります。
「スタート」メニューから、「設定」→「コントロール パネル」を選択します。「コントロール パネル」のポップアップ・ウィンドウで、「システム」アイコンを選択してタブルクリックします。「システムのプロパティ」という名前のウィンドウがポップアップ表示されます。「環境」タブを選択して、ORA_NLS10
を入力します。
Visual C++で環境変数を使用するには、Windowsのシステム設定を使用して環境変数を定義する必要があります。
「スタート」メニューから、「設定」→「コントロール パネル」を選択します。「コントロール パネル」のポップアップ・ウィンドウで、「システム」アイコンを選択してタブルクリックします。「システムのプロパティ」という名前のウィンドウがポップアップ表示されます。「環境」タブを選択して、図17-2に示すように、ORA_XML_MESGを入力します。
図17-3「DLLのPATHの設定」に、DLLライブラリのPATHの設定方法を示します。
Visual C++でワークスペースをオープンして、プロジェクト用の*.cpp
ファイルをインクルードした後、プロジェクトのパスを設定する必要があります。「Tools」メニューに移動し、「Options」を選択します。ウィンドウがポップアップ表示されます。図17-4に示すように、「Directories」タブを選択して、インクルード・パスを設定します。
図17-5に示すように、ライブラリ・パスを設定します。
%XDK_HOME%\lib内の静的ライブラリのパスを設定した後、Visual C++のコンパイル環境でライブラリ名も設定する必要があります。
メニュー・バーで「Project」メニュー→「Settings」を選択します。ウィンドウがポップアップ表示されます。図17-6に示すとおり、「Object/Library Modules」フィールドで「Link」タブを選択し、XDK C++コンポーネントのライブラリの名前を入力します。
これでデモ・プログラムをコンパイルおよび実行し、XDK C++コンポーネントを使用できます。