net.sf.saxon.om

Class StructuredQName

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.

Constructor Summary
StructuredQName(String prefix, String uri, String localName)
Construct a StructuredQName from a prefix, URI, and local name.
StructuredQName(NamePool pool, int nameCode)
Make a structuredQName from a Namepool nameCode
Method Summary
booleanequals(Object other)
Compare two StructuredQName values for equality.
static StructuredQNamefromClarkName(String expandedName)
Make a structuredQName from a Clark name
static StructuredQNamefromLexicalQName(CharSequence lexicalName, boolean useDefault, NameChecker checker, NamespaceResolver resolver)
Make a structured QName from a lexical QName, using a supplied NamespaceResolver to resolve the prefix
StringgetClarkName()
Get the expanded QName in Clark format, that is "{uri}local" if it is in a namespace, or just "local" otherwise.
StringgetDisplayName()
Get the display name, that is the lexical QName in the form [prefix:]local-part
StringgetLocalName()
Get the local part of the QName
StringgetNamespaceURI()
Get the namespace URI of the QName.
StringgetPrefix()
Get the prefix of the QName.
inthashCode()
Get a hashcode to reflect the equals() method
QNametoJaxpQName()
Convert the StructuredQName to a javax.xml.namespace.QName
StringtoString()
The toString() method displays the QName as a lexical QName, that is prefix:local

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

equals

public boolean equals(Object other)
Compare two StructuredQName values for equality. This compares the URI and local name parts, excluding any prefix

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

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

getDisplayName

public String getDisplayName()
Get the display name, that is the lexical QName in the form [prefix:]local-part

Returns: the lexical QName

getLocalName

public String getLocalName()
Get the local part of the QName

Returns: the local part of the QName

getNamespaceURI

public String getNamespaceURI()
Get the namespace URI of the QName.

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

getPrefix

public String getPrefix()
Get the prefix of the QName.

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

hashCode

public int hashCode()
Get a hashcode to reflect the equals() method

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

toString

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

Returns: the lexical QName