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.
nextReceiverpipelineConfiguration, 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 |
startElement(NodeName elemName,
SchemaType type,
AttributeMap attributes,
NamespaceMap namespaceMap,
Location location,
int properties)
startElement.
|
append, characters, close, comment, endDocument, getNamePool, getNextReceiver, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument, usesTypeAnnotationsappend, decompose, flatten, getConfiguration, getErrorCodeForDecomposingFunctionItems, getPipelineConfiguration, getSystemId, handlesAppendpublic NamespaceReducer(Receiver next)
next - the Receiver to which events will be passed after namespace reductionpublic void startElement(NodeName elemName, SchemaType type, AttributeMap attributes, NamespaceMap namespaceMap, Location location, int properties) throws XPathException
startElement in interface ReceiverstartElement in class ProxyReceiverelemName - the name of the element.type - the type annotation of the element.attributes - the attributes of this elementnamespaceMap - the in-scope namespaces of this element: generally this is all the in-scope
namespaces, without relying on inheriting namespaces from parent elementslocation - an object providing information about the module, line, and column where the node originatedproperties - bit-significant properties of the element node. If there are no relevant
properties, zero is supplied. The definitions of the bits are in class ReceiverOptionXPathException - if an error occurspublic boolean isDisinheritingNamespaces()
public void endElement()
throws XPathException
endElement in interface ReceiverendElement in class ProxyReceiverXPathException - if an error occurspublic java.lang.String getURIForPrefix(java.lang.String prefix,
boolean useDefault)
getURIForPrefix in interface NamespaceResolverprefix - 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 NamespaceResolverCopyright (c) 2004-2020 Saxonica Limited.