208 DBMS_XSLPROCESSOR
DBMS_XSLPROCESSORパッケージは、XML文書の内容と構造を管理するインタフェースを提供します。
               
この章のトピックは、次のとおりです:
208.1 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プログラム・インタフェースからアクセス可能な結果ツリーが作成されます。
 - 
                           
エラー・ログが指定されていない場合、エラーは記録されません。ただし、解析に失敗すると、アプリケーション・エラーが発生します。
 
208.2 DBMS_XSLPROCESSORの推奨されないサブプログラム
Oracle Database 12cリリース12.2では、次のサブプログラムの使用はDBMS_XSLPROCESSORパッケージで推奨されていません。 
                  
ノート:
新しいアプリケーションでは、推奨されないプロシージャは使用しないことをお薦めします。推奨されない機能は、下位互換性を維持する目的のみでサポートされています。
このリリース以降、これらのサブプログラムはDBMS_LOBパッケージで提供されます。
                  
208.3 DBMS_XSLPROCESSORのセキュリティ・モデル
DBMS_XSLPROCESSORパッケージは、XDBが所有しているため、SYSまたはXDBによって作成される必要があります。EXECUTE権限は、PUBLICに付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。
                  
208.4 DBMS_XSLPROCESSORサブプログラムの要約
この表は、DBMS_XSLPROCESSORサブプログラムを示し、簡単に説明しています。
                  
表208-1 DBMS_XSLPROCESSORパッケージのサブプログラム
| メソッド | 説明 | 
|---|---|
| 
                                  
 Oracle Database 12cリリース12.2から、このプロシージャは非推奨になっています。  | 
                           |
| 
                                  プロセッサ・オブジェクトを解放します。  | 
                           |
| 
                                  スタイルシート・オブジェクトを解放します。  | 
                           |
| 
                                  新規のプロセッサ・インスタンスを戻します。  | 
                           |
| 
                                  入力と参照URLから新規のスタイルシートを作成します。  | 
                           |
| 
                                  入力XML文書を変換します。  | 
                           |
| 
                                  ファイルの内容を Oracle Database 12cリリース12.2から、このプロシージャは非推奨になっています。  | 
                           |
| 
                                  トップレベルのスタイルシート・パラメータを削除します。  | 
                           |
| 
                                  トップレベルのスタイルシート・パラメータをリセットします。  | 
                           |
| 
                                  パターンと一致するDOMツリーからノードを選択します。  | 
                           |
| 
                                  パターンと一致するツリーから最初のノードを選択します。  | 
                           |
| 
                                  指定したファイルに送信するエラーを設定します。  | 
                           |
| 
                                  スタイルシートにトップレベルのパラメータを設定します。  | 
                           |
| 
                                  警告をオンまたはオフにします。  | 
                           |
| 
                                  スタイルシートを使用してDOMツリー内のノードを変換します。  | 
                           |
| 
                                  パターンと一致する最初のノードの値を取得します。  | 
                           
208.4.1 CLOB2FILEプロシージャ
このプロシージャは、CLOBの内容をファイルに書き込みます。Oracle Database 12cリリース12.2以降、このプロシージャはDBMS_LOBパッケージに移動されました。
                     
構文
DBMS_XSLPROCESSOR.CLOB2FILE( cl IN CLOB; flocation IN VARCHAR2, fname IN VARCHAR2, csid IN NUMBER:=0);
パラメータ
表208-2 CLOB2FILEプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        ファイル・ディレクトリ  | 
                                 
| 
                                        
  | 
                                    
                                        ファイル・ディレクトリ  | 
                                 
| 
                                        
  | 
                                    
                                        ファイル名  | 
                                 
| 
                                        
  | 
                                    
                                        ファイルの文字セットID。 
  | 
                                 
208.4.2 FREEPROCESSORプロシージャ
このプロシージャは、Processorオブジェクトを解放します。
                     
構文
DBMS_XSLPROCESSOR.FREEPROCESSOR( p IN Processor);
パラメータ
表208-3 FREEPROCESSORプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        プロセッサ  | 
                                 
208.4.3 FREESTYLESHEETプロシージャ
このプロシージャは、Stylesheet オブジェクトを解放します。 
                     
構文
DBMS_XSLPROCESSOR.FREESTYLESHEET( ss IN Stylesheet);
パラメータ
表208-4 FREESTYLESHEETプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        スタイルシート  | 
                                 
208.4.4 NEWPROCESSORファンクション
このファンクションは、新規のプロセッサ・インスタンスを戻します。
                     
このファンクションは、他のプロセッサ・メソッドを使用する必要がある場合、プロセッサのデフォルト動作の変更前にコールする必要があります。
                        
構文
DBMS_XSLPROCESSOR.NEWPROCESSOR RETURN Processor;
208.4.5 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;
パラメータ
表208-5 NEWSTYLESHEETファンクションのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        構成に使用する  | 
                                 
| 
                                        
  | 
                                    
                                        構成に使用する入力URL。  | 
                                 
| 
                                        
  | 
                                    
                                        参照URL。  | 
                                 
208.4.6 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およびStylesheetとして使用して、入力された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);
パラメータ
表208-6 PROCESSXSLファンクション/プロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        変換するXML文書。  | 
                                 
| 
                                        
  | 
                                    
                                        変換する情報のURL。  | 
                                 
| 
                                        
  | 
                                    
                                        変換する情報が含まれる  | 
                                 
| 
                                        
  | 
                                    
                                        処理対象の出力ファイルを保存するディレクトリ。  | 
                                 
| 
                                        
  | 
                                    
                                        処理対象の出力ファイル。  | 
                                 
| 
                                        
  | 
                                    
                                        処理対象の出力を保存する  | 
                                 
| 
                                        
  | 
                                    
                                        変換する  | 
                                 
208.4.7 READ2CLOBファンクション
このファンクションは、ファイルの内容をCLOBに読み込みます。 
                     
ノート:
Oracle Database 12cリリース12.2以降、このプロシージャはDBMS_LOBパッケージに移動されました。
                           
構文
DBMS_XSLPROCESSOR.READ2CLOB( flocation IN VARCHAR2, fname IN VARCHAR2, csid IN NUMBER:=0) RETURN CLOB;
パラメータ
表208-7 READ2CLOBファンクションのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        ファイル・ディレクトリ  | 
                                 
| 
                                        
  | 
                                    
                                        ファイル名  | 
                                 
| 
                                        
  | 
                                    
                                        ファイルの文字セットID。 
  | 
                                 
208.4.8 REMOVEPARAMプロシージャ
このプロシージャは、トップレベルのスタイルシート・パラメータを削除します。
構文
DBMS_XSLPROCESSOR.REMOVEPARAM( ss IN Stylesheet, name IN VARCHAR2);
パラメータ
表208-8 REMOVEPARAMプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        パラメータ名  | 
                                 
208.4.9 RESETPARAMSプロシージャ
このプロシージャは、トップレベルのスタイルシート・パラメータをリセットします。
構文
DBMS_XSLPROCESSOR.RESETPARAMS( ss IN Stylesheet);
パラメータ
表208-9 RESETPARAMSプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
208.4.10 SELECTNODESファンクション
このファンクションは、入力されたパス式と一致するノードをDOMツリーから選択し、選択の結果を戻します。
構文
DBMS_XSLPROCESSOR.SELECTNODES( n IN DBMS_XMLDOM.DOMNODE, pattern IN VARCHAR2, namespace IN VARCHAR2 := NULL) RETURN DBMS_XMLDOM.DOMNODELIST;
パラメータ
表208-10 SELECTNODESファンクションのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        ツリーのルート  | 
                                 
| 
                                        
  | 
                                    
                                        使用するパターン。  | 
                                 
| 
                                        
  | 
                                    
                                        宣言されたネームスペース。  | 
                                 
208.4.11 SELECTSINGLENODEファンクション
このファンクションは、入力されたパス式と一致するツリーから最初のノードを選択し、そのノードを戻します。
構文
DBMS_XSLPROCESSOR.SELECTSINGLENODE( n IN DBMS_XMLDOM.DOMNODE, pattern IN VARCHAR2, namespace IN VARCHAR2 := NULL) RETURN DBMS_XMLDOM.DOMNODE;
パラメータ
表208-11 SELECTSINGLENODEファンクションのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        ツリーのルート  | 
                                 
| 
                                        
  | 
                                    
                                        使用するパターン。  | 
                                 
| 
                                        
  | 
                                    
                                        宣言されたネームスペース。  | 
                                 
208.4.12 SETERRORLOGプロシージャ
この推奨されないプロシージャは、指定したファイルに送信するエラーを設定します。
ノート:
このサブプログラムは非推奨となっています。ここに含まれているのは下位互換性を保つという理由のみからです。
構文
DBMS_XSLPROCESSOR.SETERRORLOG( p IN Processor, fileName IN VARCHAR2);
パラメータ
表208-12 SETERRORLOGプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        エラー・ログとして使用するファイルの完全パス。  | 
                                 
208.4.13 SETPARAMプロシージャ
このプロシージャは、スタイルシートにトップレベルのパラメータを設定します。
パラメータ値は、有効なXPath式であることが必要です。必ずリテラル文字列値を引用します。
                        
構文
DBMS_XSLPROCESSOR.SETPARAM( ss IN Stylesheet, name IN VARCHAR2, value IN VARCHAR2);
パラメータ
表208-13 SETPARAMプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        パラメータ名  | 
                                 
| 
                                        
  | 
                                    
                                        パラメータの値  | 
                                 
208.4.14 SHOWWARNINGSプロシージャ
このプロシージャは、警告をオン(TRUE)またはオフ(FALSE)にします。
                     
構文
DBMS_XSLPROCESSOR.SHOWWARNINGS( p IN Processor, yes IN BOOLEAN);
パラメータ
表208-14 SHOWWARNINGSプロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        
  | 
                                 
| 
                                        
  | 
                                    
                                        設定するモード。警告を表示する場合は  | 
                                 
208.4.15 TRANSFORMNODEファンクション
このファンクションは、指定のスタイルシートを使用してDOMツリー内のノードを変換し、変換結果をDOMDocumentFragmentとして戻します。
                     
構文
DBMS_XSLPROCESSOR.TRANSFORMNODE( n IN DOMNODE, ss IN Stylesheet) RETURN DOMDocumentFragment;
パラメータ
表208-15 TRANSFORMNODEファンクションのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        変換する  | 
                                 
| 
                                        
  | 
                                    
                                        使用するスタイルシート。  | 
                                 
208.4.16 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);
パラメータ
表208-16 VALUEOFファンクション/プロシージャのパラメータ
| パラメータ | 説明 | 
|---|---|
| 
                                        
  | 
                                    
                                        値を取得するノード。  | 
                                 
| 
                                        
  | 
                                    
                                        使用するパターン。  | 
                                 
| 
                                        
  | 
                                    
                                        取得された値。  | 
                                 
| 
                                        namespace  | 
                                    
                                        使用する名前空間。  |