org.apache.xerces.xinclude

## Class MultipleScopeNamespaceSupport

- java.lang.Object
- - org.apache.xerces.util.NamespaceSupport
  - - org.apache.xerces.xinclude.MultipleScopeNamespaceSupport

- All Implemented Interfaces:
    org.apache.xerces.xni.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: MultipleScopeNamespaceSupport.java 447243 2006-09-18 05:15:27Z mrglavas $
  Author:
    Peter McCracken, IBM

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.apache.xerces.util.NamespaceSupport

      `NamespaceSupport.Prefixes`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected int` | `fCurrentScope`
    `protected int[]` | `fScope`

    - ### Fields inherited from class org.apache.xerces.util.NamespaceSupport

      `fContext, fCurrentContext, fNamespace, fNamespaceSize, fPrefixes`

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

      `XML_URI, XMLNS_URI`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MultipleScopeNamespaceSupport()`
    `MultipleScopeNamespaceSupport(org.apache.xerces.xni.NamespaceContext context)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Enumeration` | `getAllPrefixes()` Return an enumeration of all prefixes whose declarations are active in the current context.
    `java.lang.String` | `getPrefix(java.lang.String uri)` Look up a namespace URI and get one of the mapped prefix.
    `java.lang.String` | `getPrefix(java.lang.String uri, int context)`
    `java.lang.String` | `getPrefix(java.lang.String uri, int start, int end)`
    `int` | `getScopeForContext(int context)`
    `java.lang.String` | `getURI(java.lang.String prefix)` Look up a prefix and get the currently-mapped Namespace URI.
    `java.lang.String` | `getURI(java.lang.String prefix, int context)`
    `java.lang.String` | `getURI(java.lang.String prefix, int start, int end)`
    `void` | `popScope()` Pops the current scope.
    `void` | `pushScope()` Begins a new scope.
    `void` | `reset()` Only resets the current scope -- all namespaces defined in lower scopes remain valid after a call to reset.

    - ### Methods inherited from class org.apache.xerces.util.NamespaceSupport

      `containsPrefix, declarePrefix, getDeclaredPrefixAt, getDeclaredPrefixCount, popContext, pushContext`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### fScope

          protected int[] fScope

    - #### fCurrentScope

          protected int fCurrentScope

  - ### Constructor Detail

    - #### MultipleScopeNamespaceSupport

          public MultipleScopeNamespaceSupport()

    - #### MultipleScopeNamespaceSupport

          public MultipleScopeNamespaceSupport(org.apache.xerces.xni.NamespaceContext context)

      Parameters:
        `context` -

  - ### Method Detail

    - #### getAllPrefixes

          public java.util.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`
      Overrides:
        `getAllPrefixes` in class `NamespaceSupport`
      Returns:
        Enumeration
      See Also:
        `NamespaceContext.getAllPrefixes()`

    - #### getScopeForContext

          public int getScopeForContext(int context)

    - #### getPrefix

          public java.lang.String getPrefix(java.lang.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`
      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 java.lang.String getURI(java.lang.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`
      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 java.lang.String getPrefix(java.lang.String uri,
                                   int context)

    - #### getURI

          public java.lang.String getURI(java.lang.String prefix,
                                int context)

    - #### getPrefix

          public java.lang.String getPrefix(java.lang.String uri,
                                   int start,
                                   int end)

    - #### getURI

          public java.lang.String getURI(java.lang.String prefix,
                                int start,
                                int end)

    - #### reset

          public void reset()

      Only resets the current scope -- all namespaces defined in lower scopes remain valid after a call to reset.
      Specified by:
        `reset` in interface `org.apache.xerces.xni.NamespaceContext`
      Overrides:
        `reset` in class `NamespaceSupport`
      See Also:
        `NamespaceContext.reset()`

    - #### 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.

Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.