JSR: Java Specification Request
JSR 206: JavaTM API for XML Processing(JAXP)1.3

 
段階 アクセス 開始 終了
保守リリース ダウンロード・ページ 2006年11月30日  
保守ドラフト・レビュー ダウンロード・ページ 2006年1月9日 2006年2月13日
最終リリース ダウンロード・ページ 2004年9月30日  
最終承認投票 結果の表示 2004年8月31日 2004年9月13日
最終ドラフト案2 ダウンロード・ページ 2004年8月24日  
最終ドラフト案 ダウンロード・ページ 2004年8月5日  
パブリック・レビュー ダウンロード・ページ 2003年12月16日 2004年1月15日
コミュニティ・ドラフト投票 結果の表示 2003年9月9日 2003年9月15日
コミュニティ・レビュー ログイン・ページ 2003年8月15日 2003年9月15日
専門家グループの形成   2003年3月18日  
JSRレビュー投票 結果の表示 2003年3月4日 2003年3月17日
ステータス: 最終
使用されているJCPのバージョン: 2.7
使用されているJava Specification Participation Agreementのバージョン: 2.0


説明
JAXP 1.3は、JAXPの次のバージョンであり、JavaTMを使用してXMLを処理するための、実装に依存しない移植可能なAPIです。

このJSRに関するご意見を仕様リードまでお寄せください。
チーム
仕様リード
  Joe Wang Sun Microsystems, Inc.
 
専門家グループ
  BEA Systems Ben Galbraith IBM
  Novell, Inc. オラクル Miles Sabin
  SAP AG SAS Institute Inc. SeeBeyond Technology Corp.
  Sun Microsystems, Inc. TmaxSoft, Inc.

オリジナルのJSRに対する更新の内容

以下の情報は、オリジナルの提案から更新されたものです。

2008.10.28:

保守リードの名前: Joe Wang

電子メール・アドレス: huizhe.wang @sun.com

電話番号: -

FAX番号: -


オリジナルのJava Specification Request(JSR)

識別情報 | 要求 | 寄稿

セクション1:識別情報

提出メンバー: Sun Microsystems

連絡窓口担当者の名前: Jeff Suttor

電子メール・アドレス: jeff.suttor @sun.com

電話番号: +1 650 352 6340

FAX番号: +1 650 352 6340


仕様リード: Jeff Suttor、Norm Walsh

電子メール・アドレス: jeff.suttor @sun.com、norman.walsh @sun.com

電話番号: +1 650 352 6340, +1 413 256 6985

FAX番号: +1 650 352 6340, +1 413 256 6985


当初の専門家グループのメンバー:

  • BEA
  • Miles Sabin
  • オラクル
  • SAP
  • Sun Microsystems, Inc.

このJSRをサポートするメンバー:

  • Apple
  • BEA
  • Borland
  • Miles Sabin
  • オラクル
  • SAP
  • Sun Microsystems, Inc.

セクション2: 要求

2.1 仕様案を説明してください。

JAXP 1.3は、XMLを処理するための、実装に依存しない移植可能なAPIのセットであり、JSR 63 Java? API for XML Processing 1.2(保守リリース)に続くものです。 JAXP 1.3には、JAXP 1.2との完全な後方互換性があります。

Java?プラットフォームが開発者とユーザーにとって適切なものである状態を維持するために、JAXPは現行のXML標準をタイムリーにサポートする必要があります。 改訂されたXML標準には、実装経験から得られる知識が数年の間に増えていったのに伴い、それらの知識に基づいた変更が加えられています。 現在の標準の標準化をサポートすることにより、さらに多くの機能が開発者とユーザーに提供されるだけでなく、相互運用性が保証されます。 JAXP 1.2以降に以下のコアXML標準が改訂されました。これらのサポートはJAXP 1.3で更新されます。

JSRと、XML処理が関わるアプリケーションでは、javax.xml.*内の基本的なXMLコンストラクトの共通標準仕様を使用することにメリットがあります。 これにより、同じような作業の繰り返しが避けられ、相互運用性が保証され、容易に効率よくXML仕様に準拠させることができるようになります。 複数のJSRで現在使用されている共通のコンストラクトとしては、XML修飾名名前空間コンテキストがあります。 JAXP 1.3では、専門家グループが特定した共通コンストラクトが標準化されているため、XMLが関わるJSRの今後の改訂版でそれらを再利用できます。

他のJSRの専門家や、複雑で大掛かりなアプリケーションの開発者は、XMLの処理をさらに正確に制御できるようにする標準化を要求していました。 たとえば、正規化を制御する必要のあるJSR 105 XML Digital Signature APIsや、XML Schema Part 2: Datatypes用のJava?オブジェクトの定義を必要とするJSR 31 XML Data Binding Specification、プロセッサ・ファクトリから返されるJAXPプロセッサの特性をより正確に制御する必要のあるアプリケーション(特にJ2EE?アプリケーション)などです。 専門家グループは、他のJSRを調べ、既存のアプリケーションと将来のアプリケーションの知識を利用して、XMLの処理をより正確に制御するサポートの標準化のニーズを判断します。

XMLの処理においていくつかのDoS脆弱性があることが最近明らかになりました。 これらの脆弱性は、JAXP実装よりもXML仕様の性質に起因するものです。 JAXP 1.3は、これらの既知の問題に対処します。 専門家グループは、事前に有効なXMLコンストラクトとそれらを処理するリソースとの関係を調査し、今後の脆弱性の発生を事前に回避するための適切なメカニズムを定義します。

XML処理のパフォーマンスを高めることが望まれます。 たとえば、一部のXMLプロセッサでは、すでに文法の事前解析とキャッシュをサポートしています。 また、開発者は、"ツリー全体を大幅に変更しようとしている"などのように予期される処理パターンを指示する機能に加え、"このサブツリーの処理を完了した"などのように処理に関係するリソースを解放してもよいことをプロセッサに伝える機能も求めていました。 専門家グループは、JavaとXMLがどのように相互作用するかに関する知識を利用するだけでなく、既存のXML処理実装がどのようにパフォーマンス向上を図ったかを評価して、パフォーマンス向上のためのメカニズムを定義します。

W3C DOM APIは、IDLから生成されており、常にJava?開発者にとって最適なものであるとは限りません。 専門家グループは、Java?設計パターンに従うDOMについて容易にXPath 1.0による問合せを行うことができるようにするヘルパー・クラスを提供することを検討します。

多くのXMLドキュメント処理のユースケースでは、あるドキュメントが、インクルード対象として別のドキュメントを参照します。 アプリケーションでは、インクルードを行うために、現在は実装に固有の特別な方法を使用しています。 たとえば、JavaServer Pages? Specification Version 2.0<jsp:directive.include>を使用したり、Xerces Native Interfaceを使用したりします。 専門家グループは、XML Inclusions(XInclude)Version 1.0をサポートすることによって、相互運用が可能になり、望ましいXML情報モデリングが広く行われるようになるかどうかを評価します。

XML Path Language(XPath)2.0およびXSL Transformations(XSLT)Version 2.0を将来サポートできるようにすることが設計目標です。 専門家グループは、JAXPの後続のバージョンで、JAXPへの変更を最小限にしてそのバージョンをサポートできるように、XPath/XSLT 2.0の分析を実行します。 XPath/XSLT 2.0実装担当のコミュニティは、JSR仕様と以前の実装の間の双方向の指針の作成を促すことに取り組みます。

2.2 ターゲットJavaプラットフォームは何ですか。 (デスクトップ、サーバー、パーソナル、組込み、カードなど)

JavaTM 2 Platform, Standard Edition(J2SETM)1.5

2.3 仕様案はJavaコミュニティのどのようなニーズに対処しますか。

上記の2.1を参照してください。

2.4 このニーズが既存の仕様によって満たされないのはなぜですか。

上記の2.1を参照してください。

2.5 基礎となるテクノロジー(複数でも可)を簡潔に説明してください。

上記の2.1を参照してください。

2.6 API仕様のパッケージ名の案はありますか。 (javapi.somethingorg.somethingなど)

javax.xml.*

2.7 仕様案には、特定のオペレーティング・システム、CPU、または入出力デバイスに対して分かっている依存関係がありますか。

依存関係はありません。

2.8 現行のセキュリティ・モデルで対処できないセキュリティ上の問題がありますか。

セキュリティ上の問題はありません。

2.9 国際化またはローカライゼーションの問題はありますか。

国際化またはローカライゼーションの問題はありません。 XMLはその定義上、Unicodeベースであり、国際的コミュニティによって最大限に利用されることを意図したものです。

2.10 これを導入した結果、陳腐化するか、非推奨となるか、改訂の必要が生じる可能性のある既存の仕様がありますか。

JAXP 1.3は、JAXP 1.2に取って代わるものです。 JAXP 1.3は、他のJSRが使用できるように、共通のXMLコンストラクトをjavax.xml.*に集約するため、JSR 101 JavaTM APIs for XML based RPCJSR 31 XML Data Binding Specification、およびJSR 173 Streaming API for XMLの今後のバージョンでは、これらのコンストラクトを使用できます。 さらに正確にXMLを処理するための機能拡張により、JSR 105 XML Digital Signature APIsJSR 106 XML Digital Encryption APIsでは固有のAPI実装に対して標準のAPIを使用できます。

2.11 この仕様の作成について予想されるスケジュールを説明してください。

JAXP 1.3のスケジュールは、J2SETM 1.5のスケジュールに合わせて調整されます。

2.12 この仕様の作成に従事する専門家グループの、予想される作業モデルを説明してください。

専門家グループは、必要に応じて電話会議や直接顔を合わせてのミーティングを行うほか、プライベートな電子メール・エイリアスとJCPのPMOが提供するWebサイトを使用して対話します。 専門家グループのメンバーは、JavaコミュニティとXMLコミュニティとの強力なつながりを持っており、必要に応じて各分野の専門家の意見を求めます。

2.13 RIとTCKがどのように配布されるかを説明してください(すなわち、プロファイルまたはプラットフォーム・エディションの一部として、またはスタンドアロンとして、あるいはその両方として)。 回答の中に、プロファイルまたはプラットフォームのバージョン情報を記載してください。

RIおよびTCKは、J2SETM 1.5の一部としても、スタンドアロンで使用するためにも提供されます。

2.14 以前のバージョンがスタンドアロンで使用可能であるが、2.13でRIおよびTCKをプロファイルまたはプラットフォーム・エディションの一部としてのみ提供するように提案している場合は、論理的根拠を記載してください(JCP 2ドキュメントのセクション1.1.5および1.1.6を参照)。

このことは、JAXPの以前のバージョンからの変更はないことを表しますが、XMLの領域はJ2SETMの領域よりも変化が速いことに注意することが重要です。 JAXP 1.3が現行のXML標準とJ2SETMリリースの同期をとっている間にも、XMLの領域は急速に進化を続け、J2SETMのリリース・スケジュールから外れたタイミングでJAXPを改訂する必要性が生じることになります。 このような非同期的なJAXPのリリースが行われると、独立したRIおよびTCKが提供されます。

2.15 このJSRが最終決定されるときに適用される仕様、RI、およびTCKの取引条件の説明を記入してください。

JAXP 1.3 JSRは、J2SETM 1.5の一部として配布されます。 J2SETM 1.5のライセンス条項案は、『J2SETM 1.5 licensing terms』で参照できます。 RIは、Sunの通常のバイナリ・コード・ライセンス契約書の下で、スタンドアロンでも使用を許諾されます。 バイナリ・ライセンスは無料です。 TCKについても、J2SETMおよびJ2EETMプラットフォームのTCKのライセンシに対し、無料でスタンドアロンでの使用が許諾されます。 スタンドアロンのTCKについては、有資格の非営利団体(非営利の学術機関を含む)と、JAXP 1.3仕様の互換性のある実装の作成に取り組んでいる有資格の個人に対し、無料でライセンスが供与されます(ただしサポートや商標ライセンス権は含まれない)。

セクション3: 寄稿

3.1 テクノロジーを説明する既存のドキュメント、仕様、または実装のリストを記載してください。 ドキュメントが公開されている場合は、ドキュメントへのリンクを含めてください。

上記の2.1を参照してください。

JAXP 1.3機能セットの重要な実装が、Apache XMLプロジェクトの一部としてかなり進行しています。 専門家グループのうちの何人かのメンバーは、Xerces2 Java ParserおよびXalan-Javaの設計者および開発者として活動中であり、コミット特権を持ちます。

3.2 これらの項目を作業の開始点として使用する方法の説明です。

JAXP 1.2の旧リリースでは、これらのプロジェクトをRIの開発環境として使用していました。JAXP 1.3でも引き続きそのように使用します。