Nie należy używać klas wewnętrznych com.sun.org.apache interfejsu JAXP

Pakiety JAXP com.sun.org.apache nie są dostępne w środowisku wykonawczym IBM Java 6. Nie należy używać klas z następujących pakietów:

Należy zwrócić uwagę, że w pakiecie IBM Java 7 dodano niektóre z tych wewnętrznych interfejsów API do środowiska JRE w celu ułatwienia migracji. W dalszym ciągu uważa się jednak, że najlepiej jest nie korzystać z tych wewnętrznych interfejsów API.

Ta reguła powoduje oznaczenie użycia tych pakietów, jeden raz dla każdego projektu. Należy zanalizować aplikację i określić zakres, w jakim aplikacja korzysta z klas z tych wewnętrznych pakietów JAXP 1.3.

Aby nadal używać starszej implementacji JAXP i klas wewnętrznych, można pobrać potrzebne pliki jar i dołączyć je do aplikacji. Środowiska Java 6 i Java 7 obejmują implementację JAXP 1.4 za pomocą pakietów javax.xml i org.apache.

W tym przykładzie instrukcja import zostanie oznaczona.

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

Zalecaną poprawką jest użycie interfejsów API udostępnianych przez środowisko wykonawcze języka Java, tak jak w poniższym przykładzie.

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

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

Więcej informacji: