package com.occamlab.te.util;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.apache.xerces.impl.Constants;
/**
* Provides various utility methods for constructing JAXP parsers.
*
*/
public class XMLParserUtils {
/**
* Creates a SAXParser that is configured to resolve XInclude references but
* not perform schema validation.
*
* @param doBaseURIFixup
* A boolean value that specifies whether or not to add xml:base
* attributes when resolving xi:include elements; adding these
* attributes may render an instance document schema-invalid.
* @return An XInclude-aware SAXParser instance.
*
* @see <a href="http://www.w3.org/TR/xinclude/">XML Inclusions (XInclude)
* Version 1.0, Second Edition</a>
*/
public static SAXParser createXIncludeAwareSAXParser(boolean doBaseURIFixup) {
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(true);
factory.setXIncludeAware(true);
SAXParser parser = null;
try {
factory.setFeature(Constants.XERCES_FEATURE_PREFIX
+ Constants.XINCLUDE_FIXUP_BASE_URIS_FEATURE,
doBaseURIFixup);
parser = factory.newSAXParser();
} catch (Exception x) {
throw new RuntimeException(x);
}
return parser;
}
private XMLParserUtils() {
}
}