Class NamespaceSupport

  • All Implemented Interfaces:
    NamespaceContext

    public class NamespaceSupport
    extends java.lang.Object
    implements NamespaceContext
    Namespace support for XML document handlers. This class doesn't perform any error checking and assumes that all strings passed as arguments to methods are unique symbols. The SymbolTable class can be used for this purpose.
    • Constructor Summary

      Constructors 
      Constructor Description
      NamespaceSupport()
      Default constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean declarePrefix​(java.lang.String prefix, java.lang.String uri)
      Declare a Namespace prefix.
      java.lang.String getDeclaredPrefixAt​(int index)  
      int getDeclaredPrefixCount()  
      java.lang.String getURI​(java.lang.String prefix)
      Look up a prefix and get the currently-mapped Namespace URI.
      void popContext()
      Revert to the previous Namespace context.
      void pushContext()
      Start a new Namespace context.
      void reset()
      Reset this Namespace support object for reuse.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • fNamespace_

        private java.lang.String[] fNamespace_
        Namespace binding information. This array is composed of a series of tuples containing the namespace binding information: <prefix, uri>. The default size can be set to anything as long as it is a power of 2 greater than 1.
        See Also:
        fNamespaceSize_, fContext_
      • fNamespaceSize_

        private int fNamespaceSize_
        The top of the namespace information array.
      • fContext_

        private int[] fContext_
        Context indexes. This array contains indexes into the namespace information array. The index at the current context is the start index of declared namespace bindings and runs to the size of the namespace information array.
        See Also:
        fNamespaceSize_
      • fCurrentContext_

        private int fCurrentContext_
        The current context.
    • Constructor Detail

      • NamespaceSupport

        public NamespaceSupport()
        Default constructor.
    • Method Detail

      • reset

        public void reset()
        Description copied from interface: NamespaceContext
        Reset this Namespace support object for reuse.

        It is necessary to invoke this method before reusing the Namespace support object for a new session.

        Note that implementations of this method need to ensure that the declaration of the prefixes "xmlns" and "xml" are available.

        Specified by:
        reset in interface NamespaceContext
        See Also:
        NamespaceContext.reset()
      • pushContext

        public void pushContext()
        Description copied from interface: NamespaceContext
        Start a new Namespace context.

        A new context should be pushed at the beginning of each XML element: the new context will automatically inherit the declarations of its parent context, but it will also keep track of which declarations were made within this context.

        Specified by:
        pushContext in interface NamespaceContext
        See Also:
        NamespaceContext.pushContext()
      • popContext

        public void popContext()
        Description copied from interface: NamespaceContext
        Revert to the previous Namespace context.

        The context should be popped at the end of each XML element. After popping the context, all Namespace prefix mappings that were previously in force are restored.

        Users must not attempt to declare additional Namespace prefixes after popping a context, unless you push another context first.

        Specified by:
        popContext in interface NamespaceContext
        See Also:
        NamespaceContext.popContext()
      • declarePrefix

        public boolean declarePrefix​(java.lang.String prefix,
                                     java.lang.String uri)
        Description copied from interface: NamespaceContext
        Declare a Namespace prefix.

        This method declares a prefix in the current Namespace context; the prefix will remain in force until this context is popped, unless it is shadowed in a descendant context.

        Note that to declare a default Namespace, use the empty string. The prefixes "xml" and "xmlns" can't be rebound.

        Note that you must not declare a prefix after you've pushed and popped another Namespace.

        Specified by:
        declarePrefix in interface NamespaceContext
        Parameters:
        prefix - The prefix to declare, or null for the empty string.
        uri - The Namespace URI to associate with the prefix.
        Returns:
        true if the prefix was legal, false otherwise
        See Also:
        NamespaceContext.declarePrefix(String, String)
      • getURI

        public java.lang.String getURI​(java.lang.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
        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)