import com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl;
public static Document newDocument( String pName ) {
return DOMImplementationImpl.getDOMImplementation().createDocument(
null,
pName,
DOMImplementationImpl.getDOMImplementation().createDocumentType( pName, null, null ) );
}
我在netbeans中遇到过以下警告
warning: com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl is Sun proprietary API and may be removed in a future release
return DOMImplementationImpl.getDOMImplementation().createDocument(
warning: com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl is Sun proprietary API and may be removed in a future release DOMImplementationImpl.getDOMImplementation().createDocumentType( pName, null, null ) );
答案 0 :(得分:5)
不要引用具体的DOMImplementation。相反,使用:
DOMImplementationRegistry registry = DOMImplementationRegistry.newInstance();
DOMImplementation implementation = registry.getDOMImplementation("XML 1.0");
DocumentType type = implementation.createDocumentType(pName, null, null);
Document document = implementation.createDocument(null, pname, type);
或者,使用相当少工厂密集的XML API,例如JDOM :)(我总是发现Java W3C DOM API是一个完全痛苦的工作。)
另一种替代方法是使用具体的DOMImplementation,但将其作为外部DOMImplementation,而不是依赖于JDK中内置的实现。这可能仍然是Apache Xerces,只是来自jar文件。
答案 1 :(得分:1)
删除警告的方法是避免在代码中使用Sun的内部未记录的类和方法。
答案 2 :(得分:0)
请勿尝试删除警告。而是删除import语句,并使用另一个解析器,使用其解析器工厂初始化它。