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.LexicalHandlerUses Sax events from theContentHandlerandLexicalHandlerinterfaces 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.
-
-
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 voidcharacters(char[] data, int start, int length)ContentHandler method.voidcomment(char[] ch, int start, int length)LexicalHandler methodvoidendCDATA()Unhandled LexicalHandler methodvoidendDocument()ContentHandler methodvoidendDTD()Unhandled LexicalHandler methodvoidendElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName)ContentHandler methodvoidendEntity(java.lang.String name)Unhandled LexicalHandler methodvoidendPrefixMapping(java.lang.String prefix)Unhandled ContentHandler methodorg.w3c.dom.DocumentgetDocument()java.lang.StringgetTrace()voidignorableWhitespace(char[] ch, int start, int length)Unhandled ContentHandler methodvoidprocessingInstruction(java.lang.String target, java.lang.String data)ContentHandler methodvoidsetDocumentLocator(org.xml.sax.Locator locator)Unhandled ContentHandler methodvoidskippedEntity(java.lang.String name)Unhandled ContentHandler methodvoidstartCDATA()Unhandled LexicalHandler methodvoidstartDocument()ContentHandler methodvoidstartDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId)Unhandled LexicalHandler method.voidstartElement(java.lang.String namespaceURI, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)ContentHandler methodvoidstartEntity(java.lang.String name)Unhandled LexicalHandler methodvoidstartPrefixMapping(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.ParserConfigurationExceptionConstructor 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- if JAXP feels like it
-
-
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.SAXExceptionContentHandler method- Specified by:
startDocumentin interfaceorg.xml.sax.ContentHandler- Overrides:
startDocumentin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException
-
endDocument
public void endDocument() throws org.xml.sax.SAXExceptionContentHandler method- Specified by:
endDocumentin interfaceorg.xml.sax.ContentHandler- Overrides:
endDocumentin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException
-
characters
public void characters(char[] data, int start, int length)ContentHandler method.- Specified by:
charactersin interfaceorg.xml.sax.ContentHandler- Overrides:
charactersin 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.SAXExceptionContentHandler method- Specified by:
startElementin interfaceorg.xml.sax.ContentHandler- Overrides:
startElementin 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.SAXExceptionContentHandler method- Specified by:
endElementin interfaceorg.xml.sax.ContentHandler- Overrides:
endElementin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException
-
endPrefixMapping
public void endPrefixMapping(java.lang.String prefix) throws org.xml.sax.SAXExceptionUnhandled ContentHandler method- Specified by:
endPrefixMappingin interfaceorg.xml.sax.ContentHandler- Overrides:
endPrefixMappingin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException
-
ignorableWhitespace
public void ignorableWhitespace(char[] ch, int start, int length) throws org.xml.sax.SAXExceptionUnhandled ContentHandler method- Specified by:
ignorableWhitespacein interfaceorg.xml.sax.ContentHandler- Overrides:
ignorableWhitespacein 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.SAXExceptionContentHandler method- Specified by:
processingInstructionin interfaceorg.xml.sax.ContentHandler- Overrides:
processingInstructionin classorg.xml.sax.helpers.DefaultHandler- Throws:
org.xml.sax.SAXException
-
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
Unhandled ContentHandler method- Specified by:
setDocumentLocatorin interfaceorg.xml.sax.ContentHandler- Overrides:
setDocumentLocatorin classorg.xml.sax.helpers.DefaultHandler
-
skippedEntity
public void skippedEntity(java.lang.String name) throws org.xml.sax.SAXExceptionUnhandled ContentHandler method- Specified by:
skippedEntityin interfaceorg.xml.sax.ContentHandler- Overrides:
skippedEntityin 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.SAXExceptionUnhandled ContentHandler method- Specified by:
startPrefixMappingin interfaceorg.xml.sax.ContentHandler- Overrides:
startPrefixMappingin 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.SAXExceptionUnhandled LexicalHandler method. DOM currently doesn't allow DTD to be retrofitted onto a Document.- Specified by:
startDTDin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
endDTD
public void endDTD() throws org.xml.sax.SAXExceptionUnhandled LexicalHandler method- Specified by:
endDTDin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
startEntity
public void startEntity(java.lang.String name) throws org.xml.sax.SAXExceptionUnhandled LexicalHandler method- Specified by:
startEntityin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
endEntity
public void endEntity(java.lang.String name) throws org.xml.sax.SAXExceptionUnhandled LexicalHandler method- Specified by:
endEntityin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
startCDATA
public void startCDATA() throws org.xml.sax.SAXExceptionUnhandled LexicalHandler method- Specified by:
startCDATAin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
endCDATA
public void endCDATA() throws org.xml.sax.SAXExceptionUnhandled LexicalHandler method- Specified by:
endCDATAin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
comment
public void comment(char[] ch, int start, int length) throws org.xml.sax.SAXExceptionLexicalHandler method- Specified by:
commentin interfaceorg.xml.sax.ext.LexicalHandler- Throws:
org.xml.sax.SAXException
-
-