XMLType
は、XMLデータ処理用のシステム定義の不透明なタイプです。XMLノードおよびフラグメントを抽出するためのメンバー・ファンクションが事前定義されています。
XMLType
の列を作成し、その中にXML文書を挿入することができます。また、SYS_XMLGEN
およびSYS_XMLAGG SQL
ファンクションを使用して、XML文書をXMLType
インスタンスとして動的に生成できます。
この章では、次の項目について説明します。
関連項目:
|
表260-1に、XMLType
のファンクションとプロシージャの要約を示します。
表260-1 XMLTYPEのサブプログラム
メソッド | 説明 |
---|---|
|
入力スキーマに基づいたインスタンスから非スキーマ・ベースのXMLを作成します。 |
|
入力スキーマURLを使用し、非スキーマ・ベースのインスタンスからスキーマ・ベースの |
|
|
|
|
|
|
|
|
|
|
|
スキーマ・ベースのドキュメントの最上位要素のネームスペースを戻します。 |
|
|
|
入力インスタンスのルート要素を戻します。インスタンスがフラグメントの場合は |
|
入力がXMLスキーマ・ベースである場合は、XMLスキーマURLを戻します。 |
|
|
|
入力 |
|
入力 |
|
指定されたスキーマURLに基づき、入力インスタンスが有効なスキーマであるかどうかをチェックします。 |
|
インスタンスがスキーマと照合して検証されているかどうかをチェックします。 |
|
XMLスキーマに基づいて入力インスタンスを検証します。入力スキーマが非スキーマ・ベースの場合はエラーが発生します。 |
|
手間のかかるスキーマ検証を省くために、スキーマが有効であることを示すフラグを設定します。 |
|
|
|
|
|
|
メンバー・ファンクション。スキーマ・ベースのインスタンスから非スキーマ・ベースのXML文書を作成します。
構文
MEMBER FUNCTION CREATENONSCHEMABASEDXML return XMLType deterministic;
メンバー・ファンクション。非スキーマ・ベースのXMLType
値からスキーマ・ベースのXMLType
インスタンスを作成します。付属のSCHEMA
URL、またはインスタンスのSCHEMALOCATION
属性のいずれかを使用します。
構文
MEMBER FUNCTION createSchemaBasedXML( schema IN varchar2 := NULL) return XMLType deterministic;
パラメータ | 説明 |
---|---|
schema |
値を指定されたスキーマに変換するために使用する、オプションのXMLSchema URL。 |
XMLType
インスタンスを作成して、戻すための静的なファンクション。日付に渡すための文字列とCLOBパラメータには、適切な構成で有効なXML文書が含まれている必要があります。指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
STATIC FUNCTION createXML(
|
文字列からXMLType インスタンスを作成します。 |
STATIC FUNCTION createXML(
|
CLOB からXMLType インスタンスを作成します。 |
STATIC FUNCTION createXML(
|
指定されたスキーマとXMLデータ・パラメータを使用して、静的なファンクションから、スキーマ・ベースのXMLType インスタンスを作成します。 |
STATIC FUNCTION createXML(
|
指定されたスキーマとXMLデータ・パラメータを使用して、静的なファンクションから、スキーマ・ベースのXMLType インスタンスを作成します。 |
STATIC FUNCTION createXML(
|
ユーザー定義タイプのインスタンスからXMLインスタンスを作成します。 |
STATIC FUNCTION createXML(
|
カーソル参照からXMLインスタンスを作成します。任意のSQL問合せをCURSOR として渡すことができます。 |
STATIC FUNCTION createXML(
|
ANYDATA からXMLインスタンスを作成します。ANYDATA インスタンスにADTが含まれている場合、ADTを直接コールした場合の結果と同じXMLType が戻されます。ANYDATA にスカラーが含まれている場合は、XMLType にはスカラー値が設定されたリーフ・ノードが含まれます。このノードの要素名は、オプションの要素文字列が存在する場合、そこから付けられます。存在しない場合は、ANYDATA となります。 |
STATIC FUNCTION createXML(
|
BLOB からXMLインスタンスを作成します。 |
STATIC FUNCTION createXML(
|
BFILE からXMLインスタンスを作成します。 |
パラメータ | 説明 |
---|---|
xmlData |
BFILE 、BLOB 、CLOB 、REF カーソル、VARCHAR2 またはオブジェクト・タイプの形式に含まれる実際のデータ。 |
schema |
指定されたスキーマに応じた入力を行うための、オプションのスキーマURL。 |
validated |
指定されたXMLスキーマに基づき、インスタンスが有効であることを示すフラグ。(デフォルトは0 です) |
wellformed |
入力が適切に構成されていることを示すフラグ。設定すると、入力インスタンスに対する構成チェックは行われません(デフォルトは0 です) |
element |
ADT_1 またはREF CURSOR コンストラクタの場合のオプションの要素名。(デフォルトはNULL です) |
CSID |
入力XMLデータのキャラクタ・セットID。 |
メンバー・ファンクション。ノードが存在するかどうかをチェックします。XPath文字列がNULL
の場合、またはドキュメントが空の場合、0という値が戻されます。それ以外の場合は、1が戻されます。指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
MEMBER FUNCTION existsNode(
|
指定されたXPath式に基づき、文書に適用されたXPathが有効なノードを戻せるかどうかをチェックします。 |
MEMBER FUNCTION existsNode(
|
このメンバー・ファンクションは、ネームスペースの情報が設定されたXPath式を使用し、XPathを適用するとノードを戻すかどうかをチェックします。 |
パラメータ | 説明 |
---|---|
xpath |
テストするXPath式。 |
nsmap |
ネームスペースのマッピング(オプション)。 |
メンバー・ファンクション。XMLType
フラグメントを抽出し、結果のノードを含むXMLType
インスタンスを戻します。ノードが含まれていない場合は、NULL
を戻します。指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
MEMBER FUNCTION extract(
|
指定されたXPath式に基づいてXPathを文書に適用し、フラグメントをXMLType として戻します。 |
MEMBER FUNCTION extract(
|
このメンバー・ファンクションは、XPath式とネームスペースのマッピングをXMLデータに適用し、結果のフラグメントを含むXMLType インスタンスを戻します。 |
パラメータ | 説明 |
---|---|
xpath |
適用するXPath式。 |
nsmap |
ネームスペースのマッピング情報に対するオプションの接頭辞。 |
メンバー・ファンクション。シリアル化されたXML表示を含むBLOB
を戻します。戻されたBLOB
が一時的なものである場合は、使用後、解放する必要があります。
構文
MEMBER FUNCTION getBlobVal( csid IN NUMBER) RETURN Blob deterministic;
パラメータ | 説明 |
---|---|
csid |
入力XMLデータのキャラクタ・セットID |
メンバー・ファンクション。シリアル化されたXML表示を含むCLOB
を戻します。戻されたCLOB
が一時的なものである場合は、使用後、解放する必要があります。
構文
MEMBER FUNCTION getClobVal() RETURN clob deterministic;
メンバー・ファンクション。インスタンスで最上位要素のネームスペースを戻します。入力がフラグメントの場合、または非スキーマ・ベースのインスタンスの場合は、NULL
が戻されます。
構文
MEMBER FUNCTION getNamespace return varchar2 deterministic;
メンバー・ファンクション。XMLType
インスタンスによりポイントされたテキスト値からフォーマットした数値を戻します。XMLType
は、数値を含む有効なテキスト・ノードをポイントする必要があります。指定できるオプションは、次の表のとおりです。
構文
MEMBER FUNCTION getNumberVal() RETURN number deterministic;
メンバー・ファンクション。XMLType
インスタンスのルート要素を取得します。インスタンスがフラグメントの場合はNULL
を戻します。
構文
MEMBER FUNCTION getRootElement return varchar2 deterministic;
メンバー・ファンクション。XMLType
インスタンスがスキーマ・ベースの文書である場合、XMLType
インスタンスに対応するXMLスキーマのURLを戻します。これらの条件を満たさない場合は、NULL
を戻します。
構文
MEMBER FUNCTION getSchemaURL return varchar2 deterministic;
メンバー・ファンクション。文字列としてドキュメントを戻します。シリアル化されたXML表示を含む文字列を戻します。またはテキスト・ノードの場合、テキスト自体を戻します。XMLドキュメントがVARCHAR2
の最大サイズの4000より大きい場合、ランタイム時にエラーが発生します。
構文
MEMBER FUNCTION getStringVal() RETURN varchar2 deterministic;
XMLType
インスタンスが適切に構成された文書またはフラグメントに対応しているかどうかを判別します。XMLType
インスタンスにフラグメントまたは適切に構成された文書が含まれているかどうかを1または0を戻して示します。
構文
MEMBER FUNCTION isFragment() RETURN number deterministic;
メンバー・ファンクション。XMLType
インスタンスがスキーマ・ベースかどうかを判別します。XMLType
インスタンスがスキーマ・ベースであるかどうかに基づいて、1または0を戻します。
構文
MEMBER FUNCTION isSchemaBased return number deterministic;
メンバー・ファンクション。入力インスタンスが指定されたスキーマに準拠しているかどうかをチェックします。XMLインスタンスの検証ステータスは変更されません。XMLスキーマのURLが指定されておらず、XML文書がスキーマ・ベースの場合、XMLType
インスタンス自体のスキーマに準拠しているかどうかがチェックされます。
構文
member function isSchemaValid( schurl IN VARCHAR2 := NULL, elem IN VARCHAR2 := NULL) return NUMBER deterministic;
パラメータ | IN / OUT | 説明 |
---|---|---|
schurl |
(IN) |
準拠しているかどうかをチェックする元になるXMLスキーマのURL。 |
elem |
(IN) |
検証の基準となる、指定されたスキーマ間の要素。最上位要素を複数定義するXMLスキーマを持ち、これらの要素のいずれか1つに準拠しているかどうかをチェックする場合に便利です。 |
メンバー・ファンクション。XMLType
インスタンスの検証ステータスを戻して、スキーマ・ベースのインスタンスが実際にスキーマと照合して検証されているかどうかを示します。インスタンスがスキーマと照合して検証されていれば1を、されていなければ0を戻します。
構文
MEMBER FUNCTION isSchemaValidated return NUMBER deterministic;
メンバー・プロシージャ。XMLインスタンスがスキーマと照合して検証されていない場合、検証します。非スキーマ・ベースのドキュメントの場合は、エラーが発生します。検証に失敗すると、エラーが発生します。そうでない場合は、ドキュメントのステータスが検証済に変更されます。
構文
MEMBER PROCEDURE schemaValidate( self IF OUT NOCOPY XMLType);
パラメータ | IN / OUT | 説明 |
---|---|---|
self |
(OUT) |
スキーマと照合して検証されているXMLインスタンス。 |
メンバー・ファンクション。入力XMLインスタンスにVALIDATION
ステータスを設定します。
構文
MEMBER PROCEDURE setSchemaValidated( self IF OUT NOCOPY XMLType, flag IN BINARY_INTEGER := 1);
パラメータ | IN / OUT | 説明 |
---|---|---|
self |
(OUT) |
XMLインスタンス |
flag |
(IN) |
0 - 無効 、1 - 有効 (デフォルト) |
メンバー・プロシージャ。XMLSCHEMA
マッピングを使用して(使用できる場合)、XML値をオブジェクト・タイプに変換します。SCHEMA
が使用できない場合、または入力が非スキーマ・ベースのXMLの場合は、要素とオブジェクト・タイプ属性の変換に使用される標準的なマッピングがプロシージャで使用されます。
構文
MEMBER PROCEDURE toObject( SELF in XMLType, object OUT "<ADT_1>", schema in varchar2 := NULL, element in varchar2 := NULL);
パラメータ | IN / OUT | 説明 |
---|---|---|
SELF |
(IN) |
変換するインスタンス。メンバー・プロシージャとして使用する場合は暗黙的です。 |
object |
(IN) |
変換するオブジェクト。必要なタイプのオブジェクト・インスタンスは、このファンクションに渡されます。 |
schema |
(IN) |
スキーマURL。XMLType インスタンスから変換するオブジェクト・インスタンスへのマッピングは、スキーマを使用して指定できます。 |
element |
(IN) |
最上位要素の名前。XMLスキーマ文書は、このパラメータを使用せずにXMLインスタンス文書に準拠する場合、最上位要素を指定しません。 |
メンバー・ファンクション。このメンバー・ファンクションは、XSLスタイルシート引数と名前/値ペアの文字列として渡された最上位パラメータを使用して、XMLデータを変換します。parammap以外の引数がすべてNULL
である場合、NULL
を戻します。
構文
MEMBER FUNCTION transform( xsl IN XMLType, parammap in varchar2 := NULL) RETURN XMLType deterministic;
パラメータ | IN / OUT | 説明 |
---|---|---|
xsl |
(IN) |
変換を記述するXSLスタイルシート。 |
parammap |
(IN) |
XSLに対する最上位パラメータ - 名前/値ペアの文字列。 |
XMLType
コンストラクタ。指定できるオプションは、次の表のとおりです。
構文 | 説明 |
---|---|
constructor function XMLType(
|
(オプション)このコンストラクタ・ファンクションは、指定されたスキーマとXMLデータ・パラメータを使用して、スキーマ・ベースのXMLType インスタンスを作成します。 |
constructor function XMLType(
|
(オプション)このコンストラクタ・ファンクションは、指定されたスキーマとXMLデータ・パラメータを使用して、スキーマ・ベースのXMLType インスタンスを作成します。 |
constructor function XMLType(
|
(オプション)このコンストラクタ・ファンクションは、指定されたオブジェクト・タイプ・パラメータからスキーマ・ベースのXMLType インスタンスを作成します。 |
constructor function XMLType(
|
(オプション)このコンストラクタ・ファンクションは、指定されたREF CURSOR パラメータからスキーマ・ベースのXMLType インスタンスを作成します。 |
constructor function XMLType(
|
(オプション)このコンストラクタ・ファンクションは、指定されたANYDATA パラメータからスキーマ・ベースのXMLType インスタンスを作成します。ANYDATA インスタンスにADTが含まれている場合は、ADTを直接コールした場合の結果と同じXMLType が戻されます。ANYDATA にスカラーが含まれている場合は、XMLType にはスカラー値が設定されたリーフ・ノードが含まれます。このノードの要素名は、オプションの要素文字列が存在する場合、そこから付けられます。存在しない場合は、ANYDATA となります。 |
constructor function XMLType(
|
(オプション)このコンストラクタ・ファンクションは、指定されたBLOB パラメータからスキーマ・ベースのXMLType インスタンスを作成します。 |
constructor function XMLType(
|
(オプション)このコンストラクタ・ファンクションは、指定されたBFILE パラメータからスキーマ・ベースのXMLType インスタンスを作成します。 |
パラメータ | 説明 |
---|---|
xmlData |
BFILE 、BLOB 、CLOB 、REF 、VARCHAR2 またはオブジェクト・タイプの形式に含まれるデータ。 |
schema |
指定されたスキーマに応じた入力を行うための、オプションのスキーマURL。 |
validated |
指定されたXMLスキーマに基づき、インスタンスが有効なスキーマであることを示します。 |
wellformed |
入力が適切に構成されていることを示します。設定すると、入力インスタンスに対する構成チェックは行われません |
element |
ADT_1 またはREF CURSOR コンストラクタの場合のオプションの要素名。(デフォルトはNULL です) |
CSID |
入力XMLデータのキャラクタ・セットID。 |