Class FudgeNamespaceContentHandler
java.lang.Object
uk.ac.starlink.ttools.votlint.FudgeNamespaceContentHandler
- All Implemented Interfaces:
ContentHandler
This class provides a hack so that XSD validation can work even
when the wrong namespace is declared in the source document.
The point of this is that if the document has made a small namespacing
error, schema validation by default will simply refuse to recognise
any of the elements and provide no further validation reporting.
This class hacks the SAX event stream to its downstream client so
that if no namespace declaration has been received in the expected
namespace, the default namespace is declared as the expected one.
If the expected namespace is declared explicitly, this class makes
no change to downstream SAX events.
This is not very respectable, but will have the desired effect for most VOTable documents (which do not in any case make much use of namespacing).
- Since:
- 22 Nov 2012
- Author:
- Mark Taylor
-
Constructor Summary
ConstructorsConstructorDescriptionFudgeNamespaceContentHandler(ContentHandler base, String tagName, String ns) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionvoidcharacters(char[] ch, int start, int length) voidvoidendElement(String uri, String localName, String qName) voidendPrefixMapping(String prefix) voidignorableWhitespace(char[] ch, int start, int length) voidprocessingInstruction(String target, String data) voidsetDocumentLocator(Locator locator) voidskippedEntity(String name) voidvoidstartElement(String uri, String localName, String qName, Attributes atts) voidstartPrefixMapping(String prefix, String uri) Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ContentHandler
declaration
-
Constructor Details
-
FudgeNamespaceContentHandler
Constructor.- Parameters:
base- downstream SAX event sinktagName- name of element within which namespace hacking should take placens- namespace to insert
-
-
Method Details
-
setDocumentLocator
- Specified by:
setDocumentLocatorin interfaceContentHandler
-
startDocument
- Specified by:
startDocumentin interfaceContentHandler- Throws:
SAXException
-
endDocument
- Specified by:
endDocumentin interfaceContentHandler- Throws:
SAXException
-
startPrefixMapping
- Specified by:
startPrefixMappingin interfaceContentHandler- Throws:
SAXException
-
endPrefixMapping
- Specified by:
endPrefixMappingin interfaceContentHandler- Throws:
SAXException
-
startElement
public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException - Specified by:
startElementin interfaceContentHandler- Throws:
SAXException
-
endElement
- Specified by:
endElementin interfaceContentHandler- Throws:
SAXException
-
characters
- Specified by:
charactersin interfaceContentHandler- Throws:
SAXException
-
ignorableWhitespace
- Specified by:
ignorableWhitespacein interfaceContentHandler- Throws:
SAXException
-
processingInstruction
- Specified by:
processingInstructionin interfaceContentHandler- Throws:
SAXException
-
skippedEntity
- Specified by:
skippedEntityin interfaceContentHandler- Throws:
SAXException
-