## net.sf.saxon.value
Class QNameValue

    java.lang.Object
      net.sf.saxon.value.Value
          net.sf.saxon.value.AtomicValue
              net.sf.saxon.value.QNameValue

All Implemented Interfaces:
  Expression, Item, java.io.Serializable, ValueRepresentation

Direct Known Subclasses:
  NotationValue

public class QNameValue
extends AtomicValue

A QName value. This implements the so-called "triples proposal", in which the prefix is retained as part of the value. The prefix is not used in any operation on a QName other than conversion of the QName to a string.

See Also:
  Serialized Form

Field Summary

Fields inherited from interface net.sf.saxon.expr.Expression
`EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD`

Constructor Summary
`QNameValue(NamePool namePool, int nameCode)` Constructor
`QNameValue(java.lang.String prefix, java.lang.String uri, java.lang.String localName)` Constructor.

Method Summary
`AtomicValue` `convertPrimitive(BuiltInAtomicType requiredType, boolean validate)` Convert to target data type
`java.lang.Object` `convertToJava(java.lang.Class target, XPathContext context)` Convert to Java object (for passing to external functions)
`boolean` `equals(java.lang.Object other)` Determine if two QName values are equal.
`java.lang.String` `getClarkName()` Get the name in Clark notation, that is {uri}local
`AtomicValue` `getComponent(int part)` Get a component.
`ItemType` `getItemType()` Return the type of the expression
`java.lang.String` `getLocalName()` Get the local part
`java.lang.String` `getNamespaceURI()` Get the namespace part (null means no namespace)
`java.lang.String` `getPrefix()` Get the prefix
`java.lang.String` `getStringValue()` Get the string value as a String.
`int` `hashCode()` Return a hash code to support the equals() function
`java.lang.Object` `makeQName()` Temporary method to construct a javax.xml.namespace.QName without actually mentioning it by name
`java.lang.String` `toString()` The toString() method returns the name in the form QName("uri", "local")

Methods inherited from class net.sf.saxon.value.AtomicValue
`checkPermittedContents, convert, convert, display, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getImplementationMethod, getLength, getPrimitiveValue, getStringValueCS, getTypedValue, hasBuiltInType, iterate, process`

Methods inherited from class net.sf.saxon.value.Value
`analyze, asItem, asValue, collapseWhitespace, convert, convertJavaObjectToXPath, getDependencies, getIterator, getParentExpression, getSpecialProperties, itemAt, iterateSubExpressions, makeQNameValue, normalizeWhitespace, promote, simplify, stringToNumber, trimWhitespace`

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

Constructor Detail

### QNameValue

    public QNameValue(NamePool namePool,
                      int nameCode)

  Constructor

Parameters:
  `namePool` - The name pool containing the specified name code
  `nameCode` - The name code identifying this name in the name pool

### QNameValue

    public QNameValue(java.lang.String prefix,
                      java.lang.String uri,
                      java.lang.String localName)
               throws XPathException

  Constructor. This constructor validates that the local part is a valid NCName.

Parameters:
  `prefix` - The prefix part of the QName (not used in comparisons). Use null or "" to represent the default prefix.
  `uri` - The namespace part of the QName. Use null or "" to represent the null namespace.
  `localName` - The local part of the QName

Method Detail

### getStringValue

    public java.lang.String getStringValue()

  Get the string value as a String. Returns the QName as a lexical QName, retaining the original prefix if available.

  Specified by:
    `getStringValue` in interface `Item`
  Specified by:
    `getStringValue` in class `AtomicValue`

### getClarkName

    public java.lang.String getClarkName()

  Get the name in Clark notation, that is {uri}local

### getLocalName

    public java.lang.String getLocalName()

  Get the local part

### getNamespaceURI

    public java.lang.String getNamespaceURI()

  Get the namespace part (null means no namespace)

### getPrefix

    public java.lang.String getPrefix()

  Get the prefix

### getComponent

    public AtomicValue getComponent(int part)

  Get a component. Returns a zero-length string if the namespace-uri component is requested and is not present.

  Overrides:
    `getComponent` in class `AtomicValue`
  Parameters:
    `part` - either Component.LOCALNAME or Component.NAMESPACE indicating which component of the value is required
  Returns:
    either the local name or the namespace URI, in each case as a StringValue

### convertPrimitive

    public AtomicValue convertPrimitive(BuiltInAtomicType requiredType,
                                        boolean validate)

  Convert to target data type

  Specified by:
    `convertPrimitive` in class `AtomicValue`
  Parameters:
    `requiredType` - an integer identifying the required atomic type
    `validate` - true if validation is required. If set to false, the caller guarantees that the value is valid for the target data type, and that further validation is therefore not required. Note that a validation failure may be reported even if validation was not requested.
  Returns:
    an AtomicValue, a value of the required type; or an ErrorValue

### getItemType

    public ItemType getItemType()

  Return the type of the expression

  Specified by:
    `getItemType` in interface `Expression`
  Overrides:
    `getItemType` in class `Value`
  Returns:
    Type.QNAME (always)

### equals

    public boolean equals(java.lang.Object other)

  Determine if two QName values are equal. This comparison ignores the prefix part of the value.

  Overrides:
    `equals` in class `Value`
  Throws:
    `java.lang.ClassCastException` - if they are not comparable
    `java.lang.IllegalStateException` - if the two QNames are in different name pools

### hashCode

    public int hashCode()

  Description copied from class: `Value`
  Return a hash code to support the equals() function

  Overrides:
    `hashCode` in class `Value`

### convertToJava

    public java.lang.Object convertToJava(java.lang.Class target,
                                          XPathContext context)
                                   throws XPathException

  Convert to Java object (for passing to external functions)

  Overrides:
    `convertToJava` in class `Value`
  Throws:
    `XPathException`

### toString

    public java.lang.String toString()

  The toString() method returns the name in the form QName("uri", "local")

  Overrides:
    `toString` in class `AtomicValue`
  Returns:
    the name in in the form QName("uri", "local")

### makeQName

    public java.lang.Object makeQName()

  Temporary method to construct a javax.xml.namespace.QName without actually mentioning it by name