8 C++用のXPath APIパッケージ

C++用のXPathパッケージには、XPathのデータ型、CompProcessorメソッド、Compilerメソッド、NodeSetメソッド、Processorメソッド、XPathExceptionメソッド、XPathObjectメソッドなど、XPathの処理に関連のある型およびインタフェースが含まれています。

XPathのデータ型

表8-1XPathパッケージのデータ型の概要を示します。

表8-1 データ型の概要: XPathパッケージ

データ型 説明

XPathCompIdType

XPathコンパイラの識別子を定義します。

XPathObjType

XPath 1.0に基づいた実装のオブジェクト型を定義します。

XPathExceptionCode

XPathに関連する例外コードです。

XPathPrIdType

XPathプロセッサの識別子を定義します。

XPathCompIdType

XPathコンパイラの識別子を定義します。

定義

typedef enum XPathCompIdType {
   XvmXPathCompCXml = 1 
} XPathCompIdType;

XPathObjType

XPath 1.0に基づいた実装のオブジェクト型を定義します。

定義

typedef enum XPathObjType {
   XPOBJ_TYPE_UNKNOWN = 0,
   XPOBJ_TYPE_NDSET   = 1,
   XPOBJ_TYPE_BOOL    = 2,
   XPOBJ_TYPE_NUM     = 3,
   XPOBJ_TYPE_STR     = 4
} XPathObjType;
 

XPathExceptionCode

XPathに関連する例外コードです。

定義

typedef enum XPathExceptionCode {
   XPATH_UNDEFINED_ERR = 0,
   XPATH_OTHER_ERR = 1 
} XPathExceptionCode;

XPathPrIdType

XPathプロセッサの識別子を定義します。

定義

typedef enum XPathPrIdType {      XPathPrCXml       = 1,      XvmPrCXml         = 2    } XPathPrIdType;

CompProcessorインタフェース

表8-2CompProcessorインタフェースで使用できるメソッドの概要を示します。

表8-2 CompProcessorメソッドの概要: XPathパッケージ

関数 概要

getProcessorId()

プロセッサのIDを取得します。

process()

指定したドキュメントに対してXPath式を評価します。

processWithBinXPath()

指定したドキュメントに対してコンパイルしたXPath式を評価します。

getProcessorId()

プロセッサのIDを取得します。

構文

virtual XPathPrIdType getProcessorId() const = 0;

戻り値

(XPathPrIdType)プロセッサのID

process()

プロセッサから継承されます。

構文

virtual XPathObject< Node>* process (
   InputSource* isrc_ptr,
   oratext* xpath_exp)
throw (XPathException) = 0;

パラメータ 説明
isrc_ptr

処理するインスタンス・ドキュメント

xpath_exp

XPATH式

戻り値

(XpathGenObject*) XPathオブジェクト

processWithBinXPath()

指定したドキュメントに対してコンパイルしたXPath式を評価します。

構文

virtual XPathObject< Node>* processWithBinXPath (
   InputSource* isrc_ptr, 
   ub2* bin_xpath)
throw (XPathException) = 0;
パラメータ 説明
isrc_ptr

処理するインスタンス・ドキュメント

bin_xpath

コンパイルしたXPATH式

戻り値

(XPathGenObject*)XPathオブジェクト

Compilerインタフェース

表8-3Compilerインタフェースで使用できるメソッドの概要を示します。

表8-3 Compilerメソッドの概要: XPathパッケージ

関数 概要

compile()

XPathをコンパイルし、コンパイルしたバイナリ表現を戻します。

getCompilerId()

コンパイラのIDを取得します。

compile()

XPathをコンパイルし、コンパイルしたバイナリ表現を戻します。

構文

virtual ub2* compile (
   oratext* xpath_exp)
throw (XPathException) = 0;
パラメータ 説明
xpath_exp

XPATH式

戻り値

(ub2) コンパイルしたバイナリ表現のXPath式。

getCompilerId()

コンパイラのIDを取得します。

構文

virtual XPathCompIdType getCompilerId() const = 0;

戻り値

(XPathCompIdType)コンパイラのID

NodeSetインタフェース

表8-4NodeSetインタフェースで使用できるメソッドの概要を示します。

表8-4 NodeSetメソッドの概要: XPathパッケージ

関数 概要

getNode()

インデックスを指定してノードを取得します。

getSize()

NodeSetのサイズを取得します。

getNode()

ノードへの参照を戻します。

構文

NodeRef< Node>* getNode(
   ub4 idx) const;

パラメータ 説明
idx

セット内のノードのインデックス

戻り値

(NodeRef) ノードへの参照。

getSize()

ノード・セットのサイズ。

構文

ub4 getSize() const;

戻り値

(ub4) ノード・セットのサイズ。

Processorインタフェース

表8-5Processorインタフェースで使用できるメソッドの概要を示します。

表8-5 Processorメソッドの概要: XPathパッケージ

関数 概要

getProcessorId()

プロセッサのIDを取得します。

process()

指定したドキュメントに対してXPath式を評価します。

getProcessorId()

プロセッサのIDを取得します。

構文

virtual XPathPrIdType getProcessorId() const = 0;

戻り値

(XPathPrIdType)プロセッサのID

process()

指定したドキュメントに対してXPath式を評価し、結果のXPathオブジェクトを戻します。

構文

virtual XPathObject< Node>* process (
   InputSource* isrc_ptr,
   oratext* xpath_exp)
throw (XPathException) = 0;
パラメータ 説明
isrc_ptr

処理するインスタンス・ドキュメント

xpath_exp

XPath式

戻り値

(XPathGenObject*)XPathオブジェクト

XPathExceptionインタフェース

表8-6XPathExceptionインタフェースで使用できるメソッドの概要を示します。

表8-6 XPathExceptionメソッドの概要: XPathパッケージ

関数 概要

getCode()

例外に埋め込まれたOracle XMLエラー・コードを取得します。

getMesLang()

エラー・メッセージの現在の言語(エンコーディング)を取得します。

getMessage()

Oracle XMLエラー・メッセージを取得します。

getXPathCode()

例外に埋め込まれたXPath例外のコードを取得します。

getCode()

XmlExceptionから継承された仮想メンバー関数です。

構文

virtual unsigned getCode() const = 0;

戻り値

(unsigned) 数値のエラー・コード(正常に終了した場合は0)。

getMesLang()

XmlExceptionから継承された仮想メンバー関数です。

構文

virtual oratext* getMesLang() const = 0;

戻り値

(oratext*) エラー・メッセージの現在の言語(エンコーディング)。

getMessage()

XmlExceptionから継承された仮想メンバー関数です。

構文

virtual oratext* getMessage() const = 0;

戻り値

(oratext *)エラー・メッセージ

getXPathCode()

これは実行時の例外状況の、XPathExceptionCodeで定義されたXPathプロセッサおよびコンパイラの例外コードを戻す、実装によって定義されるメンバー関数のプロトタイプを定義する仮想メンバー関数です。

構文

virtual XPathExceptionCode getXPathCode() const = 0;

戻り値

(XPathExceptionCode)例外コード

XPathObjectインタフェース

表8-7XPathObjectインタフェースで使用できるメソッドの概要を示します。

表8-7 XPathObjectメソッドの概要: XPathパッケージ

関数 概要

XPathObject()

コピー・コンストラクタです。

getNodeSet()

ノード・セットを取得します。

getObjBoolean()

オブジェクトからブール値を取得します。

getObjNumber()

オブジェクトから数値を取得します。

getObjString()

オブジェクトから文字列を取得します。

getObjType()

オブジェクトから型を取得します。

XPathObject()

コピー・コンストラクタです。

構文

XPathObject( 
   XPathObject< Node>& src);
パラメータ 説明
src

コピーするオブジェクトに対する参照

戻り値

(XPathObject)新しいオブジェクト

getNodeSet()

ノード・セットを取得します。

構文

NodeSet< Node>* getNodeSet() const;

getObjBoolean()

オブジェクトからブール値を取得します。

構文

boolean getObjBoolean() const;

getObjNumber()

オブジェクトから数値を取得します。

構文

double getObjNumber() const;

getObjString()

オブジェクトから文字列を取得します。

構文

oratext* getObjString() const;

getObjType()

オブジェクトから型を取得します。

構文

XPathObjType getObjType() const;