public class SAXBuilder
extends java.lang.Object
SAXBuilder
builds a JDOM tree using SAX.
Information about SAX can be found at
http://www.megginson.com/SAX.
Known issues: Relative paths for a DocType or EntityRef may be converted by the SAX parser into absolute paths
Modifier and Type | Field and Description |
---|---|
protected SODOMFactory |
factory
The factory for creating new JDOM objects
|
Constructor and Description |
---|
SAXBuilder()
Creates a new SAXBuilder which will attempt to first locate
a parser via JAXP, then will try to use a set of default
SAX Drivers.
|
SAXBuilder(boolean validate)
Creates a new SAXBuilder which will attempt to first locate
a parser via JAXP, then will try to use a set of default
SAX Drivers.
|
SAXBuilder(java.lang.String saxDriverClass)
Creates a new SAXBuilder using the specified SAX parser.
|
SAXBuilder(java.lang.String saxDriverClass,
boolean validate)
Creates a new SAXBuilder using the specified SAX parser.
|
Modifier and Type | Method and Description |
---|---|
Document |
build(java.io.File file)
This builds a document from the supplied
filename.
|
Document |
build(org.xml.sax.InputSource in)
This builds a document from the supplied
input source.
|
Document |
build(java.io.InputStream in)
This builds a document from the supplied
input stream.
|
Document |
build(java.io.InputStream in,
java.lang.String systemId)
This builds a document from the supplied
input stream.
|
Document |
build(java.io.Reader characterStream)
This builds a document from the supplied
Reader.
|
Document |
build(java.io.Reader characterStream,
java.lang.String SystemId)
This builds a document from the supplied
Reader.
|
Document |
build(java.lang.String systemId)
This builds a document from the supplied
URI.
|
Document |
build(java.net.URL url)
This builds a document from the supplied
URL.
|
protected void |
configureContentHandler(SAXHandler contentHandler)
This configures the SAXHandler that will be used to build the Document.
|
protected void |
configureParser(org.xml.sax.XMLReader parser,
SAXHandler contentHandler)
This configures the XMLReader to be used for reading the XML document.
|
protected SAXHandler |
createContentHandler()
This creates the SAXHandler that will be used to build the Document.
|
protected org.xml.sax.XMLReader |
createParser()
This creates the XMLReader to be used for reading the XML document.
|
protected java.net.URL |
fileToURL(java.io.File f)
Imitation of File.toURL(), a JDK 1.2 method, reimplemented
here to work with JDK 1.1.
|
void |
setDTDHandler(org.xml.sax.DTDHandler dtdHandler)
This sets custom DTDHandler for the
Builder . |
void |
setEntityResolver(org.xml.sax.EntityResolver entityResolver)
This sets custom EntityResolver for the
Builder . |
void |
setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
This sets custom ErrorHandler for the
Builder . |
void |
setExpandEntities(boolean expand)
This sets whether or not to expand entities for the builder.
|
void |
setFactory(SODOMFactory factory) |
void |
setFeature(java.lang.String name,
boolean value)
This sets a feature on the SAX parser.
|
void |
setIgnoringElementContentWhitespace(boolean ignoringWhite)
Specifies whether or not the parser should elminate whitespace in
element content (sometimes known as "ignorable whitespace") when
building the document.
|
void |
setProperty(java.lang.String name,
java.lang.Object value)
This sets a property on the SAX parser.
|
void |
setValidation(boolean validate)
This sets validation for the builder.
|
void |
setXMLFilter(org.xml.sax.XMLFilter xmlFilter)
This sets custom XMLFilter for the
Builder . |
protected SODOMFactory factory
public SAXBuilder()
Creates a new SAXBuilder which will attempt to first locate a parser via JAXP, then will try to use a set of default SAX Drivers. The underlying parser will not validate.
public SAXBuilder(boolean validate)
Creates a new SAXBuilder which will attempt to first locate a parser via JAXP, then will try to use a set of default SAX Drivers. The underlying parser will validate or not according to the given parameter.
validate
- boolean
indicating if
validation should occur.public SAXBuilder(java.lang.String saxDriverClass)
Creates a new SAXBuilder using the specified SAX parser. The underlying parser will not validate.
saxDriverClass
- String
name of SAX Driver
to use for parsing.public SAXBuilder(java.lang.String saxDriverClass, boolean validate)
Creates a new SAXBuilder using the specified SAX parser. The underlying parser will validate or not according to the given parameter.
saxDriverClass
- String
name of SAX Driver
to use for parsing.validate
- boolean
indicating if
validation should occur.public void setFactory(SODOMFactory factory)
public void setValidation(boolean validate)
This sets validation for the builder.
validate
- boolean
indicating whether validation
should occur.public void setErrorHandler(org.xml.sax.ErrorHandler errorHandler)
This sets custom ErrorHandler for the Builder
.
errorHandler
- ErrorHandler
public void setEntityResolver(org.xml.sax.EntityResolver entityResolver)
This sets custom EntityResolver for the Builder
.
entityResolver
- EntityResolver
public void setDTDHandler(org.xml.sax.DTDHandler dtdHandler)
This sets custom DTDHandler for the Builder
.
dtdHandler
- DTDHandler
public void setXMLFilter(org.xml.sax.XMLFilter xmlFilter)
This sets custom XMLFilter for the Builder
.
xmlFilter
- XMLFilter
public void setIgnoringElementContentWhitespace(boolean ignoringWhite)
Specifies whether or not the parser should elminate whitespace in
element content (sometimes known as "ignorable whitespace") when
building the document. Only whitespace which is contained within
element content that has an element only content model will be
eliminated (see XML Rec 3.2.1). For this setting to take effect
requires that validation be turned on. The default value of this
setting is false
.
ignoringWhite
- Whether to ignore ignorable whitespacepublic void setFeature(java.lang.String name, boolean value)
This sets a feature on the SAX parser. See the SAX documentation for more information.
NOTE: SAXBuilder requires that some particular features of the SAX parser be set up in certain ways for it to work properly. The list of such features may change in the future. Therefore, the use of this method may cause parsing to break, and even if it doesn't break anything today it might break parsing in a future JDOM version, because what JDOM parsers require may change over time. Use with caution.
name
- The feature name, which is a fully-qualified URI.value
- The requested state of the feature (true or false).public void setProperty(java.lang.String name, java.lang.Object value)
This sets a property on the SAX parser. See the SAX documentation for more information.
NOTE: SAXBuilder requires that some particular properties of the SAX parser be set up in certain ways for it to work properly. The list of such properties may change in the future. Therefore, the use of this method may cause parsing to break, and even if it doesn't break anything today it might break parsing in a future JDOM version, because what JDOM parsers require may change over time. Use with caution.
name
- The property name, which is a fully-qualified URI.value
- The requested value for the property.public Document build(org.xml.sax.InputSource in) throws SODOMException
This builds a document from the supplied input source.
in
- InputSource
to read from.Document
- resultant Document object.JDOMException
- when errors occur in parsing.SODOMException
protected SAXHandler createContentHandler() throws java.lang.Exception
This creates the SAXHandler that will be used to build the Document.
java.lang.Exception
protected void configureContentHandler(SAXHandler contentHandler) throws java.lang.Exception
This configures the SAXHandler that will be used to build the Document.
The default implementation simply passes through some configuration settings that were set on the SAXBuilder: setExpandEntities() and setIgnoringElementContentWhitespace().
java.lang.Exception
protected org.xml.sax.XMLReader createParser() throws java.lang.Exception
This creates the XMLReader to be used for reading the XML document.
The default behavior is to (1) use the saxDriverClass, if it has been set, (2) try to obtain a parser from JAXP, if it is available, and (3) if all else fails, use a hard-coded default parser (currently the Xerces parser). Subclasses may override this method to determine the parser to use in a different way.
java.lang.Exception
protected void configureParser(org.xml.sax.XMLReader parser, SAXHandler contentHandler) throws java.lang.Exception
This configures the XMLReader to be used for reading the XML document.
The default implementation sets various options on the given XMLReader,
such as validation, DTD resolution, entity handlers, etc., according
to the options that were set (e.g. via setEntityResolver
)
and set various SAX properties and features that are required for JDOM
internals. These features may change in future releases, so change this
behavior at your own risk.
java.lang.Exception
public Document build(java.io.InputStream in) throws SODOMException
This builds a document from the supplied input stream.
in
- InputStream
to read from.Document
- resultant Document object.JDOMException
- when errors occur in parsing.SODOMException
public Document build(java.io.File file) throws SODOMException
This builds a document from the supplied filename.
file
- File
to read from.Document
- resultant Document object.JDOMException
- when errors occur in parsing.SODOMException
public Document build(java.net.URL url) throws SODOMException
This builds a document from the supplied URL.
url
- URL
to read from.Document
- resultant Document object.JDOMException
- when errors occur in parsing.SODOMException
public Document build(java.io.InputStream in, java.lang.String systemId) throws SODOMException
This builds a document from the supplied input stream.
in
- InputStream
to read from.systemId
- base for resolving relative URIsDocument
- resultant Document object.JDOMException
- when errors occur in parsing.SODOMException
public Document build(java.io.Reader characterStream) throws SODOMException
This builds a document from the supplied Reader.
in
- Reader
to read from.Document
- resultant Document object.JDOMException
- when errors occur in parsing.SODOMException
public Document build(java.io.Reader characterStream, java.lang.String SystemId) throws SODOMException
This builds a document from the supplied Reader.
in
- Reader
to read from.systemId
- base for resolving relative URIsDocument
- resultant Document object.JDOMException
- when errors occur in parsing.SODOMException
public Document build(java.lang.String systemId) throws SODOMException
This builds a document from the supplied URI.
systemId
- URI for the inputDocument
- resultant Document object.JDOMException
- when errors occur in parsing.SODOMException
protected java.net.URL fileToURL(java.io.File f) throws java.net.MalformedURLException
f
- the file to convertjava.net.MalformedURLException
File
public void setExpandEntities(boolean expand)
This sets whether or not to expand entities for the builder.
A true means to expand entities as normal content. A false means to
leave entities unexpanded as EntityRef
objects. The
default is true.
When this setting is false, the internal DTD subset is retained; when this setting is true, the internal DTD subset is not retained.
Note that Xerces (at least up to 1.4.4) has a bug where entities in attribute values will be misreported if this flag is turned off, resulting in entities to appear within element content. When turning entity expansion off either avoid entities in attribute values, or use another parser like Crimson. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=6111
expand
- boolean
indicating whether entity expansion
should occur.Copyright (c) 2017 Software AG. All Rights Reserved.