288 XMLTYPE
XMLType
は、XMLデータ処理用のシステム定義の不透明なタイプです。XMLノードおよびフラグメントを抽出するためのメンバー・ファンクションが事前定義されています。
XMLType
の列を作成し、その中にXML文書を挿入することができます。SYS_XMLAGG SQL
ファンクションを使用して、XMLドキュメントをXMLType
インスタンスとして動的に生成することもできます。
この章のトピックは、次のとおりです:
288.1 XMLTypeサブプログラムの要約
この表は、XMLType
のファンクションおよびプロシージャの要約を示しています。
表288-1 XMLTYPEのサブプログラム
メソッド | 説明 |
---|---|
入力スキーマに基づいたインスタンスから非スキーマ・ベースのXMLを作成します。 |
|
入力スキーマURLを使用し、非スキーマ・ベースのインスタンスからスキーマ・ベースの |
|
|
|
|
|
|
|
|
|
|
|
スキーマ・ベースのドキュメントの最上位要素のネームスペースを戻します。 |
|
|
|
入力インスタンスのルート要素を戻します。インスタンスがフラグメントの場合は |
|
入力がXMLスキーマ・ベースである場合は、XMLスキーマURLを戻します。 |
|
|
|
入力 |
|
入力 |
|
指定されたスキーマURLに基づき、入力インスタンスが有効なスキーマであるかどうかをチェックします。 |
|
インスタンスがスキーマと照合して検証されているかどうかをチェックします。 |
|
XMLスキーマに基づいて入力インスタンスを検証します。入力スキーマが非スキーマ・ベースの場合はエラーが発生します。 |
|
手間のかかるスキーマ検証を省くために、スキーマが有効であることを示すフラグを設定します。 |
|
|
|
|
|
|
288.1.1 CREATENONSCHEMABASEDXML
このメンバー・ファンクションは、スキーマ・ベースのインスタンスから非スキーマ・ベースのXML文書を作成します。
構文
MEMBER FUNCTION CREATENONSCHEMABASEDXML return XMLType deterministic;
288.1.2 CREATESCHEMABASEDXML
このメンバー・ファンクションは、非スキーマ・ベースのXMLType
値からスキーマ・ベースのXMLType
インスタンスを作成します。
付属のSCHEMA
URL、またはインスタンスのSCHEMALOCATION
属性のいずれかを使用します。
構文
MEMBER FUNCTION createSchemaBasedXML( schema IN varchar2 := NULL) return XMLType deterministic;
表288-2 CREATESCHEMABASEDXMLサブプログラムのパラメータ
パラメータ | 説明 |
---|---|
|
値を指定されたスキーマに変換するために使用する、オプションのXMLSchema URL。 |
288.1.3 CREATEXML
この静的なファンクションは、XMLType
インスタンスを作成して戻します。日付を渡すための文字列とCLOB
パラメータには、適切な構成で有効なXML文書が含まれている必要があります。
指定できるオプションは、次の表のとおりです。
表288-3 CREATEXMLのサブプログラム
構文 | 説明 |
---|---|
|
文字列から |
|
|
|
指定されたスキーマとXMLデータ・パラメータを使用して、静的なファンクションから、スキーマ・ベースの |
|
指定されたスキーマとXMLデータ・パラメータを使用して、静的なファンクションから、スキーマ・ベースの |
|
ユーザー定義タイプのインスタンスからXMLインスタンスを作成します。 |
|
カーソル参照からXMLインスタンスを作成します。任意のSQL問合せを |
|
|
|
|
|
|
表288-4 CREATEXMLのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
指定されたスキーマに応じた入力を行うための、オプションのスキーマURL。注意: オラクル社は、スキーマ登録によって生成されたタイプの使用をサポートしません(『Oracle XML DB開発者ガイド』を参照)。 |
|
指定されたXMLスキーマに基づき、インスタンスが有効であることを示すフラグ。(デフォルトは |
|
入力が適切に構成されていることを示すフラグ。設定すると、入力インスタンスに対する構成チェックは行われません(デフォルトは |
|
|
|
入力XMLデータの文字セットID。 |
288.1.4 EXISTSNODE
このメンバー・ファンクションは、ノードが存在するかどうかをチェックします。
XPath文字列がNULL
の場合、またはドキュメントが空の場合、0という値が戻されます。それ以外の場合は、1が戻されます。
指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
|
指定されたXPath式に基づき、文書に適用されたXPathが有効なノードを戻せるかどうかをチェックします。 |
|
このメンバー・ファンクションは、ネームスペースの情報が設定されたXPath式を使用し、XPathを適用するとノードを戻すかどうかをチェックします。 |
表288-5 EXISTSNODEサブプログラムのパラメータ
パラメータ | 説明 |
---|---|
|
テストするXPath式。 |
|
ネームスペースのマッピング(オプション)。 |
288.1.5 EXTRACT
このメンバー・ファンクションは、XMLType
フラグメントを抽出し、結果のノードを含むXMLType
インスタンスを戻します。ノードが含まれていない場合は、NULL
を戻します。
指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
|
指定されたXPath式に基づいてXPathを文書に適用し、フラグメントを |
|
このメンバー・ファンクションは、XPath式とネームスペースのマッピングをXMLデータに適用し、結果のフラグメントを含む |
表288-6 EXTRACTサブプログラムのパラメータ
パラメータ | 説明 |
---|---|
|
適用するXPath式。 |
|
ネームスペースのマッピング情報に対するオプションの接頭辞。 |
288.1.6 GETBLOBVAL
このメンバー・ファンクションは、シリアル化されたXML表現が含まれるBLOB
を戻します。戻されたBLOB
が一時的なものである場合、使用後に解放する必要があります。
構文
MEMBER FUNCTION getBlobVal( csid IN NUMBER) RETURN BLOB DETERMINISTIC;
表288-7 GETBLOBVALサブプログラムのパラメータ
パラメータ | 説明 |
---|---|
|
出力 |
288.1.7 GETCLOBVAL
このメンバー・ファンクションは、シリアル化されたXML表現が含まれるCLOB
を戻します。戻されたCLOB
が一時的なものである場合、使用後に解放する必要があります。
構文
MEMBER FUNCTION getClobVal() RETURN clob deterministic;
288.1.8 GETNAMESPACE
GETNAMESPACE
はメンバー・セット関数です。インスタンスで最上位要素のネームスペースを戻します。入力がフラグメントの場合、または非スキーマ・ベースのインスタンスの場合は、NULL
が戻されます。
構文
MEMBER FUNCTION getNamespace return varchar2 deterministic;
288.1.9 GETNUMBERVAL
これはメンバー・ファンクションです。XMLType
インスタンスによりポイントされたテキスト値からフォーマットした数値を戻します。XMLType
は、数値を含む有効なテキスト・ノードをポイントする必要があります。
指定できるオプションは、次の表のとおりです。
構文
MEMBER FUNCTION getNumberVal() RETURN number deterministic;
288.1.10 GETROOTELEMENT
このメンバー・ファンクションは、XMLType
インスタンスのルート要素を取得します。インスタンスがフラグメントの場合はNULL
を戻します。
構文
MEMBER FUNCTION getRootElement return varchar2 deterministic;
288.1.11 GETSCHEMAURL
このメンバー・ファンクションは、XMLType
インスタンスがスキーマ・ベースの文書である場合、XMLType
インスタンスに対応するXMLスキーマのURLを戻します。それ以外の場合はNULL
を戻します。
構文
MEMBER FUNCTION getSchemaURL return varchar2 deterministic;
288.1.12 GETSTRINGVAL
このメンバー・ファンクションは、文字列としてドキュメントを戻します。シリアル化されたXML表示を含む文字列を戻します。またはテキスト・ノードの場合、テキスト自体を戻します。
XMLドキュメントがVARCHAR2
の最大サイズ(4000)を超える場合、ランタイム時にエラーが発生します。
構文
MEMBER FUNCTION getStringVal() RETURN varchar2 deterministic;
288.1.13 ISFRAGMENT
ISFRAGMENT
は、XMLType
インスタンスが適切に構成された文書またはフラグメントに対応しているかどうかを判別します。XMLType
インスタンスにフラグメントまたは適切に構成された文書が含まれているかどうかを1または0を戻して示します。
構文
MEMBER FUNCTION isFragment() RETURN number deterministic;
288.1.14 ISSCHEMABASED
このメンバー・ファンクションは、XMLType
インスタンスがスキーマ・ベースかどうかを判別します。XMLType
インスタンスがスキーマ・ベースであるかどうかに基づいて、1または0を戻します。
構文
MEMBER FUNCTION isSchemaBased return number deterministic;
288.1.15 ISSCHEMAVALID
このメンバー・ファンクションは、入力インスタンスが指定されたスキーマに準拠しているかどうかをチェックします。XMLインスタンスの検証ステータスは変更されません。
XMLスキーマのURLが指定されておらず、XML文書がスキーマ・ベースの場合、XMLType
インスタンス自体のスキーマに準拠しているかどうかがチェックされます。
構文
member function isSchemaValid( schurl IN VARCHAR2 := NULL, elem IN VARCHAR2 := NULL) return NUMBER deterministic;
表288-8 ISSCHEMAVALIDサブプログラムのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
準拠しているかどうかをチェックする元になるXMLスキーマのURL。 |
|
|
検証の基準となる、指定されたスキーマ間の要素。最上位要素を複数定義するXMLスキーマを持ち、これらの要素のいずれか1つに準拠しているかどうかをチェックする場合に便利です。 |
288.1.16 ISSCHEMAVALIDATED
このメンバー・ファンクションは、スキーマ・ベースのインスタンスがスキーマに対して実際に検証されているかどうかを示すためにXMLType
インスタンスの検証ステータスを戻します。インスタンスがスキーマと照合して検証されていれば1を、されていなければ0を戻します。
構文
MEMBER FUNCTION isSchemaValidated return NUMBER deterministic;
288.1.17 SCHEMAVALIDATE
このメンバー・プロシージャは、XMLインスタンスがスキーマと照合して検証されていない場合、検証します。
非スキーマ・ベースのドキュメントの場合は、エラーが発生します。検証に失敗すると、エラーが発生します。そうでない場合は、ドキュメントのステータスが検証済に変更されます。
構文
MEMBER PROCEDURE schemaValidate( self IF OUT NOCOPY XMLType);
表288-9 SCHEMAVALIDATEサブプログラムのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
スキーマと照合して検証されているXMLインスタンス。 |
288.1.18 SETSCHEMAVALIDATED
このメンバー・ファンクションは、入力XMLインスタンスのVALIDATION
状態を設定します。
構文
MEMBER PROCEDURE setSchemaValidated( self IF OUT NOCOPY XMLType, flag IN BINARY_INTEGER := 1);
表288-10 SERTSSCHEMAVALIDATEDサブプログラムのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
XMLインスタンス。 |
|
|
0 - |
288.1.19 TOOBJECT
ます。メンバー・プロシージャは、XMLSCHEMA
マッピングを使用して(使用できる場合)、XML値をオブジェクト・タイプに変換します。SCHEMA
が使用できない場合、または入力が非スキーマ・ベースのXMLの場合は、要素とオブジェクト・タイプ属性の変換に使用される標準的なマッピングがプロシージャで使用されます。
構文
MEMBER PROCEDURE toObject( SELF in XMLType, object OUT "<ADT_1>", schema in varchar2 := NULL, element in varchar2 := NULL);
表288-11 TOOBJECTサブプログラムのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
変換するインスタンス。メンバー・プロシージャとして使用する場合は暗黙的です。 |
|
|
変換するオブジェクト。必要なタイプのオブジェクト・インスタンスは、このファンクションに渡されます。 |
|
|
スキーマURL。 |
|
|
最上位要素の名前。XMLスキーマ文書は、このパラメータを使用せずにXMLインスタンス文書に準拠する場合、最上位要素を指定しません。注意: オラクル社は、スキーマ登録によって生成されたタイプの使用をサポートしません(『Oracle XML DB開発者ガイド』を参照)。 |
288.1.20 TRANSFORM
このメンバー・ファンクションは、XSLスタイルシート引数と名前/値ペアの文字列として渡された最上位パラメータを使用して、XMLデータを変換します
parammap以外の引数がすべてNULL
である場合、NULL
を戻します。
構文
MEMBER FUNCTION transform( xsl IN XMLType, parammap in varchar2 := NULL) RETURN XMLType deterministic;
表288-12 TRANSFORMサブプログラムのパラメータ
パラメータ | IN / OUT | 説明 |
---|---|---|
|
|
変換を記述するXSLスタイルシート。 |
|
|
XSLに対する最上位パラメータ - 名前/値ペアの文字列。 |
288.1.21 XMLTYPE
これはXMLType
コンストラクタです。
指定できるオプションは、次の表のとおりです。
表288-13 XMLTYPEメンバー・サブプログラムのパラメータ
構文 | 説明 |
---|---|
|
(オプション)このコンストラクタ・ファンクションは、指定されたスキーマとXMLデータ・パラメータを使用して、スキーマ・ベースの |
|
(オプション)このコンストラクタ・ファンクションは、指定されたスキーマとXMLデータ・パラメータを使用して、スキーマ・ベースの |
|
(オプション)このコンストラクタ・ファンクションは、指定されたオブジェクト・タイプ・パラメータからスキーマ・ベースの |
|
(オプション)このコンストラクタ・ファンクションは、指定された |
|
(オプション)このコンストラクタ・ファンクションは、指定された |
|
(オプション)このコンストラクタ・ファンクションは、指定された |
|
(オプション)このコンストラクタ・ファンクションは、指定された |
表288-14 XMLTYPEコンストラクタ・サブプログラムのパラメータ
パラメータ | 説明 |
---|---|
|
|
|
指定されたスキーマに応じた入力を行うための、オプションのスキーマURL。注意: オラクル社は、スキーマ登録によって生成されたタイプの使用をサポートしません(『Oracle XML DB開発者ガイド』を参照)。 |
|
指定されたXMLスキーマに基づき、インスタンスが有効なスキーマであることを示します。 |
|
入力が適切に構成されていることを示します。設定すると、入力インスタンスに対する構成チェックは行われません |
|
|
|
入力XMLデータの文字セットID。 |