日本語PDF

209 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が見つからない場合は妥当性チェックを行いません)、エラー・ログが指定されている場合はエラーを記録することです。解析に失敗すると、アプリケーション・エラーが発生します。

この章のトピックは、次のとおりです:

209.1 DBMS_XMLPARSERのセキュリティ・モデル

DBMS_XMLPARSERパッケージは、XDBが所有しているため、SYSまたはXDBによって作成される必要があります。EXECUTE権限は、PUBLICに付与されます。

このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。

209.2 DBMS_XMLPARSERサブプログラムの要約

この表は、DBMS_XMLPARSERサブプログラムを示し、簡単に説明しています。

表209-1 DBMS_XMLPARSERパッケージのサブプログラム

メソッド 説明

FREEPARSER

パーサー・オブジェクトを解放します。

GETDOCTYPE

解析されたDTDを取得します。

GETDOCUMENT

DOM文書を取得します。

GETRELEASEVERSION

Oracle XML Parser for PL/SQLのリリース・バージョンを戻します。

GETVALIDATIONMODE

妥当性チェック・モードを戻します。

NEWPARSER

新規のパーサー・インスタンスを戻します。

PARSE

指定のURLおよびファイルに格納されたXMLを解析します。

PARSEBUFFER

指定のバッファに格納されたXMLを解析します。

PARSECLOB

指定のCLOBに格納されたXMLを解析します。

PARSEDTD

指定のURLおよびファイルに格納されたDTDを解析します。

PARSEDTDBUFFER

指定のバッファに格納されたDTDを解析します。

PARSEDTDCLOB

指定のCLOBに格納されたDTDを解析します。

SETBASEDIR

相対URLの解決に使用するベース・ディレクトリを設定します。

SETDOCTYPE

DTDを設定します。

SETERRORLOG

指定したファイルに送信するエラーを設定します。

SETPRESERVEWHITESPACE

空白の保持モードを設定します。

SETVALIDATIONMODE

妥当性チェック・モードを設定します。

SHOWWARNINGS

警告をオンまたはオフにします。

209.2.1 FREEPARSER

このプロシージャは、パーサー・オブジェクトを解放します。

構文

PROCEDURE freeParser(
    p Parser); 

パラメータ

表209-2 FREEPARSERプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

209.2.2 GETDOCTYPE

GETDOCTYPEファンクションは、解析済のDTDを戻します。このファンクションをコールできるのは、DTDの解析後のみです。

構文

FUNCTION getDoctype(
  p Parser)
RETURN DOMDocumentType; 

パラメータ

表209-3 GETDOCTYPEファンクションのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

209.2.3 GETDOCUMENT

GETDOCUMENTは、パーサーによって作成されたDOMツリー・ドキュメントのドキュメント・ノードを戻します。このファンクションをコールできるのは、ドキュメントの解析後のみです。

構文

FUNCTION GETDOCUMENT(
  p Parser)
RETURN DOMDocument; 

パラメータ

表209-4 GETDOCUMENTファンクションのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

209.2.4 GETRELEASEVERSION

GETRELEASEVERSIONは、Oracle XML Parser for PL/SQLのリリース・バージョンを戻します。

構文

FUNCTION getReleaseVersion
RETURN VARCHAR2;

209.2.5 GETVALIDATIONMODE

GETVALIDATIONMODEファンクションは、検証モードを取得します(検証する場合はTRUE、それ以外の場合はFALSE)。

構文

FUNCTION GETVALIDATIONMODE(
  p Parser)
RETURN BOOLEAN; 

パラメータ

表209-5 GETVALIDATIONMODEファンクションのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

209.2.6 NEWPARSER

このファンクションは、新規のパーサー・インスタンスを戻します。

このファンクションは、他の解析メソッドを使用する必要がある場合、パーサーのデフォルト動作の変更前にコールする必要があります。

構文

FUNCTION newParser 
RETURN Parser; 

209.2.7 PARSE

PARSEは、指定のURLおよびファイルに格納されたXMLを解析します。解析に失敗すると、アプリケーション・エラーが発生します。

このメソッドの指定方法は、次の表のとおりです。

構文

ファンクションの場合。これは、パーサーのデフォルト動作が受入れ可能で、URLまたはファイルの解析のみが必要な場合に使用します。作成されたDOM文書を戻します。

FUNCTION parse(url VARCHAR2)
RETURN DOMDocument;

プロシージャの場合。パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。

PROCEDURE parse(
  p Parser,
  url VARCHAR2);

パラメータ

表209-6 PARSEサブプログラムのパラメータ

パラメータ IN / OUT 説明

url

(IN)

解析するURLおよびファイルの完全パス。

p

(IN)

パーサー・インスタンス。

209.2.8 PARSEBUFFER

PARSEBUFFERは、指定のバッファに格納されたXMLを解析します。

パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。

構文

PROCEDURE PARSEBUFFER(
  p   Parser,
doc VARCHAR2); 

パラメータ

表209-7 PARSEBUFFERプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

doc

(IN)

解析するXML文書のバッファ。

209.2.9 PARSECLOB

PARSECLOBは、指定のCLOBに格納されたXMLを解析します。

パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。

構文

PROCEDURE PARSECLOB(
  p   Parser,
doc CLOB); 

パラメータ

表209-8 PARSECLOBプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

doc

(IN)

解析するXML文書のバッファ。

209.2.10 PARSEDTD

PARSEDTDは、指定のURLおよびファイルに格納されたDTDを解析します。

パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。

構文

PROCEDURE PARSEDTD(
  p     Parser,
  url   VARCHAR2,
  root  VARCHAR2); 

パラメータ

表209-9 PARSEDTDプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

url

(IN)

解析するURLおよびファイルの完全パス。

root

(IN)

ルート要素の名前。

209.2.11 PARSEDTDBUFFER

PARSEDTDBUFFERは、指定のバッファに格納されたDTDを解析します。

パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。

構文

PROCEDURE PARSEDTDBUFFER(
  p    Parser,
  dtd  VARCHAR2,
  root VARCHAR2); 

パラメータ

表209-10 PARSEDTDBUFFERプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

dtd

(IN)

解析するDTDのバッファ。

root

(IN)

ルート要素の名前。

209.2.12 PARSEDTDCLOB

PARSEDTDCLOBは、指定のCLOBに格納されたDTDを解析します。

パーサーのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。解析に失敗すると、アプリケーション・エラーが発生します。

構文

PROCEDURE PARSEDTDCLOB(
  p    Parser,
  dtd  CLOB,
  root VARCHAR2);

パラメータ

表209-11 PARSEDTDCLOBプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

dtd

(IN)

解析するDTDのCLOB。

root

(IN)

ルート要素の名前。

209.2.13 SETBASEDIR

このプロシージャは、相対URLの解決に使用するベース・ディレクトリを設定します。解析に失敗すると、アプリケーション・エラーが発生します。

構文

PROCEDURE setBaseDir(
  p   Parser,
  dir VARCHAR2); 

パラメータ

表209-12 SETBASEDIRプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

dir

(IN)

ベース・ディレクトリとして使用するディレクトリ。

209.2.14 SETDOCTYPEプロシージャ

このプロシージャは、検証のためにパーサーが使用するDTDを設定します。ドキュメントの解析前にコールする必要があります。

構文

PROCEDURE setDoctype(
  p   Parser,
  dtd DOMDocumentType); 

パラメータ

表209-13 SETDOCTYPEプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

dtd

(IN)

設定するDTD。

209.2.15 SETERRORLOGプロシージャ

このプロシージャは、指定したファイルに送信するエラーを設定します。

構文

PROCEDURE setErrorLog(
  p        Parser,
  fileName VARCHAR2); 

パラメータ

表209-14 SETERRORLOGプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

fileName

(IN)

エラー・ログとして使用するファイルの完全パス。

209.2.16 SETPRESERVEWHITESPACE

このプロシージャは、空白の保持モードを設定します。

構文

PROCEDURE setPreserveWhitespace(
  p   Parser,
  yes BOOLEAN); 

パラメータ

表209-15 SETPRESERVEWHITESPACEプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

yes

(IN)

設定するモード: 保持する場合はTRUEに、保持しない場合はFALSEに設定します。

209.2.17 SETVALIDATIONMODE

このプロシージャは、検証モードを設定します。

構文

PROCEDURE setValidationMode(
  p   Parser,
  yes BOOLEAN); 

パラメータ

表209-16 SETVALIDATIONMODEプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

yes

(IN)

設定するモード: 妥当性チェックを行う場合はTRUEに、妥当性チェックを行わない場合はFALSEに設定します。

209.2.18 SHOWWARNINGS

このプロシージャは、警告をオンまたはオフにします。

構文

PROCEDURE showWarnings(
  p   Parser,
  yes BOOLEAN); 

パラメータ

表209-17 SHOWWARNINGSプロシージャのパラメータ

パラメータ IN / OUT 説明

p

(IN)

パーサー・インスタンス。

yes

(IN)

設定するモード: 警告を表示する場合はTRUEに、表示しない場合はFALSEに設定します。