Example usage for org.xml.sax ErrorHandler ErrorHandler

List of usage examples for org.xml.sax ErrorHandler ErrorHandler

Introduction

In this page you can find the example usage for org.xml.sax ErrorHandler ErrorHandler.

Prototype

ErrorHandler

Source Link

Usage

From source file:org.jboss.elasticsearch.river.remote.sitemap.SiteMapParser.java

/**
 * Parse the given XML content./*from w w  w  .  j ava  2  s. com*/
 * 
 * @param sitemapUrl
 * @param is
 * @throws UnknownFormatException
 */
private AbstractSiteMap processXml(URL sitemapUrl, InputSource is) throws UnknownFormatException {

    Document doc = null;

    try {
        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        db.setErrorHandler(new ErrorHandler() {

            @Override
            public void warning(SAXParseException exception) throws SAXException {
                logger.warn("Sitemap XML warning: " + exception.getMessage());
            }

            @Override
            public void fatalError(SAXParseException exception) throws SAXException {
                logger.warn("Sitemap XML fatalError: " + exception.getMessage());
            }

            @Override
            public void error(SAXParseException exception) throws SAXException {
                logger.warn("Sitemap XML error: " + exception.getMessage());

            }
        });
        doc = db.parse(is);
    } catch (Exception e) {
        throw new UnknownFormatException("Error parsing XML for " + sitemapUrl);
    }

    // See if this is a sitemap index
    NodeList nodeList = doc.getElementsByTagName("sitemapindex");
    if (nodeList.getLength() > 0) {
        nodeList = doc.getElementsByTagName("sitemap");
        return parseSitemapIndex(sitemapUrl, nodeList);
    } else if (doc.getElementsByTagName("urlset").getLength() > 0) {
        // This is a regular Sitemap
        return parseXmlSitemap(sitemapUrl, doc);
    } else if (doc.getElementsByTagName("link").getLength() > 0) {
        // Could be RSS or Atom
        return parseSyndicationFormat(sitemapUrl, doc);
    }
    throw new UnknownFormatException("Unknown XML format for " + sitemapUrl);
}

From source file:org.kuali.rice.core.impl.impex.xml.XmlIngesterServiceImpl.java

private static void validate(final XmlDoc xmlDoc, EntityResolver resolver)
        throws ParserConfigurationException, IOException, SAXException {
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setValidating(true);//from w ww.ja  v a2s  .  c o  m
    dbf.setNamespaceAware(true);
    dbf.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
            XMLConstants.W3C_XML_SCHEMA_NS_URI);
    DocumentBuilder db = dbf.newDocumentBuilder();
    db.setEntityResolver(resolver);
    db.setErrorHandler(new ErrorHandler() {
        public void warning(SAXParseException se) {
            LOG.warn("Warning parsing xml doc " + xmlDoc, se);
            addProcessingException(xmlDoc, "Warning parsing xml doc " + xmlDoc, se);
        }

        public void error(SAXParseException se) throws SAXException {
            LOG.error("Error parsing xml doc " + xmlDoc, se);
            addProcessingException(xmlDoc, "Error parsing xml doc " + xmlDoc, se);
            throw se;
        }

        public void fatalError(SAXParseException se) throws SAXException {
            LOG.error("Fatal error parsing xml doc " + xmlDoc, se);
            addProcessingException(xmlDoc, "Fatal error parsing xml doc " + xmlDoc, se);
            throw se;
        }
    });
    db.parse(xmlDoc.getStream());
}

From source file:org.kuali.rice.ken.util.Util.java

/**
 * This method uses DOM to parse the input source of XML.
 * @param source the input source/*from   w  w  w . j  av a  2 s .  co  m*/
 * @param validate whether to turn on validation
 * @param namespaceAware whether to turn on namespace awareness
 * @return Document the parsed (possibly validated) document
 * @throws ParserConfigurationException
 * @throws IOException
 * @throws SAXException
 */
public static Document parse(final InputSource source, boolean validate, boolean namespaceAware,
        EntityResolver entityResolver) throws ParserConfigurationException, IOException, SAXException {
    // TODO: optimize this
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setValidating(validate);
    dbf.setNamespaceAware(namespaceAware);
    dbf.setAttribute(JAXP_SCHEMA_LANGUAGE, W3C_XML_SCHEMA);
    DocumentBuilder db = dbf.newDocumentBuilder();
    if (entityResolver != null) {
        db.setEntityResolver(entityResolver);
    }
    db.setErrorHandler(new ErrorHandler() {
        public void warning(SAXParseException se) {
            LOG.warn("Warning parsing xml doc " + source, se);
        }

        public void error(SAXParseException se) throws SAXException {
            LOG.error("Error parsing xml doc " + source, se);
            throw se;
        }

        public void fatalError(SAXParseException se) throws SAXException {
            LOG.error("Fatal error parsing xml doc " + source, se);
            throw se;
        }
    });
    return db.parse(source);
}

From source file:org.n52.ifgicopter.spf.xml.XMLTools.java

/**
 * @param f the xml file/*from  w ww .  j  a  v a  2s  .c  o  m*/
 * @return the parsed {@link Document}
 */
public static Document parseDocument(File f) {
    DocumentBuilderFactory fac = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = null;
    try {
        builder = fac.newDocumentBuilder();
    } catch (ParserConfigurationException e) {
        log.warn(null, e);
        return null;
    }

    //get the config as Document
    Document doc = null;
    try {
        doc = builder.parse(f);
    } catch (SAXException e) {
        log.warn(null, e);
        return null;
    } catch (IOException e) {
        log.warn(null, e);
        return null;
    }

    /*
     * do we validate?
     */
    if (!Boolean.parseBoolean(SPFRegistry.getInstance().getConfigProperty(SPFRegistry.VALIDATE_XML_PROP))) {
        return doc;
    }

    SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");

    Schema schema = null;
    try {
        schema = factory.newSchema();
    } catch (SAXException e) {
        log.warn(null, e);
        return null;
    }

    Validator val = schema.newValidator();
    val.setErrorHandler(new ErrorHandler() {
        @Override
        public void warning(SAXParseException exception) throws SAXException {
            log.warn(null, exception);
        }

        @Override
        public void fatalError(SAXParseException exception) throws SAXException {
            log.warn(null, exception);
        }

        @Override
        public void error(SAXParseException exception) throws SAXException {
            warning(exception);
        }
    });

    /*
     * do the validation
     */
    try {
        val.validate(new SAXSource(new InputSource(new FileInputStream(f))));
    } catch (FileNotFoundException e) {
        log.warn(null, e);
        return null;
    } catch (SAXException e) {
        log.warn(null, e);
        return null;
    } catch (IOException e) {
        log.warn(null, e);
        return null;
    }

    return doc;
}

From source file:org.opencms.util.ant.CmsAntTaskReadXMLProperty.java

/**
 * Run the task.<p>//from  w  ww. ja  v a2  s .c o  m
 * 
 * Sets the given property to <code>__ABORT__</code> if canceled, or to a list of selected
 * modules if not.<p>
 * 
 * @throws BuildException if something goes wrong
 * 
 * @see org.apache.tools.ant.Task#execute()
 */
public void execute() throws BuildException {

    boolean isAttr = ((m_attribute != null) && (m_attribute.trim().length() > 0));

    // instantiate Digester and enable XML validation
    Digester digester = new Digester();
    digester.setValidating(false);
    digester.setEntityResolver(null);
    digester.setRuleNamespaceURI(null);
    digester.setErrorHandler(new ErrorHandler() {

        /**
         * @see org.xml.sax.ErrorHandler#error(org.xml.sax.SAXParseException)
         */
        public void error(SAXParseException exception) {

            log(exception.getMessage(), exception.getLineNumber());
        }

        /**
         * @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
         */
        public void fatalError(SAXParseException exception) {

            log(exception.getMessage(), exception.getLineNumber());
        }

        /**
         * @see org.xml.sax.ErrorHandler#warning(org.xml.sax.SAXParseException)
         */
        public void warning(SAXParseException exception) {

            log(exception.getMessage(), exception.getLineNumber());
        }

    });

    // add this class to the Digester
    digester.push(this);
    if (!isAttr) {
        digester.addCallMethod(m_element, "setValue", 0);
    } else {
        digester.addCallMethod(m_element, "setValue", 1);
        digester.addCallParam(m_element, 0, m_attribute);
    }
    // start the parsing process
    try {
        digester.parse(new File(getXmlFile()));
    } catch (Exception e) {
        throw new BuildException(e);
    }

    getProject().setProperty(m_property, m_value.substring(1));
}

From source file:org.opendaylight.controller.config.yangjmxgenerator.plugin.JMXGeneratorTest.java

private void verifyXmlFiles(final Collection<File> xmlFiles) throws Exception {
    ErrorHandler errorHandler = new ErrorHandler() {

        @Override/*w w  w.j ava  2  s.c  om*/
        public void warning(final SAXParseException exception) throws SAXException {
            fail("Generated blueprint xml is not well formed " + exception.getMessage());
        }

        @Override
        public void fatalError(final SAXParseException exception) throws SAXException {
            fail("Generated blueprint xml is not well formed " + exception.getMessage());
        }

        @Override
        public void error(final SAXParseException exception) throws SAXException {
            fail("Generated blueprint xml is not well formed " + exception.getMessage());
        }
    };

    for (File file : xmlFiles) {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setValidating(false);
        factory.setNamespaceAware(true);

        DocumentBuilder builder = factory.newDocumentBuilder();

        builder.setErrorHandler(errorHandler);
        builder.parse(new InputSource(file.getPath()));
    }

}

From source file:org.openmrs.module.radiology.report.template.XsdMrrtReportTemplateValidator.java

/**
 * @see MrrtReportTemplateValidator#validate(String)
 *//*from   w w w.  j av  a 2s .  c o m*/
@Override
public void validate(String mrrtTemplate) throws IOException {

    final Document document = Jsoup.parse(mrrtTemplate, "");
    final Elements metatags = document.getElementsByTag("meta");
    ValidationResult validationResult = metaTagsValidationEngine.run(metatags);

    final SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    final Schema schema;
    final Validator validator;
    try (InputStream in = IOUtils.toInputStream(mrrtTemplate)) {
        schema = factory.newSchema(getSchemaFile());
        validator = schema.newValidator();
        validator.setErrorHandler(new ErrorHandler() {

            @Override
            public void warning(SAXParseException exception) throws SAXException {
                log.debug(exception.getMessage(), exception);
                validationResult.addError(exception.getMessage(), "");
            }

            @Override
            public void error(SAXParseException exception) throws SAXException {
                log.debug(exception.getMessage(), exception);
                validationResult.addError(exception.getMessage(), "");
            }

            @Override
            public void fatalError(SAXParseException exception) throws SAXException {
                log.debug(exception.getMessage(), exception);
                validationResult.addError(exception.getMessage(), "");
            }
        });
        validator.validate(new StreamSource(in));
        validationResult.assertOk();
    } catch (SAXException e) {
        log.error(e.getMessage(), e);
        throw new APIException("radiology.report.template.validation.error", null, e);
    }
}

From source file:org.xsystem.bpmn2.formats.xml.XMLParser3.java

Document validate(InputStream input) throws ParserConfigurationException, SAXException, IOException {
    Schema schema = buildSxema();
    Validator validator = schema.newValidator();

    validator.setErrorHandler(new ErrorHandler() {

        @Override//from w  w w.j a  va 2 s  . co  m
        public void warning(SAXParseException ex) throws SAXException {
            System.err.println(ex.getMessage());
        }

        @Override
        public void error(SAXParseException ex) throws SAXException {
            System.err.println(ex.getMessage());
        }

        @Override
        public void fatalError(SAXParseException ex) throws SAXException {
            throw ex;
        }

    });

    Document doc = XMLUtil.getDocument(input);

    DOMSource source = new DOMSource(doc);

    validator.validate(source);//, result);

    return doc;
}

From source file:petascope.util.XMLUtil.java

private static Builder newBuilder(boolean ignoreDTD) {
    XMLReader xmlReader = null;/*w ww  .ja v a  2s  .  c om*/
    try {
        xmlReader = factory.newSAXParser().getXMLReader();
        if (ignoreDTD) {
            xmlReader.setEntityResolver(new EntityResolver() {

                public InputSource resolveEntity(String publicId, String systemId)
                        throws SAXException, IOException {
                    return new InputSource(new StringReader(""));
                }
            });
            xmlReader.setErrorHandler(new ErrorHandler() {

                @Override
                public void warning(SAXParseException saxpe) throws SAXException {
                    log.warn("XML parser warning: ", saxpe.getMessage());
                }

                @Override
                public void error(SAXParseException saxpe) throws SAXException {
                    throw saxpe;
                }

                @Override
                public void fatalError(SAXParseException saxpe) throws SAXException {
                    throw saxpe;
                }
            });
        }
    } catch (Exception ex) {
        ex.printStackTrace();
    }
    return new Builder(xmlReader);
}

From source file:schemacrawler.test.utility.TestUtility.java

private static void validateXML(final Path testOutputFile, final List<String> failures) throws Exception {
    final DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    factory.setValidating(false);// ww w. j  ava  2s. c o  m
    factory.setNamespaceAware(true);

    final DocumentBuilder builder = factory.newDocumentBuilder();
    builder.setErrorHandler(new ErrorHandler() {
        @Override
        public void error(final SAXParseException e) throws SAXException {
            failures.add(e.getMessage());
        }

        @Override
        public void fatalError(final SAXParseException e) throws SAXException {
            failures.add(e.getMessage());
        }

        @Override
        public void warning(final SAXParseException e) throws SAXException {
            failures.add(e.getMessage());
        }
    });
    builder.parse(new InputSource(readerForFile(testOutputFile)));
}