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が見つからない場合は妥当性チェックを行いません)、エラー・ログが指定されている場合はエラーを記録することです。解析に失敗すると、アプリケーション・エラーが発生します。
この章では、次の項目について説明します。
関連項目: 『Oracle XML DB開発者ガイド』 |
表194-1 DBMS_XMLPARSERパッケージのサブプログラム
メソッド | 説明 |
---|---|
|
パーサー・オブジェクトを解放します。 |
|
解析されたDTDを取得します。 |
|
DOM文書を取得します。 |
|
Oracle XML Parser for PL/SQLのリリース・バージョンを戻します。 |
|
妥当性チェック・モードを戻します。 |
|
新規のパーサー・インスタンスを戻します。 |
|
指定のURLおよびファイルに格納されたXMLを解析します。 |
|
指定のバッファに格納されたXMLを解析します。 |
|
指定のCLOBに格納されたXMLを解析します。 |
|
指定のURLおよびファイルに格納されたDTDを解析します。 |
|
指定のバッファに格納されたDTDを解析します。 |
|
指定のCLOBに格納されたDTDを解析します。 |
|
相対URLの解決に使用するベース・ディレクトリを設定します。 |
|
DTDを設定します。 |
|
指定したファイルに送信するエラーを設定します。 |
|
空白の保持モードを設定します。 |
|
妥当性チェック・モードを設定します。 |
|
警告をオンまたはオフにします。 |
パーサー・オブジェクトを解放します。
構文
PROCEDURE freeParser( p Parser);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
解析済のDTDを戻します。このファンクションをコールできるのは、DTDの解析後のみです。
構文
FUNCTION getDoctype( p Parser) RETURN DOMDocumentType;
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
パーサーによって作成されたDOMツリー・ドキュメントのドキュメント・ノードを戻します。このファンクションをコールできるのは、ドキュメントの解析後のみです。
構文
FUNCTION GETDOCUMENT( p Parser) RETURN DOMDocument;
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
Oracle XML Parser for PL/SQLのリリース・バージョンを戻します。
構文
FUNCTION getReleaseVersion RETURN VARCHAR2;
妥当性チェック・モードを取得します。妥当性チェックを行う場合はTRUE
、妥当性チェックを行わない場合はFALSE
になります。
構文
FUNCTION GETVALIDATIONMODE( p Parser) RETURN BOOLEAN;
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
新規のパーサー・インスタンスを戻します。このファンクションは、他の解析メソッドを使用する必要がある場合、パーサーのデフォルト動作の変更前にコールする必要があります。
構文
FUNCTION newParser RETURN Parser;
指定のURLおよびファイルに格納されたXMLを解析します。解析に失敗すると、アプリケーション・エラーが発生します。このメソッドの指定方法は、次の表のとおりです。
構文 | 説明 |
---|---|
FUNCTION parse(
|
作成されたDOM文書を戻します。この構文は、パーサーのデフォルト動作が受入れ可能で、URLおよびファイルの解析のみが必要な場合に使用します。 |
PROCEDURE parse(
|
パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。 |
パラメータ | IN / OUT | 説明 |
---|---|---|
url |
(IN) |
解析するURLおよびファイルの完全パス。 |
p |
(IN) |
パーサー・インスタンス。 |
指定のバッファに格納されたXMLを解析します。パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSEBUFFER( p Parser, doc VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
doc |
(IN) |
解析するXML文書のバッファ。 |
指定のCLOBに格納されたXMLを解析します。パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSECLOB( p Parser, doc CLOB);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
doc |
(IN) |
解析するXML文書のバッファ。 |
指定のURLおよびファイルに格納されたDTDを解析します。パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSEDTD( p Parser, url VARCHAR2, root VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
url |
(IN) |
解析するURLおよびファイルの完全パス。 |
root |
(IN) |
ルート要素の名前。 |
指定のバッファに格納されたDTDを解析します。パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSEDTDBUFFER( p Parser, dtd VARCHAR2, root VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
dtd |
(IN) |
解析するDTDのバッファ。 |
root |
(IN) |
ルート要素の名前。 |
指定のCLOBに格納されたDTDを解析します。パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE PARSEDTDCLOB( p Parser, dtd CLOB, root VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
dtd |
(IN) |
解析するDTDのCLOB。 |
root |
(IN) |
ルート要素の名前。 |
相対URLの解決に使用するベース・ディレクトリを設定します。解析に失敗すると、アプリケーション・エラーが発生します。
構文
PROCEDURE setBaseDir( p Parser, dir VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
dir |
(IN) | ベース・ディレクトリとして使用するディレクトリ。 |
パーサーが妥当性チェックで使用するDTDを設定します。ドキュメントの解析前にコールする必要があります。
構文
PROCEDURE setDoctype( p Parser, dtd DOMDocumentType);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
dtd |
(IN) |
設定するDTD。 |
指定したファイルに送信するエラーを設定します。
構文
PROCEDURE setErrorLog( p Parser, fileName VARCHAR2);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
fileName |
(IN) |
エラー・ログとして使用するファイルの完全パス。 |
空白の保持モードを設定します。
構文
PROCEDURE setPreserveWhitespace( p Parser, yes BOOLEAN);
パラメータ | IN / OUT | 説明 |
---|---|---|
p |
(IN) |
パーサー・インスタンス。 |
yes |
(IN) |
設定するモード: 保持する場合はTRUE に、保持しない場合はFALSE に設定します。 |