プライマリ・コンテンツに移動
Oracle® XML Developer's Kitプログラマーズ・ガイド
12c リリース1 (12.1) B71283-04
目次へ移動
目次
索引へ移動
索引

前
次

18 Oracle XML Developer's Kit for Cの開始

この章では、Oracle XML Developer's Kit (XDK) for Cを使用するための準備について説明します。

内容は次のとおりです。

18.1 XDK for Cコンポーネントのインストール

XDK for Cコンポーネントは、Extensible Markup Language (XML)の読取り、操作、変換および検証を行うための基本コンポーネントです。

XDK for Cコンポーネントは、Oracle Databaseに付属しています。この章では、Oracle DatabaseとともにXDKをインストールし、Oracle Database Examplesメディアのデモ・プログラムもインストールしたと想定します。インストールの手順およびXDKディレクトリ構造の説明は、「XDKのインストールについて」を参照してください。

次の一連の例は、XDKデモとXDKコンポーネントで使用されるライブラリのUNIXディレクトリ構造を示しています。サブディレクトリには、XDK for Cコンポーネントのサンプル・プログラムとデータ・ファイルが入っています。

例18-1に、CのOracleホーム・ディレクトリの下のメイン・ディレクトリを示します。

このメイン・ディレクトリの下に、各サブディレクトリの内容が個別に表示されます。

binディレクトリには、次のコンポーネントが含まれます。

         schema
         xml
         xmlcg
         xsl
         xvm

libディレクトリには、次のコンポーネントが含まれます。

         libcore11.a
         libcoresh11.so
         libnls11.a
         libunls11.a
         libxml11.a
         libxmlsh10.a

xdkディレクトリには、次のdemoサブディレクトリが含まれます。

         | demo/
            | - c/
                 | - dom/
                 | - parser/
                 | - sax/
                 | - schema/
                 | - webdav/
                 | - xslt/
                 | - xsltvm/

/xdk/demo/cサブディレクトリには、XDK for Cコンポーネントのサンプル・プログラムとデータ・ファイルが含まれます。「Oracle XML Developer's Kit for C」では、これらのプログラムを使用して最も重要なC言語の機能を理解する方法について説明します。

xdkディレクトリには、次のincludeサブディレクトリも含まれます。

         | include/
            oratypes.h
            oraxml.h
            oraxmlcg.h
            oraxsd.h
            xml.h
            xmlerr.h
            xmlotn.h
            xmlproc.h
            xmlsch.h
            xmlxptr.h
            xmlxsl.h
            xmlxvm.h

「UNIXでのXDK Cコンパイル時環境の設定とテスト」表18-4に、Cのヘッダー・ファイルを示しています。

関連項目:

XDK for Cコンポーネントのリストは、「XDKの概要」を参照してください

例18-1 Oracle XML Developer's Kit for Cのライブラリ、ヘッダー・ファイル、ユーティリティおよびデモ

- $ORACLE_HOME
    | - bin/
    | - lib/
    | - xdk/

18.2 XDK for Cコンポーネント用のUNIX環境の構成

内容は次のとおりです。

18.2.1 UNIXでのXDK for Cコンポーネントの依存性

この項で説明するCライブラリは、$ORACLE_HOME/libにあります。XDK for CおよびXDK for C++コンポーネントは、次のライブラリに含まれます。

libxml11.a

このライブラリに含まれるXKDコンポーネントは次のとおりです。

  • XMLパーサー: XML文書が整形式であるか、Document Type Definition (DTD)またはXML Schemaに対して妥当であるかどうか(オプション)を確認します。プログラム・アクセス用のDocument Object Model (DOM)およびSimple API for XML (SAX)インタフェースをサポートします。

  • Extensible Stylesheet Language Transformation (XSLT)プロセッサ: XML文書を別のXML文書に変換します。

  • XSLTコンパイラ: XSLTスタイルシートをコンパイルしてバイト・コードを生成します。生成したコードはXSLT Virtual Machine (XSLT VM)によって使用されます。

  • XSLTVM: XSLT変換エンジンです。

  • XMLスキーマ・プロセッサ: XMLファイルをXMLスキーマに対して検証します。

表18-1に、XDK for Cコンポーネント(UNIX)が依存するCommon Oracle Runtime Environment (CORE)ライブラリおよびGlobalization Supportライブラリを示します。

表18-1 Oracle XML Developer's Kit for Cコンポーネントの依存ライブラリ(UNIX)

コンポーネント ライブラリ 説明

COREライブラリ

libcore11.a

複数プラットフォームにわたる移植性を実現するCランタイム関数を含みます。

CORE動的リンク・ライブラリ

libcoresh11.so

UNIXプラットフォームでの動的リンクをサポートするCランタイム・ライブラリ。

Globalization Support共通ライブラリ

libnls11.a

8ビット・エンコーディングのUnicode (UTF-8)、16ビット・エンコーディングのUnicode (UTF-16)およびISO-8859-1キャラクタ・セットがサポートされます。このライブラリは、エンコーディング・ファイルおよびメッセージ・ファイルの場所を特定する際に環境に依存します。

Unicode用のGlobalization Supportライブラリ

libunls11.a

『Oracle Databaseグローバリゼーション・サポート・ガイド』で説明しているキャラクタ・セットをサポートします。このライブラリは、エンコーディング・ファイルおよびメッセージ・ファイルの場所を特定する際に環境に依存します。

18.2.2 UNIXでのXDK for C環境変数の設定

表18-2 に、XDK for Cコンポーネントを使用するときに必要なUNIX環境変数を示します。

表18-2 Oracle XML Developer's Kit for CコンポーネントのUNIXでの環境設定

変数 説明 設定

$ORA_NLS10

グローバリゼーション・サポート・キャラクタ・エンコーディング定義ファイルの場所を設定します。エンコーディング・ファイルは、Oracle Databaseで使用可能なキャラクタ・セットのサブセットを表します。

グローバリゼーション・サポート・データ・ファイルの場所を設定します。次のように変数を設定します。

setenv ORA_NLS10 $ORACLE_HOME/nls/data

$ORA_XML_MESG

XMLエラー・メッセージ・ファイルの場所を設定します。.msbで終わるファイルは、マシンで読取り可能な形式で、実行時に必要とされます。.msgで終わるファイルは、ユーザーが読取り可能な形式で、各エラーの原因および処理に関する説明が含まれます。

mesgディレクトリのパスを設定します。次に例を示します。

setenv ORA_XML_MESG $ORACLE_HOME/xdk/mesg

$PATH

XDK for C実行可能ファイルの場所を設定します。

次のようにPATHを設定します。

setenv PATH ${PATH}:${ORACLE_HOME}/bin

18.2.3 UNIXでのXDK for C実行時環境のテスト

表18-3に示すいずれかのユーティリティを実行して、UNIX実行時環境でXDK for Cをテストできます。

表18-3 Oracle XML Developer's Kit for C/C++ユーティリティ(UNIX)

実行可能ファイル ディレクトリ 説明

schema

$ORACLE_HOME/bin

C XMLスキーマ・バリデータ

関連項目: 「C XML Schema Processorコマンドライン・ユーティリティの使用」

xml

$ORACLE_HOME/bin

C XMLパーサー

関連項目: 「C XML Parserコマンドライン・ユーティリティの使用」

xmlcg

$ORACLE_HOME/bin

C++ Class Generator

関連項目: 「XML C++ Class Generatorコマンドライン・ユーティリティの使用」

xvm

$ORACLE_HOME/bin

C XVMプロセッサ

関連項目: 「XVM Processorコマンドライン・ユーティリティの使用」

オプションを付けないでこれらのユーティリティを実行すると、使用方法のヘルプが表示されます。詳細な使用方法の情報を表示するには、-hhフラグを付けてユーティリティを実行します。

18.2.4 UNIXでのXDK Cコンパイル時環境の設定とテスト

表18-4 に、XDK for Cコンポーネントのコンパイルに必要なヘッダー・ファイルを示します。これらのファイルは、$ORACLE_HOME/xdk/includeにあります。コードをコンパイルする前に、実行時環境を設定する必要があります。

表18-4 Oracle XML Developer's Kit for Cコンパイル時環境のヘッダー・ファイル

ヘッダー・ファイル 説明

oratypes.h

Oracle Cプライベート・データ型をインクルードします。

oraxml.h

Oracle9i XML Open Reporting Application (ORA)データ型およびlibxml.aに含まれるパブリックなORA APIをインクルードします(下位互換性のみを目的としています)。かわりにxml.hを使用してください。

oraxmlcg.h

C++ Class Generator用のC APIをインクルードします(下位互換性のみを目的としています)。

oraxsd.h

Oracle9i XMLスキーマ定義(XSD)バリデータのデータ型およびアプリケーション・プログラミング・インタフェース(API)をインクルードします(下位互換性のみを目的としています)。

xml.h

Oracle Call Interface (OCI)経由で使用するか単独で使用するかにかかわらず、統合されたDOM APIを透過的に処理します。非推奨となったoraxml.hに置き換わります。

xmlerr.h

XMLエラーとエラーの番号をインクルードします。

xmlotn.h

単独でコンパイルするか、OCIを使用するかに応じて、その他のヘッダーをインクルードします。

xmlproc.h

libxml11.aのOracle XMLデータ型とXMLパブリック・パーサーのAPIをインクルードします。

xmlsch.h

Oracle XSDバリデータのパブリックAPIをインクルードします。

xmlptr.h

現在はマニュアルでの説明もサポートもされていない、XPointerのデータ型とAPIをインクルードします。

xmlxsl.h

XSLTプロセッサのデータ型とパブリックAPIをインクルードします。

xmlxvm.h

XSLTコンパイラとVMのデータ型とパブリックAPIをインクルードします。

18.2.4.1 UNIXでのXDK for Cコンパイル時環境のテスト

コンパイル時環境でXDK for Cをテストする最も簡単な方法は、Oracle Database CDではなくExamplesメディアにあるサンプル・プログラムに対して、makeユーティリティを実行することです。デモをインストールすると、$ORACLE_HOME/xdk/demo/cに配置されます。同じディレクトリにあるREADMEに、コンパイルの手順と使用上の注意が示されています。

サンプル・プログラムをビルドし、実行します。そのためには、システム・プロンプトで次のコマンドを実行します。

cd $ORACLE_HOME/xdk/demo/c
make

18.2.5 UNIXでのXDK for Cコンポーネントのバージョンの検証

使用しているXDKのバージョンを取得するには、ディレクトリを$ORACLE_HOME/libに移動し、次のコマンドを実行します。

strings libxml11.a | grep -i developers

18.3 XDK Cコンポーネント用のWindows環境の構成

内容は次のとおりです。

18.3.1 WindowsでのXDK for Cコンポーネントの依存性

この項で説明するCライブラリは、%ORACLE_HOME%/libにあります。XDK for Cコンポーネントは、次のライブラリに含まれます。

libxml11.dll

このライブラリに含まれるXDKコンポーネントは次のとおりです。

  • XMLパーサー

  • XSLTプロセッサ

  • XSLTコンパイラ

  • XSLT VM

  • XML Schema Processor

表18-5に、XDK for Cコンポーネント(Windows)が依存するOracleのCOREライブラリおよびGlobalization Supportライブラリを示します。

表18-5 Oracle XML Developer's Kit for Cコンポーネントの依存ライブラリ(Windows)

コンポーネント ライブラリ 説明

COREライブラリ

libcore11.dll

複数プラットフォームにわたる移植性を実現するランタイム関数を含みます。

Globalization Support共通ライブラリ

libnls11.dll

UTF-8、UTF-16およびISO-8859-1のキャラクタ・セットをサポートします。このライブラリは、エンコーディング・ファイルおよびメッセージ・ファイルを見つける際に環境に依存します。

Unicode用のGlobalization Supportライブラリ

libunls11.dll

『Oracle Databaseグローバリゼーション・サポート・ガイド』で説明しているキャラクタ・セットをサポートします。このライブラリは、エンコーディング・ファイルおよびメッセージ・ファイルを見つける際に環境に依存します。

18.3.2 WindowsでのXDK for C環境変数の設定

表18-6 に、XDK for Cコンポーネントを使用するときに必要なWindows環境変数を示します。

表18-6 Oracle XML Developer's Kit for CコンポーネントのWindowsでの環境設定

変数 説明 設定

%ORA_NLS10%

グローバリゼーション・サポート・キャラクタ・エンコーディング定義ファイルの場所を設定します。エンコーディング・ファイルは、Oracle Databaseで使用可能なキャラクタ・セットのサブセットを表します。

この変数には、グローバリゼーション・サポート・データ・ファイルの場所を設定します。次のように変数を設定します。

set ORA_NLS10=%ORACLE_HOME%\nls\data

%ORA_XML_MESG%

XMLエラー・メッセージ・ファイルの場所を設定します。.msbで終わるファイルは、マシンで読取り可能な形式で、実行時に必要とされます。.msgで終わるファイルは、ユーザーが読取り可能な形式で、各エラーの原因および処理に関する説明が含まれます。

mesgディレクトリのパスを設定します。次に例を示します。

set ORA_XML_MESG=%ORACLE_HOME%\xdk\mesg 

%PATH%

XDK for Cのデータ定義言語(DLL)および実行可能ファイルの場所を設定します。

次のようにPATHを設定します。

path %path%;%ORACLE_HOME%\bin

18.3.3 WindowsでのXDK for C実行時環境のテスト

表18-7に示すいずれかのユーティリティを実行して、Windows実行時環境でXDKをテストできます。

例18-7 Oracle XML Developer's Kit for C/C++ユーティリティ(Windows)

実行可能ファイル ディレクトリ 説明

schema.exe

%ORACLE_HOME%\bin

C XMLスキーマ・バリデータ

関連項目: 「C XML Schema Processorコマンドライン・ユーティリティの使用」

xml.exe

%ORACLE_HOME%\bin

C XMLパーサー

関連項目: 「C XML Parserコマンドライン・ユーティリティの使用」

xmlcg.exe

%ORACLE_HOME%\bin

C++ Class Generator

関連項目: 「XML C++ Class Generatorコマンドライン・ユーティリティの使用」

xvm.exe

%ORACLE_HOME%\bin

C XVMプロセッサ

関連項目: 「XVM Processorコマンドライン・ユーティリティの使用」

オプションを付けないでこれらのユーティリティを実行すると、使用方法のヘルプが表示されます。詳細な使用方法の情報を表示するには、-hhフラグを付けてユーティリティを実行します。

18.3.4 WindowsでのXDK for Cコンパイル時環境の設定とテスト

「UNIXでのXDK Cコンパイル時環境の設定とテスト」表18-4に、WindowsでのCコンポーネントのコンパイルに必要なヘッダー・ファイルを示しています。UNIXのインストールとWindowsのインストールの両方で、相対ファイル名は同じです。

Windowsでは、ヘッダー・ファイルは%ORACLE_HOME%\xdk\includeにあります。コードをコンパイルする前に、実行時環境を設定する必要があります。

18.3.4.1 WindowsでのXDK for Cコンパイル時環境のテスト

デモ・プログラムをコンパイルすることによって、コンパイル時環境でXDK for Cをテストできます。Oracle Database Examplesメディアからインストールしたデモ・プログラムは、%ORACLE_HOME%\xdk\demo\cにあります。同じディレクトリにあるREADMEファイルに、コンパイルの手順と使用上の注意が示されています。デモ・プログラムをコンパイルする前に、「WindowsでのMake.batファイルの編集」の説明に従ってMake.batファイルを編集してください。

18.3.4.1.1 WindowsでのMake.batファイルの編集

%ORACLE_HOME%\xdk\demo\cフォルダの各サブフォルダに、Make.batファイルがあります。ライブラリおよびヘッダー・ファイルのパスをCOMPILEコマンドに追加して、各フォルダのMake.batファイルを更新する必要があります。/libpath:%ORACLE_HOME%\libですでにCライブラリが指定されているので、:LINKセクションのパスは編集する必要がありません。例18-2Make.batファイルのセクションでは、追加する必要があるパスを太字のテキストで示しています。

例18-2 Oracle XML Developer's Kit for CのMake.batファイルの編集(Windows)

: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 -I%ORACLE_HOME%\xdk\include %filename%.c
goto :EOF
 
:LINK 
set filename=%1
link %link_dbg% /out:..\..\..\..\bin\%filename%.exe 
/libpath:%ORACLE_HOME%\lib /libpath:..\..\..\..\lib 
%filename%.obj oraxml10.lib user32.lib kernel32.lib msvcrt.lib ADVAPI32.lib 
oldnames.lib winmm.lib
18.3.4.1.2 WindowsでのXDK for Cコンパイラ・パスの設定

デモ用make.batファイルでは、cl.exeコンパイラの使用を想定しています。このコンパイラは、Microsoft .NET Framework Software Development Kit(SDK)に含まれ、無償で入手できます。

Windows XPでcl.exeコンパイラのパスを設定するには、次の手順を実行します。

  1. 「スタート」メニュー→「設定」「コントロール パネル」を選択します。
  2. 「システム」をダブルクリックします。
  3. 「システムのプロパティ」ダイアログ・ボックスで、「詳細」タブを選択し、「環境変数」をクリックします。
  4. 「システム環境変数」リストで「Path」を選択し、「編集」をクリックします。
  5. cl.exe のパスを%PATH%変数に追加し、「OK」をクリックします。

サンプル・プログラムをビルドし、実行します。そのためには、システム・プロンプトで次のコマンドを実行します。

cd $ORACLE_HOME/xdk/demo/c
make

18.3.5 Microsoft Visual StudioでのXDK for CコンポーネントとVisual C++の使用

Visual C++テンプレートでプロジェクトを設定し、XDKに付属しているデモに使用できます。

18.3.5.1 Visual C++でのプロジェクト・パスの設定(Windows)

プロジェクトのパスを設定するには、次の手順を実行します。

  1. Visual C++でプロジェクトをオープンし、プロジェクト用の*.cファイルをインクルードします。
  2. 「Project」メニューに移動して「Properties」を選択します。
  3. Propertyページが表示されたら、「Configuration Properties」を展開して「VC++ Directories」を選択します。
  4. 右側の「General」の下で「Include Directories」を選択します。

    図18-1 プロパティ・ページ

    図18-1の説明が続きます
    「図18-1 プロパティ・ページ」の説明
  5. 行の末尾の矢印をクリックして、<Edit...>を示す2番目の行を選択します。
  6. Include Directoriesウィンドウが表示されたら、ツール・バーから「New Line」をクリックして図18-2の例に示すようにインクルード・パス%ORACLE_HOME%\xdk\includeを入力し、「OK」をクリックします。

図18-2 Visual C++でのインクルード・パスの設定

図18-2の説明が続きます
「図18-2 Visual C++でのインクルード・パスの設定」の説明

18.3.5.2 Visual C++でのライブラリ・パスの設定(Windows)

プロジェクトのライブラリ・パスを設定するには、次の手順を実行します。

  1. Visual C++でプロジェクトをオープンし、プロジェクト用の*.cファイルをインクルードします。
  2. 「Project」メニューに移動して「Properties」を選択します。
  3. Propertyページが表示されたら、「Configuration Properties」を展開して「VC++ Directories」を選択します。
  4. 右側の「General」の下で「Library Directories」を選択します。
  5. 行の末尾の矢印をクリックして、<Edit...>を示す2番目の行を選択します。
  6. Library Directoriesウィンドウが表示されたら、ツール・バーから「New Line」をクリックして図18-3の例に示すようにライブラリ・パス%ORACLE_HOME%\libを入力し、「OK」をクリックします。

    図18-3 Visual C++での静的ライブラリ・パスの設定

    図18-3の説明が続きます
    「図18-3 Visual C++での静的ライブラリ・パスの設定」の説明
  7. %ORACLE_HOME%\lib内の静的ライブラリのパスを設定した後、「Project」メニューに移動して「Properties」を選択します。
  8. Propertyページで、「Configuration Properties」の下で「Linker」を選択して展開し、「Input」を選択します。
  9. 「Additional Dependencies」を選択して、行の末尾の矢印をクリックします。<Edit...>を示す2番目の行を選択します。
  10. 追加の依存ファイル、oraxml9.liboraxmlg9.libおよびoraxsd9.lib図18-4に示すように入力して、「OK」をクリックします。

    図18-4 Visual C/C++プロジェクトでのライブラリ名の設定

    図18-4の説明が続きます
    「図18-4 Visual C/C++プロジェクトでのライブラリ名の設定」の説明

18.4 統合C APIの概要

統合C APIは、XDK for CおよびOracle XML DBの両方で必要とされる機能を統合したプログラム・インタフェースです。このAPIは、主にXSLTおよびXMLスキーマで使用されます。

表18-4に示すように、統合C APIはxml.hヘッダー・ファイルで宣言します。表18-8に、XDK for C APIの概要を示します。ドキュメントの詳細は、『Oracle Database XML C APIリファレンス』を参照してください。

表18-8 Oracle XML Developer's Kit for C APIの概要

パッケージ 用途

コールバックAPI

XMLコールバックの関数(または関数ポインタ)を宣言するマクロを定義します。

DOM API

DOMを使用してXML文書を解析および操作します。このAPIはDOM 2.0仕様にできるだけ準拠していますが、オブジェクト指向のDOM仕様からフラットなCの名前空間へマッピングする際に、一部の名前を変更します。たとえば、オーバーロードされたgetName()メソッドをgetAttrName()に変更します。

範囲API

Rangeオブジェクトを作成および操作します。

SAX API

SAXを使用したイベントベースのXML解析を有効にします。

スキーマAPI

複数のXMLスキーマ文書から、特定のインスタンス・ドキュメントを検証するために使用できる単一のスキーマを作成します。

横断API

DOMツリーの文書の検索とナビゲーションを有効にします。

XML API

XMLデータの読取り方法およびアプリケーションに提供する必要がある情報について、XMLプロセッサを定義します。

XPath API

XPathに関連するタイプおよびインタフェースを処理します。

XPointer API

XML文書内のノードの場所を特定します。

XSLT API

XSL処理を実行します。

XSLTVM API

コンパイル済のXSLTコードを実行できる仮想マシンを実装します。

このAPIは、準拠するコンテキストによって関数の統合を実現します。最上位のXMLコンテキスト(xmlctx)は、連動するXMLコンポーネント間で共通の情報を共有します。このコンテキストは次のような情報を定義します。

  • データ・エンコーディング

  • エラー・メッセージ言語

  • 下位の割当てコールバック

アプリケーションでは、DOMまたはSAXインタフェースを使用して文書を解析し、プログラム・アクセスを提供する前に、この情報が必要です。

XDK for CおよびOracle XML DBのどちらにおいても、最上位コンテキストおよびサービス・コンテキストに対し、異なる起動およびメモリー解放関数が必要です。初期化関数は実装固有の引数を取り、準拠するコンテキストを戻します。

準拠するコンテキストを使用すると、統合が可能です。準拠するコンテキストとは、戻されたコンテキストがxmlctxで始まる必要があることを意味します。この標準ヘッダーの後に、実装固有の追加部分が続く場合があります。

アプリケーションでは、xmlctxを取得した後は、統合されたDOMの起動を使用し、すべての起動においてxmlctxを最初の引数として使用します。

18.5 XDK for Cコンポーネントのグローバリゼーション・サポート

XDK for C Parserでは、300を超えるIANAキャラクタ・セットがサポートされています。サポートされているキャラクタ・セットには、「XDK for Cがサポートするキャラクタ・セット」に示したものが含まれます。

キャラクタ・セットを使用する場合の考慮事項を次に示します。

  • 他のXMLパーサーとの相互運用性を考慮し、Internet Assigned Numbers Authority (IANA)キャラクタ・セット名を使用することをお薦めします。

  • XMLパーサーでサポートが必須とされているのはUTF-8とUTF-16のみであるため、これらのキャラクタ・セットを使用することをお薦めします。

  • デフォルトの入力エンコーディング(インコーディング)はUTF-8です。入力文書のエンコーディングが(HTTPキャラクタ・セット、バイト・オーダー・マーク(BOM)、XMLDeclなどによって)自明ではない場合は、デフォルトの入力エンコーディングが想定されます。シングルバイト文字セット(US-ASCII、ISO 8859文字セットのいずれか)のみを使用している場合、シングルバイトのパフォーマンスが最もよいため、明示的にデフォルトのエンコーディングを設定することをお薦めします。フラグXML_FLAG_FORCE_INCODINGは、入力文書には常にデフォルトの入力エンコーディングを適用することを指定します。この場合、BOMまたはXMLDeclは無視されます。ただし、プロトコル宣言(HTTP文字セットなど)は常にサポートされます。

  • DOMおよびSAXのデータ・エンコーディング(アウトコーディング)は、慎重に選択してください。シングルバイト・エンコーディングは最速ですが、表示できる文字のセットは非常に限られています。次に高速なのはUnicode (UTF-16)で、最も遅いのは、UTF-8などのマルチバイト・エンコーディングです。入力データのアウトコーディングへの変換によりデータが失われると、エラーが発生します。最大限の効用を得るには、Unicodeベースのアウトコーディングを使用してください。アウトコーディングを指定しないと、デフォルトは、解析された最初のドキュメントのインコーディングに設定されます。