org.jdom
Class Namespace

java.lang.Object
  |
  +--org.jdom.Namespace

public final class Namespace
extends java.lang.Object

Namespace defines both a factory for creating XML namespaces, and a namespace itself. This class represents an XML namespace in Java.

Elements and Attributes containing Namespaces can be serialized; however the Namespace class itself does not implement java.io.Serializable. This works because the Element and Attribute classes handle serialization of their Namespaces manually. The classes use the getNamespace() method on deserialization to ensure there may be only one unique Namespace object for any unique prefix/uri pair, something needed for efficiency reasons.

Version:
1.0
Author:
Brett McLaughlin, Elliotte Rusty Harold, Wesley Biggs

Field Summary
static Namespace NO_NAMESPACE
          Define a Namespace for when not in a namespace
static Namespace XML_NAMESPACE
           
 
Method Summary
 boolean equals(java.lang.Object ob)
           This tests for equality - Two Namespaces are equal if and only if their URIs are byte-for-byte equals and their prefixes are equal.
static Namespace getNamespace(java.lang.String uri)
           This will retrieve (if in existence) or create (if not) a Namespace for the supplied URI, and make it usable as a default namespace, as no prefix is supplied.
static Namespace getNamespace(java.lang.String prefix, Element context)
           This will retrieve the Namespace for the supplied prefix in the specified context.
static Namespace getNamespace(java.lang.String prefix, java.lang.String uri)
           This will retrieve (if in existence) or create (if not) a Namespace for the supplied prefix and URI.
 java.lang.String getPrefix()
           This returns the prefix mapped to this Namespace.
 java.lang.String getURI()
           This returns the namespace URI for this Namespace.
 int hashCode()
           This returns a probably unique hash code for the Namespace.
 java.lang.String toString()
           This returns a String representation of this Namespace, suitable for use in debugging.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

NO_NAMESPACE

public static final Namespace NO_NAMESPACE
Define a Namespace for when not in a namespace

XML_NAMESPACE

public static final Namespace XML_NAMESPACE
Method Detail

getNamespace

public static Namespace getNamespace(java.lang.String prefix,
                                     java.lang.String uri)

This will retrieve (if in existence) or create (if not) a Namespace for the supplied prefix and URI.

Note: Because the prefix of an XML namespace is both non-normative and not an intrinsic part of the Namespace, it is possible that the supplied uri is already attached to a Namespace, and a different prefix is used by it. In this case, the existing Namespace is returned, with the different prefix, and the supplied prefix is ignored. This is perfectly legal XML namespace behavior.

Parameters:
prefix - String prefix to map to Namespace.
uri - String URI of new Namespace.
Returns:
Namespace - ready to use namespace.

getNamespace

public static Namespace getNamespace(java.lang.String uri)

This will retrieve (if in existence) or create (if not) a Namespace for the supplied URI, and make it usable as a default namespace, as no prefix is supplied.

Parameters:
uri - String URI of new Namespace.
Returns:
Namespace - ready to use namespace.

getNamespace

public static Namespace getNamespace(java.lang.String prefix,
                                     Element context)

This will retrieve the Namespace for the supplied prefix in the specified context. It returns null if the prefix is not mapped within that element.

Parameters:
prefix - String prefix of the existing Namespace.
context - Element against which this prefix is resolved.
Returns:
Namespace - ready to use namespace.

getPrefix

public java.lang.String getPrefix()

This returns the prefix mapped to this Namespace.

Returns:
String - prefix for this Namespace.

getURI

public java.lang.String getURI()

This returns the namespace URI for this Namespace.

Returns:
String - URI for this Namespace.

equals

public boolean equals(java.lang.Object ob)

This tests for equality - Two Namespaces are equal if and only if their URIs are byte-for-byte equals and their prefixes are equal.

Parameters:
ob - Object to compare to this Namespace.
Returns:
boolean - whether the supplied object is equal to this Namespace.
Overrides:
equals in class java.lang.Object

toString

public java.lang.String toString()

This returns a String representation of this Namespace, suitable for use in debugging.

Returns:
String - information about this instance.
Overrides:
toString in class java.lang.Object

hashCode

public int hashCode()

This returns a probably unique hash code for the Namespace. If two namespaces have the same URI, they are equal and have the same hash code, even if they have different prefixes.

Returns:
int - hash code for this Namespace.
Overrides:
hashCode in class java.lang.Object


Copyright © 2000 Brett McLaughlin, Jason Hunter. All Rights Reserved.