## net.sf.saxon.s9api
Class QName

    java.lang.Object
      net.sf.saxon.s9api.QName

    public class QName

extends java.lang.Object

The QName class represents an instance of xs:QName, as defined in the XPath 2.0 data model. Internally, it has three components, a namespace URI, a local name, and a prefix. The prefix is intended to be used only when converting the value back to a string.

This class also defines a number of QName-valued constants relating to built-in types in XML Schema

A QName is immutable.

Note that a QName is not itself an `XdmItem` in this model; however it can be wrapped in an XdmItem.

Field Summary
`static QName` `XS_ANY_ATOMIC_TYPE` QName denoting the schema type xs:anyAtomicType
`static QName` `XS_ANY_URI` QName denoting the schema type xs:anyURI
`static QName` `XS_BASE64_BINARY` QName denoting the schema type xs:base64Binary
`static QName` `XS_BOOLEAN` QName denoting the schema type xs:boolean
`static QName` `XS_BYTE` QName denoting the schema type xs:byte
`static QName` `XS_DATE` QName denoting the schema type xs:date
`static QName` `XS_DATE_TIME` QName denoting the schema type xs:dateTime
`static QName` `XS_DAY_TIME_DURATION` QName denoting the schema type xs:dayTimeDuration
`static QName` `XS_DECIMAL` QName denoting the schema type xs:decimal
`static QName` `XS_DOUBLE` QName denoting the schema type xs:double
`static QName` `XS_DURATION` QName denoting the schema type xs:duration
`static QName` `XS_ENTITIES` QName denoting the schema type xs:ENTITIES
`static QName` `XS_ENTITY` QName denoting the schema type xs:ENTITY
`static QName` `XS_FLOAT` QName denoting the schema type xs:float
`static QName` `XS_G_DAY` QName denoting the schema type xs:gDay
`static QName` `XS_G_MONTH` QName denoting the schema type xs:gMonth
`static QName` `XS_G_MONTH_DAY` QName denoting the schema type xs:gMonthDay
`static QName` `XS_G_YEAR` QName denoting the schema type xs:gYear
`static QName` `XS_G_YEAR_MONTH` QName denoting the schema type xs:gYearMonth
`static QName` `XS_HEX_BINARY` QName denoting the schema type xs:hexBinary
`static QName` `XS_ID` QName denoting the schema type xs:ID
`static QName` `XS_IDREF` QName denoting the schema type xs:IDREF
`static QName` `XS_IDREFS` QName denoting the schema type xs:IDREFS
`static QName` `XS_INT` QName denoting the schema type xs:int
`static QName` `XS_INTEGER` QName denoting the schema type xs:integer
`static QName` `XS_LANGUAGE` QName denoting the schema type xs:language
`static QName` `XS_LONG` QName denoting the schema type xs:long
`static QName` `XS_NAME` QName denoting the schema type xs:Name
`static QName` `XS_NCNAME` QName denoting the schema type xs:NCName
`static QName` `XS_NEGATIVE_INTEGER` QName denoting the schema type xs:negativeInteger
`static QName` `XS_NMTOKEN` QName denoting the schema type xs:NMTOKEN
`static QName` `XS_NMTOKENS` QName denoting the schema type xs:NMTOKENS
`static QName` `XS_NON_NEGATIVE_INTEGER` QName denoting the schema type xs:nonNegativeInteger
`static QName` `XS_NON_POSITIVE_INTEGER` QName denoting the schema type xs:nonPositiveInteger
`static QName` `XS_NORMALIZED_STRING` QName denoting the schema type xs:normalizedString
`static QName` `XS_NOTATION` QName denoting the schema type xs:NOTATION
`static QName` `XS_POSITIVE_INTEGER` QName denoting the schema type xs:positiveInteger
`static QName` `XS_QNAME` QName denoting the schema type xs:QName
`static QName` `XS_SHORT` QName denoting the schema type xs:short
`static QName` `XS_STRING` QName denoting the schema type xs:string
`static QName` `XS_TIME` QName denoting the schema type xs:time
`static QName` `XS_TOKEN` QName denoting the schema type xs:token
`static QName` `XS_UNSIGNED_BYTE` QName denoting the schema type xs:unsignedByte
`static QName` `XS_UNSIGNED_INT` QName denoting the schema type xs:unsignedInt
`static QName` `XS_UNSIGNED_LONG` QName denoting the schema type xs:unsignedLong
`static QName` `XS_UNSIGNED_SHORT` QName denoting the schema type xs:unsignedShort
`static QName` `XS_UNTYPED` QName denoting the schema type xs:untyped
`static QName` `XS_UNTYPED_ATOMIC` QName denoting the schema type xs:untypedAtomic
`static QName` `XS_YEAR_MONTH_DURATION` QName denoting the schema type xs:yearMonthDuration

Constructor Summary
`` `QName(javax.xml.namespace.QName qName)` Construct a QName from a JAXP QName object
`` `QName(java.lang.String localName)` Construct a QName from a localName alone.
`` `QName(java.lang.String uri, java.lang.String lexical)` Construct a QName using a namespace URI and a lexical representation.
`` `QName(java.lang.String prefix, java.lang.String uri, java.lang.String localName)` Construct a QName using a namespace prefix, a namespace URI, and a local name (in that order).
`` `QName(java.lang.String lexicalQName, XdmNode element)` Construct a QName from a lexical QName, supplying an element node whose in-scope namespaces are to be used to resolve any prefix contained in the QName.
`protected` `QName(StructuredQName sqName)` Protected constructor accepting a StructuredQName

Method Summary
`boolean` `equals(java.lang.Object other)` Test whether two QNames are equal.
`static QName` `fromClarkName(java.lang.String expandedName)` Factory method to construct a QName from a string containing the expanded QName in Clark notation, that is, `{uri}local` The prefix part of the `QName` will be set to an empty string.
`java.lang.String` `getClarkName()` The expanded name, as a string using the notation devised by James Clark.
`java.lang.String` `getLocalName()` The local part of the QName
`java.lang.String` `getNamespaceURI()` The namespace URI of the QName.
`java.lang.String` `getPrefix()` Get the prefix of the QName.
`protected StructuredQName` `getStructuredQName()` Get the underlying StructuredQName
`int` `hashCode()` Get a hash code for the QName, to support equality matching.
`boolean` `isValid(Processor processor)` Validate the QName against the XML 1.0 or XML 1.1 rules for valid names.
`java.lang.String` `toString()` Convert the value to a string.

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

Field Detail

### XS_STRING

    public static final QName XS_STRING

  QName denoting the schema type xs:string

### XS_BOOLEAN

    public static final QName XS_BOOLEAN

  QName denoting the schema type xs:boolean

### XS_DECIMAL

    public static final QName XS_DECIMAL

  QName denoting the schema type xs:decimal

### XS_FLOAT

    public static final QName XS_FLOAT

  QName denoting the schema type xs:float

### XS_DOUBLE

    public static final QName XS_DOUBLE

  QName denoting the schema type xs:double

### XS_DURATION

    public static final QName XS_DURATION

  QName denoting the schema type xs:duration

### XS_DATE_TIME

    public static final QName XS_DATE_TIME

  QName denoting the schema type xs:dateTime

### XS_TIME

    public static final QName XS_TIME

  QName denoting the schema type xs:time

### XS_DATE

    public static final QName XS_DATE

  QName denoting the schema type xs:date

### XS_G_YEAR_MONTH

    public static final QName XS_G_YEAR_MONTH

  QName denoting the schema type xs:gYearMonth

### XS_G_YEAR

    public static final QName XS_G_YEAR

  QName denoting the schema type xs:gYear

### XS_G_MONTH_DAY

    public static final QName XS_G_MONTH_DAY

  QName denoting the schema type xs:gMonthDay

### XS_G_DAY

    public static final QName XS_G_DAY

  QName denoting the schema type xs:gDay

### XS_G_MONTH

    public static final QName XS_G_MONTH

  QName denoting the schema type xs:gMonth

### XS_HEX_BINARY

    public static final QName XS_HEX_BINARY

  QName denoting the schema type xs:hexBinary

### XS_BASE64_BINARY

    public static final QName XS_BASE64_BINARY

  QName denoting the schema type xs:base64Binary

### XS_ANY_URI

    public static final QName XS_ANY_URI

  QName denoting the schema type xs:anyURI

### XS_QNAME

    public static final QName XS_QNAME

  QName denoting the schema type xs:QName

### XS_NOTATION

    public static final QName XS_NOTATION

  QName denoting the schema type xs:NOTATION

### XS_INTEGER

    public static final QName XS_INTEGER

  QName denoting the schema type xs:integer

### XS_NON_POSITIVE_INTEGER

    public static final QName XS_NON_POSITIVE_INTEGER

  QName denoting the schema type xs:nonPositiveInteger

### XS_NEGATIVE_INTEGER

    public static final QName XS_NEGATIVE_INTEGER

  QName denoting the schema type xs:negativeInteger

### XS_LONG

    public static final QName XS_LONG

  QName denoting the schema type xs:long

### XS_INT

    public static final QName XS_INT

  QName denoting the schema type xs:int

### XS_SHORT

    public static final QName XS_SHORT

  QName denoting the schema type xs:short

### XS_BYTE

    public static final QName XS_BYTE

  QName denoting the schema type xs:byte

### XS_NON_NEGATIVE_INTEGER

    public static final QName XS_NON_NEGATIVE_INTEGER

  QName denoting the schema type xs:nonNegativeInteger

### XS_POSITIVE_INTEGER

    public static final QName XS_POSITIVE_INTEGER

  QName denoting the schema type xs:positiveInteger

### XS_UNSIGNED_LONG

    public static final QName XS_UNSIGNED_LONG

  QName denoting the schema type xs:unsignedLong

### XS_UNSIGNED_INT

    public static final QName XS_UNSIGNED_INT

  QName denoting the schema type xs:unsignedInt

### XS_UNSIGNED_SHORT

    public static final QName XS_UNSIGNED_SHORT

  QName denoting the schema type xs:unsignedShort

### XS_UNSIGNED_BYTE

    public static final QName XS_UNSIGNED_BYTE

  QName denoting the schema type xs:unsignedByte

### XS_NORMALIZED_STRING

    public static final QName XS_NORMALIZED_STRING

  QName denoting the schema type xs:normalizedString

### XS_TOKEN

    public static final QName XS_TOKEN

  QName denoting the schema type xs:token

### XS_LANGUAGE

    public static final QName XS_LANGUAGE

  QName denoting the schema type xs:language

### XS_NMTOKEN

    public static final QName XS_NMTOKEN

  QName denoting the schema type xs:NMTOKEN

### XS_NMTOKENS

    public static final QName XS_NMTOKENS

  QName denoting the schema type xs:NMTOKENS

### XS_NAME

    public static final QName XS_NAME

  QName denoting the schema type xs:Name

### XS_NCNAME

    public static final QName XS_NCNAME

  QName denoting the schema type xs:NCName

### XS_ID

    public static final QName XS_ID

  QName denoting the schema type xs:ID

### XS_IDREF

    public static final QName XS_IDREF

  QName denoting the schema type xs:IDREF

### XS_IDREFS

    public static final QName XS_IDREFS

  QName denoting the schema type xs:IDREFS

### XS_ENTITY

    public static final QName XS_ENTITY

  QName denoting the schema type xs:ENTITY

### XS_ENTITIES

    public static final QName XS_ENTITIES

  QName denoting the schema type xs:ENTITIES

### XS_UNTYPED

    public static final QName XS_UNTYPED

  QName denoting the schema type xs:untyped

### XS_UNTYPED_ATOMIC

    public static final QName XS_UNTYPED_ATOMIC

  QName denoting the schema type xs:untypedAtomic

### XS_ANY_ATOMIC_TYPE

    public static final QName XS_ANY_ATOMIC_TYPE

  QName denoting the schema type xs:anyAtomicType

### XS_YEAR_MONTH_DURATION

    public static final QName XS_YEAR_MONTH_DURATION

  QName denoting the schema type xs:yearMonthDuration

### XS_DAY_TIME_DURATION

    public static final QName XS_DAY_TIME_DURATION

  QName denoting the schema type xs:dayTimeDuration

Constructor Detail

### QName

    public QName(java.lang.String prefix,
                 java.lang.String uri,
                 java.lang.String localName)

  Construct a QName using a namespace prefix, a namespace URI, and a local name (in that order).

  This constructor does not check that the components of the QName are lexically valid.

  Parameters:
    `prefix` - The prefix of the name. Use either the string "" or null for names that have no prefix (that is, they are in the default namespace)
    `uri` - The namespace URI. Use either the string "" or null for names that are not in any namespace.
    `localName` - The local part of the name

### QName

    public QName(java.lang.String uri,
                 java.lang.String lexical)

  Construct a QName using a namespace URI and a lexical representation. The lexical representation may be a local name on its own, or it may be in the form prefix:local-name.

  This constructor does not check that the components of the QName are lexically valid.

  Parameters:
    `uri` - The namespace URI. Use either the string "" or null for names that are not in any namespace.
    `lexical` - Either the local part of the name, or the prefix and local part in the format prefix:local

### QName

    public QName(java.lang.String localName)

  Construct a QName from a localName alone. The localName must not contain a colon. The resulting QName represents a name in no namespace (which therefore has no prefix)

  Parameters:
    `localName` - The local name. This must be a valid NCName, in particular it must contain no colon

### QName

    public QName(java.lang.String lexicalQName,
                 XdmNode element)

  Construct a QName from a lexical QName, supplying an element node whose in-scope namespaces are to be used to resolve any prefix contained in the QName.

  This constructor checks that the components of the QName are lexically valid.

  If the lexical QName has no prefix, the name is considered to be in the default namespace, as defined by `xmlns="..."`.

  If the prefix of the lexical QName is not in scope, returns null.

  Parameters:
    `lexicalQName` - The lexical QName, in the form `prefix:local` or simply `local`.
    `element` - The element node whose in-scope namespaces are to be used to resolve the prefix part of the lexical QName.
  Throws:
    `java.lang.IllegalArgumentException` - If the prefix of the lexical QName is not in scope or if the lexical QName is invalid (for example, if it contains invalid characters)

### QName

    public QName(javax.xml.namespace.QName qName)

  Construct a QName from a JAXP QName object

  Parameters:
    `qName` - the JAXP QName object

### QName

    protected QName(StructuredQName sqName)

  Protected constructor accepting a StructuredQName

  Parameters:
    `sqName` - the StructuredQName

Method Detail

### fromClarkName

    public static QName fromClarkName(java.lang.String expandedName)

  Factory method to construct a QName from a string containing the expanded QName in Clark notation, that is, `{uri}local`

  The prefix part of the `QName` will be set to an empty string.

  Parameters:
    `expandedName` - The URI in Clark notation: `{uri}local` if the name is in a namespace, or simply `local` if not.
  Returns:
    the QName corresponding to the supplied name in Clark notation. This will always have an empty prefix.

### isValid

    public boolean isValid(Processor processor)

  Validate the QName against the XML 1.0 or XML 1.1 rules for valid names.

  Parameters:
    `processor` - The Processor in which the name is to be validated. This determines whether the XML 1.0 or XML 1.1 rules for forming names are used.
  Returns:
    true if the name is valid, false if not

### getPrefix

    public java.lang.String getPrefix()

  Get the prefix of the QName. This plays no role in operations such as comparison of QNames for equality, but is retained (as specified in XPath) so that a string representation can be reconstructed.

  Returns the zero-length string in the case of a QName that has no prefix.

  Returns:
    the prefix part of the QName, or "" if the name has no known prefix

### getNamespaceURI

    public java.lang.String getNamespaceURI()

  The namespace URI of the QName. Returns "" (the zero-length string) if the QName is not in a namespace.

  Returns:
    the namespace part of the QName, or "" for a name in no namespace

### getLocalName

    public java.lang.String getLocalName()

  The local part of the QName

  Returns:
    the local part of the QName

### getClarkName

    public java.lang.String getClarkName()

  The expanded name, as a string using the notation devised by James Clark. If the name is in a namespace, the resulting string takes the form `{uri}local`. Otherwise, the value is the local part of the name.

  Returns:
    the name in Clark notation. If the name is not in a namespace, returns the local part of the name. Otherwise returns the concatenation of "{", the namespace part of the QName, "}", and the local part of the QName.

### toString

    public java.lang.String toString()

  Convert the value to a string. The resulting string is the lexical form of the QName, using the original prefix if there was one.

  Overrides:
    `toString` in class `java.lang.Object`

### hashCode

    public int hashCode()

  Get a hash code for the QName, to support equality matching. This supports the semantics of equality, which considers only the namespace URI and local name, and not the prefix.

  Overrides:
    `hashCode` in class `java.lang.Object`
  Returns:
    a hashCode for the QName

### equals

    public boolean equals(java.lang.Object other)

  Test whether two QNames are equal. This supports the semantics of equality, which considers only the namespace URI and local name, and not the prefix.

  Overrides:
    `equals` in class `java.lang.Object`
  Returns:
    true if the namespace URIs are equal and the local parts are equal, when compared character-by-character.

### getStructuredQName

    protected StructuredQName getStructuredQName()

  Get the underlying StructuredQName

  Returns:
    the underlying StructuredQName

Copyright (c) Saxonica Limited. All rights reserved.