org.apache.xml.utils
Class QName

java.lang.Object
  extended by org.apache.xml.utils.QName
All Implemented Interfaces:
java.io.Serializable

public class QName
extends java.lang.Object
implements java.io.Serializable

Class to represent a qualified name: "The name of an internal XSLT object, specifically a named template (see [7 Named Templates]), a mode (see [6.7 Modes]), an attribute set (see [8.1.4 Named Attribute Sets]), a key (see [14.2 Keys]), a locale (see [14.3 Number Formatting]), a variable or a parameter (see [12 Variables and Parameters]) is specified as a QName. If it has a prefix, then the prefix is expanded into a URI reference using the namespace declarations in effect on the attribute in which the name occurs. The expanded name consisting of the local part of the name and the possibly null URI reference is used as the name of the object. The default namespace is not used for unprefixed names."

See Also:
Serialized Form

Field Summary
protected  java.lang.String _localName
          The local name.
protected  java.lang.String _namespaceURI
          The namespace URI.
protected  java.lang.String _prefix
          The namespace prefix.
private  int m_hashCode
          The cached hashcode, which is calculated at construction time.
static java.lang.String S_XMLNAMESPACEURI
          The XML namespace.
(package private) static long serialVersionUID
           
 
Constructor Summary
QName()
          Constructs an empty QName.
QName(java.lang.String localName)
          Construct a QName from a string, without namespace resolution.
QName(java.lang.String localName, boolean validate)
          Construct a QName from a string, without namespace resolution.
QName(java.lang.String qname, org.w3c.dom.Element namespaceContext, PrefixResolver resolver)
          Construct a QName from a string, resolving the prefix using the given namespace context and prefix resolver.
QName(java.lang.String qname, org.w3c.dom.Element namespaceContext, PrefixResolver resolver, boolean validate)
          Construct a QName from a string, resolving the prefix using the given namespace context and prefix resolver.
QName(java.lang.String qname, PrefixResolver resolver)
          Construct a QName from a string, resolving the prefix using the given namespace stack.
QName(java.lang.String qname, PrefixResolver resolver, boolean validate)
          Construct a QName from a string, resolving the prefix using the given namespace stack.
QName(java.lang.String qname, java.util.Stack namespaces)
          Construct a QName from a string, resolving the prefix using the given namespace stack.
QName(java.lang.String qname, java.util.Stack namespaces, boolean validate)
          Construct a QName from a string, resolving the prefix using the given namespace stack.
QName(java.lang.String namespaceURI, java.lang.String localName)
          Constructs a new QName with the specified namespace URI and local name.
QName(java.lang.String namespaceURI, java.lang.String localName, boolean validate)
          Constructs a new QName with the specified namespace URI and local name.
QName(java.lang.String namespaceURI, java.lang.String prefix, java.lang.String localName)
          Constructs a new QName with the specified namespace URI, prefix and local name.
QName(java.lang.String namespaceURI, java.lang.String prefix, java.lang.String localName, boolean validate)
          Constructs a new QName with the specified namespace URI, prefix and local name.
 
Method Summary
 boolean equals(java.lang.Object object)
          Override equals and agree that we're equal if the passed object is a QName and it matches the name of the arg.
 boolean equals(java.lang.String ns, java.lang.String localPart)
          Override equals and agree that we're equal if the passed object is a string and it matches the name of the arg.
 java.lang.String getLocalName()
          Returns the local part of the qualified name.
 java.lang.String getLocalPart()
          Get the local part of the qualified name.
static java.lang.String getLocalPart(java.lang.String qname)
          Returns the local name of the given node.
 java.lang.String getNamespace()
          Get the namespace of the qualified name.
 java.lang.String getNamespaceURI()
          Returns the namespace URI.
 java.lang.String getPrefix()
          Returns the namespace prefix.
static java.lang.String getPrefixFromXMLNSDecl(java.lang.String attRawName)
          This function tells if a raw attribute name is a xmlns attribute.
static java.lang.String getPrefixPart(java.lang.String qname)
          Returns the local name of the given node.
static QName getQNameFromString(java.lang.String name)
          Given a string, create and return a QName object
 int hashCode()
          Return the cached hashcode of the qualified name.
static boolean isXMLNSDecl(java.lang.String attRawName)
          This function tells if a raw attribute name is a xmlns attribute.
 java.lang.String toNamespacedString()
          Return the string representation of the qualified name using the the '{ns}foo' notation.
 java.lang.String toString()
          Return the string representation of the qualified name, using the prefix if available, or the '{ns}foo' notation if not.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

serialVersionUID

static final long serialVersionUID
See Also:
Constant Field Values

_localName

protected java.lang.String _localName
The local name.


_namespaceURI

protected java.lang.String _namespaceURI
The namespace URI.


_prefix

protected java.lang.String _prefix
The namespace prefix.


S_XMLNAMESPACEURI

public static final java.lang.String S_XMLNAMESPACEURI
The XML namespace.

See Also:
Constant Field Values

m_hashCode

private int m_hashCode
The cached hashcode, which is calculated at construction time.

Constructor Detail

QName

public QName()
Constructs an empty QName. 20001019: Try making this public, to support Serializable? -- JKESS


QName

public QName(java.lang.String namespaceURI,
             java.lang.String localName)
Constructs a new QName with the specified namespace URI and local name.

Parameters:
namespaceURI - The namespace URI if known, or null
localName - The local name

QName

public QName(java.lang.String namespaceURI,
             java.lang.String localName,
             boolean validate)
Constructs a new QName with the specified namespace URI and local name.

Parameters:
namespaceURI - The namespace URI if known, or null
localName - The local name
validate - If true the new QName will be validated and an IllegalArgumentException will be thrown if it is invalid.

QName

public QName(java.lang.String namespaceURI,
             java.lang.String prefix,
             java.lang.String localName)
Constructs a new QName with the specified namespace URI, prefix and local name.

Parameters:
namespaceURI - The namespace URI if known, or null
prefix - The namespace prefix is known, or null
localName - The local name

QName

public QName(java.lang.String namespaceURI,
             java.lang.String prefix,
             java.lang.String localName,
             boolean validate)
Constructs a new QName with the specified namespace URI, prefix and local name.

Parameters:
namespaceURI - The namespace URI if known, or null
prefix - The namespace prefix is known, or null
localName - The local name
validate - If true the new QName will be validated and an IllegalArgumentException will be thrown if it is invalid.

QName

public QName(java.lang.String localName)
Construct a QName from a string, without namespace resolution. Good for a few odd cases.

Parameters:
localName - Local part of qualified name

QName

public QName(java.lang.String localName,
             boolean validate)
Construct a QName from a string, without namespace resolution. Good for a few odd cases.

Parameters:
localName - Local part of qualified name
validate - If true the new QName will be validated and an IllegalArgumentException will be thrown if it is invalid.

QName

public QName(java.lang.String qname,
             java.util.Stack namespaces)
Construct a QName from a string, resolving the prefix using the given namespace stack. The default namespace is not resolved.

Parameters:
qname - Qualified name to resolve
namespaces - Namespace stack to use to resolve namespace

QName

public QName(java.lang.String qname,
             java.util.Stack namespaces,
             boolean validate)
Construct a QName from a string, resolving the prefix using the given namespace stack. The default namespace is not resolved.

Parameters:
qname - Qualified name to resolve
namespaces - Namespace stack to use to resolve namespace
validate - If true the new QName will be validated and an IllegalArgumentException will be thrown if it is invalid.

QName

public QName(java.lang.String qname,
             org.w3c.dom.Element namespaceContext,
             PrefixResolver resolver)
Construct a QName from a string, resolving the prefix using the given namespace context and prefix resolver. The default namespace is not resolved.

Parameters:
qname - Qualified name to resolve
namespaceContext - Namespace Context to use
resolver - Prefix resolver for this context

QName

public QName(java.lang.String qname,
             org.w3c.dom.Element namespaceContext,
             PrefixResolver resolver,
             boolean validate)
Construct a QName from a string, resolving the prefix using the given namespace context and prefix resolver. The default namespace is not resolved.

Parameters:
qname - Qualified name to resolve
namespaceContext - Namespace Context to use
resolver - Prefix resolver for this context
validate - If true the new QName will be validated and an IllegalArgumentException will be thrown if it is invalid.

QName

public QName(java.lang.String qname,
             PrefixResolver resolver)
Construct a QName from a string, resolving the prefix using the given namespace stack. The default namespace is not resolved.

Parameters:
qname - Qualified name to resolve
resolver - Prefix resolver for this context

QName

public QName(java.lang.String qname,
             PrefixResolver resolver,
             boolean validate)
Construct a QName from a string, resolving the prefix using the given namespace stack. The default namespace is not resolved.

Parameters:
qname - Qualified name to resolve
resolver - Prefix resolver for this context
validate - If true the new QName will be validated and an IllegalArgumentException will be thrown if it is invalid.
Method Detail

getNamespaceURI

public java.lang.String getNamespaceURI()
Returns the namespace URI. Returns null if the namespace URI is not known.

Returns:
The namespace URI, or null

getPrefix

public java.lang.String getPrefix()
Returns the namespace prefix. Returns null if the namespace prefix is not known.

Returns:
The namespace prefix, or null

getLocalName

public java.lang.String getLocalName()
Returns the local part of the qualified name.

Returns:
The local part of the qualified name

toString

public java.lang.String toString()
Return the string representation of the qualified name, using the prefix if available, or the '{ns}foo' notation if not. Performs string concatenation, so beware of performance issues.

Overrides:
toString in class java.lang.Object
Returns:
the string representation of the namespace

toNamespacedString

public java.lang.String toNamespacedString()
Return the string representation of the qualified name using the the '{ns}foo' notation. Performs string concatenation, so beware of performance issues.

Returns:
the string representation of the namespace

getNamespace

public java.lang.String getNamespace()
Get the namespace of the qualified name.

Returns:
the namespace URI of the qualified name

getLocalPart

public java.lang.String getLocalPart()
Get the local part of the qualified name.

Returns:
the local part of the qualified name

hashCode

public int hashCode()
Return the cached hashcode of the qualified name.

Overrides:
hashCode in class java.lang.Object
Returns:
the cached hashcode of the qualified name

equals

public boolean equals(java.lang.String ns,
                      java.lang.String localPart)
Override equals and agree that we're equal if the passed object is a string and it matches the name of the arg.

Parameters:
ns - Namespace URI to compare to
localPart - Local part of qualified name to compare to
Returns:
True if the local name and uri match

equals

public boolean equals(java.lang.Object object)
Override equals and agree that we're equal if the passed object is a QName and it matches the name of the arg.

Overrides:
equals in class java.lang.Object
Returns:
True if the qualified names are equal

getQNameFromString

public static QName getQNameFromString(java.lang.String name)
Given a string, create and return a QName object

Parameters:
name - String to use to create QName
Returns:
a QName object

isXMLNSDecl

public static boolean isXMLNSDecl(java.lang.String attRawName)
This function tells if a raw attribute name is a xmlns attribute.

Parameters:
attRawName - Raw name of attribute
Returns:
True if the attribute starts with or is equal to xmlns

getPrefixFromXMLNSDecl

public static java.lang.String getPrefixFromXMLNSDecl(java.lang.String attRawName)
This function tells if a raw attribute name is a xmlns attribute.

Parameters:
attRawName - Raw name of attribute
Returns:
Prefix of attribute

getLocalPart

public static java.lang.String getLocalPart(java.lang.String qname)
Returns the local name of the given node.

Parameters:
qname - Input name
Returns:
Local part of the name if prefixed, or the given name if not

getPrefixPart

public static java.lang.String getPrefixPart(java.lang.String qname)
Returns the local name of the given node.

Parameters:
qname - Input name
Returns:
Prefix of name or empty string if none there