Oracle XDK(10.1.2)の技術概要
オラクル・ホワイト・ペーパー
2005 年 1 月
Oracle XDK(10.1.2)の技術概要
概要 ... 3
はじめに ... 3
Oracle XML Developer's Kit 10g ... 4
複数の言語とプラットフォームのサポート ... 4
デプロイメント・アーキテクチャの柔軟性 ... 5
アプリケーションとサーバーのサポート ... 5
XML パーサー/XSL プロセッサ ... 5
XML スキーマ・プロセッサ ... 6
XML Class Generator ... 6
XML JavaBeans ... 6
XML SQL Utility ... 7
XSQL Pages パブリッシング・フレームワーク... 7
TransX ユーティリティ ... 7
XML パイプライン・プロセッサ ... 8
SQL の能力への XML の追加 ... 9
Oracle XDK 10g による高速 XSLT ... 10
XSLT コンパイラと C/C++のための VM ... 10
Java における XSLT 2.0 のサポートと最適化... 12
大規模な XML 文書の効率的作成 ... 13
シングルステップ XML 処理のストリーミング ... 13
結論 ... 15
Oracle XDK 10g の技術概要
概要
エンタープライズ・レベルからインターネット・ベンチャーにいたる様々な企業 が、アプリケーションのクローズされたクライアント/サーバー・システムから オープンな分散フレームワークへの移行を認識しています。この移行は、一連の XML 標準と関連テクノロジにより促進されています。XML Developer’s Kit(Oracle XDK)を含む Oracle Application Server(OracleAS)10g は、エンタープライズ XML プラットフォームとしてのデータベース・サーバー に、新しいレベルのパフォーマンスをもたらします。インフラストラクチャの最 適化を伴う新しい XML 標準と XDK の XMLType 用統合サポートとの結合により、 XML 処理が大幅に合理化され、必要なエンタープライズ・レベルのスケーラビリ ティとパフォーマンスを実現します。
はじめに
拡張文字ベース形式によりメタデータをインスタンス・データへ結合する意義は、 異なるプラットフォーム、オペレーティング・システム、インターネットを相互 運用する手段として認識されてきました。2001 年、一連の XML 標準に XML スキー マが導入されたことで、データ型のサポート実現が確約され、それによりビジネ ス・データとアプリケーションの統合にとって XML の価値がさらに高まりまし た。一方、XML は抽象概念であるため、その相互運用性の実現には処理時間の拡 大とリソースの増加が伴いました。これは、入力 XML の検証および変換や他の ワークフローの実行に依存するエンタープライズ・レベルのトランザクション・ ベース・アプリケーションにおいて、特に顕著です。 XML のパフォーマンスの問題は、そのソリューションの適用範囲の拡大に伴って ますます重要になってきています。従来からのビジネスの多くは、インターネッ トを活用したグローバルな拡張を望んでいます。XML が提供する抽象層により、 アプリケーションは現在開発が進んでいる縦型の標準とスキーマの様々な配列を サポートできます。大手企業は、競合会社を買収して、統合により市場占有率を 拡大しています。このような企業は、メインフレーム、SMP サーバー、Windows サーバーに分散されたシステムを統合する際、高コストの新しい統一システムと アプリケーションを再設計するかわりに、アプリケーション間のクロスプラット フォーム通信が可能な XML に移行しています。主要小売店や行政サービスまでが、顧客に直接アプローチするために Web サービ スとブラウザを使用した取引に移行してビジネス範囲を拡大し、中間の処理工程 の省略により高い効率性を獲得しています。XML は、必要なインフラストラク チャを実現するテクノロジの役割を果たしているため、その処理は非常に重要で す。新しいテクノロジとしての XML は、概念を実証できるシステムおよびプロ トタイプ・システムとして、非常に高く評価されました。ただし、これらのシス テムをエンタープライズ・レベルでデプロイする場合、XML インフラストラク チャのスケーラビリティとスループットの問題がありました。 XML のパフォーマンスは、コンテンツ管理や出版の業界でも求められています。 PDA から携帯電話、ポケットベル、腕時計までコンテンツ表示機能を持つ携帯通 信機器の急増により、各企業はそのコンテンツを様々な形式で配信することが必 要になりました。このような傾向と、迅速な情報更新の必要性とが結び付き、XML 変換サーバーとそれを支えるデータベースに対する要求が拡大しました。 OracleAS 10g では、XML Developer’s Kit としてパッケージ化された新しいインフ ラストラクチャにより、これらのパフォーマンス問題に取り組んでいます。この キットは、パフォーマンスの向上だけではなく、XML 処理を効率的に行うための 新しい高レベルのテクノロジを提供します。
Oracle XML Developer's Kit 10g
アプリケーション開発者による XML 活用を支援するため、OracleAS 10g には XML Developer's Kit(XDK)の新バージョンが含まれています。XDK は、XML 対応ア プリケーションの開発と配置を容易にする業界標準に準拠したコンポーネント、 ツールおよびユーティリティのセットです。インターネットから入手可能な多く のシェアウェアや試用版の XML コンポーネントとは異なり、Oracle XDK コンポー ネントには完全なサポートが提供され、再配布も可能です。
複数の言語とプラットフォームのサポート
Oracle XDK は、開発とデプロイに対する柔軟性を様々な形で実現します。アプリ ケーション・サービス・プロバイダは、XDK の Java/JavaBeans のコンポーネント とライブラリおよびそのプラットフォーム非依存の機能によって、移植性の高い アプリケーションの開発とデプロイを行うことができます。プラットフォーム依 存の C/C++言語で記述された膨大なアプリケーション資産を抱える企業にとって、 プラットフォームに移植された XDK の C/C++ライブラリの優れたパフォーマン スと機能は非常に有効です。デプロイメント・アーキテクチャの柔軟性
Oracle XDK コンポーネントは、柔軟なデプロイを可能にし、パフォーマンスとス ケーラビリティを最適化する設計がされています。XDK の Java ライブラリは、 Oracle Database 10g の JDK 1.4 に準拠した JVM にロードされ、OracleAS の中間層 またはクライアント上で実行できます。XDK の C ライブラリはカーネルにリンク され、C++版ライブラリを含むスタンドアロン・ライブラリとして使用できます。 このアーキテクチャの柔軟性と、XML が持つ特定のプロトコルへの非依存性は、 アプリケーション開発者にとって強力な機能となります。
アプリケーションとサーバーのサポート
どのようなソフトウェア開発者キットも、サポートがなければ価値がありません。 Oracle XDK は、Oracle Worldwide Software Support Group によりサポートされてい ます。Oracle サーバー・サポート契約を結んでいる顧客は、費用を追加すること なく現在の契約内容と同レベルの XDK サポートを受けることができます。Oracle Technology Network の XML Forum では無償のサポートを提供しています。Oracle の XML 開発グループがすべてのサポートを直接支援します。また、XDK を顧客 のアプリケーションに容易に組み込むことができるよう、Oracle Consulting スタッ フも XDK の研修を受けています。最後に、このサポートは、Oracle 製品での XDK の使用に限定されません。XDK には無償のデプロイおよび再配布のライセンスが 含まれているため、XDK を使用したサード・パーティのアプリケーション開発が 可能です。XML パーサー/XSL プロセッサ
Oracle は、Java、C および C++の XML パーサーを提供しています。これらの XML パーサーはそれぞれスタンドアロン・コンポーネントであり、SAX(Simple API for XML)、DOM(Document Object Model)または JAXP(Java API for XML Processing)インタフェースによる XML 文書の解析と検証モードまたは非検証モードでの使 用が可能です。Oracle が動作するすべてのプラットフォームですべてのパーサー が使用可能です。 これらのパーサーには、XSL(XML Stylesheet Language)言語を使用して XML 文 書を変換するための統合 XSLT(XSL Transformation)プロセッサが含まれていま す。XSLT プロセッサは XML 文書に XSL スタイルシートを適用して、XML 文書 を XML、HTML などのテキスト・ベースのあらゆる形式に変換します。OracleAS 10g では、C での XSLT Compiler と Virtual Machine の導入、さらに Java での XSLT および Xpath 2.0 のサポートにより、XSLT スタイルシートの処理パフォーマンス が大幅に向上しています。
また、OracleAS 10g では、最新の DOM 3.0 Load/Save 標準と Validation 標準をサ ポートします。これらの標準は、エラーを迅速に検出して XML 処理の信頼性を 高める機能を提供します。また、アプリケーションの相互運用性を、これまで各 ベンダー固有であった解析機能とシリアライズ機能にまで拡張しています。
XML スキーマ・プロセッサ
XML スキーマは、単純さと複雑さの両方を兼ね備えたデータ型の概念を XML 言 語に導入する W3C 標準です。これにより、XML 構文を使用して、データベース のデータの実体化と交換を業界標準に準拠した方法で行うことができます。Java、 C および C++用のプロセッサが用意されており、XML スキーマ・ベースのドキュ メントやデータを作成したり受け取る際の検証に使用できます。XML Class Generator
XDK は、XML Parser と連携して XML アプリケーションの開発と処理を簡略化す る XML Class Generator を提供しています。Java と C++用があり、これらは XML スキーマ(XSD)から Java または C++のソース・ファイルを生成します。生成さ れたソース・ファイルを使用して、指定された XSD に準拠した XML 文書の作成、 検証、印刷が行えます。OracleAS 10g では、Oracle プラットフォームに相互運用 性をもたらす新しい JAXB(Java Architecture for XML Binding)がサポートされます。
XML JavaBeans
拡大する XML への Oracle JDeveloper によるサポートに加え、XDK は開発を迅速 化する JavaBeans のセットを提供します。これらの Bean は、XDK の多くのコンポー ネントに標準インタフェースを提供するだけでなく、表 1 に示す機能を拡張して います。 表 1: Oracle XDK 10g に含まれる JavaBeans Oracle XDK 10g の JavaBeans 説明DOMBuilder Bean DOMParser をカプセル化し、非同期 XML 文書を解析 します。
XSLTransformer Bean XML を受け入れ、入力 XML スタイルシートにより指 定された変換を適用して、ファイルを作成し出力しま す。
DBAccess Bean Oracle Application Server の表への XML データの格納、 およびこれらの表からの XML データの取得をサポー トします。
XMLDBAccess Bean Oracle Application Server の XMLType 表への XML デー タの格納、およびこれらの表からの XML データの取 得をサポートします。
XMLCompress Bean 内部 DOM ツリーの圧縮、SAX イベントの圧縮、さら にシリアライズされた XML データの圧縮解除を行い ます。 XMLDiff Bean 2 つの XML ファイルの違いを検索し、その違いを XSLT コードとして出力します。 XSDValidator Bean XML 文書を XML スキーマ(XSD)と照合し、その妥 当性をチェックします。
XML SQL Utility
Java および PL/SQL の開発者は、XML SQL Utility(XSU)により、リレーショナル 表とオブジェクト・リレーショナル表の両方ならびにビューの問合せから得られ るデータを XML に変換できます。また、XML 文書からデータを抽出し、そのデー タを表またはビューの列にマップ、挿入または更新できます。XML とデータベー スとの連携を補助するため、データベース・スキーマやビューから DTD や XSD を生成できます。XSU は XMLType を完全にサポートします。その出力を SAX イ ベントとして提供して、パフォーマンスを向上しリソースを節約できます。 OracleAS 10g では、SAX を利用して大きな XML ドキュメントを直接生成できる ようになりました。
XSQL Pages パブリッシング・フレームワーク
Oracle XSQL Pagesパブリッシング・フレームワーク(XSQLサーブレット)は、 XML 情報をあらゆる形式で容易に公開できる拡張可能なプラットフォームです。 データベース問合せから取得される動的な Web コンテンツの公開に使用する SQL、 XML、XSLT 機能の統合が大幅に簡略化されます。また、これは、インタラクティ ブな Web サイトや Web サービスを作成し、コンテンツを自動的に要求側デバイ スの形式で公開する拡張可能なプラットフォームです。1 つのデータベース・ス キーマで複数のデバイスやアプリケーションに対応できるため、設計とメンテナ ンスが簡略化されます。 OracleAS 10g では、条件に応じてアクションを実行したり、コンテンツを含める ことができます。この機能を複数値パラメータおよびそのバインドのサポートと 組み合せると、多くのカスタム JSP コードが宣言型 XSQL 要素に置き換えられま す。新しい XSQLErrorHandler インタフェースにより、開発者はエラーから容易に 復旧でき、作成するアプリケーションの堅牢性が向上します。また、新たにサー ブレット・コンテナの JDBC データ・ソースが使用可能になったことで、そのデー タベース接続のセキュリティが強化されました。TransX ユーティリティ
Oracle TransXユーティリティは、強力な XML 形式によって、変換されたシード・ データとメッセージを容易にデータベースへロードします。文字列の準備、変換、 データベースへのロードをコマンドライン・インタフェースまたは Java API のい ずれかで行うことができます。キャラクタ・エンコードの管理、変数の変更、シー ケンスの開始など、本来は複数の挿入やセッションを必要とした SQL コマンドを 自動的に実行します。XML パイプライン・プロセッサ
Oracle XDK 10g には、W3C ノートとして提出された XML Pipeline Definition Language Version 1.0 に基づく新しい Oracle XMLパイプライン・プロセッサが搭載 されています。このプロセッサは、入力 XML パイプライン・ドキュメントを受 け取り、派生する依存関係に従ってパイプライン処理を実行します。パイプライ ン・ドキュメントは XML 文書であり、実行する処理を宣言方式で指定します。 XML パイプライン・プロセッサに加え、XDK では、パイプライン・ドキュメン ト内で連結可能ないくつかのパイプライン処理が定義されています。Oracle XML パイプライン・プロセッサには、コマンドライン・インタフェースと Java API イ ンタフェースの両方が含まれています。次に、パイプライン・ドキュメントの例 を示します。これは、ドキュメント book.xml を解析後、スタイルシート book.xsl を適用し、結果の Web ページ myresult.html を生成します。 <pipeline xmlns="http://www.w3.org/2002/02/xml-pipeline" xml:base="http://example.org/">
<param name="target" select="myresult.html"/>
<processdef name="domparser.p" definition="oracle.xml.pipeline.processes.DOMParserProce ss"/> <processdef name="xslstylesheet.p" definition="oracle.xml.pipeline.processes.XSLStylesheetP rocess"/> <processdef name="xslprocess.p" definition="oracle.xml.pipeline.processes.XSLProcess"/>
<process id="p2" type="xslstylesheet.p" ignoreerrors=" false">
<input name="xsl" label="book.xsl"/>
<outparam name="stylesheet" label="xslstyle"/> </process>
<process id="p3" type="xslprocess.p" ignoreerrors=" false">
<param name="stylesheet" label="xslstyle"/> <input name="document" label="xmldoc"/> <output name="result" label="myresult.html"/> </process>
<process id="p1" type="domparser.p" ignoreerrors=" true">
<input name="xmlsource" label="book.xml "/> <output name="dom" label="xmldoc"/>
<param name="preserveWhitespace" select="true"></param> <error name="dom"> <html xmlns="http://www/w3/org/1999/xhtml"> <head> <title>DOMParser Failure!</title> </head> <body>
</body> </html> </error> </process> </pipeline> 開発者にとって重要なのは、このパイプライン・プロセッサによって、XML 処理 アプリケーションを構築するためのカスタム Java コードが単純な宣言型の XML に置換されることです。図 1 に示すように、この処理にはあらゆる XML 処理を 含めることができます。 図 1: Oracle XML パイプライン・プロセッサ
SQL の能力への XML の追加
エンタープライズ・レベルの XML を実現するには、インフラストラクチャにお ける XML 処理の高いパフォーマンスとスケーラビリティが要求されます。この パフォーマンスを得るには、個々のコンポーネントに注目するだけでなく、アプ リケーションのアーキテクチャ全体の考慮が必要になります。残念なことに、す べてのアプリケーションに適した単一の XML アプリケーションが存在しないよ うに、すべてのアプリケーションに適した単一の XML アーキテクチャも存在し ません。そのため、XML インフラストラクチャには、高パフォーマンスだけでな くアプリケーションがそのインフラストラクチャを柔軟に活用できることが要求 されます。つまり、現在の複数層アプリケーションが、データベースを含めたあ らゆる層で XML 処理を呼び出せることが必要になります。 Oracle9i では、XMLType という新しいデータ型を使用した新しいレベルの XML 統合が導入されました。このデータ型は XML をネイティブにサポートするだけ でなく、データベースから直接呼び出し実行する XML 処理機能を有効にします。 これにより、データに密接した動作が求められるとき、開発者はより柔軟に効率 よく対処できます。 OracleAS 10g と Oracle XDK 10g では、パフォーマンスの向上および機能性と柔軟 性の拡張により、つまり SQL の能力への XML の追加により、この統合をさらに 強化しています。その過程で、Oracle のオープンな拡張 XML 標準に加え、新しい XML 標準のサポートが実装されました。これを表 2 に示します。表 2: Oracle XDK 10g がサポートする XML 標準 XML 標準 バージョン 言語 XML 1.0 Java、C、C++ XML ネームスペース 1.0 Java、C、C++ DOM 1.0/2.0 Java、C、C++ DOM ロード/保存および検証 3.0 Java SAX + 拡張 1.0/2.0 Java、C、C++ XSLT + XPath 1.0/2.0(Java) Java、C、C++
XML スキーマ 1.0 Java、C、C++ SOAP 1.0 Java JAXP 1.2 Java JAXB 1.0 Java
Oracle XDK 10g による高速 XSLT
XML の能力は、単一のドキュメント内でデータまたはコンテンツを記述するとき の柔軟性と拡張性にあります。ただし、XML 自体はプレゼンテーション形式では ありません。XSL スタイルシートの役割は、XML の適切なプレゼンテーションへ の変換です。HTML、SVG、WML などの生成には、XSLT(XSL Transformation) プロセッサおよび対応するスタイルシートが必要です。Oracle XDK 10g の XSLT プロセッサは、機能が大幅に拡張され、パフォーマンスが大きく向上しています。XSLT コンパイラと C/C++のための VM
Oracle XDK 10g には、新規に C および C++から利用可能な XSLT 仮想マシン (XSLTVM)が含まれています。XSLTVM は、コンパイル済 XSLT コードを実行 するための CPU をソフトウェアで実装したものです。コンパイル済 XSLT コード の実行には、まず XSL スタイルシートをコンパイルして、XSLTVM が認識でき るバイト・コードにします。そのために、Oracle XDK 10g には XSLT 1.0 標準に準 拠した XSL コンパイラも含まれています。このコンパイルは実行時に行うことも、 実行時に取得するために格納しておくこともできます。その結果、スタイルシー トの解析が不要になるだけでなく、テンプレートが XML 操作ではなく索引参照 に基づいて適用されるため、変換の速度とスループットが向上します。この処理 を図 2 に示します。図 2: XSLT コンパイラと仮想マシン
XSLT コンパイラと VM の使用には多少異なる処理モデルと API が必要です。次 にこの処理のコードを示します。
/* Create or re-use an XML meta context object. /
xctx = XmlCreate(&err,...);
/* Create or re-use an XSLT Compiler object. /
comp = XmlXvmCreateComp(xctx);
/* Compile an XSLT stylesheets and store/cash the result
bytecode. /
code = XmlXvmCompileFile(comp, xslFile, baseuri,flags, &err);
/* Create or re-use an XSLTVM object. The explicit stack
size setting is needed when XSLTVM terminates with "...
Stack Overflow" message or when smaller memory footprints
are required (see XmlXvmCreate). /
vm = XmlXvmCreate(xctx, "StringStack", 32, "NodeStack", 24);
/* Set a stylesheet bytecode to the XSLTVM object. */
len = XmlXvmGetBytecodeLength(code, &err); err = XmlXvmSetBytecodeBuffer(vm, code, len);
/* Transform an instance XML document. */
err = XmlXvmTransformFile(vm, xmlFile, baseuri);
/* Clean up. */
XmlXvmDestroy(vm); XmlXvmDestroyComp(comp); XmlDestroy(xctx); コンパイル済スタイルシートをデータベースに格納しておき、高速変換が必要な 場合に取得できます。公式の XML ベンチマークはありませんが、コンパイルを 行わない標準的な処理と比較し、スループットで 200%のパフォーマンス向上が見 られました。Java における XSLT 2.0 のサポートと最適化
Oracle XDK 10g では、Java XSLT 処理も拡張および改善されました。最新の標準 に対応するため、Java XSLT プロセッサには XSLT と XPath 2.0 のサポートが追加 されています。2.0 はまだ W3C 勧告ではありませんが、このプロセッサは非常に 安定した最終仕様案に準拠しています。このサポートには、複雑なスタイルシー トを大幅に簡略化して効率を高める機能が含まれています。次に、Oracle Java XSLT プロセッサに含まれる重要な機能の一覧を示します。 グループ化: <xsl:for-each-group>、<xsl:sort>およびグループ化属性を使用し て、要素のグループを作成できます。この機能により、データベースの データとリストを扱う際の共通処理が大幅に簡略化されます。 一時ツリー: <xsl:variable>、<xsl:param>、<xsl:with-param>のいずれかの要 素を評価して一時ツリーを作成できます。一時ツリーは、XPath によって アクセスし、テンプレートに渡すことができます。この機能により、開 発者は簡単にメンテナンスできるモジュール型のスタイルシートを作成 できます。 複数の結果ドキュメント: <xsl:result-document>要素を使用して、単一のスタ イルシートで複数の結果ドキュメントを作成できるようになりました。 開発者はこの機能を使用して、単一のスタイルシートでフレーム用の HTML ページ、関連する CSS および SVG ドキュメント、ページ付けされ た出力などを生成できます。 文字マッピング: 文字マッピングは、文字のエスケープを制御するために、 <xsl:character-map>と<xsl:output-character>を使用して明示的に定義さ れる出力オプションとなりました。開発者は、たとえば JSP のための Unicode 個人用領域文字をより確実に作成できます。 XSL関数やユーザー定義関数: XSL 関数やユーザー定義関数は、拡張関数の コールなしで使用できるようになったため、プロセス・コールアウトの オーバーヘッドがなくなり、同時にスタイルシートの移植性が向上しま した。 このサポートと機能の追加は、パフォーマンスの低下につながると考えられまし たが、さらに最適化を実装することにより回避できました。スタイルシートは、 テンプレートの照合と XPath 横断を最適化するために、コンパイル時に静的に分 析されます。必要な XPath を抽出し、索引を付け、それを使用してドキュメント の変換に必要な部分の DOM のみを定義します。その結果、入力 DOM のメモリー の使用量は、入力 XML のサイズではなくスタイルシートに必要なサイズに近く なります。大規模な XML 文書の効率的作成
データベースには膨大な量のデータが格納されています。多くの場合、中間層分 析、レポート、動的なプレゼンテーションなどに必要なデータが選択され、XML 文書が作成されます。XDK の XQL SQL ユーティリティにより、このような処理 が非常に簡単になります。これまでは、ドキュメントの印刷、シリアライズ、保 存などの前にドキュメント全体の DOM を構築する必要があり、それが大きなド キュメント配布の場合のボトルネックとなっていました。OracleAS 10g では、Java SAX パーサーに組み込まれた拡張機能により、複雑なイ ベント・ハンドラを作成せずに、SAX ストリームから直接印刷できます。この機 能と XSU の SAX 出力機能とを組み合せることによって、開発者は限られたリソー スを使用して、実質上サイズに制限のない XML 文書を容易に作成できます。こ の使いやすさを表すコードの一部を次に示します。
//Open a File and Initialize connection and SAX print
OutputStream out = new FileOutputStream("out.xml"); DriverManager.registerDriver(new
oracle.jdbc.driver.OracleDriver());
conn= DriverManager.getConnection(thinConn,"sh","sh"); XMLSAXSerializer sample = new XMLSAXSerializer (out);
//init the OracleXMLQuery
OracleXMLQuery qry = new OracleXMLQuery(conn,"select * from sales");
//Print the results
qry.getXMLSAX(sample); sample.flush();
シングルステップ XML 処理のストリーミング
XML スキーマを使用して送付された XML メッセージや注文書などのドキュメン トの内容を検証してから、データを処理および変換して、アプリケーションまた はデータベースのスキーマにマップする一連の作業は、非常にコストがかかりま した。これまでは、XML 標準に基づくアプローチには複数の処理段階が必要で、 その各段階でメタデータの実体化が必要でした。ほとんどの場合、そのことがス トリーミングを使用できなくし、ストリーミングがサポートされている場合でも 処理機能を制限しています。たとえば、XML の注文書は、まず、SAX(Simple API for XML)ストリームとして実装できる関連スキーマと照合して検証する必要があ ります。しかし、アプリケーションやデータベースのスキーマと一致するように XSLT スタイルシートを適用して注文書を変換することが必要な場合は、XSLT プ ロセッサに対してリソース集中型 DOM(Document Object Model)が必要になりま す。このことは、リソースを消費するだけでなく、ストリーム・ベースの機能を 失うことにもなります。Oracle XDK 10g では、この問題に対処するため、その XML スキーマ・プロセッ サの検証 API を公開するという革新的な方法を採用しています。アプリケーショ ンはこれにより、単一 XML 解析を使用しながらストリーミング機能を維持しな
図 3 に、その仕組みを示します。 図 3: XML の検証と変換の統合 処理モデルには XML スキーマ・バリデータが入っています。この機能は、SAX ストリームを使用してスキーマの検証を行うと同時に、このバリデータへのパブ リック・インタフェースを公開します。このインタフェースにより、処理中の XML のタイプ、要素/属性の名前、実行中の検証のタイプ、処理の状態、そのタイプに 対応する XML スキーマの注釈をバリデータに問い合せできます。これにより、 たとえば多くの XML スキーマから単一の内部スキーマへの変換は、既知の要素 とデータ型が SAX 出力ストリームに出現したとき取り出して実行できる、適切な XML スキーマをマッピング属性とともに注釈するだけです。 ユーザーは、XSDValidator.getCurrentMode()を使用して、現在の LAX または STRICT 検証属性を取得できます。また、XSDValidator.getElementDeclaration() および XSDValidator.getAttributeDeclarations()を使用して、XML 要素と属性コン テンツ・タイプを参照できます。その後、XSDValidator.getAnnotation()を使用し て、関連付けられた XML スキーマの注釈を取得できます。 AQ でサポートされた内蔵 SOAP との組合せにより、OracleAS 10g はエンタープラ イズ・レベルの統合機能を実現し、既存のデータベース・アプリケーションをそ の基盤のスキーマを変更することなくインターネットに拡張できます。
結論
XML には多くの利点がありその応用方法も認識されたため、定着すると思われま す。xHTML、FinML、WML、MathML、OAGIS など、XML には様々なバリエー ションがありますが、その基礎となるオープンな標準インフラストラクチャは同 じです。豊富な XML 機能のセットを使用可能にするプラットフォーム上で開発 と配置を行い、同時にエンタープライズ・レベルのパフォーマンスを実現するこ とは、ビジネスのインターネット展開の成功にとってきわめて重要です。約 5 年 前、オラクル社は XML の重要性について、Architecture Review Board 上で次の声 明を発表しました。我々は、XMLを活用して信頼性とスケーラビリティを備えたインターネッ
ト・アプリケーションを高い生産性をもって構築し、費用効率よくデプロイ するための最高のプラットフォームを開発者に提供します。
Database、Application Server、XDK(XML Developer's Kit)で構成した Oracle 10g XML プラットフォームは、XMLをSQLの能力にまで高めることによってそれを実現し
Oracle XDK(10.1.2)の技術概要 2005 年 1 月 著者: Jinyu Wang Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A. 海外からのお問合せ窓口: 電話: +1.650.506.7000 ファックス: +1.650.506.7200 www.oracle.com このドキュメントは単に情報として提供され、内容は予告なしに変更される場合があります。 このドキュメントに誤りが無いことの保証や、商品性又は特定目的への適合性の黙示的な保証や条件を含め明示的又は黙示的な保証や条件は一切無いもの とします。オラクル社は、このドキュメントについていかなる責任も負いません。また、このドキュメントによって直接又は間接にいかなる契約上の義務 も負うものではありません。このドキュメントを形式、手段(電子的又は機械的)、目的に関係なく、オラクル社の書面による事前の承諾なく、複製又は 転載することはできません。
Oracle, JD Edwards, 及び PeopleSoft は米国 Oracle Corporation 及びその子会社、関連会社の登録商標です。その他の名称は、それぞれの会社の商標の可 能性があります。
オラクル社は、インターネット上での活動を強化するソフトウェアを提供します。
Copyright © 2005 Oracle Corporation All rights reserved.