Class 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 Detail

      • ScopedNamespaceContext

        public ScopedNamespaceContext()
    • 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 be null
        namespaceURI - the corresponding namespace URI; may not be null
      • 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 the startScope() method.
      • getBindingsCount

        public int getBindingsCount()
        Get the number of namespace bindings defined in this context, in all scopes. This number increases every time setPrefix(String, String) is called. It decreases when endScope() 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 with getBindingsCount() 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
      • 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 as NamespaceContext.getPrefix(String), except that the implementation is not required to handle the implicit namespace bindings.
        Specified by:
        doGetPrefix in class AbstractNamespaceContext
        Parameters:
        namespaceURI - URI of namespace to lookup
        Returns:
        prefix bound to namespace URI in current context