Interne JAXP-Klassen aus com.sun.org.apache nicht verwenden

Die JAXP-Pakete com.sun.org.apache sind in IBM Java 6 Runtime Environment nicht verfügbar. Verwenden Sie keine Klassen aus den folgenden Paketen:

Beachten Sie, dass IBM Java 7 einige dieser internen APIs wieder in die JRE eingefügt hat, um Migrationsprobleme zu verhindern. Als bewährtes Verfahren wird trotzdem empfohlen, Ihren Code so zu ändern, dass diese internen APIs nicht verwendet werden.

Diese Regel markiert die Verwendung dieser Pakete einmal pro Projekt. Werten Sie Ihre Anwendung aus, um den Umfang zu bestimmen, in dem Ihre Anwendung Klassen aus diesen internen Paketen der JAXP Version 1.3 verwendet.

Wenn Sie die ältere JAXP-Implementierung und die älteren internen Klassen weiterhin verwenden möchten, können Sie die JAR-Dateien, die Sie benötigen, herunterladen und in Ihre Anwendung einschließen. Java 6 und Java 7 schließen die Implementierung von JAXP 1.4 mithilfe der javax.xml- und org.apache-Pakete ein.

In diesem Beispiel wird die Importanweisung markiert.

< 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;
...

Die empfohlene Korrektur ist die Verwendung der von der Java Runtime Environment bereitgestellten APIs, wie im folgenden Beispiel gezeigt.

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

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

Weitere Informationen finden Sie im folgenden Dokument: