ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
11g リリース1(11.1)
E05686-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

239 XMLTYPE

XMLTypeは、XMLデータ処理用のシステム定義で不透明なタイプです。XMLノードおよびフラグメントを抽出するためのメンバー・ファンクションが事前定義されています。

XMLTypeの列を作成し、その中にXML文書を挿入することができます。 また、SYS_XMLGENおよびSYS_XMLAGG SQLファンクションを使用して、XML文書をXMLTypeインスタンスとして動的に生成できます。

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


XMLTypeサブプログラムの要約

表239-1に、XMLTypeのファンクションとプロシージャの一覧を示します。

表239-1 XMLTYPEのサブプログラム

メソッド 説明

CREATENONSCHEMABASEDXML


入力スキーマに基づいたインスタンスから非スキーマ・ベースのXMLを作成します。

CREATESCHEMABASEDXML


入力スキーマURLを使用し、非スキーマ・ベースのインスタンスからスキーマ・ベースのXMLTypeインスタンスを作成します。

CREATEXML


XMLTypeインスタンスを作成して、戻すための静的なファンクション。

EXISTSNODE


XMLTypeインスタンスおよびXPathインスタンスを参照して、XPathを適用した場合に空でないノードのセットが戻されるかどうかを1または0を戻して示します。

EXTRACT


XMLTypeインスタンスおよびXPathインスタンスを参照し、XPath式を適用して結果をXMLTypeで戻します。

GETBLOBVAL


XMLTypeインスタンスの値をBLOBで戻します。

GETCLOBVAL


XMLTypeインスタンスの値をCLOBで戻します。

GETNAMESPACE


スキーマ・ベースのドキュメントの最上位要素のネームスペースを戻します。

GETNUMBERVAL


XMLTypeインスタンスの値をNUMBERで戻します。入力XMLTypeインスタンスがシンプルなテキスト・ノードで構成されており、数値に変換可能である場合にのみ有効です。

GETROOTELEMENT


入力インスタンスのルート要素を戻します。インスタンスがフラグメントの場合はNULLを戻します。

GETSCHEMAURL


入力がXMLスキーマ・ベースである場合は、XMLスキーマURLを戻します。

GETSTRINGVAL


XMLTypeインスタンスの値を文字列で戻します。

ISFRAGMENT


入力XMLTypeインスタンスがフラグメントかどうかをチェックします。フラグメントとは、複数のルート要素を持つXMLインスタンスです。

ISSCHEMABASED


入力XMLTypeインスタンスがスキーマ・ベースであるかどうかを1または0を戻して示します。

ISSCHEMAVALID


指定されたスキーマURLに基づき、入力インスタンスが有効なスキーマであるかどうかをチェックします。

ISSCHEMAVALIDATED


インスタンスがスキーマと照合して検証されているかどうかをチェックします。

SCHEMAVALIDATE


XMLスキーマに基づいて入力インスタンスを検証します。入力スキーマが非スキーマ・ベースの場合はエラーが発生します。

SETSCHEMAVALIDATED


手間のかかるスキーマ検証を省くために、スキーマが有効であることを示すフラグを設定します。

TOOBJECT


XMLTypeインスタンスをオブジェクト・タイプに変換します。

TRANSFORM


XMLTypeインスタンスと関連するスタイルシート(これもXMLTypeインスタンス)を参照し、スタイルシートを適用して結果をXMLで戻します。

XMLTYPE


XMLTypeデータ型のインスタンスを構成します。コンストラクタはXMLをCLOBVARCHAR2として、またはオブジェクト・タイプとして取り込みます。



CREATENONSCHEMABASEDXML

メンバー・ファンクション。スキーマ・ベースのインスタンスから非スキーマ・ベースのXML文書を作成します。

構文

MEMBER FUNCTION CREATENONSCHEMABASEDXML
return XMLType deterministic;

CREATESCHEMABASEDXML

メンバー・ファンクション。非スキーマ・ベースのXMLType値からスキーマ・ベースのXMLTypeインスタンスを作成します。付属のSCHEMA URLまたはインスタンスのSCHEMALOCATION属性のどちらかを利用します。

構文

MEMBER FUNCTION createSchemaBasedXML(
schema IN varchar2 := NULL)
return XMLType deterministic;
パラメータ 説明
schema 値を指定されたスキーマに変換するために使用する、オプションのXMLSchema URL。


CREATEXML

XMLTypeインスタンスを作成して、戻すための静的なファンクション。日付に渡すための文字列とCLOBパラメータには、適切な構成で有効なXML文書が含まれている必要があります。指定できるオプションは、次の表のとおりです。

構文 説明
STATIC FUNCTION createXML(

   xmlData IN varchar2)

RETURN XMLType deterministic;

文字列からXMLTypeインスタンスを作成します。
STATIC FUNCTION createXML(

   xmlData IN clob)

RETURN XMLType deterministic;

CLOBからXMLTypeインスタンスを作成します。
STATIC FUNCTION createXML(

   xmlData IN clob,

   schema IN varchar2,

   validated IN number := 0,

   wellformed IN number := 0 )

RETURN XMLType deterministic;

指定されたスキーマとXMLデータ・パラメータを使用して、静的なファンクションから、スキーマ・ベースのXMLTypeインスタンスを作成します。
STATIC FUNCTION createXML(

   xmlData IN varchar2,

   schema IN varchar2,

   validated IN number := 0,

   wellformed IN number := 0)

RETURN XMLType deterministic;

指定されたスキーマとXMLデータ・パラメータを使用して、静的なファンクションから、スキーマ・ベースのXMLTypeインスタンスを作成します。
STATIC FUNCTION createXML(

   xmlData IN "<ADT_1>",

   schema IN varchar2 := NULL,

   element IN varchar2 := NULL,

   validated IN NUMBER := 0)

RETURN XMLType deterministic;

ユーザー定義型のインスタンスからXMLインスタンスを作成します。
STATIC FUNCTION createXML(

   xmlData IN SYS_REFCURSOR,

   schema in varchar2 := NULL,

   element in varchar2 := NULL,

   validated in number := 0)

RETURN XMLType deterministic;

カーソル参照からXMLインスタンスを作成します。任意のSQL問合せをCURSORとして渡すことができます。
STATIC FUNCTION createXML(

   xmlData IN AnyData,

   schema in varchar2 := NULL,

   element in varchar2 := NULL,

   validated in number := 0)

RETURN sys.XMLType deterministic

   parallel_enable

ANYDATAからXMLインスタンスを作成します。ANYDATAインスタンスにADTが含まれている場合、ADTに直接コールした場合の結果と同じXMLTypeが戻されます。ANYDATAにスカラーが含まれている場合は、XMLTypeにはスカラー値が設定されたリーフ・ノードが含まれます。このノードの要素名は、オプションの要素文字列が設定されている場合、そこから付けられます。設定されていない場合は、ANYDATAとなります。
STATIC FUNCTION createXML(

   xmlData IN blob,

   csid IN number,

   schema IN varchar2,

   validated IN number := 0,

   wellformed IN number := 0)

return sys.XMLType deterministic

BLOBからXMLインスタンスを作成します。
STATIC FUNCTION createXML(

   xmlData IN bfile,

   csid IN number,

   Schema IN varchar2,

   validated IN number := 0,

   wellformed IN number := 0)

return sys.XMLType deterministic

BFILEからXMLインスタンスを作成します。

パラメータ 説明
xmlData BFILEBLOBCLOBREFカーソル、VARCHAR2またはオブジェクト・タイプの形式に含まれる実際のデータ。
schema 指定されたスキーマに応じた入力を行うための、オプションのスキーマURL。
validated 指定されたXMLスキーマに基づき、インスタンスが有効なスキーマであることを示すフラグ(デフォルトは0です)。
wellformed 入力が適切に構成されていることを示すフラグ。設定すると、入力インスタンスに対する構成チェックは行われません(デフォルトは0です)。
element ADT_1またはREF CURSORコンストラクタの、オプションの要素名(デフォルトはNULLです)。
CSID 入力XMLデータのキャラクタ・セットID。


EXISTSNODE

メンバー・ファンクション。ノードが存在するかどうかをチェックします。XPath文字列がNULLであるか、文書が空の場合は、0の値が戻されます。そうでない場合は、1が戻されます。指定できるオプションは、次の表のとおりです。

構文 説明
MEMBER FUNCTION existsNode(

   xpath IN varchar2)

RETURN number deterministic;

指定されたXPath式に基づき、文書に適用されたXPathが有効なノードを戻せるかどうかをチェックします。
MEMBER FUNCTION existsNode(

   xpath in varchar2,

   nsmap in varchar2)

RETURN number deterministic;

このメンバー・ファンクションは、ネームスペースの情報が設定されたXPath式を使用し、XPathを適用するとノードを戻すかどうかをチェックします。

パラメータ 説明
xpath テストするXPath式。
nsmap ネームスペースのマッピング(オプション)。


EXTRACT

メンバー・ファンクション。 XMLTypeフラグメントを抽出し、結果のノードを含むXMLTypeインスタンスを戻します。ノードが含まれていない場合は、NULLを戻します。指定できるオプションは、次の表のとおりです。

構文 説明
MEMBER FUNCTION extract(

   xpath IN varchar2)

RETURN XMLType deterministic;

指定されたXPath式に基づいてXPathを文書に適用し、フラグメントをXMLTypeとして戻します。
MEMBER FUNCTION extract(

   xpath IN varchar2,

   nsmap IN varchar2)

RETURN XMLType deterministic;

このメンバー・ファンクションは、XPath式とネームスペースのマッピングをXMLデータに適用し、結果のフラグメントを含むXMLTypeインスタンスを戻します。

パラメータ 説明
xpath 適用するXPath式。
nsmap ネームスペースのマッピング情報に対するオプションの接頭辞。


GETBLOBVAL

メンバー・ファンクション。シリアル化されたXML表示を含むBLOBを戻します。一時的なBLOBが戻された場合は、使用後、解放する必要があります。

構文

MEMBER FUNCTION getBlobVal()
RETURN Blob deterministic;

GETCLOBVAL

メンバー・ファンクション。シリアル化されたXML表示を含むCLOBを戻します。一時的なCLOBが戻された場合は、使用後、解放する必要があります。

構文

MEMBER FUNCTION getClobVal()
RETURN clob deterministic;

GETNAMESPACE

メンバー・ファンクション。インスタンスで最上位要素のネームスペースを戻します。入力がフラグメントの場合、または非スキーマ・ベースのインスタンスの場合は、NULLが戻されます。

構文

MEMBER FUNCTION getNamespace
return varchar2 deterministic;

GETNUMBERVAL

メンバー・ファンクション。XMLTypeインスタンスによりポイントされたテキスト値からフォーマットした数値を戻します。XMLTypeは、数値を含む有効なテキスト・ノードをポイントする必要があります。指定できるオプションは、次の表のとおりです。

構文

MEMBER FUNCTION getNumberVal()
RETURN number deterministic;

GETROOTELEMENT

メンバー・ファンクション。XMLTypeインスタンスのルート要素を取得します。インスタンスがフラグメントの場合はNULLを戻します。

構文

MEMBER FUNCTION getRootElement
return varchar2 deterministic;

GETSCHEMAURL

メンバー・ファンクション。XMLTypeインスタンスがスキーマ・ベースの文書である場合、XMLTypeインスタンスに対応するXMLスキーマのURLを戻します。これらの条件を満たさない場合は、NULLを戻します。

構文

MEMBER FUNCTION getSchemaURL
return varchar2 deterministic;

GETSTRINGVAL

メンバー・ファンクション。文書を文字列として戻します。シリアル化したXML表示を含む文字列を戻します。テキスト・ノードの場合は、テキスト自体を戻します。XML文書のサイズがVARCHAR2の最大サイズ(4000)を超えている場合、ランタイム時にエラーが発生します。

構文

MEMBER FUNCTION getStringVal()
RETURN varchar2 deterministic;

ISFRAGMENT

XMLTypeインスタンスが適切に構成された文書またはフラグメントに対応しているかどうかを判別します。XMLTypeインスタンスにフラグメントまたは適切に構成された文書が含まれているかどうかを1または0を戻して示します。

構文

MEMBER FUNCTION isFragment()
RETURN number deterministic;

ISSCHEMABASED

メンバー・ファンクション。XMLTypeインスタンスがスキーマ・ベースかどうかを判別します。XMLTypeインスタンスがスキーマ・ベースであるかどうかに基づいて、1または0を戻します。

構文

MEMBER FUNCTION isSchemaBased
return number deterministic;

ISSCHEMAVALID

メンバー・ファンクション。入力インスタンスが指定されたスキーマに準拠しているかどうかをチェックします。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つに準拠しているかどうかをチェックする場合に便利です。


ISSCHEMAVALIDATED

メンバー・ファンクション。XMLTypeインスタンスの検証ステータスを戻して、スキーマ・ベースのインスタンスが実際にスキーマと照合して検証されているかどうかを示します。インスタンスがスキーマと照合して検証されていれば1を、されていなければ0を戻します。

構文

MEMBER FUNCTION isSchemaValidated
return NUMBER deterministic;

SCHEMAVALIDATE

メンバー・プロシージャ。XMLインスタンスがスキーマと照合して検証されていない場合、検証します。非スキーマ・ベース文書の場合は、エラーが発生します。検証が失敗するとエラーが発生します。エラーが発生しなければ、文書のステータスは検証済に変更されます。

構文

MEMBER PROCEDURE schemaValidate(
   self IF OUT NOCOPY XMLType);
パラメータ IN / OUT 説明
self (OUT) スキーマと照合して検証されているXMLインスタンス。


SETSCHEMAVALIDATED

メンバー・ファンクション。入力XMLインスタンスにVALIDATIONステータスを設定します。

構文

MEMBER PROCEDURE setSchemaValidated(
self IF OUT NOCOPY XMLType,
   flag IN BINARY_INTEGER := 1);
パラメータ IN / OUT 説明
self (OUT) XMLインスタンス
flag (IN) 0 - 無効、1 - 有効(デフォルト)


TOOBJECT

メンバー・プロシージャ。XMLSCHEMAマッピングを使用して(使用できる場合)、XML値をオブジェクト・タイプに変換します。SCHEMAが使用できない場合、または入力が非スキーマ・ベースのXMLの場合は、要素とオブジェクト・タイプ属性の変換に使用される標準的なマッピングがプロシージャで使用されます。


関連項目:

  • 詳細は『Oracle XML DB開発者ガイド』を参照してください。


構文

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インスタンス文書に準拠する場合、最上位要素を指定しません。


TRANSFORM

メンバー・ファンクション。 このメンバー・ファンクションは、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

XMLTypeコンストラクタ。指定できるオプションは、次の表のとおりです。

構文 説明
constructor function XMLType(

   xmlData IN clob,

   schema IN varchar2 := NULL,

   validated IN number := 0,

   wellformed IN Number := 0)

return self as result deterministic;

(オプション)このコンストラクタ・ファンクションは、指定されたスキーマとXMLデータ・パラメータを使用して、スキーマ・ベースのXMLTypeインスタンスを作成します。
constructor function XMLType(

   xmlData IN varchar2,

   schema IN varchar2 := NULL,

   validated IN number := 0,

   wellformed IN number := 0 )

return self as result deterministic;

(オプション)このコンストラクタ・ファンクションは、指定されたスキーマとXMLデータ・パラメータを使用して、スキーマ・ベースのXMLTypeインスタンスを作成します。
constructor function XMLType(

   xmlData IN "w<ADT_1>",

   schema IN varchar2 := NULL,

   element IN varchar2 := NULL,

   validated IN number := 0)

return self as result deterministic;

(オプション)このコンストラクタ・ファンクションは、指定されたオブジェクト・タイプ・パラメータからスキーマ・ベースのXMLTypeインスタンスを作成します。
constructor function XMLType(

   xmlData IN SYS_REFCURSOR,

   schema in varchar2 := NULL,

   element in varchar2 := NULL,

   validated in number := 0)

return self as result deterministic;

(オプション)このコンストラクタ・ファンクションは、指定されたREF CURSORパラメータからスキーマ・ベースのXMLTypeインスタンスを作成します。
constructor function XMLType(

   xmlData IN AnyData,

   schema IN varchar2 := NULL,

   element IN varchar2 := NULL,

   validated IN number := 0)

return self as result deterministic

   parallel_enable

(オプション)このコンストラクタ・ファンクションは、指定されたANYDATAパラメータからスキーマ・ベースのXMLTypeインスタンスを作成します。ANYDATAインスタンスにADTが含まれている場合、ADTに直接コールした場合の結果と同じXMLTypeが戻されます。ANYDATAにスカラーが含まれている場合は、XMLTypeにはスカラー値が設定されたリーフ・ノードが含まれます。このノードの要素名は、オプションの要素文字列が設定されている場合、そこから付けられます。設定されていない場合は、ANYDATAとなります。
constructor function XMLType(

   xmlData IN blob, csid IN number,

   schema IN varchar2 := NULL,

   validated IN number := 0,

   wellformed IN number := 0)

return self as result deterministic

(オプション)このコンストラクタ・ファンクションは、指定されたBLOBパラメータからスキーマ・ベースのXMLTypeインスタンスを作成します。
constructor function XMLType(

   xmlData IN bfile,

   csid IN number,

   schema IN varchar2 := NULL,

   validated IN number := 0,

   wellformed IN number := 0)

return self as result deterministic

(オプション)このコンストラクタ・ファンクションは、指定されたBFILEパラメータからスキーマ・ベースのXMLTypeインスタンスを作成します。

パラメータ 説明
xmlData BFILEBLOBCLOBREFVARCHAR2またはオブジェクト・タイプの形式に含まれるデータ。
schema 指定されたスキーマに応じた入力を行うための、オプションのスキーマURL。
validated 指定されたXMLスキーマに基づき、インスタンスが有効なスキーマであることを示します。
wellformed 入力が適切に構成されていることを示します。設定すると、入力インスタンスに対する構成チェックは行われません
element ADT_1またはREF CURSORコンストラクタの、オプションの要素名(デフォルトはNULLです)。
CSID 入力XMLデータのキャラクタ・セットID。