public class XmlUtil
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
XmlUtil.JstlEntityResolver
JSTL-specific implementation of EntityResolver, used by parsers.
|
static class |
XmlUtil.JstlUriResolver
JSTL-specific implementation of URIResolver, used by transformers.
|
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
ALLOWED_PROTOCOLS |
private static javax.xml.parsers.DocumentBuilderFactory |
PARSER_FACTORY |
private static javax.xml.parsers.SAXParserFactory |
SAXPARSER_FACTORY |
private static java.lang.String |
SP_ALLOWED_PROTOCOLS |
private static javax.xml.transform.sax.SAXTransformerFactory |
TRANSFORMER_FACTORY |
Constructor and Description |
---|
XmlUtil() |
Modifier and Type | Method and Description |
---|---|
(package private) static void |
checkProtocol(java.lang.String allowedProtocols,
java.lang.String uri) |
private static java.lang.String |
initAllowedProtocols() |
static javax.xml.parsers.DocumentBuilder |
newDocumentBuilder()
Create a new DocumentBuilder configured for namespaces but not validating.
|
static org.w3c.dom.Document |
newEmptyDocument()
Create a new empty document.
|
static org.xml.sax.InputSource |
newInputSource(java.io.Reader reader,
java.lang.String systemId)
Create an InputSource from a Reader.
|
static javax.xml.transform.sax.SAXSource |
newSAXSource(java.io.Reader reader,
java.lang.String systemId,
XmlUtil.JstlEntityResolver entityResolver)
Create a SAXSource from a Reader.
|
static javax.xml.transform.Transformer |
newTransformer(javax.xml.transform.Source source)
Create a new Transformer from an XSLT.
|
static javax.xml.transform.sax.TransformerHandler |
newTransformerHandler()
Create a new TransformerHandler.
|
static org.xml.sax.XMLReader |
newXMLReader(XmlUtil.JstlEntityResolver entityResolver)
Create an XMLReader that resolves entities using JSTL semantics.
|
private static <T,E extends java.lang.Exception> |
runWithOurClassLoader(java.util.concurrent.Callable<T> action,
java.lang.Class<E> allowed)
Performs an action using this Class's ClassLoader as the Thread context ClassLoader.
|
private static java.lang.String |
wrapSystemId(java.lang.String systemId)
Wraps systemId with a "jstl:" prefix to prevent the parser from
thinking that the URI is truly relative and resolving it against
the current directory in the filesystem.
|
private static final javax.xml.parsers.DocumentBuilderFactory PARSER_FACTORY
private static final javax.xml.transform.sax.SAXTransformerFactory TRANSFORMER_FACTORY
private static final javax.xml.parsers.SAXParserFactory SAXPARSER_FACTORY
private static final java.lang.String SP_ALLOWED_PROTOCOLS
private static final java.lang.String ALLOWED_PROTOCOLS
private static java.lang.String initAllowedProtocols()
static void checkProtocol(java.lang.String allowedProtocols, java.lang.String uri)
public static org.w3c.dom.Document newEmptyDocument()
public static javax.xml.parsers.DocumentBuilder newDocumentBuilder()
public static javax.xml.transform.sax.TransformerHandler newTransformerHandler() throws javax.xml.transform.TransformerConfigurationException
javax.xml.transform.TransformerConfigurationException
public static javax.xml.transform.Transformer newTransformer(javax.xml.transform.Source source) throws javax.xml.transform.TransformerConfigurationException
source
- the source of the XSLT.javax.xml.transform.TransformerConfigurationException
- if there was a problem creating the Transformer from the XSLTpublic static org.xml.sax.InputSource newInputSource(java.io.Reader reader, java.lang.String systemId)
reader
- the source of the XMLsystemId
- the system idpublic static org.xml.sax.XMLReader newXMLReader(XmlUtil.JstlEntityResolver entityResolver) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException
entityResolver
- for resolving using JSTL semanticsjavax.xml.parsers.ParserConfigurationException
- if there was a configuration problem creating the readerorg.xml.sax.SAXException
- if there was a problem creating the readerpublic static javax.xml.transform.sax.SAXSource newSAXSource(java.io.Reader reader, java.lang.String systemId, XmlUtil.JstlEntityResolver entityResolver) throws javax.xml.parsers.ParserConfigurationException, org.xml.sax.SAXException
reader
- the source of the XMLsystemId
- the system identityResolver
- for resolving using JSTL semamticsjavax.xml.parsers.ParserConfigurationException
- if there was a configuration problem creating the sourceorg.xml.sax.SAXException
- if there was a problem creating the sourceprivate static java.lang.String wrapSystemId(java.lang.String systemId)
private static <T,E extends java.lang.Exception> T runWithOurClassLoader(java.util.concurrent.Callable<T> action, java.lang.Class<E> allowed) throws E extends java.lang.Exception
T
- the type of the resultE
- the type of the allowed Exceptionaction
- the action to performallowed
- an Exception that might be thrown by the actionE
- if the action threw the allowed ExceptionE extends java.lang.Exception