不要使用 com.sun.org.apache JAXP 內部類別

在 IBM Java 6 執行時期環境中,無法使用 com.sun.org.apache JAXP 套件。 不要使用來自下列套件的類別:

請注意,為了緩解移轉問題,IBM Java 7 將其中部分內部 API 重新加到 JRE 中。 將程式碼改成不要使用這些內部 API,仍是最佳作法。

此規則標示是否對每一個專案都是用了一次這些套件。 請評估您的應用程式來判斷您的應用程式使用這些 JAXP 1.3 內部套件之類別的程度。

如果您想要繼續使用舊的 JAXP 實作和內部類別,您可以下載所需要的 JAR 檔,將它們併到您的應用程式中。 Java 6 和 Java 7 利用 javax.xmlorg.apache 套件來併入 JAXP 1.4 實作。

在這個範例中,會標示 import 陳述式。

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。

import org.apache.xerces.jaxp.JAXPConstants;

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

請參閱下列資訊: