|
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--gnu.xml.pipeline.EventFilter | +--gnu.xml.pipeline.NSFilter
This filter ensures that element and attribute names are properly prefixed, and that such prefixes are declared. Such data is critical for operations like writing XML text, and validating against DTDs: names or their prefixes may have been discarded, although they are essential to the exchange of information using XML. There are various common ways that such data gets discarded:
This filter uses a heuristic to choose the prefix to assign to any particular name which wasn't already corectly prefixed. The associated namespace will be correct, and the prefix will be declared. Original structures facilitating text editing, such as conventions about use of mnemonic prefix names or the scoping of prefixes, can't always be reconstructed after they are discarded, as strongly encouraged by the current SAX2 defaults.
Note that this can't possibly know whether values inside attribute value or document content involve prefixed names. If your application requires using prefixed names in such locations you'll need to add some appropriate logic (perhaps adding additional heuristics in a subclass).
Fields inherited from class gnu.xml.pipeline.EventFilter |
DECL_HANDLER, FEATURE_URI, LEXICAL_HANDLER, PROPERTY_URI |
Constructor Summary | |
NSFilter(EventConsumer next)
Passes events through to the specified consumer, after first processing them. |
Method Summary | |
void |
endDocument()
SAX2: passes this callback to the next consumer, if any |
void |
endElement(java.lang.String uri,
java.lang.String localName,
java.lang.String rawName)
SAX2: passes this callback to the next consumer, if any |
void |
endPrefixMapping(java.lang.String prefix)
This call is not passed to the next consumer in the chain. |
void |
startDocument()
SAX2: passes this callback to the next consumer, if any |
void |
startElement(java.lang.String ns,
java.lang.String l,
java.lang.String name,
Attributes atts)
SAX2: passes this callback to the next consumer, if any |
void |
startPrefixMapping(java.lang.String prefix,
java.lang.String uri)
This call is not passed to the next consumer in the chain. |
Methods inherited from class gnu.xml.pipeline.EventFilter |
attributeDecl, bind, characters, comment, elementDecl, endCDATA, endDTD, endEntity, externalEntityDecl, getContentHandler, getDocumentLocator, getDTDHandler, getErrorHandler, getNext, getProperty, ignorableWhitespace, internalEntityDecl, notationDecl, processingInstruction, setContentHandler, setDocumentLocator, setDTDHandler, setErrorHandler, setProperty, skippedEntity, startCDATA, startDTD, startEntity, unparsedEntityDecl |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public NSFilter(EventConsumer next)
next
- the next event consumer to receive events.Method Detail |
public void startDocument() throws SAXException
EventFilter
startDocument
in class EventFilter
org.xml.sax.ContentHandler
SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.endDocument()
public void startPrefixMapping(java.lang.String prefix, java.lang.String uri) throws SAXException
startPrefixMapping
in class EventFilter
org.xml.sax.ContentHandler
prefix
- The Namespace prefix being declared.uri
- The Namespace URI the prefix is mapped to.SAXException
- The client may throw
an exception during processing.ContentHandler.endPrefixMapping(java.lang.String)
,
ContentHandler.startElement(java.lang.String, java.lang.String, java.lang.String, org.xml.sax.Attributes)
public void startElement(java.lang.String ns, java.lang.String l, java.lang.String name, Attributes atts) throws SAXException
EventFilter
startElement
in class EventFilter
org.xml.sax.ContentHandler
uri
- The Namespace URI, or the empty string if the
element has no Namespace URI or if Namespace
processing is not being performed.localName
- The local name (without prefix), or the
empty string if Namespace processing is not being
performed.qName
- The qualified name (with prefix), or the
empty string if qualified names are not available.atts
- The attributes attached to the element. If
there are no attributes, it shall be an empty
Attributes object.SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)
,
Attributes
public void endElement(java.lang.String uri, java.lang.String localName, java.lang.String rawName) throws SAXException
EventFilter
endElement
in class EventFilter
org.xml.sax.ContentHandler
uri
- The Namespace URI, or the empty string if the
element has no Namespace URI or if Namespace
processing is not being performed.localName
- The local name (without prefix), or the
empty string if Namespace processing is not being
performed.qName
- The qualified XML 1.0 name (with prefix), or the
empty string if qualified names are not available.SAXException
- Any SAX exception, possibly
wrapping another exception.public void endPrefixMapping(java.lang.String prefix) throws SAXException
endPrefixMapping
in class EventFilter
org.xml.sax.ContentHandler
prefix
- The prefix that was being mapping.SAXException
- The client may throw
an exception during processing.ContentHandler.startPrefixMapping(java.lang.String, java.lang.String)
,
ContentHandler.endElement(java.lang.String, java.lang.String, java.lang.String)
public void endDocument() throws SAXException
EventFilter
endDocument
in class EventFilter
org.xml.sax.ContentHandler
SAXException
- Any SAX exception, possibly
wrapping another exception.ContentHandler.startDocument()
|
Source code is GPL'd in the JAXP subproject at http://savannah.gnu.org/projects/classpathx |
|||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |