Nu utilizaţi clase interne com.sun.org.apache JAXP

Pachetele com.sun.org.apache JAXP nu sunt disponibile în IBM Java 6 Runtime Environment. Nu utilizaţi clase din aceste pachete:

Reţineţi că IBM Java 7 a adăugat unele dintre aceste API-uri interne înapoi la JRE pentru a uşura problemele de migrare. Încă se consideră că cele mai bune practici înseamnă modificarea codului pentru a utiliza aceste API-uri interne.

Această regulă semnalează utilizarea acestor pachete o dată pentru fiecare proiect. Evaluaţi-vă aplicaţia pentru a determina cât de mult utilizează aplicaţia dumneavoastră clasele de la aceste pachete interne JAXP 1.3.

Dacă doriţi să continuaţi să folosiţi implementarea mai veche JAXP şi clasele interne, puteţi descărca fişierele jar de care aveţi nevoie şi le puteţi include în aplicaţia dumneavoastră. Java 6 şi Java 7 includ implementarea JAXP 1.4 utilizând pachetele javax.xml şi org.apache.

În acest exemplu, va fi semnalată instrucţiunea de import.

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

Corecţia recomandată este utilizarea API-urilor furnizate de Java Runtime Environment ca în acest exemplu.

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

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

Consultaţi următoarele informaţii: