groovy.xml

## Class QName

- java.lang.Object
- - groovy.xml.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 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.

See Also:
  Serialized Form

### Constructor Summary

Constructors
Constructor and Description
`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

All Methods Static Methods Instance Methods Concrete Methods
`boolean` `equals(java.lang.Object o)` 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
`java.lang.String` `getQualifiedName()` Returns the fully qualified name of this QName
`int` `hashCode()` Returns a hash code value for this QName object.
`boolean` `matches(java.lang.Object o)` Tests if this QName matches another 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.

Parameters:
  `localPart` - Local part of the QName

#### QName

    public QName(java.lang.String namespaceURI,
                 java.lang.String localPart)

Constructor for the QName.

Parameters:
  `namespaceURI` - Namespace URI for the QName
  `localPart` - Local part of the QName.

#### QName

    public QName(java.lang.String namespaceURI,
                 java.lang.String localPart,
                 java.lang.String prefix)

Constructor for the QName.

Parameters:
  `namespaceURI` - Namespace URI for the QName
  `localPart` - Local part of the QName.
  `prefix` - Prefix of the QName.

### 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

#### getQualifiedName

    public java.lang.String getQualifiedName()

Returns the fully qualified name of this QName

Returns:
  a string representation of the 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 boolean equals(java.lang.Object o)

Tests this QName for equality with another object.

If the given object is not a QName or String equivalent 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. If the supplied object is a String, then it is split in two on the last colon and the first half is compared against the prefix || namespaceURI and the second half is compared against the localPart i.e. assert new QName("namespace","localPart").equals("namespace:localPart") Intended Usage: for gpath accessors, e.g. root.'urn:mynamespace:node' Warning: this equivalence is not commutative, i.e. qname.equals(string) may be true/false but string.equals(qname) is always false

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

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

#### matches

    public boolean matches(java.lang.Object o)

Tests if this QName matches another object.

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

For two QNames to be considered matching requires that both localPart and namespaceURI must be equal or one of them is a wildcard. If the supplied object is a String, then it is split in two on the last colon and the first half is matched against the prefix || namespaceURI and the second half is matched against the localPart

Parameters:
  `o` - the reference object with which to compare
Returns:
  `true` if the given object matches 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.

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 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