javax.xml.namespace
Class QName

java.lang.Object
  extended by javax.xml.namespace.QName
All Implemented Interfaces:
java.io.Serializable

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

QName class represents the value of a qualified name as specified in XML Schema Part2: Datatypes specification.

The WSDL4J version of QName has been copied and updated for Apache Woden to match the Javadoc of the QName class defined for Java 5.0 at:
http://java.sun.com/j2se/1.5.0/docs/api/javax/xml/namespace/QName.html

The value of a QName contains a namespaceURI, a localPart and a prefix. The localPart provides the local part of the qualified name. The namespaceURI is a URI reference identifying the namespace. The prefix corresponds to a namespace declaration 'xmlns:somePrefix' in the underlying xml.

Note: Some of this impl code was taken from Axis.

The constructors throw an IllegalArgumentException if the 'localPart' argument is null, but if it is the empty string ("") they just create the QName object with the localPart set to the empty string. The 'prefix' property defaults to the empty string for the two constructors that do not take a 'prefix' argument. The constructor that does take a 'prefix' argument will throw an IllegalArgumentException if a null value is used (i.e. the absence of any 'prefix' must be specified explicitly as the empty string "").

The valueOf method behaves like the constructors in that a null value will throw an IllegalArgumentException, but an empty string "" value will be treated as a localPart rather than an IllegalArgumentException to retain compatibility with v1.0 QName.

To support the deserialization of objects that were serialized with an older version of QName (i.e. without a 'prefix' field), the readObject method will check if the 'prefix' value is null after default deserialization and if so, change it to the empty string.

Author:
axis-dev,
Matthew J. Duftler (duftler@us.ibm.com),
John Kaputin (jkaputin@apache.org)
See Also:
Serialized Form

Constructor Summary
QName(java.lang.String localPart)
          Constructor for the QName.
QName(java.lang.String namespaceURI, java.lang.String localPart)
          Constructor for the QName.
QName(java.lang.String namespaceURI, java.lang.String localPart, java.lang.String prefix)
          Constructor for the QName.
 
Method Summary
 boolean equals(java.lang.Object obj)
          Tests this QName for equality with another object.
 java.lang.String getLocalPart()
          Gets the Local part for this QName
 java.lang.String getNamespaceURI()
          Gets the Namespace URI for this QName
 java.lang.String getPrefix()
          Gets the prefix for this QName
 int hashCode()
          Returns a hash code value for this QName object.
 java.lang.String toString()
          Returns a string representation of this QName
static QName valueOf(java.lang.String s)
          Returns a QName holding the value of the specified String.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

QName

public QName(java.lang.String localPart)
Constructor for the QName. Takes a localPart and sets the namespace and prefix to the empty string "".

Parameters:
localPart - Local part of the QName
Throws:
java.lang.IllegalArgumentException - if localPart is null.

QName

public QName(java.lang.String namespaceURI,
             java.lang.String localPart)
Constructor for the QName. Takes a localPart and a namespace and sets the prefix to the empty string "". If namespace is null, it defaults to the empty string.

Parameters:
namespaceURI - Namespace URI for the QName
localPart - Local part of the QName.
Throws:
java.lang.IllegalArgumentException - if localPart is null.

QName

public QName(java.lang.String namespaceURI,
             java.lang.String localPart,
             java.lang.String prefix)
Constructor for the QName. Takes a localPart, a namespace and a prefix. If the namespace is null, it defaults to the empty string "". The localPart and prefix cannot be null. If they are, an IllegalArgumentException is thrown. If there is no prefix, an empty string "" must be specified.

Parameters:
namespaceURI - Namespace URI for the QName
localPart - Local part of the QName.
prefix - the xmlns-declared prefix for this namespaceURI
Throws:
java.lang.IllegalArgumentException - if localPart or prefix is null.
Method Detail

getNamespaceURI

public java.lang.String getNamespaceURI()
Gets the Namespace URI for this QName

Returns:
Namespace URI

getLocalPart

public java.lang.String getLocalPart()
Gets the Local part for this QName

Returns:
Local part

getPrefix

public java.lang.String getPrefix()
Gets the prefix for this QName

Returns:
prefix of this QName

toString

public java.lang.String toString()
Returns a string representation of this QName

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

equals

public final boolean equals(java.lang.Object obj)
Tests this QName for equality with another object.

If the given object is not a QName or is null then this method returns false.

For two QNames to be considered equal requires that both localPart and namespaceURI must be equal. This method uses String.equals to check equality of localPart and namespaceURI. The prefix is NOT used to determine equality. Any class that extends QName is required to satisfy this equality contract.

This method satisfies the general contract of the Object.equals method.

Overrides:
equals in class java.lang.Object
Parameters:
obj - the reference object with which to compare
Returns:
true if the given object is identical to this QName: false otherwise.

valueOf

public static QName valueOf(java.lang.String s)
Returns a QName holding the value of the specified String.

The string must be in the form returned by the QName.toString() method, i.e. "{namespaceURI}localPart", with the "{namespaceURI}" part being optional. If the Namespace URI .equals(""), only the local part should be provided. An empty string "" value will be treated as the localPart.

The prefix value CANNOT be represented in the String and will be set to "".

This method doesn't do a full validation of the resulting QName. In particular, it doesn't check that the resulting namespace URI is a legal URI (per RFC 2396 and RFC 2732), nor that the resulting local part is a legal NCName per the XML Namespaces specification.

Parameters:
s - the string to be parsed
Returns:
QName corresponding to the given String
Throws:
java.lang.IllegalArgumentException - If the specified String cannot be parsed as a QName

hashCode

public final int hashCode()
Returns a hash code value for this QName object. The hash code is based on both the localPart and namespaceURI parts of the QName. This method satisfies the general contract of the Object.hashCode method.

Overrides:
hashCode in class java.lang.Object
Returns:
a hash code value for this Qname object


Copyright © 2007. All Rights Reserved.