Class MultipleScopeNamespaceSupport

  • All Implemented Interfaces:
    NamespaceContext
    Direct Known Subclasses:
    XIncludeNamespaceSupport

    public class MultipleScopeNamespaceSupport
    extends NamespaceSupport
    This implementation of NamespaceContext has the ability to maintain multiple scopes of namespace/prefix bindings. This is useful in situations when it is not always appropriate for elements to inherit the namespace bindings of their ancestors (such as included elements in XInclude). When searching for a URI to match a prefix, or a prefix to match a URI, it is searched for in the current context, then the ancestors of the current context, up to the beginning of the current scope. Other scopes are not searched.
    Version:
    $Id$
    Author:
    Peter McCracken, IBM
    • Field Detail

      • fScope

        protected int[] fScope
      • fCurrentScope

        protected int fCurrentScope
    • Constructor Detail

      • MultipleScopeNamespaceSupport

        public MultipleScopeNamespaceSupport()
      • MultipleScopeNamespaceSupport

        public MultipleScopeNamespaceSupport​(NamespaceContext context)
        Parameters:
        context -
    • Method Detail

      • getScopeForContext

        public int getScopeForContext​(int context)
      • getPrefix

        public String getPrefix​(String uri)
        Description copied from interface: NamespaceContext
        Look up a namespace URI and get one of the mapped prefix.

        This method looks up the namespace URI in the current context. If more than one prefix is currently mapped to the same URI, this method will make an arbitrary selection If no mapping is found, this methods will continue lookup in the parent context(s).

        Specified by:
        getPrefix in interface NamespaceContext
        Overrides:
        getPrefix in class NamespaceSupport
        Parameters:
        uri - The namespace URI to look up.
        Returns:
        One of the associated prefixes, or null if the uri does not map to any prefix.
        See Also:
        NamespaceContext.getPrefix(String)
      • getURI

        public String getURI​(String prefix)
        Description copied from interface: NamespaceContext
        Look up a prefix and get the currently-mapped Namespace URI.

        This method looks up the prefix in the current context. If no mapping is found, this methods will continue lookup in the parent context(s). Use the empty string ("") for the default Namespace.

        Specified by:
        getURI in interface NamespaceContext
        Overrides:
        getURI in class NamespaceSupport
        Parameters:
        prefix - The prefix to look up.
        Returns:
        The associated Namespace URI, or null if the prefix is undeclared in this context.
        See Also:
        NamespaceContext.getURI(String)
      • getPrefix

        public String getPrefix​(String uri,
                                int context)
      • getURI

        public String getURI​(String prefix,
                             int context)
      • getPrefix

        public String getPrefix​(String uri,
                                int start,
                                int end)
      • getURI

        public String getURI​(String prefix,
                             int start,
                             int end)
      • pushScope

        public void pushScope()
        Begins a new scope. None of the previous namespace bindings will be used, until the new scope is popped with popScope()
      • popScope

        public void popScope()
        Pops the current scope. The namespace bindings from the new current scope are then used for searching for namespaces and prefixes.