Java API for XML Processingリリース・ノート

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

このドキュメントには、インストール手順と、このソフトウェア・ライブラリをより効果的に使用するために役立つ可能性のあるその他のメモが含まれています。

目次

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

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

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プロジェクトからのCompiling XSLTプロセッサ、XSLTCが含まれます。

XMLの構文解析

このセクション内の情報は、Xercesテクノロジに関係します。最新のApacheバージョンにおける既知のバグと最新の修正については、http://xml.apache.org/xerces2-j/releases.htmlを参照してください。

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

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

制限

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

実装依存の操作

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

JAXP 1.2リファレンス実装パーサー(Xerces 2.0.1) <keyref>一意性制約は、「XML Schema Part 1: Structures」で定義されているように、<keyref>が接続された要素の範囲内で<key>または<unique>一意性制約を参照しています。(一方、「XML Schema」の導入セクション(「XML Schema Part 0: Primer」)には、対応する<key>の要素内で使用されている要素で宣言された<keyref>の例が載っています。混乱を避けるために、このように一貫性がない点をここで指摘しておきます。)

移行の既知の問題

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

JAXP 1.2からの移行

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

JAXP 1.1からの移行

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

DOM Level 3実装について

このセクションには、DOM Level 3 CoreおよびDOM Level 3 Load and Saveの実装メモが含まれています。

DOM Level 3 Core

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

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

DOM Level 3 Load and Save

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

Compiling XSLTプロセッサ(XSLTC)

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

XSLTCは、スタイル・シートをJavaバイト・コード(translet)にコンパイルすることで機能し、XSLT変換を実行するために使用できます。この方法では、指定されたスタイル・シートが一度コンパイルされたあと何回も使用されるため、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プロセッサも本リリースで追加されました。(実行準備のできた変換エンジン(translet)へスタイル・シートをコンパイルするために使用)

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


Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.