/** * 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(isValidating()); try { dbf.setXIncludeAware(isXIncludeAware()); } catch (UnsupportedOperationException uoe) { Context.getCurrentLogger().log(Level.FINE, "The JAXP parser doesn't support XInclude.", uoe); } Schema xsd = getSchema(); if (xsd != null) { dbf.setSchema(xsd); } 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; }