Example usage for org.apache.commons.digester Digester getFactory

List of usage examples for org.apache.commons.digester Digester getFactory

Introduction

In this page you can find the example usage for org.apache.commons.digester Digester getFactory.

Prototype

public SAXParserFactory getFactory() 

Source Link

Document

Return the SAXParserFactory we will use, creating one if necessary.

Usage

From source file:org.apache.catalina.startup.DigesterFactory.java

/**
 * Create a <code>Digester</code> parser.
 * @param xmlValidation turn on/off xml validation
 * @param xmlNamespaceAware turn on/off namespace validation
 * @param rule an instance of <code>Rule</code used for parsing the xml.
 *//* www .j av a 2  s .  c  o m*/
public static Digester newDigester(boolean xmlValidation, boolean xmlNamespaceAware, RuleSet rule) {

    URL url = null;
    Digester digester = new Digester();
    digester.setNamespaceAware(xmlNamespaceAware);
    digester.setValidating(xmlValidation);

    String parserName = digester.getFactory().getClass().getName();
    if (parserName.indexOf("xerces") != -1) {
        digester = patchXerces(digester);
    }

    schemaResolver = new SchemaResolver(digester);
    if (xmlValidation) {
        // Xerces 2.3 and up has a special way to turn on validation
        // for both DTD and Schema
        if (parserName.indexOf("xerces") != -1) {
            turnOnXercesValidation(digester);
        } else {
            turnOnValidation(digester);
        }
    }
    registerLocalSchema();

    digester.setEntityResolver(schemaResolver);
    if (rule != null)
        digester.addRuleSet(rule);

    return (digester);
}