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,v 1.8 2005/02/17 06:08:16 mrglavas Exp $
Author:
Peter McCracken, IBM

Inner classes inherited from class org.apache.xerces.util.NamespaceSupport
NamespaceSupport.Prefixes
 
Field Summary
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
MultipleScopeNamespaceSupport()
           
MultipleScopeNamespaceSupport(org.apache.xerces.xni.NamespaceContext context)
           
 
Method Summary
 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.
Overrides:
getAllPrefixes in class NamespaceSupport
Following copied from class: org.apache.xerces.util.NamespaceSupport
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).

Overrides:
getPrefix in class NamespaceSupport
Following copied from class: org.apache.xerces.util.NamespaceSupport
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.

Overrides:
getURI in class NamespaceSupport
Following copied from class: org.apache.xerces.util.NamespaceSupport
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.
Overrides:
reset in class NamespaceSupport
Following copied from class: org.apache.xerces.util.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-2005 Apache XML Project. All Rights Reserved.