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

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

8.1 XPathのデータ型

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

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

データ型 説明

XPathCompIdType

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

XPathObjType

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

XPathExceptionCode

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

XPathPrIdType

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

8.1.1 XPathCompIdType

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

定義

typedef enum XPathCompIdType {
   XvmXPathCompCXml = 1 
} XPathCompIdType;

8.1.2 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;
 

8.1.3 XPathExceptionCode

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

定義

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

8.1.4 XPathPrIdType

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

定義

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

8.2 CompProcessorインタフェース

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

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

関数 概要

getProcessorId()

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

process()

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

processWithBinXPath()

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

8.2.1 getProcessorId()

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

構文

virtual XPathPrIdType getProcessorId() const = 0;

戻り値

(XPathPrIdType)プロセッサのID

8.2.2 process()

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

構文

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

パラメータ 説明
isrc_ptr

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

xpath_exp

XPATH式

戻り値

(XpathGenObject*) XPathオブジェクト

8.2.3 processWithBinXPath()

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

構文

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

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

bin_xpath

コンパイルしたXPATH式

戻り値

(XPathGenObject*)XPathオブジェクト

8.3 Compilerインタフェース

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

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

関数 概要

compile()

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

getCompilerId()

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

8.3.1 compile()

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

構文

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

XPATH式

戻り値

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

8.3.2 getCompilerId()

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

構文

virtual XPathCompIdType getCompilerId() const = 0;

戻り値

(XPathCompIdType)コンパイラのID

8.4 NodeSetインタフェース

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

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

関数 概要

getNode()

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

getSize()

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

8.4.1 getNode()

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

構文

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

パラメータ 説明
idx

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

戻り値

(NodeRef) ノードへの参照。

8.4.2 getSize()

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

構文

ub4 getSize() const;

戻り値

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

8.5 Processorインタフェース

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

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

関数 概要

getProcessorId()

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

process()

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

8.5.1 getProcessorId()

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

構文

virtual XPathPrIdType getProcessorId() const = 0;

戻り値

(XPathPrIdType)プロセッサのID

8.5.2 process()

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

構文

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

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

xpath_exp

XPath式

戻り値

(XPathGenObject*)XPathオブジェクト

8.6 XPathExceptionインタフェース

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

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

関数 概要

getCode()

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

getMesLang()

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

getMessage()

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

getXPathCode()

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

8.6.1 getCode()

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

構文

virtual unsigned getCode() const = 0;

戻り値

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

8.6.2 getMesLang()

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

構文

virtual oratext* getMesLang() const = 0;

戻り値

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

8.6.3 getMessage()

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

構文

virtual oratext* getMessage() const = 0;

戻り値

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

8.6.4 getXPathCode()

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

構文

virtual XPathExceptionCode getXPathCode() const = 0;

戻り値

(XPathExceptionCode)例外コード

8.7 XPathObjectインタフェース

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

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

関数 概要

XPathObject()

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

getNodeSet()

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

getObjBoolean()

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

getObjNumber()

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

getObjString()

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

getObjType()

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

8.7.1 XPathObject()

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

構文

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

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

戻り値

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

8.7.2 getNodeSet()

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

構文

NodeSet< Node>* getNodeSet() const;

8.7.3 getObjBoolean()

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

構文

boolean getObjBoolean() const;

8.7.4 getObjNumber()

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

構文

double getObjNumber() const;

8.7.5 getObjString()

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

構文

oratext* getObjString() const;

8.7.6 getObjType()

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

構文

XPathObjType getObjType() const;