この章では、Oracle Database 11gのOracle XML DBに追加された新機能、拡張機能、APIおよび製品統合サポートについて説明します。
また、非推奨になった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
索引
次の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の次の機能が新たに導入されました。
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:doc
とfn: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 XML DB構造体は、Oracle Database 11gリリース2(11.2.0.2)で非推奨になりました。これらは、下位互換用として11.2.0.2でもサポートされますが、新しいアプリケーションでは使用しないことをお薦めします。
BasicFile LOB記憶域を使用してバイナリXMLとして格納されているXMLType
データ。新機能「バイナリXMLのデフォルトLOB記憶域」を参照してください。
Oracle XQuery関数ora:view
: かわりに、XQuery関数fn:doc
およびfn:collection
を使用してください。第5章「Oracle XML DBでのXQueryの使用」を参照してください。
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
索引を作成できます。
コストベースのXPathリライト
新しいオプティマイザ・ヒントを使用して、XQuery式のコストベースの最適化を要求できます。
次の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
を使用してください。
関数XMLTable
の使用方法の詳細は、「SQL/XML関数XMLQUERYおよびXMLTABLE」を参照してください。
関数XMLCast
およびXMLQuery
の使用方法の詳細は、「XMLCAST SQL/XML関数」を参照してください。
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
を使用してください。「ファンクション索引」を参照してください。
バイナリXML
バイナリXMLは、抽象データ型であるXMLType
の新たな記憶域モデルであり、構造化記憶域(オブジェクト・リレーショナル)と非構造化(CLOB
)記憶域の既存の記憶域モデルを結合します。バイナリXMLはXML Schemaを認識しますが、XML Schemaに基づいていないXMLデータでも使用できます。詳細は、「XMLType記憶域モデル」を参照してください。
関連項目:
|
XMLIndex
XMLType
用の新たな索引タイプXMLIndex
が提供されています。これにより、XML Schemaに基づくかどうかにかかわらず、XPathに基づく述語のパフォーマンスおよびXMLType
データのフラグメント抽出を大幅に向上します。新しい索引タイプは(論理的な)ドメイン索引であり、基礎となる物理表と2次索引によって構成されます。第6章「XMLTypeデータの索引付け」を参照してください。
注意: CTXSYS.CTXXPath 索引は、Oracle Database 11gリリース1(11.1)で非推奨になりました。CTXXPath によって提供されていた機能は、XMLIndex で提供されるようになります。
|
関連項目:
|
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ツリー索引の作成を行うことができます。
リポジトリのイベント
アプリケーションでは、リソースの作成、削除、更新など、Oracle XML DBリポジトリに関するイベントのハンドラによって、リスナーを登録できるようになりました。第30章「Oracle XML DBリポジトリ・イベント」を参照してください。
関連項目:
|
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リポジトリのフォルダと子の関係を表せるようになりました。ハード・リンクも引き続き使用できます。「リンク・タイプ」を参照してください。
関連項目:
|
WebDAV権限と新規Oracle XML DB権限のサポート
Oracle XML DBリポジトリで、すべてのWebDAV権限がサポートされるようになりました。さらに、Oracle XML DB固有の基本権限もいくつか新たに用意されています。第27章「リポジトリのアクセス制御」を参照してください。
関連項目:
|
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:lang
とxml:srclang
のサポートも含まれます。「XML変換」を参照してください。
関連項目: 新規PL/SQLパッケージDBMS_XMLTRANSLATIONS の詳細は、『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。 |
大規模なXMLノードのサポート
テキスト・ノードおよび属性値に対する64Kの制限が解除されました。テキスト・ノードと属性値は、それぞれ64Kバイトの制限は受けなくなります。PL/SQL、Java、およびCで使用可能な、プッシュ型およびプル型のストリーミングAPIにより、実質的に無制限のノード・サイズが可能になります。PL/SQLで大規模なノードを扱う方法の詳細は、「DBMS_XMLDOMを使用した大規模ノードの処理」、および「Javaを使用した大規模ノードの処理」を参照してください。
関連項目:
|
Java APIの統合
Oracle XML DBおよびOracle XML Developer's KitのJava XML APIが統合されました。
関連項目:
|
Oracle Data PumpによるXMLTypeサポート
XMLType
データのインポートおよびエクスポートの方法として、Oracle Data Pumpをお薦めします。第36章「XMLType表のエクスポートおよびインポート」を参照してください。
Oracle Streamsおよびロジカル・スタンバイによるXMLTypeのサポート
Oracle Streamsおよびロジカル・スタンバイでは現在、CLOB
として保存されるXMLType
がサポートされています。XML Schemaに基づくデータと基づかないデータの両方がサポートされています。
関連項目:
|
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の使用」を参照してください。
関連項目:
|
XQueryの標準準拠
Oracle XML DBによるXQuery言語のサポートが更新され、XQuery標準の最新バージョン、W3C XQuery 1.0勧告が反映されています。
PL/SQLを使用した、ネットワーク・サービスへのファイングレイン・アクセス
アクセス制御エントリ(ACE)に、新しい基本権限が提供されます。これらの権限は、ネットワーク・サービスへのファイングレインPL/SQLアクセスで使用されます。
SQL/XML標準準拠とパフォーマンスの拡張
Oracle XML DBによるSQL/XML標準のサポートが更新され、最新バージョンの標準が反映されています。これには、標準的なSQL関数XMLExists
およびXMLCast
のサポートなどがあります。「SQL/XML関数XMLExistsおよびXMLCastを使用したXMLTypeデータの問合せ」および「SQL関数を使用したXMLの生成」を参照してください。
関連項目: SQL/XML関数XMLExists 、XMLCast 、XMLQuery 、XMLTable およびXMLForest の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。 |
XML-Updateのパフォーマンス拡張
XMLデータの更新に使用されるSQL関数のパフォーマンスが、オブジェクト・リレーション形式で保存されるXML Schemaに基づくデータ向けに強化されました。これには、SQL関数updateXML
、insertChildXML
および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変換のパフォーマンスが強化されました。