Class NamespaceResolver

java.lang.Object
org.eclipse.persistence.internal.oxm.NamespaceResolver
All Implemented Interfaces:
XMLNamespaceResolver
Direct Known Subclasses:
NamespaceResolver

public class NamespaceResolver extends Object implements XMLNamespaceResolver

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 Details

    • NamespaceResolver

      public NamespaceResolver()
      Default constructor, creates a new NamespaceResolver.
    • NamespaceResolver

      public NamespaceResolver(NamespaceResolver namespaceResolver)
      Copy Constructor
      Since:
      EclipseLink 2.5.0
  • Method Details

    • getPrefixesToNamespaces

      public Map<String,String> getPrefixesToNamespaces()
    • hasPrefixesToNamespaces

      public boolean hasPrefixesToNamespaces()
    • hasPrefix

      public boolean hasPrefix(String prefix)
      Indicates whether given prefix is assigned to a name-space.
      Parameters:
      prefix - name-space prefix
      Returns:
      true if prefix is present in prefix to name-space map (getPrefixesToNamespaces()
    • setDOM

      public void setDOM(Node dom)
    • resolveNamespacePrefix

      public String resolveNamespacePrefix(String prefix)
      Returns the namespace URI associated with a specified namespace prefix
      Specified by:
      resolveNamespacePrefix in interface XMLNamespaceResolver
      Parameters:
      prefix - The prefix to lookup a namespace URI for
      Returns:
      The namespace URI associated with the specified prefix
    • resolveNamespaceURI

      public String resolveNamespaceURI(String uri)
      Return the namespace prefix associated with a namespace URI.
      Parameters:
      uri - A namespace URI.
      Returns:
      The prefix associated with the namespace URI.
    • put

      public void put(String prefix, String namespaceURI)
      Adds a namespace to the collection of namespaces on the NamespaceResolver
      Parameters:
      prefix - The prefix for a namespace
      namespaceURI - The namespace URI associated with the specified prefix
    • getPrefixes

      public Enumeration<String> getPrefixes()
      Returns the list of prefixes in the NamespaceResolver
      Returns:
      An Enumeration containing the prefixes in the NamespaceResolver
    • getNamespaces

      public Vector<Namespace> 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

      public 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
      Parameters:
      names - A Vector of namespace URIs
    • generatePrefix

      public String generatePrefix()
    • generatePrefix

      public String generatePrefix(String defaultPrefix)
    • removeNamespace

      public void removeNamespace(String prefix)
    • setDefaultNamespaceURI

      public void setDefaultNamespaceURI(String namespaceUri)
    • getDefaultNamespaceURI

      public String getDefaultNamespaceURI()