org.exolab.castor.xml.parsing
Class NamespaceHandling

java.lang.Object
  extended by org.exolab.castor.xml.parsing.NamespaceHandling

public class NamespaceHandling
extends Object

This class is used by the UnmarshalHandler to handle name spaces. It manages a stack of name spaces, keeps track of when an new name space scope is needed and maps name space URIs to package names.

Since:
1.3.2
Author:
Philipp Erlacher

Constructor Summary
NamespaceHandling()
           
 
Method Summary
 void addDefaultNamespace(String namespaceURI)
          Binds the namespaceURI to the default namespace.
 void addNamespace(String prefix, String namespaceURI)
          Binds the namespaceURI to the prefix
 void addNamespaceToPackageMapping(String nsURI, String packageName)
          Adds a mapping from the given namespace URI to the given package name.
 void createNamespace()
          Creates a new name space.
 String getDefaultNamespaceURI()
          Gets the namespace URI that is bound to the default name space.
 String getMappedPackage(String namespace)
          Looks up the package name from the given namespace URI.
 Namespaces getNamespaceContext()
          Returns the current name space context.
 String getNamespacePrefix(String namespaceURI)
          Gets the prefix that is bound to a namespaceURI.
 String getNamespaceURI(String prefix)
          Gets the namespaceURI that is bound to a prefix.
 boolean isNewNamespaceScopeNecessary()
          Indicates whether a new name space scope is needed.
 void processNamespaces(XMLClassDescriptor classDesc, Object object)
          Saves local namespace declarations to the object model if necessary.
 void removeCurrentNamespaceInstance()
          Pops the current namespace instance
 Object resolveNamespace(Object value)
          Extracts the prefix and resolves it to it's associated namespace.
 void startNamespaceScope()
          Starts a new name space scope, and resets the corresponding flag.
 void stopNamespaceScope()
          Stops a name space scope, and resets the corresponding flag to false.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NamespaceHandling

public NamespaceHandling()
Method Detail

addNamespaceToPackageMapping

public void addNamespaceToPackageMapping(String nsURI,
                                         String packageName)
Adds a mapping from the given namespace URI to the given package name.

Parameters:
nsURI - the namespace URI to map from.
packageName - the package name to map to.

getMappedPackage

public String getMappedPackage(String namespace)
Looks up the package name from the given namespace URI.

Parameters:
namespace - the namespace URI to lookup
Returns:
the package name or null.

processNamespaces

public void processNamespaces(XMLClassDescriptor classDesc,
                              Object object)
Saves local namespace declarations to the object model if necessary.

Parameters:
classDesc - the current ClassDescriptor.
object - the Object of the current state

resolveNamespace

public Object resolveNamespace(Object value)
                        throws SAXException
Extracts the prefix and resolves it to it's associated namespace. If the prefix is 'xml', then no resolution will occur, however in all other cases the resolution will change the prefix:value as {NamespaceURI}value

Parameters:
value - the QName to resolve.
Returns:
Throws:
SAXException - if the nammespace associated with the prefix is null

removeCurrentNamespaceInstance

public void removeCurrentNamespaceInstance()
Pops the current namespace instance


addDefaultNamespace

public void addDefaultNamespace(String namespaceURI)
Binds the namespaceURI to the default namespace.

Parameters:
namespaceURI - Namespace URI

addNamespace

public void addNamespace(String prefix,
                         String namespaceURI)
Binds the namespaceURI to the prefix

Parameters:
prefix - XML name space prefix
namespaceURI - XML name space URI.

getNamespacePrefix

public String getNamespacePrefix(String namespaceURI)
Gets the prefix that is bound to a namespaceURI.

Parameters:
namespaceURI - the namespaceURI to get the prefix from
Returns:
prefix

getNamespaceURI

public String getNamespaceURI(String prefix)
Gets the namespaceURI that is bound to a prefix.

Parameters:
prefix - the prefix to get the namespaceURI from
Returns:
namespaceURI The corresponding namespace URI.

getDefaultNamespaceURI

public String getDefaultNamespaceURI()
Gets the namespace URI that is bound to the default name space.

Returns:
namespaceURI The namespace URI bound to the default namespace.

createNamespace

public void createNamespace()
Creates a new name space.


getNamespaceContext

public Namespaces getNamespaceContext()
Returns the current name space context.

Returns:
The current name space stack (context).

isNewNamespaceScopeNecessary

public boolean isNewNamespaceScopeNecessary()
Indicates whether a new name space scope is needed.

Returns:
true if a new name space scope is necessary.

startNamespaceScope

public void startNamespaceScope()
Starts a new name space scope, and resets the corresponding flag.


stopNamespaceScope

public void stopNamespaceScope()
Stops a name space scope, and resets the corresponding flag to false.



Copyright © 2011. All Rights Reserved.