203 DBMS_XMLPARSER
DBMS_XMLPARSER
を使用すると、XML文書の内容と構造にアクセスできます。XMLは、XML文書と呼ばれるデータ・オブジェクトのクラスを記述します。それらを処理するコンピュータ・プログラムの動作を記述する場合もあります。XML文書の構成は、SGMLドキュメントに準拠しています。
XML文書は、エンティティと呼ばれる記憶単位で構成され、このエンティティには解析済または未解析のデータが含まれています。解析済データは文字で構成され、一部は文字データを、他の一部はマークアップを形成します。マークアップは、ドキュメントの記憶域レイアウトと論理構造の記述をエンコードします。XMLによって、記憶域レイアウトと論理構造に対して制約を加えるメカニズムが提供されます。
XML文書の読込み、その内容と構造へのアクセスには、XMLプロセッサと呼ばれるソフトウェア・モジュールが使用されます。XMLプロセッサは、別のモジュール(アプリケーション)にかわって処理を実行しているとみなされます。XMLプロセッサ(またはパーサー)のPL/SQL実装は、W3C XML仕様REC-xml-19980210に準拠しており、XMLデータの読込み方法とアプリケーションに提供する情報に関して、XMLプロセッサに要求される動作が含まれています。
PL/SQL XMLパーサーのデフォルト動作は、DOM APIからアクセス可能な解析ツリーを構築すること、DTDが見つかった場合は妥当性チェックを行うこと(DTDが見つからない場合は妥当性チェックを行いません)、エラー・ログが指定されている場合はエラーを記録することです。解析に失敗すると、アプリケーション・エラーが発生します。
この章のトピックは、次のとおりです:
203.1 DBMS_XMLPARSERのセキュリティ・モデル
DBMS_XMLPARSER
パッケージは、XDB
が所有しているため、SYS
またはXDB
によって作成される必要があります。EXECUTE
権限は、PUBLIC
に付与されます。
このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
203.2 DBMS_XMLPARSERサブプログラムの要約
この表は、DBMS_XMLPARSER
サブプログラムを示し、簡単に説明しています。
表203-1 DBMS_XMLPARSERパッケージのサブプログラム
メソッド | 説明 |
---|---|
パーサー・オブジェクトを解放します。 |
|
解析されたDTDを取得します。 |
|
DOM文書を取得します。 |
|
Oracle XML Parser for PL/SQLのリリース・バージョンを戻します。 |
|
妥当性チェック・モードを戻します。 |
|
新規のパーサー・インスタンスを戻します。 |
|
指定のURLおよびファイルに格納されたXMLを解析します。 |
|
指定のバッファに格納されたXMLを解析します。 |
|
指定のCLOBに格納されたXMLを解析します。 |
|
指定のURLおよびファイルに格納されたDTDを解析します。 |
|
指定のバッファに格納されたDTDを解析します。 |
|
指定のCLOBに格納されたDTDを解析します。 |
|
相対URLの解決に使用するベース・ディレクトリを設定します。 |
|
DTDを設定します。 |
|
指定したファイルに送信するエラーを設定します。 |
|
空白の保持モードを設定します。 |
|
妥当性チェック・モードを設定します。 |
|
警告をオンまたはオフにします。 |
203.2.1 FREEPARSER
このプロシージャは、パーサー・オブジェクトを解放します。
構文
PROCEDURE freeParser(
p Parser);
パラメータ
表203-2 FREEPARSERプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
203.2.2 GETDOCTYPE
GETDOCTYPE
ファンクションは、解析済のDTDを戻します。このファンクションをコールできるのは、DTDの解析後のみです。
構文
FUNCTION getDoctype( p Parser) RETURN DOMDocumentType;
パラメータ
表203-3 GETDOCTYPEファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
203.2.3 GETDOCUMENT
GETDOCUMENT
は、パーサーによって作成されたDOMツリー・ドキュメントのドキュメント・ノードを戻します。このファンクションをコールできるのは、ドキュメントの解析後のみです。
構文
FUNCTION GETDOCUMENT(
p Parser)
RETURN DOMDocument;
パラメータ
表203-4 GETDOCUMENTファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
203.2.4 GETRELEASEVERSION
GETRELEASEVERSION
は、Oracle XML Parser for PL/SQLのリリース・バージョンを戻します。
構文
FUNCTION getReleaseVersion
RETURN VARCHAR2;
203.2.5 GETVALIDATIONMODE
GETVALIDATIONMODE
ファンクションは、検証モードを取得します(検証する場合はTRUE
、それ以外の場合はFALSE
)。
構文
FUNCTION GETVALIDATIONMODE(
p Parser)
RETURN BOOLEAN;
パラメータ
表203-5 GETVALIDATIONMODEファンクションのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
203.2.6 NEWPARSER
このファンクションは、新規のパーサー・インスタンスを戻します。
このファンクションは、他の解析メソッドを使用する必要がある場合、パーサーのデフォルト動作の変更前にコールする必要があります。
構文
FUNCTION newParser
RETURN Parser;
203.2.7 PARSE
PARSE
は、指定のURLおよびファイルに格納されたXMLを解析します。解析に失敗すると、アプリケーション・エラーが発生します。
このメソッドの指定方法は、次の表のとおりです。
構文
ファンクションの場合。これは、パーサーのデフォルト動作が受入れ可能で、URLまたはファイルの解析のみが必要な場合に使用します。作成されたDOM文書を戻します。
FUNCTION parse(url VARCHAR2)
RETURN DOMDocument;
プロシージャの場合。パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。
PROCEDURE parse(
p Parser,
url VARCHAR2);
パラメータ
表203-6 PARSEサブプログラムのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
解析するURLおよびファイルの完全パス。 |
|
|
パーサー・インスタンス。 |
203.2.8 PARSEBUFFER
PARSEBUFFER
は、指定のバッファに格納されたXMLを解析します。
パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSEBUFFER(
p Parser,
doc VARCHAR2);
パラメータ
表203-7 PARSEBUFFERプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
解析するXML文書のバッファ。 |
203.2.9 PARSECLOB
PARSECLOB
は、指定のCLOBに格納されたXMLを解析します。
パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSECLOB(
p Parser,
doc CLOB);
パラメータ
表203-8 PARSECLOBプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
解析するXML文書のバッファ。 |
203.2.10 PARSEDTD
PARSEDTD
は、指定のURLおよびファイルに格納されたDTDを解析します。
パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSEDTD(
p Parser,
url VARCHAR2,
root VARCHAR2);
パラメータ
表203-9 PARSEDTDプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
解析するURLおよびファイルの完全パス。 |
|
|
ルート要素の名前。 |
203.2.11 PARSEDTDBUFFER
PARSEDTDBUFFER
は、指定のバッファに格納されたDTDを解析します。
パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSEDTDBUFFER(
p Parser,
dtd VARCHAR2,
root VARCHAR2);
パラメータ
表203-10 PARSEDTDBUFFERプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
解析するDTDのバッファ。 |
|
|
ルート要素の名前。 |
203.2.12 PARSEDTDCLOB
PARSEDTDCLOB
は、指定のCLOBに格納されたDTDを解析します。
パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSEDTDCLOB(
p Parser,
dtd CLOB,
root VARCHAR2);
パラメータ
表203-11 PARSEDTDCLOBプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
解析するDTDのCLOB。 |
|
|
ルート要素の名前。 |
203.2.13 SETBASEDIR
このプロシージャは、相対URLの解決に使用するベース・ディレクトリを設定します。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE setBaseDir(
p Parser,
dir VARCHAR2);
パラメータ
表203-12 SETBASEDIRプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
(IN) |
ベース・ディレクトリとして使用するディレクトリ。 |
203.2.14 SETDOCTYPEプロシージャ
このプロシージャは、検証のためにパーサーが使用するDTDを設定します。ドキュメントの解析前にコールする必要があります。
構文
PROCEDURE setDoctype(
p Parser,
dtd DOMDocumentType);
パラメータ
表203-13 SETDOCTYPEプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
設定するDTD。 |
203.2.15 SETERRORLOGプロシージャ
このプロシージャは、指定したファイルに送信するエラーを設定します。
構文
PROCEDURE setErrorLog(
p Parser,
fileName VARCHAR2);
パラメータ
表203-14 SETERRORLOGプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
エラー・ログとして使用するファイルの完全パス。 |
203.2.16 SETPRESERVEWHITESPACE
このプロシージャは、空白の保持モードを設定します。
構文
PROCEDURE setPreserveWhitespace(
p Parser,
yes BOOLEAN);
パラメータ
表203-15 SETPRESERVEWHITESPACEプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
設定するモード: 保持する場合は |
203.2.17 SETVALIDATIONMODE
このプロシージャは、検証モードを設定します。
構文
PROCEDURE setValidationMode(
p Parser,
yes BOOLEAN);
パラメータ
表203-16 SETVALIDATIONMODEプロシージャのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
パーサー・インスタンス。 |
|
|
設定するモード: 妥当性チェックを行う場合は |