java.lang.Objectorg.xml.sax.helpers.DefaultHandler
SAXHandler
public class SAXHandler
A support class for SAXBuilder
.
Field Summary | |
---|---|
private boolean | atRoot Indicator of where in the document we are |
private static java.util.Map | attrNameToTypeMap Hash table to map SAX attribute type names to JDOM attribute types. |
private Element | currentElement Element object being built |
private static java.lang.String | CVS_ID |
private java.util.List | declaredNamespaces Temporary holder for namespaces that have been declared with startPrefixMapping, but are not yet available on the element |
private Document | document Document object being built |
private int | entityDepth How many nested entities we're currently within |
private boolean | expand Indicator of whether we should expand entities |
private java.util.Map | externalEntities The external entities defined in this document |
private JDOMFactory | factory The JDOMFactory used for JDOM object creation |
private boolean | ignoringWhite Whether to ignore ignorable whitespace |
private boolean | inCDATA Indicator of whether we are in a CDATA |
private boolean | inDTD Indicator of whether we are in the DocType. |
private boolean | inInternalSubset Indicator of whether we are in the internal subset |
private java.lang.StringBuffer | internalSubset Temporary holder for the internal subset |
private org.xml.sax.Locator | locator The SAX Locator object provided by the parser |
private boolean | previousCDATA Indicator of whether we previously were in a CDATA |
private boolean | suppress Indicator of whether we are actively suppressing (non-expanding) a current entity |
private TextBuffer | textBuffer Temporary holder for Text and CDATA |
Constructor Summary | |
---|---|
SAXHandler() This will create a new SAXHandler that listens to SAX events and creates a JDOM Document. | |
SAXHandler(JDOMFactory factory) This will create a new SAXHandler that listens to SAX events and creates a JDOM Document. |
Method Summary | |
---|---|
private void | appendExternalId(java.lang.String publicID, java.lang.String systemID) Appends an external ID to the internal subset buffer. |
void | attributeDecl(java.lang.String eName, java.lang.String aName, java.lang.String type, java.lang.String valueDefault, java.lang.String value) This handles an attribute declaration in the internal subset. |
void | characters(char[] ch, int start, int length) This will report character data (within an element). |
void | comment(char[] ch, int start, int length) This reports that a comments is parsed. |
void | elementDecl(java.lang.String name, java.lang.String model) Handle an element declaration in a DTD. |
void | endCDATA() Report a CDATA section |
void | endDTD() This signifies that the reading of the DTD is complete. |
void | endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName) Indicates the end of an element ( </[element name]> ) is reached. |
void | endEntity(java.lang.String name) |
void | externalEntityDecl(java.lang.String name, java.lang.String publicID, java.lang.String systemID) This is called when the parser encounters an external entity declaration. |
protected void | flushCharacters() This will flush any characters from SAX character calls we've been buffering. |
protected void | flushCharacters(java.lang.String data) Flush the given string into the document. |
private static int | getAttributeType(java.lang.String typeName) Returns the the JDOM Attribute type value from the SAX 2.0 attribute type string provided by the parser. |
Element | getCurrentElement() Returns the being-parsed element. |
Document | getDocument() Returns the document. |
org.xml.sax.Locator | getDocumentLocator() Provides access to the Locator object provided by the SAX parser. |
boolean | getExpandEntities() Returns whether or not entities will be expanded during the build. |
JDOMFactory | getFactory() Returns the factory used for constructing objects. |
boolean | getIgnoringElementContentWhitespace() Returns whether or not the parser will elminate whitespace in element content (sometimes known as "ignorable whitespace") when building the document. |
void | ignorableWhitespace(char[] ch, int start, int length) Capture ignorable whitespace as text. |
void | internalEntityDecl(java.lang.String name, java.lang.String value) Handle an internal entity declaration in a DTD. |
void | notationDecl(java.lang.String name, java.lang.String publicID, java.lang.String systemID) Handle the declaration of a Notation in a DTD |
void | processingInstruction(java.lang.String target, java.lang.String data) This will indicate that a processing instruction has been encountered. |
protected void | pushElement(Element element) Pushes an element onto the tree under construction. |
void | setDocumentLocator(org.xml.sax.Locator locator) Receives an object for locating the origin of SAX document events. |
void | setExpandEntities(boolean expand) This sets whether or not to expand entities during the build. |
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 | skippedEntity(java.lang.String name) This indicates that an unresolvable entity reference has been encountered, normally because the external DTD subset has not been read. |
void | startCDATA() Report a CDATA section |
void | startDocument() |
void | startDTD(java.lang.String name, java.lang.String publicID, java.lang.String systemID) This will signify that a DTD is being parsed, and can be used to ensure that comments and other lexical structures in the DTD are not added to the JDOM Document object. |
void | startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts) This reports the occurrence of an actual element. |
void | startEntity(java.lang.String name) |
void | startPrefixMapping(java.lang.String prefix, java.lang.String uri) This will add the prefix mapping to the JDOM Document object. |
private void | transferNamespaces(Element element) This will take the supplied and transfer its namespaces to the global namespace storage. |
void | unparsedEntityDecl(java.lang.String name, java.lang.String publicID, java.lang.String systemID, java.lang.String notationName) Handler for unparsed entity declarations in the DTD |
Methods inherited from class org.xml.sax.helpers.DefaultHandler |
---|
endDocument, endPrefixMapping, error, fatalError, resolveEntity, warning |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private static final java.lang.String CVS_ID
private static final java.util.Map attrNameToTypeMap
private Document document
Document
object being built private Element currentElement
Element
object being built private boolean atRoot
private boolean inDTD
private boolean inInternalSubset
private boolean previousCDATA
private boolean inCDATA
private boolean expand
private boolean suppress
private int entityDepth
private java.util.List declaredNamespaces
private java.lang.StringBuffer internalSubset
private TextBuffer textBuffer
private java.util.Map externalEntities
private JDOMFactory factory
private boolean ignoringWhite
private org.xml.sax.Locator locator
Constructor Detail |
---|
public SAXHandler()
SAXHandler
that listens to SAX events and creates a JDOM Document. The objects will be constructed using the default factory. public SAXHandler(JDOMFactory factory)
SAXHandler
that listens to SAX events and creates a JDOM Document. The objects will be constructed using the provided factory. factory
- JDOMFactory
to be used for constructing objectsMethod Detail |
---|
protected void pushElement(Element element)
element
- root element under which content will be builtpublic Document getDocument()
Document
- Document that was builtpublic JDOMFactory getFactory()
JDOMFactory
- the factory used for constructing objects.SAXHandler(JDOMFactory)
public void setExpandEntities(boolean expand)
EntityRef
objects. The default is true. expand
- boolean
indicating whether entity expansion should occur.public boolean getExpandEntities()
boolean
- whether entity expansion will occur during build.setExpandEntities(boolean)
public void setIgnoringElementContentWhitespace(boolean ignoringWhite)
false
. ignoringWhite
- Whether to ignore ignorable whitespacepublic boolean getIgnoringElementContentWhitespace()
boolean
- whether ignorable whitespace will be ignored during build.setIgnoringElementContentWhitespace(boolean)
public void startDocument()
startDocument
in interface org.xml.sax.ContentHandler
startDocument
in class org.xml.sax.helpers.DefaultHandler
public void externalEntityDecl(java.lang.String name, java.lang.String publicID, java.lang.String systemID) throws org.xml.sax.SAXException
externalEntityDecl
in interface org.xml.sax.ext.DeclHandler
name
- entity namepublicID
- public idsystemID
- system id org.xml.sax.SAXException
- when things go wrongpublic void attributeDecl(java.lang.String eName, java.lang.String aName, java.lang.String type, java.lang.String valueDefault, java.lang.String value) throws org.xml.sax.SAXException
attributeDecl
in interface org.xml.sax.ext.DeclHandler
eName
- String
element name of attributeaName
- String
attribute nametype
- String
attribute typevalueDefault
- String
default value of attributevalue
- String
value of attribute org.xml.sax.SAXException
public void elementDecl(java.lang.String name, java.lang.String model) throws org.xml.sax.SAXException
elementDecl
in interface org.xml.sax.ext.DeclHandler
name
- String
name of elementmodel
- String
model of the element in DTD syntax org.xml.sax.SAXException
public void internalEntityDecl(java.lang.String name, java.lang.String value) throws org.xml.sax.SAXException
internalEntityDecl
in interface org.xml.sax.ext.DeclHandler
name
- String
name of entityvalue
- String
value of the entity org.xml.sax.SAXException
public void processingInstruction(java.lang.String target, java.lang.String data) throws org.xml.sax.SAXException
processingInstruction
in interface org.xml.sax.ContentHandler
processingInstruction
in class org.xml.sax.helpers.DefaultHandler
target
- String
target of PIdata
- String
containing all data sent to the PI. This typically looks like one or more attribute value pairs. org.xml.sax.SAXException
- when things go wrongpublic void skippedEntity(java.lang.String name) throws org.xml.sax.SAXException
skippedEntity
in interface org.xml.sax.ContentHandler
skippedEntity
in class org.xml.sax.helpers.DefaultHandler
name
- String
name of entity org.xml.sax.SAXException
- when things go wrongpublic void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws org.xml.sax.SAXException
Document
object. startPrefixMapping
in interface org.xml.sax.ContentHandler
startPrefixMapping
in class org.xml.sax.helpers.DefaultHandler
prefix
- String
namespace prefix.uri
- String
namespace URI. org.xml.sax.SAXException
public void startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException
xmlns:[namespace prefix]
and xsi:schemaLocation
. startElement
in interface org.xml.sax.ContentHandler
startElement
in class org.xml.sax.helpers.DefaultHandler
namespaceURI
- String
namespace URI this element is associated with, or an empty String
localName
- String
name of element (with no namespace prefix, if one is present)qName
- String
XML 1.0 version of element name: [namespace prefix]:[localName]atts
- Attributes
list for this element org.xml.sax.SAXException
- when things go wrongprivate void transferNamespaces(Element element)
Element
and transfer its namespaces to the global namespace storage. element
- Element
to read namespaces from.public void characters(char[] ch, int start, int length) throws org.xml.sax.SAXException
characters
in interface org.xml.sax.ContentHandler
characters
in class org.xml.sax.helpers.DefaultHandler
ch
- char[]
character array with character datastart
- int
index in array where data starts.length
- int
length of data. org.xml.sax.SAXException
public void ignorableWhitespace(char[] ch, int start, int length) throws org.xml.sax.SAXException
ignorableWhitespace
in interface org.xml.sax.ContentHandler
ignorableWhitespace
in class org.xml.sax.helpers.DefaultHandler
ch
- []
- char array of ignorable whitespacestart
- int
- starting position within arraylength
- int
- length of whitespace after start org.xml.sax.SAXException
- when things go wrongprotected void flushCharacters() throws org.xml.sax.SAXException
org.xml.sax.SAXException
- when things go wrongprotected void flushCharacters(java.lang.String data) throws org.xml.sax.SAXException
data
- string to flush org.xml.sax.SAXException
public void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException
</[element name]>
) is reached. Note that the parser does not distinguish between empty elements and non-empty elements, so this will occur uniformly. endElement
in interface org.xml.sax.ContentHandler
endElement
in class org.xml.sax.helpers.DefaultHandler
namespaceURI
- String
URI of namespace this element is associated withlocalName
- String
name of element without prefixqName
- String
name of element in XML 1.0 form org.xml.sax.SAXException
- when things go wrongpublic void startDTD(java.lang.String name, java.lang.String publicID, java.lang.String systemID) throws org.xml.sax.SAXException
Document
object. startDTD
in interface org.xml.sax.ext.LexicalHandler
name
- String
name of element listed in DTDpublicID
- String
public ID of DTDsystemID
- String
system ID of DTD org.xml.sax.SAXException
public void endDTD() throws org.xml.sax.SAXException
endDTD
in interface org.xml.sax.ext.LexicalHandler
org.xml.sax.SAXException
public void startEntity(java.lang.String name) throws org.xml.sax.SAXException
startEntity
in interface org.xml.sax.ext.LexicalHandler
org.xml.sax.SAXException
public void endEntity(java.lang.String name) throws org.xml.sax.SAXException
endEntity
in interface org.xml.sax.ext.LexicalHandler
org.xml.sax.SAXException
public void startCDATA() throws org.xml.sax.SAXException
startCDATA
in interface org.xml.sax.ext.LexicalHandler
org.xml.sax.SAXException
public void endCDATA() throws org.xml.sax.SAXException
endCDATA
in interface org.xml.sax.ext.LexicalHandler
org.xml.sax.SAXException
public void comment(char[] ch, int start, int length) throws org.xml.sax.SAXException
Element
, or the Document
itself if at that level. comment
in interface org.xml.sax.ext.LexicalHandler
ch
- ch[]
array of comment characters.start
- int
index to start reading from.length
- int
length of data. org.xml.sax.SAXException
public void notationDecl(java.lang.String name, java.lang.String publicID, java.lang.String systemID) throws org.xml.sax.SAXException
notationDecl
in interface org.xml.sax.DTDHandler
notationDecl
in class org.xml.sax.helpers.DefaultHandler
name
- name of the notationpublicID
- the public ID of the notationsystemID
- the system ID of the notation org.xml.sax.SAXException
public void unparsedEntityDecl(java.lang.String name, java.lang.String publicID, java.lang.String systemID, java.lang.String notationName) throws org.xml.sax.SAXException
unparsedEntityDecl
in interface org.xml.sax.DTDHandler
unparsedEntityDecl
in class org.xml.sax.helpers.DefaultHandler
name
- String
of the unparsed entity declpublicID
- String
of the unparsed entity declsystemID
- String
of the unparsed entity declnotationName
- String
of the unparsed entity decl org.xml.sax.SAXException
private void appendExternalId(java.lang.String publicID, java.lang.String systemID)
publicID
- the public IDsystemID
- the system IDpublic Element getCurrentElement() throws org.xml.sax.SAXException
Element
- element being built. org.xml.sax.SAXException
private static int getAttributeType(java.lang.String typeName)
typeName
- String
the SAX 2.0 attribute type string. int
the JDOM attribute type.Attribute.setAttributeType(int)
, Attributes.getType(int)
public void setDocumentLocator(org.xml.sax.Locator locator)
JDOMFactory
implementations can use the getDocumentLocator()
method to get access to the Locator
during parse.
setDocumentLocator
in interface org.xml.sax.ContentHandler
setDocumentLocator
in class org.xml.sax.helpers.DefaultHandler
locator
- Locator
an object that can return the location of any SAX document event.public org.xml.sax.Locator getDocumentLocator()
Locator
object provided by the SAX parser. Locator
an object that can return the location of any SAX document event.