public class NamespaceReducer extends ProxyReceiver implements NamespaceResolver
ProxyReceiver
responsible for removing duplicate namespace
declarations. It also ensures that an xmlns=""
undeclaration is output when
necessary. Used on its own, the NamespaceReducer
simply eliminates unwanted
namespace declarations. It can also be subclassed, in which case the subclass
can use the services of the NamespaceReducer
to resolve QNames.
The NamespaceReducer
also validates namespace-sensitive content.
nextReceiver
pipelineConfiguration, previousAtomic, systemId
Constructor and Description |
---|
NamespaceReducer(Receiver next)
Create a NamespaceReducer
|
Modifier and Type | Method and Description |
---|---|
void |
endElement()
endElement: Discard the namespaces declared on this element.
|
java.lang.String |
getURIForPrefix(java.lang.String prefix,
boolean useDefault)
Get the namespace URI corresponding to a given prefix.
|
boolean |
isDisinheritingNamespaces()
Ask whether the namespace reducer is disinheriting namespaces at the current level
|
java.util.Iterator<java.lang.String> |
iteratePrefixes()
Get an iterator over all the prefixes declared in this namespace context.
|
void |
namespace(NamespaceBindingSet namespaceBindings,
int properties)
Output a namespace node (binding)
|
void |
startContent()
startContent: Add any namespace undeclarations needed to stop
namespaces being inherited from parent elements
|
void |
startElement(NodeName elemName,
SchemaType typeCode,
Location location,
int properties)
startElement.
|
append, attribute, characters, close, comment, endDocument, getNamePool, getNextReceiver, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument, usesTypeAnnotations
append, decompose, flatten, getConfiguration, getErrorCodeForDecomposingFunctionItems, getPipelineConfiguration, getSystemId, handlesAppend
public NamespaceReducer(Receiver next)
next
- the Receiver to which events will be passed after namespace reductionpublic void startElement(NodeName elemName, SchemaType typeCode, Location location, int properties) throws XPathException
startElement
in interface Receiver
startElement
in class ProxyReceiver
elemName
- integer code identifying the name of the element within the name pool.typeCode
- the element's type annotation.location
- a location associated with the event (typically either a location in the
source document or the stylesheet)properties
- properties of the element nodeXPathException
- if an error occurspublic void namespace(NamespaceBindingSet namespaceBindings, int properties) throws XPathException
namespace
in interface Receiver
namespace
in class ProxyReceiver
namespaceBindings
- the prefix/uri pair to be outputproperties
- the properties of the namespace bindingXPathException
- if any downstream error occurspublic boolean isDisinheritingNamespaces()
public void startContent() throws XPathException
startContent
in interface Receiver
startContent
in class ProxyReceiver
XPathException
- if an error occurspublic void endElement() throws XPathException
endElement
in interface Receiver
endElement
in class ProxyReceiver
XPathException
- if an error occurspublic java.lang.String getURIForPrefix(java.lang.String prefix, boolean useDefault)
getURIForPrefix
in interface NamespaceResolver
prefix
- the namespace prefixuseDefault
- true if the default namespace is to be used when the
prefix is ""public java.util.Iterator<java.lang.String> iteratePrefixes()
iteratePrefixes
in interface NamespaceResolver
Copyright (c) 2004-2020 Saxonica Limited. All rights reserved.