如何删除此警告:com.sun.org.apache.xerces.internal.dom.DOMImplementationImpl是Sun专有API,可能会在将来的版本中删除

时间:2011-03-23 07:18:21

标签: java compiler-warnings

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

3 个答案:

答案 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语句,并使用另一个解析器,使用其解析器工厂初始化它。