ヘッダーをスキップ
Oracle® XML DB開発者ガイド
11gリリース2 (11.2)
B70200-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Oracle XML DBの新機能

この章では、Oracle Database 11gのOracle XML DBに追加された新機能、拡張機能、APIおよび製品統合サポートについて説明します。

また、非推奨になったOracle XML DBの特定の構造体についても説明します。

Oracle Database 11gリリース2(11.2.0.3)で非推奨となったOracle XML DB構造体

次のOracle XML DB構造体は、Oracle Database 11gリリース2(11.2.0.3)で非推奨になりました。これらは、下位互換用として11.2.0.3でもサポートされますが、新しいアプリケーションでは使用しないことをお薦めします。

  • PL/SQLプロシージャDBMS_XDB_ADMIN.createRepositoryXMLIndex

  • PL/SQLプロシージャDBMS_XDB_ADMIN.XMLIndexAddPath

  • PL/SQLプロシージャDBMS_XDB_ADMIN.XMLIndexRemovePath

  • PL/SQLプロシージャDBMS_XDB_ADMIN.dropRepositoryXMLIndex

  • XMLスキーマの注釈(属性)csx:encodingType

  • ハイブリッドXMLType記憶域のCLOB部分(オブジェクト・リレーショナル記憶域内に埋込みのCLOBデータ)上のXMLIndex索引

Oracle Database 11gリリース2 (11.2.0.3)でのOracle XML DBのその他の変更

次のPL/SQLプロシージャは、Oracle Database 11gリリース2 (11.2.0.3)でパッケージDBMS_XDBからパッケージDBMS_XDB_ADMINに移動されました。

  • moveXDB_tablespace

  • rebuildHierarchicalIndex

Oracle Database 11gリリース2(11.2.0.2)でのOracle XML DBの新機能

Oracle Database 11gリリース2(11.2.0.2)では、Oracle XML DBの次の機能が新たに導入されました。

XMLTypeのデフォルト記憶域モデル

XMLType表または列の作成時に記憶域モデルを指定しないと、XMLTypeのデフォルト記憶域モデルが使用されます。Oracle Database 11gリリース2(11.2.0.2)まで、デフォルトで非構造化(CLOB)記憶域が使用されていました。デフォルト記憶域モデルはバイナリXML記憶域に変更されました。


注意:

バイナリXML記憶域を使用する表を新たに作成し、CLOB記憶域を使用して格納されている既存のXMLTypeデータをその中に移入できます。CREATE TABLE AS SELECT...を使用して、既存のデータから選択します。

この機能は、Oracle Database 11gリリース2(11.2.0.2)から使用できます。

バイナリXMLのデフォルトLOB記憶域

バイナリXML記憶域モデルを使用するXMLTypeデータは、内部的にはラージ・オブジェクト(LOB)を使用して格納されます。Oracle Database 11gリリース2(11.2.0.2)まで、バイナリXMLデータはデフォルトでBasicFile LOB記憶域オプションを使用して格納されていました。今後、バイナリXMLデータのLOB記憶域では、デフォルトでSecureFile LOB記憶域オプションが可能なかぎり使用されます。

SecureFile LOB記憶域が使用できない場合は、デフォルトでBasicFile LOB記憶域が使用されます。これが起こるのは、次のいずれかに当てはまる場合です。

  • XMLType表の表領域で、自動セグメント領域管理が使用されていない。

  • ファイルinit.oraの設定により、SecureFile LOB記憶域を使用できない。例として、パラメータDB_SECUREFILEを参照してください。


関連項目:


この機能は、Oracle Database 11gリリース2(11.2.0.2)から使用できます。

リポジトリの問合せパフォーマンスを高めるXQueryプラグマora:defaultTable

これまで、Oracle XML DBリポジトリ・リソースに対してfn:docfn:collectionを使用するXQuery式のパフォーマンスを最適化するには、RESOURCE_VIEWとの明示的な結合を実行する必要がありました。今後は、新しいXQuery拡張式プラグマora:defaultTableにより、必要な結合が自動的に実行されます。

この機能は、Oracle Database 11gリリース2(11.2.0.2)から使用できます。

XML診断能力モード: SQL*Plusのシステム変数XMLOptimizationCheck

SQL*Plus SETコマンドで新しいシステム変数XMLOptimizationCheckを使用すると、SQLのXML診断能力モードを有効にすることができます。このモードを有効にすると、実行計画に対してXPathリライトのチェックが自動的に行われます。計画が最適でない場合は、エラーが発生し、リライトされていない演算子を示す診断情報がトレース・ファイルに書き込まれます。

この機能は、Oracle Database 11gリリース2(11.2.0.2)から使用できます。

Oracle Database 11gリリース2(11.2.0.2)で非推奨となったOracle XML DB構造体

次のOracle XML DB構造体は、Oracle Database 11gリリース2(11.2.0.2)で非推奨になりました。これらは、下位互換用として11.2.0.2でもサポートされますが、新しいアプリケーションでは使用しないことをお薦めします。

Oracle Database 11gリリース2(11.2.0.1)でのOracle XML DBの新機能

Oracle Database 11gリリース2(11.2.0.1)では、Oracle XML DBの次の機能が新たに導入されました。

XMLType表および列のパーティション化

オブジェクト・リレーショナル形式で格納されたXMLTypeデータの場合、XMLType実表またはXMLType列を持つ実表をパーティション化すると、ヒープに基づく表記憶域を使用するすべてのコレクション表に対しても、デフォルトで自動的に同一レベル・パーティション化が行われるようになりました。同一レベル・パーティション化とは、実表のパーティションごとに、対応するコレクション表パーティションが存在するということです。子要素は、その親要素の実表パーティションに対応するコレクション表パーティションに格納されます。

アクセス制御の拡張

アクセス制御リスト(ACL)が様々な方法で拡張され、カスタマイズ可能なファイングレイン・アクセス制御を行うことができます。独自の権限を定義して、柔軟な方法でそれらの権限をユーザーおよびロールに関連付けることができます。ACLで継承を使用できます。アクセス制御エントリ(ACE)では、開始日と終了日を指定できます。アプリケーションのユーザーおよびロールのアクセスを制御できます。これらは必ずしも、データベースのユーザーおよびロールと同じとはかぎりません。

リポジトリの読取りおよび書込みパフォーマンスの拡張

Oracle XML DBリポジトリの読取りおよび書込み操作のパフォーマンスが向上しました。

バイナリXMLのパフォーマンス拡張およびパーティション化

バイナリXML表に対する問合せおよびDML操作のパフォーマンスが向上しました。また、仮想列をパーティション化キーとして使用して、バイナリXML表をパーティション化できるようになりました。

XMLIndexの拡張

XMLIndexを使用すると、通常は構造化されていないコンテンツに埋め込まれた構造化XMLコンテンツのアイランドに索引を付けることができます。このためXMLIndex索引では、構造化XMLコンテンツと非構造化XMLコンテンツのどちらにも索引を付けることができます。

パーティション化されたXMLType表のデータに対して、ローカルのXMLIndex索引を作成できます。


関連項目:

「XMLIndex」

コストベースのXPathリライト

新しいオプティマイザ・ヒントを使用して、XQuery式のコストベースの最適化を要求できます。

Oracle Database 11gリリース2(11.2.0.1)で非推奨となったOracle XML DB構造体

次のOracle XML DB構造体は、Oracle Database 11gリリース2(11.2.0.1)で非推奨になりました。これらは、下位互換用として11.2.0.1でもサポートされますが、新しいアプリケーションでは使用しないことをお薦めします。

  • Oracle SQL関数extract: かわりに、SQL/XML関数XMLQueryを使用してください。「Oracle XML DBのXMLQUERY SQL/XML関数」を参照してください。

  • Oracle SQL関数extractValue: かわりに、SQL/XML関数XMLTable、またはSQL/XML関数XMLCastおよびXMLQueryを使用してください。

  • Oracle SQL関数existsNode: かわりに、SQL/XML関数XMLExistsを使用してください。「XMLEXISTS SQL/XML関数」を参照してください。

  • Oracle SQL関数XMLSequence: かわりに、SQL/XML関数XMLTableを使用してください。「Oracle XML DBのXMLTABLE SQL/XML関数」を参照してください。

  • Oracle XPath関数ora:instanceof: かわりに、XQuery演算子instance ofを使用してください。

  • Oracle XPath関数ora:instanceof-only: かわりに、XML Schema属性xsi:typeを使用してください。

  • PL/SQL XMLTypeメソッドgetStringVal()getCLOBVal()およびgetBLOBVal(): かわりに、SQL/XML関数XMLSerializeを使用してください。「XMLSERIALIZE SQL/XML関数」を参照してください。

  • PL/SQL XMLTypeメソッドgetNamespace(): かわりに、XQuery関数fn:namespace-uriを使用してください。

  • PL/SQL XMLTypeメソッドgetRootElement(): かわりに、XQuery関数fn:local-nameを使用してください。

  • XMLTypeのファンクション索引 - かわりに、構造化コンポーネントが含まれるXMLIndexを使用してください。「ファンクション索引」を参照してください。

Oracle Database 11g リリース1(11.1)でのOracle XML DBの新機能

バイナリXML

バイナリXMLは、抽象データ型であるXMLTypeの新たな記憶域モデルであり、構造化記憶域(オブジェクト・リレーショナル)と非構造化(CLOB)記憶域の既存の記憶域モデルを結合します。バイナリXMLはXML Schemaを認識しますが、XML Schemaに基づいていないXMLデータでも使用できます。詳細は、「XMLType記憶域モデル」を参照してください。


関連項目:

  • バイナリXMLとして保存されるXMLTypeデータの概要は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

  • バイナリXMLとして保存されるXMLType表および列の作成の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • Javaを使用してバイナリXMLデータを操作する方法の詳細は、『Oracle Database XML Java API Reference』を参照してください。

  • Cを使用してバイナリXMLデータを操作する方法の詳細は、『Oracle Database XML C APIリファレンス』を参照してください。


XMLIndex

XMLType用の新たな索引タイプXMLIndexが提供されています。これにより、XML Schemaに基づくかどうかにかかわらず、XPathに基づく述語のパフォーマンスおよびXMLTypeデータのフラグメント抽出を大幅に向上します。新しい索引タイプは(論理的な)ドメイン索引であり、基礎となる物理表と2次索引によって構成されます。第6章「XMLTypeデータの索引付け」を参照してください。


注意:

CTXSYS.CTXXPath索引は、Oracle Database 11gリリース1(11.1)で非推奨になりました。CTXXPathによって提供されていた機能は、XMLIndexで提供されるようになります。

CTXXPath索引をXMLIndex索引に置換することをお薦めします。今後リリースされるデータベースでは、CTXXPathはサポートされなくなります。



関連項目:

  • 新規ビューXIDX_USER_PENDINGの詳細は、『Oracle Databaseリファレンス』を参照してください。

  • 新規PL/SQLパッケージDBMS_XMLINDEXの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。


XMLType OCTでのIOTに代わるヒープ記憶域の使用

XML要素のコレクションをOrdered Collections in Tables(OCT)として収集することができます。OCTでは、デフォルトでヒープ記憶域が使用されるようになりました。以前のリリースでのOCTは、デフォルトでは索引構成表(IOT)でした。新しいXML Schema登録オプション、REGISTER_NT_AS_IOTを使用すると、強制的にIOTが使用されます。

XML Schema注釈storeVarrayAsTableのデフォルト値をtrueに変更

以前のリリースでは、XMLスキーマ注釈storeVarrayAsTableのデフォルト値はfalseでしたが、trueに変更されました。これは、XMLコレクションがOrdered Collections in Tables(OCT)内に一連の行として格納されることを意味します。各行がコレクション内の要素に対応します。注釈がstoreVarrayAsTable = "false"となっている場合、コレクション全体がかわりにシリアライズされてLOB列にvarrayとして格納されます。

storeVarrayAsTable = "true"を使用すると、コレクションを効率的に使用して問合せ、更新、およびBツリー索引の作成を行うことができます。


関連項目:

XMLコレクションをオブジェクト・リレーショナルに格納する方法の詳細は、「オブジェクト・リレーショナルなXMLType記憶域の場合のコレクション格納方法の制御」を参照してください。

リポジトリのイベント

アプリケーションでは、リソースの作成、削除、更新など、Oracle XML DBリポジトリに関するイベントのハンドラによって、リスナーを登録できるようになりました。第30章「Oracle XML DBリポジトリ・イベント」を参照してください。


関連項目:

  • 新規Javaメソッドの詳細は、『Oracle Database XML Java API Reference』を参照してください。

  • 新規PL/SQLパッケージDBMS_XEVENTの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  • 新規PL/SQLパッケージDBMS_RESCONFIGの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  • 新規PL/SQLパッケージDBMS_XDBRESOURCEの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。


Content Repository API for Javaのサポート(JCR: JSR-170)

Oracle XML DBでは、新たにContent Repository API for Java(JCR)とJSR-170標準をサポートします。JCRのAPIを使用し、Oracle XML DBリポジトリにアクセスできるようになります。第31章「Oracle XML DB Content Connectorの使用」を参照してください。


関連項目:

新規Javaメソッドの詳細は、『Oracle Database XML Java API Reference』を参照してください。

リポジトリ・リソースの新しいリンク・タイプ

弱いフォルダ・リンクを作成し、Oracle XML DBリポジトリのフォルダと子の関係を表せるようになりました。ハード・リンクも引き続き使用できます。「リンク・タイプ」を参照してください。


関連項目:

  • PL/SQLパッケージDBMS_XDBの最新情報は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  • under_path関数の最新情報は、『Oracle Database SQL言語リファレンス』を参照してください。


WebDAV権限と新規Oracle XML DB権限のサポート

Oracle XML DBリポジトリで、すべてのWebDAV権限がサポートされるようになりました。さらに、Oracle XML DB固有の基本権限もいくつか新たに用意されています。第27章「リポジトリのアクセス制御」を参照してください。


関連項目:

  • 新規PL/SQLパッケージDBMS_NETWORK_ACL_ADMINの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  • 新規PL/SQLパッケージUTL_TCPの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

  • 新規PL/SQLパッケージUTL_INADDRの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。


Webサービス

Webサービスを通じてOracle Databaseにアクセスできるようになりました。SQLまたはXQueryを使用し、データベースに問い合せるWebサービスを作成およびデプロイするか、保存されたPL/SQL関数やプロシージャにアクセスできます。第33章「ネイティブなOracle XML DB Webサービスの使用」を参照してください。

インプレースXML Schemaの拡張

ほとんどのケースで、対応するXMLインスタンス・ドキュメントをコピーせずに、XML Schemaを拡張できるようになりました。第10章「XML Schemaの拡張」を参照してください。


関連項目:

PL/SQLパッケージDBMS_XMLSCHEMAの最新情報は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

再帰的なXML Schemaのサポート

Oracle XML DBでは、XMLデータが再帰的XML schemaに準拠する場合でも、複数または任意の深さのノード上で、XPath式に'//'を使用する一部の問合せに対してXPathリライトを実行できるようになりました。「再帰的スキーマのサポート」を参照してください。


関連項目:

PL/SQLパッケージDBMS_XMLSCHEMAの最新情報は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

XLinkおよびXIncludeのサポート

Oracle XML DBでは現在、XLinkとXInclude標準をサポートしています。第23章「Oracle XML DBでのXLinkおよびXIncludeの使用」を参照してください。

XML変換のサポート

自然言語の変換情報を、XML schemaおよび対応するインスタンス・ドキュメントに関連付けられるようになりました。これには、標準属性xml:langxml:srclangのサポートも含まれます。「XML変換」を参照してください。


関連項目:

新規PL/SQLパッケージDBMS_XMLTRANSLATIONSの詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。

大規模なXMLノードのサポート

テキスト・ノードおよび属性値に対する64Kの制限が解除されました。テキスト・ノードと属性値は、それぞれ64Kバイトの制限は受けなくなります。PL/SQL、Java、およびCで使用可能な、プッシュ型およびプル型のストリーミングAPIにより、実質的に無制限のノード・サイズが可能になります。PL/SQLで大規模なノードを扱う方法の詳細は、「DBMS_XMLDOMを使用した大規模ノードの処理」、および「Javaを使用した大規模ノードの処理」を参照してください。


関連項目:

  • バイナリXMLとして保存されるXMLType表および列の作成の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • 新規Javaメソッドの詳細は、『Oracle Database XML Java API Reference』を参照してください。

  • 新規PL/SQLパッケージDBMS_SDAの詳細、およびPL/SQLパッケージDBMS_XMLDOMの最新情報は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。


Java APIの統合

Oracle XML DBおよびOracle XML Developer's KitのJava XML APIが統合されました。


関連項目:

  • 『Oracle XML Developer's Kitプログラマーズ・ガイド』

  • 『Oracle Database XML Java API Reference』oracle.xml.parser.v2パッケージに関する項


Oracle Data PumpによるXMLTypeサポート

XMLTypeデータのインポートおよびエクスポートの方法として、Oracle Data Pumpをお薦めします。第36章「XMLType表のエクスポートおよびインポート」を参照してください。

Oracle Streamsおよびロジカル・スタンバイによるXMLTypeのサポート

Oracle Streamsおよびロジカル・スタンバイでは現在、CLOBとして保存されるXMLTypeがサポートされています。XML Schemaに基づくデータと基づかないデータの両方がサポートされています。


関連項目:

  • 『Oracle Streams概要および管理』

  • 『Oracle Data Guard概要および管理』

  • 『Oracle Databaseユーティリティ』

  • ビューDBA_STREAMS_UNSUPPORTEDおよびDBA_STREAMS_COLUMNSの詳細は、『Oracle Databaseリファレンス』を参照してください。


Oracle XML Developer's Kit Pull-Parser API(XMLイベント、JSR-173)

Oracle XML DBでは、新しいOracle XML Kit(XDK)のPull Parser APIを使用できます。「Oracle XML DBでのOracle XML Developer's Kit Pull Parserの使用」を参照してください。


関連項目:

  • 新規Cメソッドおよび型の詳細は、『Oracle Database XML C APIリファレンス』を参照してください。

  • 『Oracle XML Developer's Kitプログラマーズ・ガイド』


XQueryの標準準拠

Oracle XML DBによるXQuery言語のサポートが更新され、XQuery標準の最新バージョン、W3C XQuery 1.0勧告が反映されています。


関連項目:

  • 『Oracle XML Developer's Kitプログラマーズ・ガイド』

  • XQuery言語の詳細は、http://www.w3.orgを参照してください。


PL/SQLを使用した、ネットワーク・サービスへのファイングレイン・アクセス

アクセス制御エントリ(ACE)に、新しい基本権限が提供されます。これらの権限は、ネットワーク・サービスへのファイングレインPL/SQLアクセスで使用されます。

SQL/XML標準準拠とパフォーマンスの拡張

Oracle XML DBによるSQL/XML標準のサポートが更新され、最新バージョンの標準が反映されています。これには、標準的なSQL関数XMLExistsおよびXMLCastのサポートなどがあります。「SQL/XML関数XMLExistsおよびXMLCastを使用したXMLTypeデータの問合せ」および「SQL関数を使用したXMLの生成」を参照してください。


関連項目:

SQL/XML関数XMLExistsXMLCastXMLQueryXMLTableおよびXMLForestの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

XML-Updateのパフォーマンス拡張

XMLデータの更新に使用されるSQL関数のパフォーマンスが、オブジェクト・リレーション形式で保存されるXML Schemaに基づくデータ向けに強化されました。これには、SQL関数updateXMLinsertChildXMLおよびdeleteXMLのXPathリライトが含まれます。

XQueryおよびSQL/XMLパフォーマンスの拡張

XQueryとSQL/XMLにあるパフォーマンス拡張機能には、次に示す項目の処理などがあります。

  • ユーザー定義のXQuery関数

  • XQueryプロローグ変数

  • SQL/XML生成関数を使用した結果に適用されるXQuery count関数

  • XPath述語の位置指定式

  • XQuery計算済コンストラクタ

  • SQL/XML関数XMLAgg

XSLTパフォーマンス拡張機能

SQL関数XMLTransformおよびXMLTypeメソッドtransform()を使用したXSLT変換のパフォーマンスが強化されました。