プライマリ・コンテンツに移動
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
12c リリース1 (12.1)
B71281-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

203 DBMS_XSLPROCESSOR

DBMS_XSLPROCESSORパッケージは、XML文書の内容と構造を管理するインタフェースを提供します。

この章では、次の項目について説明します。

DBMS_XSLPROCESSORの使用方法

この項では、DBMS_XSLPROCESSORパッケージの使用に関連する項目について説明します。

概要

DBMS_XSLPROCESSORパッケージは、XML文書の内容と構造を管理するインタフェースを提供します。

標準

XSL ProcessorのPL/SQL実装は、W3C XSLT草案(改訂WD-xslt-19990813)に準拠しています。また、XSLTスタイルシートの読込み方法と影響を与える変換に関して、XSL Processorに要求される動作が含まれています。

概念

eXtensible Stylesheet Language Transformation(XSLT)は、ソース・ツリーを結果ツリーに変換するルールを記述します。XSLTで表現する変換は、スタイルシートと呼ばれます。指定した変換は、パターンをスタイルシートで定義したテンプレートに関連付けることで実行されます。テンプレートは、結果ツリーの一部を作成するためにインスタンス化されます。

実装

このPL/SQL XSL Processorのデフォルト動作は、次のとおりです。

  • DOMプログラム・インタフェースからアクセス可能な結果ツリーが作成されます。

  • エラー・ログが指定されていない場合、エラーは記録されません。ただし、解析に失敗すると、アプリケーション・エラーが発生します。

セキュリティ・モデル

DBMS_XSLPROCESSORパッケージは、XDBが所有しているため、SYSまたはXDBによって作成される必要があります。EXECUTE権限は、PUBLICに付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。

DBMS_XSLPROCESSORサブプログラムの要約

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

メソッド 説明

CLOB2FILEプロシージャ


CLOBの内容をファイルに書き込みます。

FREEPROCESSORプロシージャ


プロセッサ・オブジェクトを解放します。

FREESTYLESHEETプロシージャ


スタイルシート・オブジェクトを解放します。

NEWPROCESSORファンクション


新規のプロセッサ・インスタンスを戻します。

NEWSTYLESHEETファンクション


入力と参照URLから新規のスタイルシートを作成します。

PROCESSXSLファンクションおよびプロシージャ


入力XML文書を変換します。

READ2CLOBファンクション


ファイルの内容をCLOBに読み込みます。

REMOVEPARAMプロシージャ


トップレベルのスタイルシート・パラメータを削除します。

RESETPARAMSプロシージャ


トップレベルのスタイルシート・パラメータをリセットします。

SELECTNODESファンクション


パターンと一致するDOMツリーからノードを選択します。

SELECTSINGLENODEファンクション


パターンと一致するツリーから最初のノードを選択します。

SETERRORLOGプロシージャ


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

SETPARAMプロシージャ


スタイルシートにトップレベルのパラメータを設定します。

SHOWWARNINGSプロシージャ


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

TRANSFORMNODEファンクション


スタイルシートを使用してDOMツリー内のノードを変換します。

VALUEOFファンクションおよびプロシージャ


パターンと一致する最初のノードの値を取得します。


CLOB2FILEプロシージャ

このプロシージャは、CLOBの内容をファイルに書き込みます。

構文

DBMS_XSLPROCESSOR.CLOB2FILE(
  cl          IN  CLOB;
  flocation   IN  VARCHAR2,
  fname       IN  VARCHAR2,
  csid        IN  NUMBER:=0);

パラメータ

表203-2 CLOB2FILEプロシージャのパラメータ

パラメータ 説明

CLOB

ファイルのディレクトリ。

flocation

ファイルのディレクトリ。

fname

ファイル名。

csid

ファイルのキャラクタ・セットID。

  • Oracleの有効なIDを指定します。そうでない場合、エラーが戻されます。

  • 0(ゼロ)の場合、出力ファイルの内容はデータベースのキャラクタ・セットの内容になります。


FREEPROCESSORプロシージャ

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

構文

DBMS_XSLPROCESSOR.FREEPROCESSOR(
  p  IN  Processor);

パラメータ

表203-3 FREEPROCESSORプロシージャのパラメータ

パラメータ 説明

p

プロセッサ。


FREESTYLESHEETプロシージャ

このプロシージャは、スタイルシート・オブジェクトを解放します。

構文

DBMS_XSLPROCESSOR.FREESTYLESHEET(
  ss  IN  Stylesheet);

パラメータ

表203-4 FREESTYLESHEETプロシージャのパラメータ

パラメータ 説明

ss

スタイルシート。


NEWPROCESSORファンクション

このファンクションは、新規のプロセッサ・インスタンスを戻します。このファンクションは、他のプロセッサ・メソッドを使用する必要がある場合、プロセッサのデフォルト動作の変更前にコールする必要があります。

構文

DBMS_XSLPROCESSOR.NEWPROCESSOR
 RETURN Processor;

NEWSTYLESHEETファンクション

このファンクションは、新規のスタイルシート・インスタンスを作成して戻します。指定できるオプションは、次の表のとおりです。

構文

指定のDOMDOCUMENTと参照URLを使用して、新規のスタイルシート・インスタンスを作成して戻します。

DBMS_XSLPROCESSOR.NEWSTYLESHEET(
   xmldoc  IN   DOMDOCUMENT,
   ref     IN   VARCHAR2) 
 RETURN Stylesheet;

指定の入力と参照URLを使用して、新規のスタイルシート・インスタンスを作成して戻します。

DBMS_XSLPROCESSOR.NEWSTYLESHEET(
   inp    IN   VARCHAR2,
   ref    IN   VARCHAR2) 
 RETURN Stylesheet;

パラメータ

表203-5 NEWSTYLESHEETファンクションのパラメータ

パラメータ 説明

xmldoc

構成に使用するDOMDocument

inp

構成に使用する入力URL。

ref

参照URL。


PROCESSXSLファンクション/プロシージャ

このファンクションは、入力されたXMLDocumentを変換します。プロセッサのデフォルト動作に対する変更は、このプロシージャのコール前に有効にしておく必要があります。処理に失敗すると、アプリケーション・エラーが発生します。

構文

指定のDOMDocumentとスタイルシートを使用して、入力されたXMLDocumentを変換し、結果のドキュメント・フラグメントを戻します。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p      IN   Processor,
   ss     IN   Stylesheet,
   xmldoc IN   DOMDOCUMENT), 
 RETURN DOMDOCUMENTFRAGMENT;

指定のドキュメントをURLおよびスタイルシートとして使用して、入力されたXMLDocumentを変換し、結果のドキュメント・フラグメントを戻します。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p     IN   Processor,
   ss    IN   Stylesheet,
   url   IN   VARCHAR2, 
 RETURN DOMDOCUMENTFRAGMENT;

指定のドキュメントをCLOBおよびスタイルシートとして使用して、入力されたXMLDocumentを変換し、結果のドキュメント・フラグメントを戻します。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p     IN   Processor,
   ss    IN  Stylesheet,
   clb   IN  CLOB)
 RETURN DOMDOCUMENTFRAGMENT;

指定のDOMDOCUMENTとスタイルシートを使用して、入力されたXMLDocumentを変換し、指定のファイルに出力を書き込みます。

DBMS_XSLPROCESSOR.DBMS_XSLPROCESSOR.(
   p           IN    Processor,
   ss          IN    Stylesheet,
   xmldoc      IN    DOMDOCUMENT,
   dir         IN    VARCHAR2,
   fileName    IN    VARCHAR2);

指定のURLとスタイルシートを使用して、入力されたXMLDocumentを変換し、指定のディレクトリ内の指定したファイルに出力を書き込みます。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p          IN    Processor,
   ss         IN    Stylesheet,
   url        IN    VARCHAR2,
   dir        IN    VARCHAR2,
   fileName   IN    VARCHAR2);

指定のDOMDOCUMENTとスタイルシートを使用して、入力されたXMLDocumentを変換し、CLOBに出力を書き込みます。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p          IN      Processor,
   ss         IN      Stylesheet,
   xmldoc     IN      DOMDOCUMENT,
   cl         IN OUT  CLOB);

指定のDOMDOCUMENTFRAGMENTとスタイルシートを使用して、入力されたXMLDocumentを変換し、結果のドキュメント・フラグメントを戻します。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p         IN    Processor,
   ss        IN    Stylesheet,
   xmldf     IN    DOMDOCUMENTFRAGMENT)
 RETURN DOMDOCUMENTFRAGMENT;

指定のDOMDocumentFragmentとスタイルシートを使用して、入力されたXMLDocumentFragmentを変換し、指定のディレクトリ内の指定したファイルに出力を書き込みます。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p         IN    Processor,
   ss        IN    Stylesheet,
   xmldf     IN    DOMDOCUMENTFRAGMENT,
   dir       IN    VARCHAR2,
   filename  IN    VARCHAR2);

指定のDOMDOCUMENTFRAGMENTとスタイルシートを使用して、入力されたXMLDocumentFragmentを変換し、バッファに出力を書き込みます。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p          IN       Processor,
   ss         IN       Stylesheet,
   xmldf      IN       DOMDOCUMENTFRAGMENT,
   buf        IN OUT   VARCHAR2);

指定のDOMDOCUMENTFRAGMENTとスタイルシートを使用して、入力されたXMLDocumentFragmentを変換し、CLOBに出力を書き込みます。

DBMS_XSLPROCESSOR.PROCESSXSL(
   p          IN      Processor,
   ss         IN      Stylesheet,
   xmldf      IN      DOMDOCUMENTFRAGMENT,
   cl         IN OUT  CLOB);

パラメータ

表203-6 PROCESSXSLファンクション/プロシージャのパラメータ

パラメータ 説明

p

プロセッサ・インスタンス。

ss

スタイルシート・インスタンス。

xmldoc

変換するXML文書。

url

変換する情報のURL。

clb

変換する情報が含まれるCLOB

dir

処理対象の出力ファイルを保存するディレクトリ。

filename

処理対象の出力ファイル。

cl

処理対象の出力を保存するCLOB

xmldf

変換するXMLDocumentFragment


READ2CLOBファンクション

このファンクションは、ファイルの内容をCLOBに読み込みます。

構文

DBMS_XSLPROCESSOR.READ2CLOB(
   flocation     IN   VARCHAR2,
   fname         IN   VARCHAR2,
   csid          IN   NUMBER:=0)
 RETURN CLOB;

パラメータ

表203-7 READ2CLOBファンクションのパラメータ

パラメータ 説明

flocation

ファイルのディレクトリ。

fname

ファイル名。

csid

ファイルのキャラクタ・セットID。

  • Oracleの有効なIDを指定します。そうでない場合、エラーが戻されます。

  • 0(ゼロ)の場合、入力ファイルはデータベースのキャラクタ・セット内にあるものとみなされます。


REMOVEPARAMプロシージャ

このプロシージャは、トップレベルのスタイルシート・パラメータを削除します。

構文

DBMS_XSLPROCESSOR.REMOVEPARAM(
   ss     IN  Stylesheet,
   name   IN  VARCHAR2);

パラメータ

表203-8 REMOVEPARAMプロシージャのパラメータ

パラメータ 説明

ss

スタイルシート・インスタンス。

name

パラメータの名前。


RESETPARAMSプロシージャ

このプロシージャは、トップレベルのスタイルシート・パラメータをリセットします。

構文

DBMS_XSLPROCESSOR.RESETPARAMS(
   ss  IN   Stylesheet);

パラメータ

表203-9 RESETPARAMSプロシージャのパラメータ

パラメータ 説明

ss

スタイルシート・インスタンス。


SELECTNODESファンクション

このファンクションは、入力されたパス式と一致するノードをDOMツリーから選択し、選択の結果を戻します。

構文

DBMS_XSLPROCESSOR.SELECTNODES( 
   n           IN   DBMS_XMLDOM.DOMNODE,
   pattern     IN   VARCHAR2,
   namespace   IN VARCHAR2 := NULL)
 RETURN DBMS_XMLDOM.DOMNODELIST;

パラメータ

表203-10 SELECTNODESファンクションのパラメータ

パラメータ 説明

n

ツリーのルートDOMNode

pattern

使用するパターン。

namespace

宣言されたネームスペース。


SELECTSINGLENODEファンクション

このファンクションは、入力されたパス式と一致するツリーから最初のノードを選択し、そのノードを戻します。

構文

DBMS_XSLPROCESSOR.SELECTSINGLENODE(
   n           IN   DBMS_XMLDOM.DOMNODE,
   pattern     IN   VARCHAR2,
   namespace   IN VARCHAR2 := NULL)
 RETURN DBMS_XMLDOM.DOMNODE;

パラメータ

表203-11 SELECTSINGLENODEファンクションのパラメータ

パラメータ 説明

n

ツリーのルートDOMNode

pattern

使用するパターン。

namespace

宣言されたネームスペース。


SETERRORLOGプロシージャ

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


注意:

このサブプログラムは非推奨となっています。ここに含まれているのは下位互換性を保つという理由のみからです。

構文

DBMS_XSLPROCESSOR.SETERRORLOG(
   p         IN   Processor,
   fileName  IN   VARCHAR2);

パラメータ

表203-12 SETERRORLOGプロシージャのパラメータ

パラメータ 説明

p

プロセッサ・インスタンス。

fileName

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


SETPARAMプロシージャ

このプロシージャは、スタイルシートにトップレベルのパラメータを設定します。パラメータ値は、有効なXPath式であることが必要です。必ずリテラル文字列値を引用します。

構文

DBMS_XSLPROCESSOR.SETPARAM(
   ss      IN   Stylesheet,
   name    IN   VARCHAR2,
   value   IN   VARCHAR2);

パラメータ

表203-13 SETPARAMプロシージャのパラメータ

パラメータ 説明

ss

スタイルシート・インスタンス。

name

パラメータの名前。

value

パラメータの値。


SHOWWARNINGSプロシージャ

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

構文

DBMS_XSLPROCESSOR.SHOWWARNINGS(
   p     IN   Processor,
   yes   IN   BOOLEAN);

パラメータ

表203-14 SHOWWARNINGSプロシージャのパラメータ

パラメータ 説明

p

プロセッサ・インスタンス。

yes

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


TRANSFORMNODEファンクション

このファンクションは、指定のスタイルシートを使用してDOMツリー内のノードを変換し、変換結果をDOMDocumentFragmentとして戻します。

構文

DBMS_XSLPROCESSOR.TRANSFORMNODE(
   n    IN  DOMNODE,
   ss   IN  Stylesheet)
 RETURN DOMDocumentFragment;

パラメータ

表203-15 TRANSFORMNODEファンクションのパラメータ

パラメータ 説明

n

変換するDOMNode

ss

使用するスタイルシート。


VALUEOFファンクション/プロシージャ

このサブプログラムは、指定のパターンと一致するツリーから最初のノードの値を取得します。ファンクションまたはプロシージャのいずれかを使用できます。

構文

DBMS_XSLPROCESSOR.VALUEOF(
  n           IN    DBMS_XMLDOM.DOMNODE,
  pattern     IN    VARCHAR2,
  namespace   IN    VARCHAR2 := NULL)
 RETURN VARCHAR2;
DBMS_XSLPROCESSOR.VALUEOF(
  n           IN    DBMS_XMLDOM.DOMNODE,
  pattern     IN    VARCHAR2,
  val         OUT   VARCHAR2,
  namespace   IN    VARCHAR2 := NULL);

パラメータ

表203-16 VALUEOFファンクション/プロシージャのパラメータ

パラメータ 説明

n

値を取得するノード。

pattern

使用するパターン。

val

取得された値。

namespace

使用する名前空間。