## net.sf.saxon.om
Class StructuredQName

    java.lang.Object
      net.sf.saxon.om.StructuredQName

All Implemented Interfaces:
  Serializable

    public class StructuredQName

extends Object
implements Serializable

This class provides an economical representation of a QName triple (prefix, URI, and localname). The value is stored internally as a character array containing the concatenation of URI, localname, and prefix (in that order) with two integers giving the start positions of the localname and prefix.

Instances of this class are immutable.

See Also:
  Serialized Form

Constructor Summary
`StructuredQName(NamePool pool, int nameCode)` Make a structuredQName from a Namepool nameCode
`StructuredQName(String prefix, String uri, String localName)` Construct a StructuredQName from a prefix, URI, and local name.

Method Summary
`boolean` `equals(Object other)` Compare two StructuredQName values for equality.
`static StructuredQName` `fromClarkName(String expandedName)` Make a structuredQName from a Clark name
`static StructuredQName` `fromLexicalQName(CharSequence lexicalName, boolean useDefault, NameChecker checker, NamespaceResolver resolver)` Make a structured QName from a lexical QName, using a supplied NamespaceResolver to resolve the prefix
`String` `getClarkName()` Get the expanded QName in Clark format, that is "{uri}local" if it is in a namespace, or just "local" otherwise.
`String` `getDisplayName()` Get the display name, that is the lexical QName in the form [prefix:]local-part
`String` `getLocalName()` Get the local part of the QName
`String` `getNamespaceURI()` Get the namespace URI of the QName.
`String` `getPrefix()` Get the prefix of the QName.
`int` `hashCode()` Get a hashcode to reflect the equals() method
`QName` `toJaxpQName()` Convert the StructuredQName to a javax.xml.namespace.QName
`String` `toString()` The toString() method displays the QName as a lexical QName, that is prefix:local

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### StructuredQName

    public StructuredQName(String prefix,
                           String uri,
                           String localName)

  Construct a StructuredQName from a prefix, URI, and local name. This method performs no validation.

  Parameters:
    `prefix` - The prefix. Use an empty string to represent the null prefix.
    `uri` - The namespace URI. Use an empty string or null to represent the no-namespace
    `localName` - The local part of the name

### StructuredQName

    public StructuredQName(NamePool pool,
                           int nameCode)

  Make a structuredQName from a Namepool nameCode

  Parameters:
    `pool` - the NamePool
    `nameCode` - a name code that has been registered in the NamePool

Method Detail

### fromClarkName

    public static StructuredQName fromClarkName(String expandedName)

  Make a structuredQName from a Clark name

  Parameters:
    `expandedName` - the name in Clark notation "{uri}local" if in a namespace, or "local" otherwise. The format "{}local" is also accepted for a name in no namespace.
  Returns:
    the constructed StructuredQName
  Throws:
    `IllegalArgumentException` - if the Clark name is malformed

### fromLexicalQName

    public static StructuredQName fromLexicalQName(CharSequence lexicalName,
                                                   boolean useDefault,
                                                   NameChecker checker,
                                                   NamespaceResolver resolver)
                                            throws XPathException

  Make a structured QName from a lexical QName, using a supplied NamespaceResolver to resolve the prefix

  Parameters:
    `lexicalName` - the QName as a lexical name (prefix:local)
    `useDefault` - set to true if an absent prefix implies use of the default namespace; set to false if an absent prefix implies no namespace
    `checker` - NameChecker to be used to check conformance against XML 1.0 or 1.1 lexical rules
    `resolver` - NamespaceResolver used to look up a URI for the prefix
  Returns:
    the StructuredQName object corresponding to this lexical QName
  Throws:
    `XPathException` - if the namespace prefix is not in scope or if the value is lexically invalid. Error code FONS0004 is set if the namespace prefix has not been declared; error code FOCA0002 is set if the name is lexically invalid.

### getPrefix

    public String getPrefix()

  Get the prefix of the QName.

  Returns:
    the prefix. Returns the empty string if the name is unprefixed.

### getNamespaceURI

    public String getNamespaceURI()

  Get the namespace URI of the QName.

  Returns:
    the URI. Returns the empty string to represent the no-namespace

### getLocalName

    public String getLocalName()

  Get the local part of the QName

  Returns:
    the local part of the QName

### getDisplayName

    public String getDisplayName()

  Get the display name, that is the lexical QName in the form [prefix:]local-part

  Returns:
    the lexical QName

### getClarkName

    public String getClarkName()

  Get the expanded QName in Clark format, that is "{uri}local" if it is in a namespace, or just "local" otherwise.

  Returns:
    the QName in Clark notation

### toString

    public String toString()

  The toString() method displays the QName as a lexical QName, that is prefix:local

  Overrides:
    `toString` in class `Object`
  Returns:
    the lexical QName

### equals

    public boolean equals(Object other)

  Compare two StructuredQName values for equality. This compares the URI and local name parts, excluding any prefix

  Overrides:
    `equals` in class `Object`

### hashCode

    public int hashCode()

  Get a hashcode to reflect the equals() method

  Overrides:
    `hashCode` in class `Object`
  Returns:
    a hashcode based on the URI and local part only, ignoring the prefix.

### toJaxpQName

    public QName toJaxpQName()

  Convert the StructuredQName to a javax.xml.namespace.QName

  Returns:
    an object of class javax.xml.namespace.QName representing this qualified name

Copyright (c) 2004-2010 Saxonica Limited. All rights reserved.