FileDocCategorySizeDatePackage
XIncludeNamespaceSupport.javaAPI DocJava SE 6 API3298Tue Jun 10 00:22:52 BST 2008com.sun.org.apache.xerces.internal.xinclude

XIncludeNamespaceSupport

public class XIncludeNamespaceSupport extends MultipleScopeNamespaceSupport
This is an implementation of NamespaceContext which is intended to be used for XInclude processing. It enables each context to be marked as invalid, if necessary, to indicate that the namespaces recorded on those contexts won't be apparent in the resulting infoset.
author
Peter McCracken, IBM
version
$Id: XIncludeNamespaceSupport.java,v 1.3 2005/09/26 13:03:04 sunithareddy Exp $

Fields Summary
private boolean[]
fValidContext
This stores whether or not the context at the matching depth was valid.
Constructors Summary
public XIncludeNamespaceSupport()


          
      
        super();
    
public XIncludeNamespaceSupport(NamespaceContext context)

param
context

        super(context);
    
Methods Summary
public java.lang.StringgetURIFromIncludeParent(java.lang.String prefix)
This returns the namespace URI which was associated with the given pretext, in the context that existed at the include parent of the current element. The include parent is the last element, before the current one, which was not set to an invalid context using setContextInvalid()

param
prefix the prefix of the desired URI
return
the URI corresponding to the prefix in the context of the include parent

        int lastValidContext = fCurrentContext - 1;
        while (lastValidContext > 0 && !fValidContext[lastValidContext]) {
            lastValidContext--;
        }
        return getURI(prefix, lastValidContext);
    
public voidpushContext()
Pushes a new context onto the stack.

        super.pushContext();
        if (fCurrentContext + 1 == fValidContext.length) {
            boolean[] contextarray = new boolean[fValidContext.length * 2];
            System.arraycopy(fValidContext, 0, contextarray, 0, fValidContext.length);
            fValidContext = contextarray;
        }

        fValidContext[fCurrentContext] = true;
    
public voidsetContextInvalid()
This method is used to set a context invalid for XInclude namespace processing. Any context defined by an <include> or <fallback> element is not valid for processing the include parent's [in-scope namespaces]. Thus, contexts defined by these elements are set to invalid by the XInclude processor using this method.

        fValidContext[fCurrentContext] = false;