Package org.exolab.castor.xml.parsing
Class NamespaceHandling
- java.lang.Object
-
- org.exolab.castor.xml.parsing.NamespaceHandling
-
public class NamespaceHandling extends java.lang.Object
This class is used by theUnmarshalHandler
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
Constructors Constructor Description NamespaceHandling()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDefaultNamespace(java.lang.String namespaceURI)
Binds the namespaceURI to the default namespace.void
addNamespace(java.lang.String prefix, java.lang.String namespaceURI)
Binds the namespaceURI to the prefixvoid
addNamespaceToPackageMapping(java.lang.String nsURI, java.lang.String packageName)
Adds a mapping from the given namespace URI to the given package name.void
createNamespace()
Creates a new name space.java.lang.String
getDefaultNamespaceURI()
Gets the namespace URI that is bound to the default name space.java.lang.String
getMappedPackage(java.lang.String namespace)
Looks up the package name from the given namespace URI.Namespaces
getNamespaceContext()
Returns the current name space context.java.lang.String
getNamespacePrefix(java.lang.String namespaceURI)
Gets the prefix that is bound to a namespaceURI.java.lang.String
getNamespaceURI(java.lang.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, java.lang.Object object)
Saves local namespace declarations to the object model if necessary.void
removeCurrentNamespaceInstance()
Pops the current namespace instancejava.lang.Object
resolveNamespace(java.lang.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.
-
-
-
Method Detail
-
addNamespaceToPackageMapping
public void addNamespaceToPackageMapping(java.lang.String nsURI, java.lang.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 java.lang.String getMappedPackage(java.lang.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, java.lang.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 java.lang.Object resolveNamespace(java.lang.Object value) throws org.xml.sax.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:
org.xml.sax.SAXException
- if the nammespace associated with the prefix is null
-
removeCurrentNamespaceInstance
public void removeCurrentNamespaceInstance()
Pops the current namespace instance
-
addDefaultNamespace
public void addDefaultNamespace(java.lang.String namespaceURI)
Binds the namespaceURI to the default namespace.- Parameters:
namespaceURI
- Namespace URI
-
addNamespace
public void addNamespace(java.lang.String prefix, java.lang.String namespaceURI)
Binds the namespaceURI to the prefix- Parameters:
prefix
- XML name space prefixnamespaceURI
- XML name space URI.
-
getNamespacePrefix
public java.lang.String getNamespacePrefix(java.lang.String namespaceURI)
Gets the prefix that is bound to a namespaceURI.- Parameters:
namespaceURI
- the namespaceURI to get the prefix from- Returns:
- prefix
-
getNamespaceURI
public java.lang.String getNamespaceURI(java.lang.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 java.lang.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.
-
-