Package uk.ac.starlink.ttools.votlint
Class FudgeNamespaceContentHandler
- java.lang.Object
-
- uk.ac.starlink.ttools.votlint.FudgeNamespaceContentHandler
-
- All Implemented Interfaces:
org.xml.sax.ContentHandler
public class FudgeNamespaceContentHandler extends java.lang.Object implements org.xml.sax.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
Constructors Constructor Description FudgeNamespaceContentHandler(org.xml.sax.ContentHandler base, java.lang.String tagName, java.lang.String ns)
Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
characters(char[] ch, int start, int length)
void
endDocument()
void
endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName)
void
endPrefixMapping(java.lang.String prefix)
void
ignorableWhitespace(char[] ch, int start, int length)
void
processingInstruction(java.lang.String target, java.lang.String data)
void
setDocumentLocator(org.xml.sax.Locator locator)
void
skippedEntity(java.lang.String name)
void
startDocument()
void
startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts)
void
startPrefixMapping(java.lang.String prefix, java.lang.String uri)
-
-
-
Constructor Detail
-
FudgeNamespaceContentHandler
public FudgeNamespaceContentHandler(org.xml.sax.ContentHandler base, java.lang.String tagName, java.lang.String ns)
Constructor.- Parameters:
base
- downstream SAX event sinktagName
- name of element within which namespace hacking should take placens
- namespace to insert
-
-
Method Detail
-
setDocumentLocator
public void setDocumentLocator(org.xml.sax.Locator locator)
- Specified by:
setDocumentLocator
in interfaceorg.xml.sax.ContentHandler
-
startDocument
public void startDocument() throws org.xml.sax.SAXException
- Specified by:
startDocument
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
endDocument
public void endDocument() throws org.xml.sax.SAXException
- Specified by:
endDocument
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
startPrefixMapping
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws org.xml.sax.SAXException
- Specified by:
startPrefixMapping
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
endPrefixMapping
public void endPrefixMapping(java.lang.String prefix) throws org.xml.sax.SAXException
- Specified by:
endPrefixMapping
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
startElement
public void startElement(java.lang.String uri, java.lang.String localName, java.lang.String qName, org.xml.sax.Attributes atts) throws org.xml.sax.SAXException
- Specified by:
startElement
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
endElement
public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String qName) throws org.xml.sax.SAXException
- Specified by:
endElement
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
characters
public void characters(char[] ch, int start, int length) throws org.xml.sax.SAXException
- Specified by:
characters
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
ignorableWhitespace
public void ignorableWhitespace(char[] ch, int start, int length) throws org.xml.sax.SAXException
- Specified by:
ignorableWhitespace
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
processingInstruction
public void processingInstruction(java.lang.String target, java.lang.String data) throws org.xml.sax.SAXException
- Specified by:
processingInstruction
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
skippedEntity
public void skippedEntity(java.lang.String name) throws org.xml.sax.SAXException
- Specified by:
skippedEntity
in interfaceorg.xml.sax.ContentHandler
- Throws:
org.xml.sax.SAXException
-
-