原典情報: $ORACLE_HOME/xdk/readme.html
目次
Oracle XML Developer's Kit(Oracle XDK)は、コンポーネント、ツールおよびユーティリティのセットであり、XML対応のアプリケーションの構築およびデプロイを容易にします。様々なデプロイメント・オプションを提供するために、Oracle XDKコンポーネントは、Java、CおよびC++に使用できます。多くのシェアウェアやトライアル版XMLコンポーネントとは異なり、本番用Oracle XDKは完全にサポートされており、商用再配布ライセンスを受けています。Oracle XDKは、次のコンポーネントで構成されています。
XML Parser: Java、CおよびC++をサポートします。このコンポーネントは、業界標準のDOMインタフェースおよびSAXインタフェースを使用して、XMLを作成および解析します。
XSLT Processor: XMLを、HTMLなど他のテキスト・ベースの形式に変換またはレンダリングします。
XSLT VM: Cを使用する高パフォーマンスのXSLT変換エンジンです。
XML Schema Processor: Java、CおよびC++でスキーマを検証します。XMLの単純および複雑なデータ型を使用可能にします。
XML Class Generator: DTDおよびXMLスキーマからC++クラスを自動的に生成し、WebフォームまたはアプリケーションからXMLデータを送信します。
XML JAXB Class Generator: XMLスキーマからJavaクラスを自動的に生成し、WebフォームまたはアプリケーションからXMLデータを送信します。
XML Java Beans: Javaコンポーネントを介して、XML文書をビジュアルに変換、比較および圧縮します。
XML SQL Utility: SQL問合せから、XML文書、DTDおよびXMLスキーマをJavaで生成します。
XSQL Servlet: サーバー内のXML、SQLおよびXSLTを組み合せて、動的Webコンテンツを配信します。
XML Pipeline Processor: 宣言方式で実行されるJavaプロセスを指定します。
TransX Utility: 変換されたシード・データおよびメッセージをデータベースに簡単にロードします。
ご質問、ご意見または不具合の報告は、Oracle Technology NetworkのXMLフォーラム(http://otn.oracle.com/tech/xml/xdkhome.html)までお寄せください。
Oracle XDK Javaコンポーネントは、W3C勧告およびJava JSR標準に基づいています。現在サポートされている標準は次のとおりです。
DOMレベル2.0仕様
DOMレベル3.0仕様
DOMレベル3.0 Load and Save(勧告候補)
DOMレベル3.0 Validation(勧告候補)
XSLT/XPath仕様
XSLT/XPath 2.0仕様
XSL Transformations(XSLT)2.0(草案、2005年4月4日付)
XML Path Language(XPath)2.0(草案、2005年4月4日付)
XPath 2.0データ・モデル(草案、2005年4月4日付)
XQuery 1.0およびXPath 2.0のFunctionsとOperators(草案、2005年4月4日付)
XMLスキーマ仕様
DOM APIは、DOMレベル3 ValidationおよびDOMレベル3 Load and Saveの勧告候補をサポートしています。
Load and Save
LSParserでは、次の構成パラメータがサポートされていません。
"charset-overrides-xml-encoding"
LSParserでは、次の構成パラメータのオプション設定がサポートされていません。
"disallow-doctype (true)"
"ignore-unknown-character-denormalizations (false)"
"namespaces (false)"
"supported-media-types-only (true)"
LSSerializerでは、次の構成パラメータがサポートされていません。
"discard-default-content"
LSSerializerでは、次の構成パラメータのオプション設定がサポートされていません。
"canonical-form (true)"
"format-pretty-print (true)"
"ignore-unknown-character-denormalizations (false)"
"normalize-characters (true)"
Validation
Validationで参照されるDOM 3 Core機能の一部が実装されていますが、Core自体はサポートされていません。
DOM CoreのNameListおよびDOMStringListは、検証のためにサポートされています。
ValidationはXMLスキーマに基づいており、最初にDTDをスキーマに変換する必要があります(DTDToSchemaユーティリティを使用)。
XSLTプロセッサによって、XSLT 2.0、XPath 2.0およびXPath/XQuery共有データ・モデルの現在の草案に対するサポートが追加されます。
これらの仕様の次の機能は、現行リリースではサポートされていません。
スキーマ・インポートおよび静的入力機能はサポートされていませんが、XPath 2.0データ・モデルで指定されたXMLスキーマ組込み型はサポートされています。
XSLT命令xsl:numberは、XSLT 1.0のセマンティクスおよび構文を使用します。
use-when標準属性はサポートされていません。
プロセッサでは、xsl:paramのrequired属性はサポートされていません。
tunnelパラメータはサポートされていません。
XSLTでは、正規表現命令はサポートされていません。
xsl:attribute、xsl:commentおよびxsl:messageのコンテンツ・モデル、およびxsl:keyとxsl:sortのキー値の計算方法は、1.0の動作のままです。
このリリースの新機能:
XML Data Bindingは、2003年1月8日のJSR-31「Java Architecture for XML Binding(JAXB)Finalバージョン1.0」に基づいています。このコンポーネントを使用すると、XMLスキーマに基づいてJavaクラスを作成できます。
JAXB 1.0仕様では、W3CのXMLスキーマの完全サポートは必要ありません。詳細は、付録E.2を参照してください。現行リリースでは、次の機能はサポートされていません。
Javadocの生成はサポートされていません。
スキーマから導出されたJavaファイルのエンコーディング
Java言語仕様に従って、JavaプログラムはUnicodeキャラクタ・セットを使用して記述されます。特に、Javaプログラムのコメント、識別子、および文字やリテラル文字列の内容は、Unicode文字を使用して形成できます。Javaプログラムのすべての入力文字がASCII文字で表現できないかぎり(つまり、ASCII以外の文字はUnicodeエスケープに変換される)、JAXB生成のJavaファイルは特定のエンコーディングで保存する必要があります。このリリースでは、JAXB生成の全JavaファイルのエンコーディングとしてUTF-8が選択されています。このエンコーディングがプラットフォームのデフォルト・コンバータと異なる場合は、encodingオプションを指定して、javacまたはJavaプログラミング言語のコンパイラに対して、ソース・ファイルで使用するエンコーディングを指示する必要があります。
oracle.xml.transviewer.DBAccess Beanは使用されなくなりました。かわりにoracle.xml.dbaccess.DBAccessを使用してください。
Oracle XML Pipeline Processorは、2002年2月28日のW3CノートのXML Pipeline Definition Languageバージョン1.0で作成されています。このプロセッサは入力XMLパイプライン文書を取ることができ、派生した依存関係に応じてパイプライン・プロセスを実行できます。パイプライン文書はXML文書であり、宣言方式で実行されるプロセスを指定します。Pipeline Processorに加えて、Oracleではパイプライン文書でパイプ化できる複数のパイプライン・プロセスを定義しています。
W3Cノートとこの実装の間にはいくつか違いがあります。次に相違点を示します。
パーサー・プロセス(DOMParserProcessおよびSAXParserProcess)はXMLパイプラインに含まれます(セクション1)。
XML Baseは現在サポートされていません(セクション2.1)。
使用可能なパイプライン入力に関する最終ターゲット出力が最新であるかどうかを確認する場合は、最終ターゲット出力のみがチェックされます。全プロセスの中間出力が最新であるかどうかは確認されません(セクション2.2)。
選択した属性では、二重引用符("")の間にあるものはすべてリテラル文字列とみなされます。
複数のプロセスで同じinfosetが作成された場合、プロセッサでエラーがスローされます(セクション2.4.2.3)。
文書要素は冗長な機能とみなされるため、サポートされていません(セクション2.4.2.8)。
Oracle XSQL Servletは、サーバー内のSQL、XMLおよびXSLTの機能を組み合せて、動的Webコンテンツを配信します。XSQL Servletを使用すると、次の操作を実行できます。
Web上で、あらゆるクライアント・デバイスからWebベース情報のリクエストを受信できます。
リクエストで必要なビジネス・データの適切な論理ビューを問い合せます。
Web上でデータグラムをXMLでリクエスタに戻します。
オプションで、情報をXML、HTMLまたは必要なテキスト形式に柔軟に変換します。
XSQL Servlet Processorには、次の新機能があります。
複数値のパラメータのサポート: ユーザーは、値が文字列の配列であるパラメータを使用できます。複数値のパラメータは、同じ名前を共有する入力コントロールが複数出現するHTMLフォームをユーザーが送信する場合によく使用されます。
xsql:if-paramを使用した条件付きのアクションの実行またはコンテンツの挿入: 新しい<xsql:if-param>アクションでは、ある条件がTrueである場合に、xsql:if-paramにネストされている要素またはアクション(あるいはその両方)を条件付きで含めることができます。
暗黙的コミットを実行するアクションの新しいCommit="No"フラグ: <xsql:delete-request>、<xsql:insert-request>、<xsql:insert-request>および<xsql:insert-parameter>の各アクション要素では、アクションで暗黙的コミットを実行するかどうかを制御する新しいオプションのコミット属性を使用できます。
組込みアクションでのエラー・パラメータのオプション設定: アクションの実行時に致命的でないエラーが発生したかどうかを把握しておくと便利な場合があります。
サーブレット・コンテナのデータソース実装の使用: XSQLConfig.xmlファイル内に名前付き接続を定義する方法の他に、サーブレット・コンテナでのJDBCデータソース実装を介して使用可能なデータソースを使用する方法があります。
カスタムXSQLErrorHandler実装の提供: このリリースでは新しいインタフェースoracle.xml.xsql.XSQLErrorHandlerが導入されました。このインタフェースを使用することで、開発者はエラーの通知方法をプログラムで制御し、エラーの対処方法をカスタマイズできます。
XSQLError.getErrorCode()で戻されるエラー・コードは、NNNではなく25NNNに変更されました。また、エラー・コード形式もXML-25NNNに変更されました。
カスタムXSQLLogger実装の提供: このリリースでは2つの新しいインタフェースoracle.xml.xsql.XSQLLoggerFactoryおよびoracle.xml.xsql.XSQLLoggerが導入されました。これらのインタフェースを使用することで、開発者はXSQLページ・リクエストのログを記録できます。
XSQLConfig.xmlファイルのデフォルト名のオーバーライド: 顧客の要望により、XSQLConfig.xmlファイルのデフォルト名をオーバーライドして、テスト環境や本番環境用に別の構成ファイルを容易に指定できるようにする方法が必要でした。このリリースでは、次の2種類の方法でファイル名をオーバーライドできます。
Javaシステム・プロパティxsql.configを設定します。
サーブレット初期化パラメータxsql.configを定義します。
Apache FOP 0.20.3のサポート: XSQLページからPDF出力をレンダリングする必要がある場合、このリリースではApache FOP 0.20.3リリース候補での動作がサポートされます。
空白保持構成オプションの設定: このリリースから、空白保持モードを使用したXSQLページ・テンプレートおよびXSLTスタイルシートを解析する際に、XSQL Page ProcessorでOracle XML Parserを使用するかどうかを制御できます。
TransXはデータ転送ユーティリティであり、データベースに多言語データを移入できます。このユーティリティはXMLを使用してデータを指定するため、XMLからデータベースへの簡単なデータ転送、開発者と翻訳者の両方が直観的に使用できる単純なデータ形式、およびエラーの発生が軽減される検証機能を利用できます。
XML SQL Utility(XSU)は、オブジェクト・リレーショナル・データベースの表またはビューから取得したデータをXMLに変換し、正規マッピングに基づいて、表またはビューの適切な列または属性にデータをXMLで挿入できるユーティリティです。
バイナリXMLを使用すると、XMLテキストと圧縮されたバイナリXML間のエンコードおよびデコードが可能になります。効率を上げるため、XMLアプリケーションが直接使用できるよう、バイナリXML上にDOMおよびSAX APIが提供されています。詳細は、『Oracle XML Developer's Kitプログラマーズ・ガイド』を参照してください。
XDKにより、スケーラブルでプラッガブルなDOMのサポートが提供されます。これにより、非効率的なメモリーの使用、スケーラビリティの制限、およびDOM構成に対する制御の欠如の問題が解決されます。詳細は、『Oracle XML Developer's Kitプログラマーズ・ガイド』を参照してください。
Oracle XDK C/C++コンポーネントは、W3C勧告に基づいています。現在サポートされている標準は次のとおりです。
DOMレベル2.0仕様
XSLT/XPath仕様
XMLスキーマ仕様
XMLイベントでは、PushベースのSAXイベントと比較して、XMLドキュメントの解析がPullベースのStAXに類似のインタフェースが提供されます。簡単な一連のAPIおよび基礎となるイベント・セットが公開されているため、XMLイベントでは、アプリケーションにより解析が制御されます。XmlEvNextなどのメソッドを使用すると、アプリケーションでは、コールバックのイベントの処理ではなく、次のイベントの取得が可能になります。各イベントには、アプリケーションが詳細の取得に使用できるAPIのセットが関連付けられています。たとえば、アプリケーションでXmlEvGetNameをコールして、イベントXML_EVENT_START_ELEMENTのQNameを取得できます。
ストリーム・バリデータ・インタフェースにより、DOMではなくXMLイベントにより表現されたXMLドキュメントを検証する機能が提供されます。インタフェースでは、インスタンスを表すイベント・コンテキストが取得され、XMLイベント・インタフェースを使用して検証中の各イベントの情報が取得されます。
XSLTVMパッケージでは、1999年11月16日のW3C勧告で指定されたとおりに、XSL Transformation(XSLT)を実装します。XSLT Virtual Machineは、コンパイルされたXSLTコードを実行するために設計された、CPUのソフトウェア実装です。この仮想マシンでは、XSLTスタイルシートを一連のバイトコードまたはXSLT CPUの機械命令にコンパイルするコンパイラを想定しています。バイトコード・プログラムは、プラットフォームに依存しない2バイト単位のシーケンスです。このプログラムは、異なるXSLTVM上で格納、キャッシュおよび実行することが可能です。XSLTVMでは、バイトコード・プログラムを使用してXMLインスタンス・ドキュメントを変換します。これによって、コンパイル(設計)時の計算と実行時の計算は明確に区別され、命令間でのデータ交換には決まった方法が指定されます。このパッケージには、次の2つのインタフェースが含まれています。
XSLTVMコンパイラ・インタフェース
XSLTVMインタフェース
通常、パッケージAPIは、次の手順で使用されます。
XMLメタコンテキスト・オブジェクトを作成または使用します。
XSLTコンパイラ・オブジェクトを作成または使用します。
XSLTスタイルシートをコンパイルし、結果として戻るバイトコードを格納またはキャッシュします。
(オプション)すべてのスタイルシートについて、手順1〜2を繰り返します。
コンパイラ・オブジェクトを削除(後で使用する場合は保存)します。
XSLTVMオブジェクトを作成または使用します。
スタイルシートのバイトコードをXSLTVMオブジェクトに設定します。
XMLインスタンス・ドキュメントを変換します。
(オプション)手順6または手順5〜6を必要な回数、繰り返します。
XSLTVMオブジェクトを削除(後で使用する場合は保存)します。
プロセッサは、次のサイトで公開されている仕様および「XML Schema 1.0 Specification Errata」に記載されている機能を完全にサポートしています。
http://www.w3.org/2001/05/xmlschema-errata
この項では、このリリースにアップグレードする際の推奨事項について説明します。
11gR1では、JDK 1.5以上でJava XDKがサポートされています。
11gR2では、Java XDKはNSL jar: orai18n-mapping.jarに依存します。
org.w3c.dom.validationパッケージの全クラスにあるDOMレベル3.0 Validation仕様へのリンクが正しくありません。正しいリンクは、http://www.w3.org/TR/2003/CR-DOM-Level-3-Val-20030730にある勧告候補へのリンクです。
org.w3c.dom.validationパッケージの次のAPIは、説明に誤りがあります。
DocumentEditVal.getContinuousValidityChecking()は、shortではなくbooleanを戻します。
DocumentEditVal.setContinuousValidityChecking()は、shortではなくbooleanを受け入れます。
ElementEditVal.getAllowedFirstChildElements()は名称がgetAllowedFirstChildren()に変更されました。
これ以外の既知の問題については、該当する項を参照してください。