Package org.apache.axiom.util.namespace
Class ScopedNamespaceContext
- java.lang.Object
-
- org.apache.axiom.util.namespace.AbstractNamespaceContext
-
- org.apache.axiom.util.namespace.ScopedNamespaceContext
-
- All Implemented Interfaces:
NamespaceContext
public class ScopedNamespaceContext extends AbstractNamespaceContext
NamespaceContext
implementation that supports nested scopes. A scope is typically associated with a start tag / end tag pair. The implementation takes care of correctly handling masked namespace bindings. Masking occurs when the same prefix is bound to a different namespace URI in a nested scope.
-
-
Constructor Summary
Constructors Constructor Description ScopedNamespaceContext()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected String
doGetNamespaceURI(String prefix)
Get namespace URI bound to a prefix in the current scope.protected String
doGetPrefix(String namespaceURI)
Get prefix bound to namespace URI in the current scope.protected Iterator<String>
doGetPrefixes(String namespaceURI)
Get all prefixes bound to a namespace URI in the current scope.void
endScope()
End the current scope and restore the scope in which the current scope was nested.int
getBindingsCount()
Get the number of namespace bindings defined in this context, in all scopes.int
getFirstBindingInCurrentScope()
Get the index of the first namespace binding defined in the current scope.String
getNamespaceURI(int index)
Get the namespace URI of the binding with the given index.String
getPrefix(int index)
Get the prefix of the binding with the given index.void
setPrefix(String prefix, String namespaceURI)
Define a prefix binding in the current scope.void
startScope()
Start a new scope.-
Methods inherited from class org.apache.axiom.util.namespace.AbstractNamespaceContext
getNamespaceURI, getPrefix, getPrefixes
-
-
-
-
Method Detail
-
setPrefix
public void setPrefix(String prefix, String namespaceURI)
Define a prefix binding in the current scope. It will be visible in the current scope as well as each nested scope, unless the prefix is bound to a different namespace URI in that scope.- Parameters:
prefix
- the prefix to bind or the empty string to set the default namespace; may not benull
namespaceURI
- the corresponding namespace URI; may not benull
-
startScope
public void startScope()
Start a new scope. Since scopes are nested, this will not end the current scope.
-
endScope
public void endScope()
End the current scope and restore the scope in which the current scope was nested. This will remove all prefix bindings declared since the corresponding invocation of thestartScope()
method.
-
getBindingsCount
public int getBindingsCount()
Get the number of namespace bindings defined in this context, in all scopes. This number increases every timesetPrefix(String, String)
is called. It decreases whenendScope()
is called (unless no bindings have been added in the current scope).- Returns:
- the namespace binding count
-
getFirstBindingInCurrentScope
public int getFirstBindingInCurrentScope()
Get the index of the first namespace binding defined in the current scope. Together withgetBindingsCount()
this method can be used to iterate over the namespace bindings defined in the current scope.- Returns:
- the index of the first namespace binding defined in the current scope
-
getPrefix
public String getPrefix(int index)
Get the prefix of the binding with the given index.- Parameters:
index
- the index of the binding- Returns:
- the prefix
-
getNamespaceURI
public String getNamespaceURI(int index)
Get the namespace URI of the binding with the given index.- Parameters:
index
- the index of the binding- Returns:
- the namespace URI
-
doGetNamespaceURI
protected String doGetNamespaceURI(String prefix)
Description copied from class:AbstractNamespaceContext
Get namespace URI bound to a prefix in the current scope. The contract of this method is the same asNamespaceContext.getNamespaceURI(String)
, except that the implementation is not required to handle the implicit namespace bindings.- Specified by:
doGetNamespaceURI
in classAbstractNamespaceContext
- Parameters:
prefix
- prefix to look up- Returns:
- namespace URI bound to prefix in the current scope
-
doGetPrefix
protected String doGetPrefix(String namespaceURI)
Description copied from class:AbstractNamespaceContext
Get prefix bound to namespace URI in the current scope. The contract of this method is the same asNamespaceContext.getPrefix(String)
, except that the implementation is not required to handle the implicit namespace bindings.- Specified by:
doGetPrefix
in classAbstractNamespaceContext
- Parameters:
namespaceURI
- URI of namespace to lookup- Returns:
- prefix bound to namespace URI in current context
-
doGetPrefixes
protected Iterator<String> doGetPrefixes(String namespaceURI)
Description copied from class:AbstractNamespaceContext
Get all prefixes bound to a namespace URI in the current scope. The contract of this method is the same asNamespaceContext.getPrefixes(String)
, except that the implementation is not required to handle the implicit namespace bindings.- Specified by:
doGetPrefixes
in classAbstractNamespaceContext
- Parameters:
namespaceURI
- URI of namespace to lookup- Returns:
- iterator for all prefixes bound to the namespace URI in the current scope
-
-