groovy.xml

## Class QName

- java.lang.Object
- - groovy.xml.QName

- All Implemented Interfaces:
    Serializable

      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
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `QName(String localPart)` Constructor for the QName.
    `QName(String namespaceURI, String localPart)` Constructor for the QName.
    `QName(String namespaceURI, String localPart, String prefix)` Constructor for the QName.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equals(Object o)` Tests this QName for equality with another object.
    `String` | `getLocalPart()` Gets the Local part for this QName
    `String` | `getNamespaceURI()` Gets the Namespace URI for this QName
    `String` | `getPrefix()` Gets the Prefix for this QName
    `String` | `getQualifiedName()` Returns the fully qualified name of this QName
    `int` | `hashCode()` Returns a hash code value for this QName object.
    `boolean` | `matches(Object o)` Tests if this QName matches another object.
    `String` | `toString()` Returns a string representation of this QName
    `static QName` | `valueOf(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(String localPart)

      Constructor for the QName.
      Parameters:
        `localPart` - Local part of the QName

    - #### QName

          public QName(String namespaceURI,
               String localPart)

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

    - #### QName

          public QName(String namespaceURI,
               String localPart,
               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 String getNamespaceURI()

      Gets the Namespace URI for this QName
      Returns:
        Namespace URI

    - #### getLocalPart

          public String getLocalPart()

      Gets the Local part for this QName
      Returns:
        Local part

    - #### getPrefix

          public String getPrefix()

      Gets the Prefix for this QName
      Returns:
        Prefix

    - #### getQualifiedName

          public String getQualifiedName()

      Returns the fully qualified name of this QName
      Returns:
        a string representation of the QName

    - #### toString

          public String toString()

      Returns a string representation of this QName
      Overrides:
        `toString` in class `Object`
      Returns:
        a string representation of the QName

    - #### equals

          public boolean equals(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 `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(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(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:
        `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 `Object`
      Returns:
        a hash code value for this Qname object