ヘッダーをスキップ
Oracle® XML DB開発者ガイド
12cリリース1 (12.1)
B71282-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 Oracle XML DBの概要

この章では、Oracle XML DBの機能およびアーキテクチャについて説明します。内容は次のとおりです。

Oracle XML DBの概要

Oracle XML DBは、XMLデータの格納、生成、アクセス、検索、検証、変換、拡張および索引付けなどの高パフォーマンスの処理に関連する一連のOracle Databaseテクノロジです。SQLとXMLの両方のデータ・モデルの相互運用を可能にすることで、ネイティブなXMLサポートを提供します。Oracle XML DBは、Oracle9iリリース2 (9.2)以上のOracle Databaseに組み込まれています。

Oracle XML DBおよびXMLType抽象データ型により、Oracle DatabaseはXML対応になります。XMLデータをXMLType列または表として格納すると、Oracle Databaseはコンテンツに対してXML固有の操作を実行できます。たとえば、XMLの検証や最適化の操作などです。XMLType記憶域では、データベース内のXMLコンテンツを非常に効率的に処理できます。

Oracle XML DBには、次のような機能があります。

  • XMLデータの抽象SQLデータ型であるXMLTypeが用意されています。

  • XMLコンテンツの信頼性、可用性、拡張性、堅牢なセキュリティなど、企業レベルのOracle Database機能を提供します。XML固有のメモリーを管理および最適化します。

  • 業界標準の方法で、XMLデータをアクセスおよび更新できます。FTP、HTTP(S)およびWebDAVを使用して、XMLコンテンツをOracle Databaseの内外に移動できます。業界標準のAPIにより、Java、CおよびPL/SQLを使用してXMLコンテンツのプログラム・アクセスおよび操作を行うことができます。

  • SQLおよびXQueryを使用してXMLデータにアクセスし、同時にそのデータを格納、更新および変換できます。

  • SQLデータに対してXML操作を実行できます。

  • 単純で軽量なリポジトリであるOracle XML DBリポジトリが備わっています。このリポジトリによって、ファイル/フォルダ/URL隠喩を使用して、XMLコンテンツを含むデータベース・コンテンツを編成および管理できます。

  • 異なるシステムのデータにゲートウェイを介してアクセスし、1つの共通のデータ・モデルとして組み合せることができます。これによって、異なるストアのデータを処理する必要があるアプリケーション開発の複雑さが低減されます。

  • Oracle XML DBをOracle XML Developer's Kit (XDK)とともに使用して、Oracle Fusion MiddlewareまたはOracle Databaseの中間層で動作するアプリケーションを構築します。

Oracle XML DBの機能は、関連するXML標準(XML Parser、XSLT Virtual Machine、XML DOM、XML Schema Validatorなど)のOracle XML Developer's KitのC実装に部分的に基づいています。


関連項目:


Oracle XML DBのメリット

この項では、Oracle XML DBを使用するメリットについて説明します。図1-1に概要を示します。

図1-1 Oracle XML DBのメリット

図1-1の説明が続きます
「図1-1 Oracle XML DBのメリット」の説明

データとコンテンツの統合

多くのアプリケーションのデータおよびWebコンテンツは、リレーショナル・データベースまたはファイル・システム内、あるいはその両方に格納されます。多くの場合、XMLデータはデータ交換に使用され、リレーショナル・データベースまたはファイル・システムから生成できます。交換されるXMLデータのボリュームが大きくなると、このデータを再生成するコストが増加し、XMLコンテンツの保存にはこれらの格納方法は効率的ではありません。

図1-2 データとコンテンツの統合: 一般的なXMLアーキテクチャ

図1-2の説明が続きます
「図1-2 データとコンテンツの統合: 一般的なXMLアーキテクチャ」の説明

多くの場合、企業は構造化データと非構造化データを異なる方法で管理しています。

  • 表内に格納された非構造化データの場合、ドキュメント・アクセスが透過的になり、表アクセスが複雑になります。

  • 通常はバイナリ・ラージ・オブジェクト(BLOBインスタンスなど)に格納された構造化データの場合、ドキュメント・アクセスが複雑になり、表アクセスが透過的になります。

Oracle XML DBでは、標準データ・モデル、標準SQLおよび標準XMLを使用して、構造化、非構造化または半構造化のデータを格納および管理できます。XML文書に対してSQL操作を実行したり、(表などの)オブジェクト・リレーショナル・データに対してXML操作を実行することができます。

XML操作のためのデータベース機能

Oracle Databaseは、XML操作を目的とした、次のような重要なデータベース機能を備えています。

  • 索引付けおよび検索 - データベースのデータをある程度構造化できるように、問合せもある程度構造化できます。ある問合せでは、2014年の3月と4月の間に作成されすべての製品定義を検索できます。別の問合せでは、説明に"wireless"と"router"という単語が含まれるが"wireless router"という用語は含まれない製品を検索できます。

    前者のような問合せは、構造化データを対象とし、通常は日付列のBツリー索引によってサポートされます。後者のような問合せは、非構造化データを対象とし、Oracle Databaseの場合は通常、Oracle Text (全文)索引によってサポートされます。アプリケーションでは構造化問合せと非構造化問合せを結合でき、対象データには構造化データと非構造化データが混在していてもかまいません。

    XMLデータの場合も、状況は同様です。Oracle XML DBには、高度に構造化されたデータおよび問合せから高度に非構造化されたデータおよび問合せまでのXMLの能力範囲全体を対象とできる索引付け機能が用意されています。

  • 更新およびトランザクション処理: 商用のリレーショナル・データベースでは、レコードのサブパーツを高速更新することによって、更新を試行しているユーザー間の競合が最小化されています。従来、ドキュメント中心のデータは、XMLを介して協調環境を構築しているため、この要件はより重要になります。ファイル記憶域またはCLOB記憶域では、Oracle XML DBで行われる細分化された同時実行性制御を行うことができません。

  • 関係の管理: 通常、なんらかの構造を持つデータには外部キー制約があります。一般に、XMLデータを格納するシステムにはこの機能がないため、アプリケーション・コードで任意の制約を実装する必要があります。Oracle XML DBを使用すると、XML Schemaの定義に基づいてXMLデータを制約できるため、構造化データが持つ関係を制御できます。

  • データの複数のビュー: 多くの企業アプリケーションでは、別々のモジュール用に、それぞれ異なる方法でデータをグループ化する必要があります。そのため、これらの複数の方法でデータを組み合せることができるように、リレーショナル・ビューが必要になります。Oracle XML DBでは、XMLでビューを使用することによって、様々なアプリケーションで使用する場合など、XMLに別々の論理的な抽象概念が作成されます。

  • パフォーマンスとスケーラビリティ: データは、高速な格納、取出しおよび問合せが可能である必要があります。通常、ファイルまたはCLOB値のロードおよび解析は、リレーショナル・データのアクセスより遅くなります。Oracle XML DBでは、XMLの格納および取出しが大幅に高速化されます。

  • 簡単な開発: データベースは、個々のデータ要素を簡単に操作、変換および変更するための標準的な手段を提供する、最も重要なアプリケーション・プラットフォームです。一般的なXMLパーサーでは、XMLデータに対する標準的な読取りアクセスが提供されますが、個別のXML要素を簡単に変更および格納する方法は提供されません。Oracle XML DBでは、データを格納、変更および取得するための標準的な方法がいくつかサポートされています。たとえば、XML Schema、XQuery、XPath、DOMおよびJavaなどを使用できます。

データベースでデータをXMLとして格納する場合のメリット

データベース内でデータをXMLとして格納する方法には、次のメリットがあります。

  • 記憶域に非依存: リレーショナル設計を使用する場合、クライアント・プログラムでは、データの格納場所、形式、表および表間の関係が認識されている必要があります。XMLTypeを使用すると、その情報がなくてもアプリケーションを作成でき、データベース管理者は構造化データを物理表および列の記憶域にマップできます。

  • 簡単な表示: XMLは、Webブラウザ、多くの一般的なデスクトップ・アプリケーションおよびほぼすべてのインターネット・アプリケーションでネイティブに認識されます。一般的に、リレーショナル・データは、アプリケーションから直接アクセスできません。一般のクライアントがリレーショナル・データにアクセスできるようにするには、追加のプログラミングを行う必要があります。Oracle XML DBでは、データはXMLとして格納され、データベース外部ではXMLとして使用可能になります。データベースのコンテンツを表示するためのプログラミングは必要ありません。

  • 簡単な交換: XMLは、Business-to-Business(B2B)のデータ交換で使用される言語です。通常、XMLを任意の表構造に格納する必要がある場合は、XMLの内容を独自の方法で解釈し、分解します。言語を分解すると、情報が失われ、交換が困難になります。Oracle XML DBでは、XMLをネイティブに認識し、格納および取出し処理でのDOM再現性を提供することによって、完全な交換が可能になります。

データの双対性: XMLおよびリレーショナル

Oracle XML DBの主要機能の1つは、XMLデータをリレーショナル・データであるかのように処理し、リレーショナル・データをXMLデータであるかのように処理できることです。XMLコンテンツの操作時にリレーショナル・モデルの機能を使用でき、リレーショナル・コンテンツの操作時にXMLの柔軟性を利用できます。個別のビジネス問題の様々な側面に対して最適のツールを使用できます。

この双対性とは、同じデータを表内の行として公開し、SQLを使用して操作できること、または同じデータをXML文書のノードとして公開し、XQuery、DOM変換またはXSL変換を使用して操作できることを意味します。アクセス方法と処理方法は、基礎となる記憶域方法とは関係がありません。

これらの機能によって、一般的なビジネス問題に対する単純なソリューションを提供できます。

  • XMLデータをSQL問合せから直接生成できます。そのXMLデータを、データベースに常駐するXSLTプロセッサを使用して、HTMLなどの他の形式に変換できます。

  • SQL問合せ、オンライン分析処理(OLAP)およびビジネス・インテリジェンス/データ・ウェアハウス操作を使用して、データ形式の変換を行わずにXMLコンテンツにアクセスできます。

  • テキスト、空間データおよびマルチメディア操作をXMLコンテンツで実行できます。

データがXMLでない場合のXMLTypeビューの使用方法

XMLTypeビューでは、既存のリレーショナル・データおよびオブジェクト・リレーショナル・データをXML形式にラップする方法が提供されます。これは、XML形式でないレガシー・データをXML形式に移行する必要がある場合に特に有効です。XMLTypeビューを使用すると、アプリケーション・コードまたは格納データを変更する必要がありません。

XMLTypeビューを使用するには、最初にXML Schemaデータ型と、SQLデータ型または双方向XMLエンコーディング型の間の双方向マッピングを表す注釈が付いたXML Schemaを登録する必要があります。その後、適切な型のインスタンスを構築する基礎となる問合せを指定することによって、このマッピングに準拠するXMLTypeビューを作成できます。

複雑なXML文書の効率的な格納および取出し

現在、ユーザーは、複雑で大規模な多くのXML文書を格納および取り出す場合のパフォーマンス問題に直面しています。Oracle XML DBでは、XML操作のパフォーマンおよび拡張性が優れています。主なパフォーマンス機能は次のとおりです。

Oracle XML DBのアーキテクチャ

図1-3に、Oracle XML DBのソフトウェア・アーキテクチャを示します。主な特徴は次のとおりです。

  • XMLType表およびビューの記憶域。

    • XMLType表およびビューは、XMLIndex、BツリーおよびOracle Text索引を使用して索引付けできます。

    • XMLTypeビュー内のデータは、ローカル表またはリモート表に格納できます。リモート表には、データベース・リンクを使用してアクセスできます。

  • XQuery UpdateおよびXQuery Full Textを含むXQueryのサポート。

  • Oracle XML DBリポジトリ。Oracle XML DBに登録されるXML Schemaに関連付けられたXML文書など、任意の種類のドキュメントをリポジトリに格納できます。リポジトリ内のドキュメントには、次のいずれかの方法でアクセスできます。

    • HTTPプロトコル・ハンドラを介したHTTP(S)

    • WebDAVおよびFTPプロトコル・ハンドラを介したWebDAVおよびFTP

    • Java Database Connectivity(JDBC)などのOracle Net Servicesを介したSQL

図1-3 XMLType記憶域

図1-3の説明が続きます
「図1-3 XMLType記憶域」の説明

Oracle XML DBの機能

XMLの管理に使用するデータベースは、XML文書を永続的に保持できる必要があります。Oracle XML DBは、それ以上の機能を備えています。トランザクション制御、データ整合性、レプリケーション、信頼性、可用性、セキュリティ、拡張性のような、標準的なデータベース機能を提供する一方で、XML中心の方法でXML文書の効果的な索引付け、問合せ、更新および検索を実行できます。

XMLの階層構造によって、従来のリレーショナル・データベースのいくつかの問題点が示されます。

  • リレーショナル・データベースでは、表/行隠喩を使用してコンテンツを検索します。主キーと外部キーの関係は、コンテンツ間の関係を定義するのに有効です。コンテンツは、表/行/列隠喩を使用してアクセスおよび更新します。

  • これに対してXMLでは、階層テクニックを使用して、同じ処理を実行します。つまり、URLを使用してXML文書を検索します。XML文書間の関係を定義するには、XLinkなどURLベースの標準を使用します。XML文書内に含まれるコンテンツへのアクセスと更新には、XPathなどのW3C勧告を使用します。URLとXPath式は、いずれも階層隠喩に基づいています。URLは、フォルダ階層からパスを使用してドキュメントを識別するのに対し、XPathは、XML文書のノード階層からパスを使用してXML文書の一部にアクセスします。

Oracle XML DBでは、これらの問題点に対処するために、SQL関数とメソッドが導入されています。これらによって、XQuery式やXPath式などXML中心の隠喩を使用して、XML文書を問合せおよび更新できます。

次の項では、Oracle XML DBの主要機能について説明します。

XMLTypeデータ型

XMLTypeを使用すると、XML開発者は、リレーショナル・データベースのコンテキスト内で作業中にXML標準の機能を使用でき、SQL開発者は、XMLデータを操作中にリレーショナル・データベースの機能を使用できます。

XMLTypeは、XMLデータの抽象ネイティブSQLデータ型です。これは、XMLTypeインスタンスをVARCHAR2CLOBBLOBまたはBFILEインスタンスから作成するためのPL/SQLおよびJavaコンストラクタを提供します。また、様々なXML操作用のPL/SQLメソッドも提供します。

他のSQLデータ型と同じようにXMLTypeを使用できます。たとえば、XMLType表やビュー、またはリレーショナル表にXMLType列を作成できます。

XMLTypeは、PL/SQLストアド・プロシージャのパラメータ、戻り値および変数に使用できます。

Java Database Connectivity (JDBC)、XQuery for Java (XQJ)およびOracle Data Provider for .NET (ODP.NET)などのJavaおよびC言語用Application Programming Interface (API)を使用して、XMLTypeデータを操作することもできます。

XMLTypeはOracle Databaseオブジェクト型であるため、XMLTypeオブジェクト・インスタンスの表も作成できます。デフォルトでは、XMLType表または列に整形式のXML文書を含めることができます。

XMLデータに準拠するようXMLType表または列を制約でき、この場合、データベースでは、XML Schemaに対して有効であるXMLデータのみが表または列に確実に格納されます。無効な文書は除外されます。


関連項目:

  • Oracle Databaseのオブジェクト型およびオブジェクト・リレーショナル形式の記憶域の詳細は、『Oracle Databaseオブジェクト・リレーショナル開発者ガイド』を参照してください。

  • XQJの使用については、『Oracle XML Developer's Kitプログラマーズ・ガイド』を参照してください。

  • XMLTypeコンストラクタおよびメソッドの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。


XMLType記憶域モデル

XMLTypeは、データおよびその使用を最適にするための様々な記憶域モデルを提供する抽象データ型です。抽象データ型であるため、アプリケーションおよびデータベース問合せの柔軟性が増し、同じインタフェースをすべてのXMLType操作に使用できます。

XMLType表および列は、次に示す方法で格納できます。

  • バイナリXML記憶域(デフォルト): XMLTypeデータは、XMLデータ専用に設計された事後解析のバイナリ形式で格納されます。バイナリXMLは、簡潔で事後解析型であり、XML Schema対応のXMLデータです。これは、事後解析の永続性とも呼ばれます。

  • オブジェクト・リレーショナル記憶域: XMLTypeデータは、一連のオブジェクトとして格納されます。これは、構造化記憶域およびオブジェクトベースの永続性とも呼ばれます。


注意:

Oracle Database 12cリリース1 (12.1.0.1)以降、XMLType用の非構造化(CLOB)記憶域モデルは非推奨です。バイナリXML記憶域をかわりに使用してください。

適切な索引を使用すると、バイナリXML記憶域は、ほとんどのユースケースで優れたパフォーマンスを提供します。ただし、一部の高度なユースケースでは、オブジェクト・リレーショナル記憶域を使用する方がメリットがある場合があります。

XMLType記憶域は、データベースのインポート/エクスポートを使用してモデル間で変更できます。アプリケーション・コードの変更は不要です。アプリケーションをチューニングする際に、XML記憶域オプションを変更できます。

バイナリXML記憶域の場合、SecureFilesがデフォルトの記憶域オプションです。脚注1ただし、次のいずれかに当てはまる場合、SecureFiles LOB記憶域は使用できません。その場合は、BasicFilesがバイナリXMLデータのデフォルト・オプションになります。

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

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


関連項目:


XML Schemaのサポート

Worldwide Web Consortium (W3C)のXML Schema勧告のサポートはOracle XML DBの主要な機能の1つです。XML Schemaでは、XML文書の構造、コンテンツおよび特定のセマンティクスを指定します。詳細は、http://www.w3.org/TR/xmlschema-0/を参照してください。

W3Cのスキーマ・ワーキング・グループは、特定のXML Schema(,スキーマのスキーマと呼ばれることが多い)を公開し、これによりXML Schema言語の定義またはボキャブラリが提供されます。XML Schema定義(XSD脚注2)はXML Schemaとも呼ばれ、スキーマのスキーマによって定義されたボキャブラリに準拠するXML文書です。

XML Schemaでは、スキーマのスキーマで定義されたボキャブラリを使用して、XML Schema型定義のコレクションおよび要素宣言を作成します。この要素宣言は、新しいクラスのXML文書(そのXML Schemaに準拠するXMLインスタンス・ドキュメント)のコンテンツと構造を記述するボキャブラリを構成します。


注意:

このマニュアルで使用している「XML Schema」という用語は、W3CのXML Schema勧告に準拠しているスキーマを指します。XML SchemaはXML文書のクラスを定義するために使用されるため、「インスタンス・ドキュメント」という用語は、多くの場合、特定のXML Schemaに準拠するXML文書を示すために使用しています。

XML Schema言語によって、要素と属性の厳密な型指定が可能になります。多数くのスカラー・データ型を定義します。このデータ型のベース・セットは、継承および拡張などのオブジェクト指向テクニックを使用して、より複合的な型を定義するように拡張できます。また、XML Schemaボキャブラリには、複合型、代替グループ、繰返しセット、ネスト、順序付けなどを定義するために使用できる構造体が含まれます。Oracle XML DBは、XML Schema勧告で定義されたすべての構造体をサポートします(redefinesを除く)。

XML Schemaは、一般的に、XMLインスタンス・ドキュメントがそれぞれの仕様に準拠していることを確認(検証)するためのメカニズムとして使用されます。Oracle XML DBには、XMLTypeメソッドとSQL関数が含まれ、それらを使用してXML文書をXML Schemaに対して検証できます。

Oracle XML DBでは、データが構造化されているかどうかに関係なく、すべてのデータで標準データ・モデルを使用できます。XML Schemaを使用すると、XMLデータを格納するためのデータベース表を自動的に作成できます。XML Schemaに基づくデータはDOM再現性を保持し、データベースの大幅な最適化を実現します。

XML Schemaに基づくデータは、Oracle XML DBのXMLType記憶域モデル(バイナリXML記憶域またはオブジェクト・リレーショナル記憶域のいずれか)を使用して格納できます。XML Schemaに基づかないXMLデータは、バイナリXML記憶域を使用してのみ格納できます。

また、既存のリレーショナル・データおよびオブジェクト・リレーショナル・データをXMLTypeビューとしてラップすることもできます(オプションでXML Schemaに基づく形式にできます)。受信したXML文書からXMLType記憶域にマップし、登録済のXML Schemaを使用してそのマッピングを指定できます。


関連項目:


Oracle XML DBにおけるDTDのサポート

この章では、Oracle XML DBでのXML Schemaの使用について説明します。一般的に、XML Schemaの方が、XML文書構造を定義する方法としてDTDよりも強力です。それでもやはり、Oracle XML DBではある程度までDTDを使用できます。

XML Schemaの場合と同様、DTDは、XML文書の使用可能な構造を定義する一連の規則です。DTDは、SGMLから書式を導出するテキスト・ファイルです。これらは、DTD要素DOCTYPEを使用するか、DOCTYPE参照を介して外部ファイルを使用して、XML文書に関連付けることができます。

Oracle XML DBでは、DTDではなくXML Schemaを使用してXMLType記憶域への構造化マッピングを定義しますが、XMLプロセッサは引き続きDTDにアクセスして解析できます。


注意:

DTDを使用して、この内部に定義されているXMLエンティティを取得できます。DTDから使用される情報は、エンティティのみです。DTD内の構造や型情報は、Oracle XML DBでは使用されません。

インラインDTDの定義

XMLインスタンス・ドキュメントにインラインDTDの定義が含まれる場合、その定義はドキュメントの解析時に使用されます。すべてのDTDの検証およびエンティティ宣言の処理は、この時点で行われます。ただし、解析後、実体参照は実際の値で置換され、元の実体参照は失われます。

外部DTDの定義

Oracle XML DBでは、Oracle XML DBリポジトリに格納された外部DTDの定義もサポートされます。/public/flights.dtdなど外部DTDの定義を含むXML文書を処理する必要があるアプリケーションでは、最初に、DTDドキュメントが/public/flights.dtdというパスでOracle XML DBに格納されていることを確認する必要があります。

XMLに関連する静的データ・ディクショナリ・ビュー

表1-1に、XMLに関連する静的データ・ディクショナリ・ビューを示します。特定のビューに関する情報を取得するには、SQLコマンドDESCRIBEを使用します。

DESCRIBE USER_XML_SCHEMAS

表1-1 XMLに関連する静的データ・ディクショナリ・ビュー

スキーマ 説明
USER_XML_SCHEMAS

現行ユーザー所有する登録済のXML Schema

ALL_XML_SCHEMAS

現行ユーザー使用できる登録済のXML Schema

DBA_XML_SCHEMAS

Oracle XML DBに存在する登録済のXML Schema

USER_XML_TABLES

現行ユーザー所有するXMLType

ALL_XML_TABLES

現行ユーザー使用できるXMLType

DBA_XML_TABLES

Oracle XML DBに存在するXMLType

USER_XML_TAB_COLS

現行ユーザー所有するXMLType表の列

ALL_XML_TAB_COLS

現行ユーザー使用できるXMLType表の列

DBA_XML_TAB_COLS

Oracle XML DBに存在するXMLType表の列

USER_XML_VIEWS

現行ユーザー所有するXMLTypeビュー

ALL_XML_VIEWS

現行ユーザー使用できるXMLTypeビュー

DBA_XML_VIEWS

Oracle XML DBに存在するXMLTypeビュー

USER_XML_VIEW_COLS

現行ユーザー所有するXMLTypeビューの列

ALL_XML_VIEW_COLS

現行ユーザー使用できるXMLTypeビューの列

DBA_XML_VIEW_COLS

Oracle XML DBに存在するXMLTypeビューの列


ビューALL_XML_TABLESDBA_XML_TABLESおよびUSER_XML_TABLESに加えて、ビューALL_OBJECT_TABLESDBA_OBJECT_TABLESおよびUSER_OBJECT_TABLESはオブジェクト・リレーショナル形式で格納されたXMLTypeデータの表領域、その他の記憶域に関する情報を提供します。


関連項目:

  • 『Oracle Databaseリファレンス』

  • 『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』


SQL/XML標準関数

Oracle XML DBには、SQL/XML標準で定義されたSQL関数が用意されています。SQL/XML関数は、次の2つのグループに分類されます。

  • SQL問合せの結果からXMLデータの生成に使用できる関数。このマニュアルでは、このような関数をSQL/XMLパブリッシング関数と呼びます。また、SQL/XML生成関数と呼ばれることもあります。

  • 通常のSQL操作の一部としてXMLコンテンツの問合せおよび更新に使用できる関数。このマニュアルでは、このような関数をSQL/XML問合せおよび更新関数と呼びます。

SQL/XML関数を使用すると、XMLコンテンツをSQL文の任意の部分に指定できます。これらの関数では、XQuery式やXPath式を使用してXML構造を検索し、操作対象のノードを識別します。XQuery式やXPath式をSQL文に埋め込む機能によって、XMLアクセスが大幅に簡略化されます。


関連項目:


Oracle XML DBへのプログラム・アクセス(Java、PL/SQLおよびC)

すべてのOracle XML DB機能には、C、PL/SQLおよびJavaからアクセスできます。次のような方法で、Webベースのアプリケーションを構築できます。

  • サーブレットおよびJava Server Pages(JSP)を使用する方法。標準的なAPIでは、Java Database Connectivity(JDBC)を使用してデータにアクセスします。

  • Extensible Stylesheet Language (XSL)とXML Server Pages (XSP)を使用する方法。一般的なAPIでは、Document Object Model (DOM) API実装を使用して処理されるXML文書の形式のデータにアクセスします。

Oracle XML DBでは、このようなスタイルのアプリケーション開発をサポートします。DOM APIのJava、PL/SQLおよびCの実装を提供します。サーブレットに基づくアプリケーションなどJDBCを使用するアプリケーションの場合は、処理対象のデータ構造を事前に理解しておく必要があります。Oracle JDBCドライバにより、XMLType表および列にアクセスおよび更新し、Oracle XML DBリポジトリにアクセスするPL/SQLプロシージャをコールできます。XSLT変換に基づくアプリケーションなどDOMを使用するアプリケーションの場合、通常、データ構造に関する理解はそれほど必要ありません。DOMベースのアプリケーションは文字列名を使用してコンテンツを識別するため、DOMツリーを動的に移動して必要な情報を検索する必要があります。このため、Oracle XML DBは、XMLType列および表にアクセスおよび更新するために、DOM APIの使用をサポートします。DOM APIへのプログラミングは、JDBCを使用したプログラミングよりも柔軟性がありますが、実行時により多くのリソースを必要とする場合があります。

Oracle XML DBリポジトリ: 概要

Oracle XML DBリポジトリは、ファイル/フォルダ/URL隠喩を使用してXMLデータを処理するためのOracle Databaseのコンポーネントです。このリポジトリには、リソースが含まれ、これはフォルダ(ディレクトリ、コンテナ)またはファイルのいずれかです。

リリース(フォルダまたはファイル)には、次の特性があります。

  • パスおよび名前で識別されます。

  • これにはコンテンツ(データ)が含まれ、XMLデータの場合がありますが、そうでなくてもかまいません。

  • コンテンツに加えて、OwnerCreationDateなどのシステム定義のメタデータ(プロパティ)のセットを持ちます。Oracle XML DBでは、この情報を使用してリソースを管理します。

  • ユーザー定義のメタデータを持つ場合もあります。これは、システム定義のメタデータと同様に、コンテンツの一部ではないが、コンテンツに関連付けられている情報です。

  • リソースにアクセスできる人およびその目的の操作を決定するアクセス制御リストが関連付けられています。

Oracle XML DBリポジトリは特にXMLコンテンツを取り扱うものですが、リポジトリを使用してXML以外の種類のデータを格納することもできます。リポジトリを使用して、Oracle Databaseに格納されているあらゆるデータにアクセスできます。

リポジトリ内のデータには、次の方法でアクセスできます。

  • SQL: ビューRESOURCE_VIEWおよびPATH_VIEWを使用

  • 標準プロトコル: FTP、HTTP(S)およびWebDAV

  • PL/SQL: PL/SQLパッケージDBMS_XDB_REPOSを使用

  • Java: Oracle XML DB Resource API for Javaを使用

Oracle XML DBは、リポジトリ・データにアクセスおよび操作するためのAPIに加えて、IETF WebDAVに基づく、次のリポジトリ・サービス用のAPIも提供します。

  • バージョニング – PL/SQLパッケージDBMS_XDB_VERSIONを使用

  • ACLセキュリティ - アクセス制御リスト(ACL)を使用

  • フォルダリング - リポジトリ・パス名を使用

図1-4に、Oracle XML DBリポジトリのアーキテクチャを示します。

図1-4 Oracle XML DBリポジトリのアーキテクチャ

図1-4の説明が続きます
「図1-4 Oracle XML DBリポジトリのアーキテクチャ」の説明

Oracle XML DBでサポートされている標準

Oracle XML DBでは、XML、SQL、Java、インターネットなど、すべての主要な標準がサポートされています。

  • W3CのXML Schema 1.0勧告。XML Schemaの登録、XML Schemaに対する格納されたXMLコンテンツの検証、またはXML Schemaに対するサーバーに格納されたXMLの制約を行うことができます。

  • W3C XQuery 1.0勧告およびW3C XPath 2.0勧告。HTTP(S)リクエストまたはSQLのいずれかから、XQueryおよびXPathを使用してデータベース内に格納されたXMLを検索できます。

  • ANSI/ISO/IEC 9075-14:2011, Information technology—Database languages—SQL—Part 14: XML-Related Specifications (SQL/XML)。

  • W3CのDOMレベル1.0および2.0コア勧告。動的アクセスのために、サーバーに格納されたXMLをXML DOMとして取り出すことができます。

  • Java Database Connectivity(JDBC)API。XMLデータへのJavaアクセスを提供します。

  • XQuery API for Java (XQJ)。XQueryを使用してXMLデータへのJavaアクセスを提供します。

  • W3CのXSL 1.0勧告。XSLTを使用して、サーバーでXML文書を変換できます。

  • プロトコル・サポート。Oracle NetまたはHTTP(S)、FTP、IETF WebDAVなどの標準プロトコルを使用すると、Oracle XML DBに対してXMLデータの格納または取出しができます。

  • Javaサーブレットのバージョン2.2(ただし、サーブレットWARファイル、web.xmlはサポートされず、現在サポートされているのは、1つのServletContextおよび1つのweb-appのみです。ステートフル・サーブレットはサポートされていません)。

  • Webサービス: SOAP 1.1。SOAPリクエストからサーバーに格納されたXMLにアクセスできます。Webサービスは、WSDLおよびUDDIを使用して、Oracle XML DBおよびOracle Fusion Middlewareにより構築、公開または検索できます。Oracle Streamsアドバンスト・キューイングIDAP(キューイング操作に対するSOAP仕様)を、Oracle Databaseに格納されたXMLに使用できます。

  • W3CのXML Linking Language(Xlink)1.0勧告。XML文書間に様々なタイプのリンクを定義できます。

  • W3CのXML Pointer Language(XPointer)勧告およびXPointer Framework。複数のXML文書またはXMLフラグメントのコンテンツを単一の情報セットにまとめることができます。


関連項目:


Oracle XML DBの技術サポート

Oracleサポート・サービスの通常のサポート・チャネルの他に、Oracle DatabaseのXML対応テクノロジの技術サポートが、Oracle Technology Network(OTN)のディスカッション・フォーラム・セクションから無償で利用できます。

http://forums.oracle.com/forums/category.jspa?categoryID=51

このマニュアルで使用するOracle XML DBの例

このマニュアルには、Oracle XML DBおよびXMLTypeの使用例を記載しています。例は、様々なデータベース・スキーマ、サンプルXML文書およびサンプルXML Schemaに基づいています。

詳細なOracle XML DBの事例およびデモ

OTNに接続し、Oracle XML DBの例、ホワイト・ペーパー、事例およびデモを参照してください。

http://www.oracle.com/technetwork/database-features/xmldb/overview/index.html

Oracle XML DBの使用方法に関する総合的なXMLクラスも利用できます。OTNからOracle Universityのリンクを参照してください。

OTNでは、Oracle XML DBの次のような詳細な事例を参照できます。

  • ダウンロード可能なOracle XML DBのデモ。この詳細なデモでは、Oracle XML DBの多くの機能の使用方法を示します。このデモの一部は、第3章「Oracle XML DBの使用方法の概要」でも説明されています。

  • SAX Loaderアプリケーション。このアプリケーションは、データベース外で複数のXML文書を含む大規模ファイルを分割し、一連の個別の文書としてデータベースに挿入する効率的な方法を示します。これは、スタンドアロンでWebベースのアプリケーションとして提供されます。



脚注の凡例

脚注1: Oracle Database 11gリリース2 (11.2.0.2)より前は、BasicFilesオプションがバイナリXML記憶域のデフォルトでした。バイナリXMLデータに対するBasicFilesオプションの使用は非推奨になりました。
脚注2: xsdは、XML Schema名前空間のスキーマのスキーマで使用される接頭辞のため、xsd:stringなど、XML Schemaデータ型に使用される名前空間の接頭辞にもなります。xsdは、XML Schemaファイルのファイル拡張子としてもしばしば使用されます。