uk.ac.starlink.ttools.votlint
Class FudgeNamespaceContentHandler
java.lang.Object
uk.ac.starlink.ttools.votlint.FudgeNamespaceContentHandler
- All Implemented Interfaces:
- ContentHandler
public class FudgeNamespaceContentHandler
- extends Object
- implements 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
Method Summary |
void |
characters(char[] ch,
int start,
int length)
|
void |
endDocument()
|
void |
endElement(String uri,
String localName,
String qName)
|
void |
endPrefixMapping(String prefix)
|
void |
ignorableWhitespace(char[] ch,
int start,
int length)
|
void |
processingInstruction(String target,
String data)
|
void |
setDocumentLocator(Locator locator)
|
void |
skippedEntity(String name)
|
void |
startDocument()
|
void |
startElement(String uri,
String localName,
String qName,
Attributes atts)
|
void |
startPrefixMapping(String prefix,
String uri)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
FudgeNamespaceContentHandler
public FudgeNamespaceContentHandler(ContentHandler base,
String tagName,
String ns)
- Constructor.
- Parameters:
base
- downstream SAX event sinktagName
- name of element within which namespace hacking
should take placens
- namespace to insert
setDocumentLocator
public void setDocumentLocator(Locator locator)
- Specified by:
setDocumentLocator
in interface ContentHandler
startDocument
public void startDocument()
throws SAXException
- Specified by:
startDocument
in interface ContentHandler
- Throws:
SAXException
endDocument
public void endDocument()
throws SAXException
- Specified by:
endDocument
in interface ContentHandler
- Throws:
SAXException
startPrefixMapping
public void startPrefixMapping(String prefix,
String uri)
throws SAXException
- Specified by:
startPrefixMapping
in interface ContentHandler
- Throws:
SAXException
endPrefixMapping
public void endPrefixMapping(String prefix)
throws SAXException
- Specified by:
endPrefixMapping
in interface ContentHandler
- Throws:
SAXException
startElement
public void startElement(String uri,
String localName,
String qName,
Attributes atts)
throws SAXException
- Specified by:
startElement
in interface ContentHandler
- Throws:
SAXException
endElement
public void endElement(String uri,
String localName,
String qName)
throws SAXException
- Specified by:
endElement
in interface ContentHandler
- Throws:
SAXException
characters
public void characters(char[] ch,
int start,
int length)
throws SAXException
- Specified by:
characters
in interface ContentHandler
- Throws:
SAXException
ignorableWhitespace
public void ignorableWhitespace(char[] ch,
int start,
int length)
throws SAXException
- Specified by:
ignorableWhitespace
in interface ContentHandler
- Throws:
SAXException
processingInstruction
public void processingInstruction(String target,
String data)
throws SAXException
- Specified by:
processingInstruction
in interface ContentHandler
- Throws:
SAXException
skippedEntity
public void skippedEntity(String name)
throws SAXException
- Specified by:
skippedEntity
in interface ContentHandler
- Throws:
SAXException
Copyright © 2018 Central Laboratory of the Research Councils. All Rights Reserved.