One outrageous hack would be to write a custom java.io.InputStream extension which just removes the DTD reference before the parser sees it.
XML parser java skip dtd validation
-
13-06-2023 - |
Pregunta
I want to skip DTD validation as I don't have a internet connection.Is it possible to implement that in java.
My code is:
file = new File(filepath);
// Create instance of DocumentBuilderFactory
factory = DocumentBuilderFactory.newInstance();
// Get the DocumentBuilder
docBuilder = factory.newDocumentBuilder();
// Using existing XML Document
doc = docBuilder.parse(file);
My error is this and I know the reason for this error.
a.net.UnknownHostException: www.jboss.org
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at sun.net.NetworkClient.doConnect(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.openServer(Unknown Source)
at sun.net.www.http.HttpClient.<init>(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.http.HttpClient.New(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(UnknownSource)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
Solución
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow