日本語PDF

SQL/XMLに対するOracleの準拠

規格のXMLデータ型はXMLです。Oracleの同等のデータ型は、XMLTypeです。Oracleと規格の相違点がデータ型の名前の綴りのみである場合、規格の機能はOracleで完全にサポートされているとみなします。

表C-3に、SQL/XMLの機能に対するOracleのサポートを示します。

表C-3 SQL/XMLの機能に対するOracleのサポート

機能識別子、機能 サポート

X010、XML型

この機能を完全にサポートします。

X011、XML型の配列

Oracleは、名前付きの配列型を使用してこの機能をサポートします。

X012、XML型の多重集合

OracleでXML型の多重集合に相当するものは、XML型の単一列を持つネストした表です。

X013、固有のXML型

固有型は、1つの属性のみを持つオブジェクト型を使用してエミュレートできます。

X014、XML型の属性

Oracleでは、オブジェクト型の属性はXMLType型にできますが、この構文はオブジェクト型の作成には標準ではありません。

X015、XML型のフィールド

Oracleのオブジェクト型は行型のかわりに使用できます。Oracleは、属性XMLTypeを持つオブジェクト型をサポートしています。

X016、永続XML値

この機能を完全にサポートします。

X020、XMLConcat

この機能を完全にサポートします。

X025、XMLCast

Oracleはこの機能をサポートしますが、次の制限事項があります。

  • ソース式はXMLTypeにする必要がありますが、ターゲット・データ型はXMLTypeにする必要がありません。(OracleはXML型を1つしか持たないため、XMLからXMLにキャストする必要はありません。)

  • Oracleは、<XML受渡しメカニズム>をサポートしていません。この動作は、規格のBY VALUEと同じです。

Oracleは、REF XMLTYPE型にキャストできるように、この機能を拡張しています。

X031、XMLElement

この機能を完全にサポートします。

X032、XMLForest

この機能を完全にサポートします。

X034、XMLAgg

この機能を完全にサポートします。

X035、XMLAggORDER BYオプション

この機能を完全にサポートします。

X036、XMLComment

この機能を完全にサポートします。

X036、XMLPi

この機能を完全にサポートします。

X038、XMLText

OracleのXMLCDataファンクションは、テキスト・ノードの作成に使用できます。

X040、表の基本マッピング

Oracleの表のマッピングは、Javaインタフェースおよびパッケージを介して実行できます。Oracleの表のマッピングは、表のみでなく問合せもマップするために汎用化されています。表のみをマップするには、SELECT * FROM table_nameを指定します。これによって、この機能のうち、次の要素をサポートします。

  • X041、表の基本マッピング(NULLなし)

  • X042、表の基本マッピング(NULLをNILとしてマッピング)

  • X043、表の基本マッピング(表をフォレストとしてマッピング)

  • X044、表の基本マッピング(表を要素としてマッピング)

  • X045、表の基本マッピング(ターゲット・ネームスペースを含む)

  • X046、表の基本マッピング(データのマッピング)

  • X047、表の基本マッピング(メタデータのマッピング)

  • X049、表の基本マッピング(16進エンコーディング)

Oracleは、この機能の次の要素をサポートしません。

  • X048、表の基本マッピング(BASE64エンコーディング)

X041、表の基本マッピング(NULLなし)

X040を参照してください。

X042、表の基本マッピング(NULLをNILとしてマッピング)

X040を参照してください。

X043、表の基本マッピング(表をフォレストとしてマッピング)

X040を参照してください。

X044、表の基本マッピング(表を要素としてマッピング)

X040を参照してください。

X045、表の基本マッピング(ターゲット・ネームスペースを含む)

X040を参照してください。

X046、表の基本マッピング(データのマッピング)

X040を参照してください。

X047、表の基本マッピング(メタデータのマッピング)

X040を参照してください。

X049、表の基本マッピング(16進エンコーディング)

X040を参照してください。

X060、XMLParse(文字列の入力およびCONTENTオプション)

Oracleは、{PRESERVE | STRIP} WHITESPACE構文をサポートしません。動作は常にSTRIP WHITESPACEになります。

X061、XMLParse(文字列の入力およびDOCUMENTオプション)

Oracleは、{PRESERVE | STRIP} WHITESPACE構文をサポートしません。動作は常にSTRIP WHITESPACEになります。

X069、XMLSERIALIZE: INDENT

Oracleは、インデント・サイズを指定できるように、この機能を拡張しています。

X070、XMLSerialize(文字列のシリアライズおよびCONTENTオプション)

Oracleはこの機能をサポートしますが、次の制限があります。

  • 規格では、DOCUMENTまたはCONTENTの選択はオプションですが、Oracleでは、どちらかを指定する必要があります。

Oracleはこの機能を拡張しています。規格ではターゲット・データ型が必要ですが、OracleではCLOBにデフォルト設定します。

X071、XMLSerialize(文字列のシリアライズおよびDOCUMENTオプション)

この機能を完全にサポートします。

X072、XMLSerialize(文字列のシリアライズ)

この機能を完全にサポートします。

X073、XMLSerialize: BLOBシリアライズ、およびCONTENTオプション

この機能を完全にサポートします。

X074、XMLSerialize: BLOBシリアライズ、およびDOCUMENTオプション

この機能を完全にサポートします。

X075、XMLSerialize: BLOBシリアライズ

この機能を完全にサポートします。

X076、XMLSerializeVERSIONオプション

シリアライズの前にXMLバージョンを設定するには、XMLRootを使用します。

X077、XMLSerialize: 明示的なENCODINGオプション

この機能を完全にサポートします。

X080、XML公開時のネームスペース

XMLElementのOracle実装では、XMLAttributesを使用してネームスペースが定義されます(XMLNamespacesは実装されません)。ただし、XMLAttributesは、XMLForestではサポートされません。

X086、XMLTableでのXMLネームスペースの宣言

この機能を完全にサポートします。

X090、XML文書の述語

Oracleでは、ISFRAGMENTメソッドを使用してXML値が文書かどうかをテストできます。

X096、XMLExists

Oracleはこの機能を完全にサポートします。ただし、Oracleは値渡しのみをサポートするため、PASSING句の先頭でのキーワードBY VALUEはオプションであり、個別の引数はサポートしていません。

X120、SQLルーチンでのXMLパラメータ

この機能を完全にサポートします。

X121、外部ルーチンでのXMLパラメータ

Oracleは、規格以外のインタフェースを使用して外部ルーチンに渡されるXML値をサポートします。

X141、IS VALID述語(データ駆動形式)

XMLISVALIDメソッドはIS VALID述語と同等で、データ駆動形式をサポートします。

X142、IS VALID述語(ACCORDING TO句)

XMLISVALIDメソッドはIS VALID述語と同等で、ACCORDING TO句に相当するものを含みます。

X143、IS VALID述語(ELEMENT句)

XMLISVALIDメソッドはIS VALID述語と同等で、ELEMENT句に相当するものを含みます。

X144、IS VALID述語(スキーマの場所)

XMLISVALIDメソッドはIS VALID述語と同等で、登録済XMLスキーマのスキーマの場所の指定をサポートします。

X145、IS VALID述語(CHECK制約の外部)

XMLISVALIDメソッドはIS VALID述語と同等で、CHECK制約の外部で使用できます。

X151、DOCUMENTオプション付きのIS VALID述語

XMLISVALIDメソッドはIS VALID述語と同等で、DOCUMENT句と同等の検証を実行します。(XMLISVALIDは内容の検証をサポートしません。)

X156、IS VALID述語(ELEMENT句の付いたオプションのNAMESPACE)

XMLISVALIDメソッドはIS VALID述語と同等で、ネームスペースの要素の検証に使用できます。

X157、IS VALID述語(ELEMENT句の付いたNO NAMESPACE)

XMLISVALIDメソッドはIS VALID述語と同等で、名前のないネームスペースの要素の検証に使用できます。

X160、登録済XMLスキーマの基本情報スキーマ

Oracleの静的データ・ディクショナリ・ビューALL_XML_SCHEMASは、現行のユーザーがアクセスできる登録済のXMLスキーマのリストを提供します。ALL_XML_SCHEMAS.SCHEMA_URL列は、規格のXML_SCHEMAS.XML_SCHEMA_LOCATION列に対応します。登録済XMLスキーマのターゲット・ネームスペースは、ALL_XML_SCHEMAS.SCHEMAを調べることによって確認できます。Oracleは、規格のXML_SCHEMASの他の列に相当する列を持ちません。

X161、登録済XMLスキーマの拡張情報スキーマ

Oracleは、規格のXML_SCHEMA_NAMESPACESおよびXML_SCHEMA_ELEMENTSに対応する静的データ・ディクショナリ・ビューを持ちません。ただし、登録済XMLスキーマに関するすべての情報は、ALL_XML_SCHEMAS.SCHEMA列にある実際のXMLスキーマを調べることによって確認できます。これを調べると、登録済XMLスキーマが非決定的であるかどうかも確認できます。また、非決定的なネームスペースと要素も確認できます。

X191、XML(DOCUMENT(XMLSCHEMA))型

Oracleは、この構文をサポートしません。ただし、表の列は登録済XMLスキーマで制約できます。この場合、列のすべての値はXML(DOCUMENT(XMLSCHEMA))型になります。

X200、XMLQuery

Oracleは、この機能の次の要素を完全にサポートします。

  • X201、XMLQuery: RETURNING CONTENT

  • X203、XMLQuery: コンテキスト項目の受渡し

  • X204、XMLQuery: XQuery変数の初期化

  • X206、XMLQuery: NULL ON EMPTYオプション

Oracleは値渡しのみをサポートするため、PASSING句の先頭でのキーワードBY VALUEはオプションであり、個別の引数はサポートしていません。

X201、XMLQuery: RETURNING CONTENT

X200を参照してください。

X203、XMLQuery: コンテキスト項目の受渡し

X200を参照してください。

X204、XMLQuery: XQuery変数の初期化

X200を参照してください。

X206、XMLQuery: NULL ON EMPTYオプション

X200を参照してください。

X221、XML受渡しメカニズムBY VALUE

Oracleは、XMLQueryXMLTableおよびXMLExistsでのBY VALUE句をサポートしています。これに該当するBY VALUEは、オプションの構文として引数リストの先頭でサポートされますが、個別の引数や列の修飾子としてはサポートされません。

X232、XML(CONTENT(ANY))型

Oracleは、この構文を型の修飾子としてサポートしませんが、OracleのXMLTypeは、一時値でこのデータ型をサポートします。永続値は、XML(DOCUMENT(ANY))型になります。この型は、XML(CONTENT(ANY))のサブセットです。

X241、XML文書作成時のRETURNING CONTENT

Oracleは、この構文をサポートしません。Oracleでは、文書を作成するファンクション(XMLAggXMLCommentXMLConcatXMLElementXMLForestおよびXMLPi)の動作は、常にRETURNING CONTENTになります。

X251、XML(DOCUMENT(UNTYPED))型の永続XML値

この機能を完全にサポートします。

X252、XML(DOCUMENT(ANY))型の永続値

この機能を完全にサポートします。

X256、XML(DOCUMENT(XMLSCHEMA))型の永続値

この機能を完全にサポートします。

X260、XML型(ELEMENT句)

Oracleは、この構文をサポートしません。ただし、表の列は登録済XMLスキーマの最上位の要素で制約できます。

X263、XML型(ELEMENT句の付いたNO NAMESPACE)

Oracleは、この構文をサポートしません。ただし、表の列は登録済XMLスキーマの名前のないネームスペースにある最上位の要素で制約できます。

X264、XML型(スキーマの場所)

Oracleは、この構文をサポートしません。ただし、表の列はスキーマの場所で識別される登録済XMLスキーマで制約できます。

X271、XMLValidate(データ駆動形式)

SCHEMAVALIDATEメソッドはXMLValidateと同等で、データ駆動形式をサポートします。

X272、XMLValidate(ACCORDING TO句)

SCHEMAVALIDATEメソッドはXMLValidateと同等で、特定の登録済XMLスキーマの指定に使用できます。

X273、XMLValidate(ELEMENT句)

SCHEMAVALIDATEメソッドはXMLValidateと同等で、特定の登録済XMLスキーマの特定要素を指定するために使用できます。

X274、XMLValidate(スキーマの場所)

SCHEMAVALIDATEメソッドはXMLValidateと同等で、スキーマの場所を示すURLで特定の登録済XMLスキーマを指定するために使用できます。

X281、DOCUMENTオプションの付いたXMLValidate

SCHEMAVALIDATEメソッドはXMLValidateと同等です。SCHEMAVALIDATEはXML文書の検証のみを実行します(内容の検証は実行しません)。

X286、XMLValidate(ELEMENT句の付いたNO NAMESPACE)

SCHEMAVALIDATEメソッドはXMLValidateと同等で、特定の登録済XMLスキーマの名前のないネームスペースにある特定要素を指定するために使用できます。

X300、XMLTable

Oracleは、列パス式の逆軸をサポートしません。この制限事項を除き、Oracleは、この機能の次の要素を完全にサポートします。

  • X086、XMLTableでのXMLネームスペースの宣言

  • X302、順序性列付きのXMLTable

  • X303、XMLTable(列のデフォルト・オプション)

  • X304、XMLTable(コンテキスト項目の受渡し)

  • X305、XMLTable(XQuery変数の初期化)

Oracleは値渡しのみをサポートするため、PASSING句の先頭でのキーワードBY VALUEはオプションであり、個別の引数はサポートしていません。

X302、順序性列付きのXMLTable

X300を参照してください。

X303、XMLTable(列のデフォルト・オプション)

X300を参照してください。

X304、XMLTable(コンテキスト項目の受渡し)

X300を参照してください。

X305、XMLTable(XQuery変数の初期化)

X300を参照してください。