FileDocCategorySizeDatePackage
QName.javaAPI DocApache Axis 1.47073Sat Apr 22 18:57:28 BST 2006javax.xml.namespace

QName

public class QName extends Object implements Serializable
QName class represents the value of a qualified name as specified in XML Schema Part2: Datatypes specification.

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.

version
1.1

Fields Summary
private static final String
emptyString
Comment/shared empty String.
private String
namespaceURI
private String
localPart
private String
prefix
Constructors Summary
public QName(String localPart)
Constructor for the QName.

param
localPart local part of the QName


                    
       
        this(emptyString, localPart, emptyString);
    
public QName(String namespaceURI, String localPart)
Constructor for the QName.

param
namespaceURI namespace URI for the QName
param
localPart local part of the QName.

        this(namespaceURI, localPart, emptyString);
    
public QName(String namespaceURI, String localPart, String prefix)
Constructor for the QName.

param
namespaceURI Namespace URI for the QName
param
localPart Local part of the QName.
param
prefix Prefix of the QName.

        this.namespaceURI = (namespaceURI == null)
                ? emptyString
                : namespaceURI.intern();
        if (localPart == null) {
            throw new IllegalArgumentException("invalid QName local part");
        } else {
            this.localPart = localPart.intern();
        }

        if (prefix == null) {
            throw new IllegalArgumentException("invalid QName prefix");
        } else {
            this.prefix = prefix.intern();
        }
    
Methods Summary
public booleanequals(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. Any class that extends QName is required to satisfy this equality contract.

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

param
obj the reference object with which to compare
return
true if the given object is identical to this QName: false otherwise.


        if (obj == this) {
            return true;
        }

        if (!(obj instanceof QName)) {
            return false;
        }

        if ((namespaceURI == ((QName) obj).namespaceURI)
                && (localPart == ((QName) obj).localPart)) {
            return true;
        }

        return false;
    
public java.lang.StringgetLocalPart()
Gets the local part for this QName.

return
the local part

        return localPart;
    
public java.lang.StringgetNamespaceURI()
Gets the namespace URI for this QName.

return
namespace URI

        return namespaceURI;
    
public java.lang.StringgetPrefix()
Gets the prefix for this QName.

return
the prefix

        return prefix;
    
public inthashCode()
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.

return
a hash code value for this Qname object

        return namespaceURI.hashCode() ^ localPart.hashCode();
    
private voidreadObject(java.io.ObjectInputStream in)
Ensure that deserialization properly interns the results.

param
in the ObjectInputStream to be read
throws
IOException if there was a failure in the object input stream
throws
ClassNotFoundException if the class of any sub-objects could not be found

        in.defaultReadObject();

        namespaceURI = namespaceURI.intern();
        localPart = localPart.intern();
        prefix = prefix.intern();
    
public java.lang.StringtoString()
Returns a string representation of this QName.

return
a string representation of the QName


        return ((namespaceURI == emptyString)
                ? localPart
                : '{" + namespaceURI + '}" + localPart);
    
public static javax.xml.namespace.QNamevalueOf(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.

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.

param
s the string to be parsed
throws
java.lang.IllegalArgumentException If the specified String cannot be parsed as a QName
return
QName corresponding to the given String


        if ((s == null) || s.equals("")) {
            throw new IllegalArgumentException("invalid QName literal");
        }

        if (s.charAt(0) == '{") {
            int i = s.indexOf('}");

            if (i == -1) {
                throw new IllegalArgumentException("invalid QName literal");
            }

            if (i == s.length() - 1) {
                throw new IllegalArgumentException("invalid QName literal");
            } else {
                return new QName(s.substring(1, i), s.substring(i + 1));
            }
        } else {
            return new QName(s);
        }