XML 処理用 の JavaTM API リリースノート

仕様バージョン: 1.3
リファレンス実装 (RI) バージョン: 1.3.0

このドキュメントでは、インストール手順と、このソフトウェアライブラリをより効果的に使用するための注意が説明されています。詳細は、JAXP FAQ を参照してください。

注:
このページをオンラインで表示している場合は、リリースノートの最新版をご覧になっています。このページをリリースバンドルの一部としてダウンロードした場合は、最新版のリリースノートについて、JAXP Documentation ページを参照してください。

目次

コンポーネントのバージョン

以下のバージョンの関連テクノロジがリファレンス実装に組み込まれています。

JAR ファイルの特定

このリリースには、6 個の JAR ファイルが含まれています。

jaxp-api.jar
JAXP の javax.xml.parsersjavax.xml.transformjavax.xml.xpathjavax.xml.validationjavax.xml.datatype および javax.xml.namespace コンポーネント。XML 処理実装のインスタンスをアプリケーションが一貫した方法で取得するための API が含まれています。javax.xml.xpath パッケージでは標準 XPath API をサポートしています。
sax.jar
Simple API for XML (SAX) の API とヘルパークラス。XML データへの直列アクセスに使用します。 API では SAX バージョン 2.0.2 をサポートしています。
dom.jar
Document Object Model (DOM) の API とヘルパークラス。メモリ内のツリー構造を XML データから作成するために使用します。 API では DOM Level 3 をサポートしています。
xercesImpl.jar
SAX パーサと DOM パーサ、および JAXP API の Xerces 固有実装の実装クラス。
 
xalan.jar
Xalan プロジェクトによるコンパイリング XSLT プロセッサである XSLTC が含まれます。

XML の構文解析

このセクション内の情報は、Xerces テクノロジに関係します。最新のアップデートは、常に http://jaxp.dev.java.net から入手できます。 最新の Apache バージョンにおける既知のバグと最新のバグ修正については、http://xml.apache.org/xerces2-j/releases.html を参照してください。 

スキーマ処理の既知の制限

このセクションでは、スキーマ処理の既知のバグ、制限、および実装依存の操作について説明します。

制限

次の制限では、上限値を指定します。

実装依存の操作

次の実装依存の操作は、W3C XML スキーマ仕様 (http://www.w3.org/2001/XMLSchema) でも完全に定義されていません。その結果、さまざまな実装が存在しています。

移行の既知の問題

このセクションでは、以前のバージョンの JAXP から移行するときに発生する既知の問題を扱います。

JAXP 1.2 からの移行

JAXP 1.2 は JWSDP と J2EE 1.4 に組み込まれています。『JAXP 互換性ガイド』の次のセクションでは、関連する移行の問題を扱っています。

JAXP 1.1 からの移行

JAXP 1.1 は J2EE 1.3 と J2SE 1.4 に組み込まれています。JAXP 1.1 との機能上の違いについては、『JAXP 互換性ガイド』を参照してください。

DOM Level 3 実装について

このセクションでは、DOM Level 3 Core、DOM Level 3 Load、および Save に関する実装について説明します。

DOM Level 3 Core

次は実装されていません。

サポートするパラメータは次のとおりです。

DOM Level 3 Load および Save

次はサポートしていません。

コンパイリング XSLT プロセッサ (XSLTC)

XSLTC トランスフォーマは、変換エンジンである「translet」を XSL スタイルシートから生成します。こうすることで、実行時アプリケーションから XML データへのスタイルシート指示の解釈を分離できます。

XSLTC は、スタイルシートを Java バイトコード (translet) にコンパイルすることで機能します。translet は、XSLT 変換を実行するために使用されます。この方法では、指定されたスタイルシートが 1 回コンパイルされて複数回使用されるため、XSLT 変換のパフォーマンスが大きく向上します。また、実際にスタイルシートで使用されている XSLT 指示だけが含まれるため、非常に軽量な translet も生成されます。

注:
XSLT は JAXP transform パッケージでサポートしています。実装に依存しない方法で XSLT の基本的な機能にアクセスする詳細は、javax.xml.transform を参照してください。

カスタムクラスローダの問題

カスタムクラスローダを変換ファクトリと一緒に使用すると、問題が発生する場合があります。

JAXP における変換ファクトリでは、システムクラスローダよりもコンテキストクラスローダが常に優先して使用されます。そのため、アプリケーションでカスタムクラスローダを使用しているときは、カスタムクラスローダをコンテキストクラスローダとして変換ファクトリが使用するように設定する必要がある場合があります。カスタムクラスローダを現在のスレッドで設定するには、次のようにします。

try {
Thread currentThread = Thread.currentThread();
currentThread.setContextClassLoader(customClassLoader);
}
catch (SecurityException e) {
// ...
}

アプリケーションがマルチスレッド化されている場合は、新しいスレッドが作成されるたびに、カスタムクラスローダをすべてのスレッドで設定する必要がある場合があります。アプリケーションにコンテキストクラスローダを設定する権限がない場合は、セキュリティ例外がスローされます。


JWSDP セキュリティについて

アプリケーションを Java Web Services Developer Pack (JWSDP) などの Web サーバ上で実行していて、セキュリティを有効にしている場合は、次の権限を設定する必要があります。

permission java.io.FilePermission

"/${webserver.home}/common/endorsed/xercesImpl.jar", "read";
permission java.io.FilePermission
"/${webserver.home}/common/endorsed/xalan.jar", "read";

permission java.util.PropertyPermission
"javax.xml.parser.SAXParserFactory", "read, write";
permission java.util.PropertyPermission
"javax.xml.transform.TransformerFactory", "read, write";

permission java.util.PropertyPermission "user.dir", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "line.separator", "read";
permission java.util.PropertyPermission "JavaClass.debug", "read";

permission java.lang.RuntimePermission "createClassLoader";
permission java.lang.RuntimePermission "accessDeclaredMembers";

注:
読み取り権限を xercesImpl.jar に設定しないと、次のような FactoryConfigurationError がスローされます。
   Provider org.apache.xerces.jaxp.SAXParserFactoryImpl not found


JAXP RI バージョンの変更点

JAXP RI バージョン 1.3 の変更点

JAXP RI バージョン 1.2.4 の変更点

JAXP RI バージョン 1.2.3 の変更点

JAXP RI バージョン 1.2.2 の変更点

JAXP RI バージョン 1.2.1 の変更点

Xerces パーサのパフォーマンスが大幅に向上しました。

XSLTC はこのリリースには含まれません。単独で J2EE プラットフォームに用意されていました。 

JAXP RI バージョン 1.2.0-FCS の変更点

パーサ実装が Xerces 2.0.0_01 から Xerces-J 2.0.1_01 に変更されました
(Xerces 2.0.1 最終版 + 解決済みバグ修正)。Xalan XSLT プロセッサ
実装が xalan-j 2.3.1_01 (Xalan バージョン 2.3.1 +
解決済みバグ修正) に更新されました。

提案された 1.2 JAXP 仕様を完全にサポートします。
この仕様では、W3C XML スキーマを使用したドキュメント検証を実装しています。

JAXP RI バージョン 1.2.0-EA2 の変更点

パーサ実装が Xerces 2.0.0 beta3 から Xerces-J 2.0.0_01 に変更された (Xerces 2.0.0 最終版 + 解決済みバグ修正)。Xalan XSLT プロセッサ実装が xalan-j 2.3.0_01 (Xalan バージョン 2.3.0 + 解決済みバグ修正) に更新されました。

Xalan XSLTC プロセッサも本リリースで追加されました。(実行準備のできた変換エンジン (translat) へスタイルシートをコンパイルするために使用)

提案された 1.2 JAXP 仕様を完全にサポートします。この仕様では、W3C XML スキーマを使用したドキュメント検証を実装しています。

JAXP RI バージョン 1.2.0-EA1 の変更点

パーサ実装が Apache Crimson から Xerces 2 バージョン 2.0.0 beta3 に変更されました。XSLT プロセッサ実装が Xalan classic バージョン 2.2.D14 に更新されました。

パーサでは W3C XML スキーマをサポートしていますが、提案された JAXP 1.2 仕様のすべてはサポートしていません。特に、インスタンスドキュメントが特定のスキーマに準拠することを強制する機能は実装されていません。ただし、仕様のうち検証の部分は、インスタンスドキュメント内でスキーマヒントと一緒に使用できます。