com.sun.org.apache JAXP 内部クラスを使用しない

com.sun.org.apache JAXP パッケージは、IBM Java 6 ランタイム環境では使用できません。 次のパッケージのクラスは使用しないでください。

マイグレーションの問題を簡単にするために、IBM Java 7 ではこれらの内部 API の一部が JRE に戻されました。 それでも、これらの内部 API を使用しないようにコードを変更することは、ベスト・プラクティスと見なされます。

この規則により、プロジェクトごとに 1 回これらのパッケージの使用にフラグを立てます。アプリケーションを評価して、アプリケーションがこれらの JAXP 1.3 内部パッケージのクラスを使用する範囲を判断してください。

引き続き JAXP の古い実装および内部クラスを使用したい場合、必要な JAR ファイルをダウンロードして、アプリケーションに組み込むことができます。Java 6 と Java 7 には javax.xml パッケージおよび org.apache パッケージを使用する JAXP 1.4 実装が組み込まれています。

以下の例では、インポート・ステートメントにフラグが立てられます。

< span class="Code"> import com.sun.org.apache.xerces.internal.jaxp.JAXPConstants;

....
DocumentBuilderFactory docBuilder =
DocumentBuilderFactory.newInstance();
docBuilder.setAttribute(JAXPConstants.JAXP_SCHEMA_LANGUAGE,
JAXPConstants.W3C_XML_SCHEMA;
...

推奨する修正処置として、Java ランタイム環境提供の API を以下の例のように使用します。

< span class="Code"> import org.apache.xerces.jaxp.JAXPConstants;

....
DocumentBuilderFactory docBuilder =
DocumentBuilderFactory.newInstance();
docBuilder.setAttribute(JAXPConstants.JAXP_SCHEMA_LANGUAGE,
JAXPConstants.W3C_XML_SCHEMA;
...

以下の情報を参照してください。