Class NamespaceSupport

java.lang.Object
org.apache.xerces.util.NamespaceSupport
All Implemented Interfaces:
org.apache.xerces.xni.NamespaceContext
Direct Known Subclasses:
MultipleScopeNamespaceSupport, SchemaNamespaceSupport

public class NamespaceSupport extends Object implements org.apache.xerces.xni.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.
Version:
$Id: NamespaceSupport.java 965250 2010-07-18 16:04:58Z mrglavas $
Author:
Andy Clark, IBM
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected final class 
     
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected int[]
    Context indexes.
    protected int
    The current context.
    protected String[]
    Namespace binding information.
    protected int
    The top of the namespace information array.
    protected String[]
     

    Fields inherited from interface org.apache.xerces.xni.NamespaceContext

    XML_URI, XMLNS_URI
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
    NamespaceSupport(org.apache.xerces.xni.NamespaceContext context)
    Constructs a namespace context object and initializes it with the prefixes declared in the specified context.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Checks whether a binding or unbinding for the given prefix exists in the context.
    boolean
    declarePrefix(String prefix, String uri)
    Declare a Namespace prefix.
    Return an enumeration of all prefixes whose declarations are active in the current context.
    Returns the prefix at the specified index in the current context.
    int
    Return a count of locally declared prefixes, including the default prefix if bound.
    Look up a namespace URI and get one of the mapped prefix.
    getURI(String prefix)
    Look up a prefix and get the currently-mapped Namespace URI.
    void
    Revert to the previous Namespace context.
    void
    Start a new Namespace context.
    void
    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 Details

    • fNamespace

      protected 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

      protected int fNamespaceSize
      The top of the namespace information array.
    • fContext

      protected 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:
    • fCurrentContext

      protected int fCurrentContext
      The current context.
    • fPrefixes

      protected String[] fPrefixes
  • Constructor Details

    • NamespaceSupport

      public NamespaceSupport()
      Default constructor.
    • NamespaceSupport

      public NamespaceSupport(org.apache.xerces.xni.NamespaceContext context)
      Constructs a namespace context object and initializes it with the prefixes declared in the specified context.
  • Method Details

    • reset

      public void reset()
      Description copied from interface: org.apache.xerces.xni.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 org.apache.xerces.xni.NamespaceContext
      See Also:
      • NamespaceContext.reset()
    • pushContext

      public void pushContext()
      Description copied from interface: org.apache.xerces.xni.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 org.apache.xerces.xni.NamespaceContext
      See Also:
      • NamespaceContext.pushContext()
    • popContext

      public void popContext()
      Description copied from interface: org.apache.xerces.xni.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 org.apache.xerces.xni.NamespaceContext
      See Also:
      • NamespaceContext.popContext()
    • declarePrefix

      public boolean declarePrefix(String prefix, String uri)
      Description copied from interface: org.apache.xerces.xni.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 org.apache.xerces.xni.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 String getURI(String prefix)
      Description copied from interface: org.apache.xerces.xni.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 org.apache.xerces.xni.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)
    • getPrefix

      public String getPrefix(String uri)
      Description copied from interface: org.apache.xerces.xni.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 org.apache.xerces.xni.NamespaceContext
      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)
    • getDeclaredPrefixCount

      public int getDeclaredPrefixCount()
      Description copied from interface: org.apache.xerces.xni.NamespaceContext
      Return a count of locally declared prefixes, including the default prefix if bound.
      Specified by:
      getDeclaredPrefixCount in interface org.apache.xerces.xni.NamespaceContext
      See Also:
      • NamespaceContext.getDeclaredPrefixCount()
    • getDeclaredPrefixAt

      public String getDeclaredPrefixAt(int index)
      Description copied from interface: org.apache.xerces.xni.NamespaceContext
      Returns the prefix at the specified index in the current context.
      Specified by:
      getDeclaredPrefixAt in interface org.apache.xerces.xni.NamespaceContext
      See Also:
      • NamespaceContext.getDeclaredPrefixAt(int)
    • getAllPrefixes

      public Enumeration getAllPrefixes()
      Description copied from interface: org.apache.xerces.xni.NamespaceContext
      Return an enumeration of all prefixes whose declarations are active in the current context. This includes declarations from parent contexts that have not been overridden.
      Specified by:
      getAllPrefixes in interface org.apache.xerces.xni.NamespaceContext
      Returns:
      Enumeration
      See Also:
      • NamespaceContext.getAllPrefixes()
    • containsPrefix

      public boolean containsPrefix(String prefix)
      Checks whether a binding or unbinding for the given prefix exists in the context.
      Parameters:
      prefix - The prefix to look up.
      Returns:
      true if the given prefix exists in the context