Package org.custommonkey.xmlunit
Class TolerantSaxDocumentBuilder
- java.lang.Object
-
- org.xml.sax.helpers.DefaultHandler
-
- org.custommonkey.xmlunit.TolerantSaxDocumentBuilder
-
- All Implemented Interfaces:
org.xml.sax.ContentHandler
,org.xml.sax.DTDHandler
,org.xml.sax.EntityResolver
,org.xml.sax.ErrorHandler
,org.xml.sax.ext.LexicalHandler
public class TolerantSaxDocumentBuilder extends org.xml.sax.helpers.DefaultHandler implements org.xml.sax.ext.LexicalHandler
Uses Sax events from theContentHandler
andLexicalHandler
interfaces to build a DOM document in a tolerant fashion -- it can cope with start tags without end tags, and end tags without start tags for example. Although this subverts the idea of XML being well-formed, it is intended for use with HTML pages so that they can be transformed into DOM trees, without being XHTML to start with. Note that this class currently does not handle entity, DTD or CDATA tags.
Examples and more at xmlunit.sourceforge.net
-
-
Constructor Summary
Constructors Constructor Description TolerantSaxDocumentBuilder(javax.xml.parsers.DocumentBuilder documentBuilder)
Constructor for specific JAXP parser
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
characters(char[] data, int start, int length)
ContentHandler method.void
comment(char[] ch, int start, int length)
LexicalHandler methodvoid
endCDATA()
Unhandled LexicalHandler methodvoid
endDocument()
ContentHandler methodvoid
endDTD()
Unhandled LexicalHandler methodvoid
endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)
ContentHandler methodvoid
endEntity(java.lang.String name)
Unhandled LexicalHandler methodvoid
endPrefixMapping(java.lang.String prefix)
Unhandled ContentHandler methodorg.w3c.dom.Document
getDocument()
java.lang.String
getTrace()
void
ignorableWhitespace(char[] ch, int start, int length)
Unhandled ContentHandler methodvoid
processingInstruction(java.lang.String target, java.lang.String data)
ContentHandler methodvoid
setDocumentLocator(org.xml.sax.Locator locator)
Unhandled ContentHandler methodvoid
skippedEntity(java.lang.String name)
Unhandled ContentHandler methodvoid
startCDATA()
Unhandled LexicalHandler methodvoid
startDocument()
ContentHandler methodvoid
startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)
Unhandled LexicalHandler method.void
startElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
ContentHandler methodvoid
startEntity(java.lang.String name)
Unhandled LexicalHandler methodvoid
startPrefixMapping(java.lang.String prefix, java.lang.String uri)
Unhandled ContentHandler method
-
-
-
Constructor Detail
-
TolerantSaxDocumentBuilder
public TolerantSaxDocumentBuilder(javax.xml.parsers.DocumentBuilder documentBuilder) throws javax.xml.parsers.ParserConfigurationException
Constructor for specific JAXP parser- Parameters:
documentBuilder
- the JAXP parser to use to construct an empty DOM document that will be built up with SAX calls- Throws:
javax.xml.parsers.ParserConfigurationException
-
-
Method Detail
-
getDocument
public org.w3c.dom.Document getDocument()
- Returns:
- the Document built up through the Sax calls
-
getTrace
public java.lang.String getTrace()
- Returns:
- the trace of Sax calls that were used to build up the Document
-
startDocument
public void startDocument() throws org.xml.sax.SAXException
ContentHandler method- Specified by:
startDocument
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startDocument
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
endDocument
public void endDocument() throws org.xml.sax.SAXException
ContentHandler method- Specified by:
endDocument
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endDocument
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
characters
public void characters(char[] data, int start, int length)
ContentHandler method.- Specified by:
characters
in interfaceorg.xml.sax.ContentHandler
- Overrides:
characters
in classorg.xml.sax.helpers.DefaultHandler
-
startElement
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
ContentHandler method- Specified by:
startElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
endElement
public void endElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException
ContentHandler method- Specified by:
endElement
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endElement
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
endPrefixMapping
public void endPrefixMapping(java.lang.String prefix) throws org.xml.sax.SAXException
Unhandled ContentHandler method- Specified by:
endPrefixMapping
in interfaceorg.xml.sax.ContentHandler
- Overrides:
endPrefixMapping
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
ignorableWhitespace
public void ignorableWhitespace(char[] ch, int start, int length) throws org.xml.sax.SAXException
Unhandled ContentHandler method- Specified by:
ignorableWhitespace
in interfaceorg.xml.sax.ContentHandler
- Overrides:
ignorableWhitespace
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
processingInstruction
public void processingInstruction(java.lang.String target, java.lang.String data) throws org.xml.sax.SAXException
ContentHandler method- Specified by:
processingInstruction
in interfaceorg.xml.sax.ContentHandler
- Overrides:
processingInstruction
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
Unhandled ContentHandler method- Specified by:
setDocumentLocator
in interfaceorg.xml.sax.ContentHandler
- Overrides:
setDocumentLocator
in classorg.xml.sax.helpers.DefaultHandler
-
skippedEntity
public void skippedEntity(java.lang.String name) throws org.xml.sax.SAXException
Unhandled ContentHandler method- Specified by:
skippedEntity
in interfaceorg.xml.sax.ContentHandler
- Overrides:
skippedEntity
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws org.xml.sax.SAXException
Unhandled ContentHandler method- Specified by:
startPrefixMapping
in interfaceorg.xml.sax.ContentHandler
- Overrides:
startPrefixMapping
in classorg.xml.sax.helpers.DefaultHandler
- Throws:
org.xml.sax.SAXException
-
startDTD
public void startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) throws org.xml.sax.SAXException
Unhandled LexicalHandler method. DOM currently doesn't allow DTD to be retrofitted onto a Document.- Specified by:
startDTD
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
endDTD
public void endDTD() throws org.xml.sax.SAXException
Unhandled LexicalHandler method- Specified by:
endDTD
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
startEntity
public void startEntity(java.lang.String name) throws org.xml.sax.SAXException
Unhandled LexicalHandler method- Specified by:
startEntity
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
endEntity
public void endEntity(java.lang.String name) throws org.xml.sax.SAXException
Unhandled LexicalHandler method- Specified by:
endEntity
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
startCDATA
public void startCDATA() throws org.xml.sax.SAXException
Unhandled LexicalHandler method- Specified by:
startCDATA
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
endCDATA
public void endCDATA() throws org.xml.sax.SAXException
Unhandled LexicalHandler method- Specified by:
endCDATA
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
comment
public void comment(char[] ch, int start, int length) throws org.xml.sax.SAXException
LexicalHandler method- Specified by:
comment
in interfaceorg.xml.sax.ext.LexicalHandler
- Throws:
org.xml.sax.SAXException
-
-