/** * Returns a document builder properly configured. * * @return A document builder properly configured. */ protected DocumentBuilder getDocumentBuilder() throws IOException { DocumentBuilder result = null; try { DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); dbf.setNamespaceAware(isNamespaceAware()); dbf.setValidating(isValidatingDtd()); dbf.setCoalescing(isCoalescing()); dbf.setExpandEntityReferences(isExpandingEntityRefs()); dbf.setIgnoringComments(isIgnoringComments()); dbf.setIgnoringElementContentWhitespace(isIgnoringExtraWhitespaces()); try { dbf.setXIncludeAware(isXIncludeAware()); } catch (UnsupportedOperationException uoe) { Context.getCurrentLogger().log(Level.FINE, "The JAXP parser doesn't support XInclude.", uoe); } result = dbf.newDocumentBuilder(); result.setEntityResolver(getEntityResolver()); result.setErrorHandler(getErrorHandler()); } catch (ParserConfigurationException pce) { throw new IOException("Couldn't create the empty document: " + pce.getMessage()); } return result; }
dbf.setNamespaceAware(isNamespaceAware()); dbf.setValidating(isValidatingDtd()); dbf.setCoalescing(isCoalescing()); dbf.setExpandEntityReferences(false); dbf.setFeature("http://xml.org/sax/features/external-parameter-entities",isExpandingEntityRefs());