表5-5にSAXHandler
インタフェースで使用できるメソッドの概要を示します。
表5-5 SAXHandlerメソッドの概要: パーサー・パッケージ
関数 | 概要 |
---|---|
|
CDATAの通知を受け取ります。 |
|
XML宣言の通知を受け取ります。 |
|
属性の宣言の通知を受け取ります。 |
|
文字データの通知を受け取ります。 |
|
コメントの通知を受け取ります。 |
|
要素の宣言の通知を受け取ります。 |
|
ドキュメントの終わりの通知を受け取ります。 |
|
要素の終わりの通知を受け取ります。 |
|
表記法宣言の通知を受け取ります。 |
|
解析対象エンティティ宣言の通知を受け取ります。 |
|
処理命令の通知を受け取ります。 |
|
ドキュメントの始まりの通知を受け取ります。 |
|
要素の始まりの通知を受け取ります。 |
|
要素の始まりの通知を受け取ります(名前空間を認識)。 |
|
解析対象外のエンティティ宣言の通知を受け取ります。 |
|
空白文字の通知を受け取ります。 |
このイベントはCDATAをTextと異なるものとして処理します。データがデータ・エンコーディングに追加され、長さがバイトではなく文字数で戻されます。これはOracleの拡張機能です。
構文
virtual void CDATA( oratext* data, ub4 size) = 0;
パラメータ | 説明 |
---|---|
data |
CDATAへのポインタ |
size |
CDATAのサイズ |
このイベントはXML宣言(XMLDecl
)をマークします。startDocument
イベントが常に最初に処理され、このイベントは2番目のイベントになります。エンコーディング・フラグにより、エンコーディングが指定されているかどうかが示されます。スタンドアロン・フラグの場合、指定されていない場合は-1が戻されます。それ以外の場合、FALSE
は0
、TRUE
は1が戻されます。このメンバー関数はOracle拡張機能です。
構文
virtual void XMLDecl( oratext* version, boolean is_encoding, sword standalone) = 0;
パラメータ | 説明 |
---|---|
version |
XMLDeclのバージョン文字列 |
is_encoding |
エンコーディングが指定されているかどうか |
standalone |
スタンドアロン値フラグの値 |
このイベントはDTDの属性宣言をマークします。Oracle拡張機能であり、SAX標準ではありません。
構文
virtual void attributeDecl( oratext* attr_name, oratext *name, oratext *content) = 0;
パラメータ | 説明 |
---|---|
attr_name |
|
name |
|
content |
属性宣言の本体 |
このイベントは文字データをマークします。
構文
virtual void characters( oratext* ch, ub4 size) = 0;
パラメータ | 説明 |
---|---|
ch |
データへのポインタ |
size |
データの長さ |
このイベントはXML文書のコメントをマークします。コメントのデータはデータ・エンコーディングに追加されます。Oracle拡張機能であり、SAX標準ではありません。
構文
virtual void comment( oratext* data) = 0;
パラメータ | 説明 |
---|---|
data |
コメントのデータ |
このイベントはDTDの要素宣言をマークします。Oracle拡張機能であり、SAX標準ではありません。
構文
virtual void elementDecl( oratext *name, oratext *content) = 0;
パラメータ | 説明 |
---|---|
name |
要素名 |
content |
要素の内容 |
ドキュメントの終わりの通知を受け取ります。
構文
virtual void endDocument() = 0;
このイベントは要素の終わりをマークします。名前は要素のtagName
(名前空間を認識する要素の場合は修飾名の場合があります)で、データ・エンコーディングに含まれます。
構文
virtual void endElement( oratext* name) = 0;
このイベントはDTDの表記法の宣言をマークします。表記法名、公開識別子、およびシステム識別子はすべてデータ・エンコーディングに含まれます。識別子はいずれもオプションで、NULL
でもかまいません。
構文
virtual void notationDecl( oratext* name, oratext* public_id, oratext* system_id) = 0;
パラメータ | 説明 |
---|---|
name |
表記法名 |
public_id |
表記法の公開識別子 |
sysem_id |
表記法のシステム識別子 |
DTDの解析対象のエンティティ宣言をマークします。解析対象エンティティの名前、公開識別子、システム識別子および表記法名がすべてデータ・エンコーディングに追加されます。これはOracleの拡張機能です。
構文
virtual void parsedEntityDecl( oratext* name, oratext* value, oratext* public_id, oratext* system_id, boolean general) = 0;
パラメータ | 説明 |
---|---|
name |
エンティティ名 |
value |
内部エンティティの場合はエンティティの値 |
public_id |
エンティティの公開識別子 |
sysem_id |
エンティティのシステム識別子 |
general |
汎用エンティティかどうか(パラメータ・エンティティの場合はFALSE ) |
このイベントは処理命令をマークします。PIのターゲットとデータはデータ・エンコーディングに含まれます。ターゲットは必須ですが、データはNULL
でもかまいません。
構文
virtual void processingInstruction( oratext* target, oratext* data) = 0;
パラメータ | 説明 |
---|---|
target |
PIのターゲット |
data |
PIのデータ |
ドキュメントの始まりの通知を受け取ります。
構文
virtual void startDocument() = 0;
このイベントは要素の先頭を示します。
構文
virtual void startElement( oratext* name, NodeListRef< Node>* attrs_ptr) = 0;
パラメータ | 説明 |
---|---|
name |
要素名 |
attrs_ptr |
要素の属性のリスト |
このイベントは要素の先頭を示します。これは新しいSAX 2で、名前空間を認識することに注意してください。要素の修飾名、ローカル名、名前空間URIはすべての属性パートと同様に、データ・エンコーディングに含まれます。
構文
virtual void startElementNS( oratext* qname, oratext* local, oratext* ns_URI, NodeListRef< Node>* attrs_ptr) = 0;
パラメータ | 説明 |
---|---|
qname |
要素の修飾名 |
local |
要素の名前空間のローカル名 |
ns_URI |
要素の名前空間URI |
attrs_ref |
要素の属性のNodeList |
DTDの解析対象外エンティティ宣言をマークします。解析対象外のエンティティ名、公開識別子、システム識別子および表記法名はすべてデータ・エンコーディングに含まれます。
構文
virtual void unparsedEntityDecl( oratext* name, oratext* public_id, oratext* system_id, oratext* notation_name) = 0; };
パラメータ | 説明 |
---|---|
name |
エンティティ名 |
public_id |
エンティティの公開識別子 |
sysem_id |
エンティティのシステム識別子 |
notation_name |
エンティティの表記法名 |
このイベントは改行、行間のインデントなどの無視できる空白データをマークします。
構文
virtual void whitespace( oratext* data, ub4 size) = 0;
パラメータ | 説明 |
---|---|
data |
データへのポインタ |
size |
データの長さ |