Class NamespaceResolver
- All Implemented Interfaces:
XMLNamespaceResolver
- Direct Known Subclasses:
NamespaceResolver
It is common for an XML document to include one or more namespaces. TopLink supports this using its NamespaceResolver. The namespace resolver maintains pairs of namespace prefixes and URIs. TopLink uses these prefixes in conjunction with the XPath statements you specify on EIS mappings to XML records and XML mappings.
Although TopLink captures namespace prefixes in the XPath statements for mappings (if applicable), the input document is not required to use the same namespace prefixes. TopLink will use the namespace prefixes specified in the mapping when creating new documents.
Code Sample
NamespaceResolver resolver = new NamespaceResolver();
resolver.put( "ns", "urn:namespace-example");
XMLDescriptor descriptor = new XMLDescriptor();
descriptor.setJavaClass(Customer.class);
descriptor.setDefaultRootElement("ns:customer");
descriptor.setNamespaceResolver(resolver);
XMLDirectMapping mapping = new XMLDirectMapping();
mapping.setAttributeName("id");
mapping.setXPath("ns:id/text()");
descriptor.addMapping(mapping);
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor, creates a new NamespaceResolver.NamespaceResolver
(NamespaceResolver namespaceResolver) Copy Constructor -
Method Summary
Modifier and TypeMethodDescriptiongeneratePrefix
(String defaultPrefix) INTERNAL: Returns a Vector of of Namespace objects in the current Namespace Resolver Used for deployment XMLReturns the list of prefixes in the NamespaceResolverboolean
Indicates whether givenprefix
is assigned to a name-space.boolean
void
Adds a namespace to the collection of namespaces on the NamespaceResolvervoid
removeNamespace
(String prefix) resolveNamespacePrefix
(String prefix) Returns the namespace URI associated with a specified namespace prefixReturn the namespace prefix associated with a namespace URI.void
setDefaultNamespaceURI
(String namespaceUri) void
void
setNamespaces
(Vector<Namespace> names) INTERNAL: Set the namespaces on the namespace resolver based on the specified Vector of Namespace objects Used for deployment XML
-
Constructor Details
-
NamespaceResolver
public NamespaceResolver()Default constructor, creates a new NamespaceResolver. -
NamespaceResolver
Copy Constructor- Since:
- EclipseLink 2.5.0
-
-
Method Details
-
getPrefixesToNamespaces
-
hasPrefixesToNamespaces
public boolean hasPrefixesToNamespaces() -
hasPrefix
Indicates whether givenprefix
is assigned to a name-space.- Parameters:
prefix
- name-space prefix- Returns:
true
ifprefix
is present in prefix to name-space map (getPrefixesToNamespaces()
-
setDOM
-
resolveNamespacePrefix
Returns the namespace URI associated with a specified namespace prefix- Specified by:
resolveNamespacePrefix
in interfaceXMLNamespaceResolver
- Parameters:
prefix
- The prefix to lookup a namespace URI for- Returns:
- The namespace URI associated with the specified prefix
-
resolveNamespaceURI
Return the namespace prefix associated with a namespace URI.- Parameters:
uri
- A namespace URI.- Returns:
- The prefix associated with the namespace URI.
-
put
Adds a namespace to the collection of namespaces on the NamespaceResolver- Parameters:
prefix
- The prefix for a namespacenamespaceURI
- The namespace URI associated with the specified prefix
-
getPrefixes
Returns the list of prefixes in the NamespaceResolver- Returns:
- An Enumeration containing the prefixes in the NamespaceResolver
-
getNamespaces
INTERNAL: Returns a Vector of of Namespace objects in the current Namespace Resolver Used for deployment XML- Returns:
- A Vector containing the namespace URIs in the namespace resolver
-
setNamespaces
INTERNAL: Set the namespaces on the namespace resolver based on the specified Vector of Namespace objects Used for deployment XML- Parameters:
names
- A Vector of namespace URIs
-
generatePrefix
-
generatePrefix
-
removeNamespace
-
setDefaultNamespaceURI
-
getDefaultNamespaceURI
-