关于WebService中用到的QName详解

时间:2021-10-09 15:53:57
Implements: Serializable
zh_cn

QName 表示 XML 规范中定义的限定名称XML 模式第二部分:Datatypes specificationNamespaces in XMLNamespaces in XML 勘误表

QName 的值包含名称空间 URI本地部分前缀

QName 中包括前缀,以保留词汇信息(当在 XML 输入源存在 时)。前缀 用于QName.equals(Object) 或计算 QName.hashCode() 使用名称空间 URI 和本地部分定义相等性和哈希码。

如果没有指定名称空间 URI,则将其设置为 XMLConstants.NULL_NS_URI。如果没有指定前缀,则将其设置为 XMLConstants.DEFAULT_NS_PREFIX

QName 是不可变的。

version
en
$Revision: 1.5 $, $Date: 2005/11/03 19:34:20 $
since 1.5
See also (UNLABELED), (UNLABELED), (UNLABELED)

Constructors
public QName(String namespaceURI,String localPart)
zh_cn

指定名称空间 URI 和本地部分的 QName 构造方法。

如果名称空间 URI 为 null,则将它设置为 XMLConstants.NULL_NS_URI。此值表示非显式定义的名称空间,在 Namespaces in XML 规范中定义。此操作保持了与 QName 1.0 兼容的行为。显式提供 XMLConstants.NULL_NS_URI 值是首选的编码风格。

如果本地部分为 null,则抛出 IllegalArgumentException。允许 "" 的本地部分保持与 QName 1.0 的兼容行为。

当使用此构造方法时,将前缀设置为 XMLConstants.DEFAULT_NS_PREFIX

名称空间 URI 不根据 URI 参考验证。没有按 Namespaces in XML 中的指定将本地部分作为 NCName 来验证。

namespaceURI
zh_cn
QName 的名称空间 URI
localPart
zh_cn
QName 的本地部分
Throws IllegalArgumentException:
zh_cn
localPartnull
See also QName(String namespaceURI, String localPart, String prefix)
public QName(String namespaceURI,String localPart,String prefix)
zh_cn

指定名称空间 URI、本地部分和前缀的 QName 构造方法。

如果名称空间 URI 为 null,则将它设置为 XMLConstants.NULL_NS_URI。此值表示非显式定义的名称空间,在 Namespaces in XML 规范中定义。此操作保持了与 QName 1.0 兼容的行为。显式提供 XMLConstants.NULL_NS_URI 值是首选的编码风格。

如果本地部分为 null,则抛出 IllegalArgumentException。允许 "" 的本地部分保持与 QName 1.0 的兼容行为。

如果前缀为 null,则抛出 IllegalArgumentException。使用 XMLConstants.DEFAULT_NS_PREFIX 显式指示不存在任何前缀或前缀是不相关的。

名称空间 URI 不根据 URI 参考验证。没有按 Namespaces in XML 中的指定将本地部分和前缀作为 NCName 来验证。

namespaceURI
zh_cn
QName 的名称空间 URI
localPart
zh_cn
QName 的本地部分
prefix
zh_cn
QName 的前缀
Throws IllegalArgumentException:
zh_cn
localPartprefixnull
public QName(String localPart)
zh_cn

指定本地部分的 QName 构造方法。

如果本地部分为 null,则抛出 IllegalArgumentException。允许 "" 的本地部分保持与 QName 1.0 的兼容行为。

使用此构造方法时,将名称空间 URI 设置为 XMLConstants.NULL_NS_URI,并将前缀设置为 XMLConstants.DEFAULT_NS_PREFIX

在 XML 上下文中,所有元素和属性名称都存在于名称空间的上下文中。在构造 QName 的过程中,使其显式存在有助于避免诊断 XML 有效性错误的难度。优先使用构造方法QName(String namespaceURI, String localPart)namespaceURI, String localPart, String prefix)

没有按 Namespaces in XML 中的指定将本地部分作为NCName 来验证。

localPart
zh_cn
QName 的本地部分
Throws IllegalArgumentException:
zh_cn
localPartnull
See also QName(String namespaceURI, String localPart),QName(String namespaceURI, String localPart, String prefix)

Methods
final public boolean equals(Object objectToTest)
zh_cn

测试此 QName 与另一个 Object 的相等性。

如果要测试的 Object 不是 QName,或为 null,那么此方法返回 false

当且仅当名称空间 URI 和本地部分相等时,才认为两个 QName 相等。此方法使用 String.equals() 检查名称空间 URI 和本地部分的相等性。前缀不能 用于确定相等性。

此方法满足 Object.equals(Object) 的常规协定。

objectToTest
zh_cn
要测试与此 QName 相等性的 Object
return
zh_cn
如果给定的 Object 等于此 QName,则返回 true,否则返回 false
final public int hashCode()
zh_cn

生成此 QName 的哈希码。

使用 QName 的名称空间 URI 和本地部分计算哈希码。前缀不能 用于计算哈希码。

此方法满足 Object.hashCode() 的常规协定。

return
zh_cn
QName Object 的哈希码
public String toString()
zh_cn

QNameString 表示形式。

James Clark 定义了将 QName 表示为String 的公认方法。虽然这不是标准 规范,但其使用很频繁,例如 name, Object value)。此实现将 QName 表示为:"{" + Namespace URI + "}" + 本地部分。如果名称空间 URI.equals(XMLConstants.NULL_NS_URI),则仅返回本地部分。此方法适用于调试或记录人为消耗。

注:前缀值不能 作为 String 表示形式的一部分返回。

此方法满足 Object.toString() 的常规协定。

return
zh_cn
QNameString 表示形式
public static QName valueOf(String qNameAsString)
zh_cn

从解析格式化 String 中派生的 QName

如果 Stringnull,或者不符合 QName.toString() 格式,则抛出 IllegalArgumentException

String 必须QName.toString() 返回的格式。

James Clark 定义了将 QName 表示为String 的公认方法。虽然这不是标准 规范,但其使用很频繁,例如 name, Object value)。此实现将 String 解析为以下格式:"{" + Namespace URI + "}" + 本地部分。如果名称空间 URI.equals(XMLConstants.NULL_NS_URI),则仅提供本地部分。

不能String 表示前缀值,并将它设置为 XMLConstants.DEFAULT_NS_PREFIX

此方法不能完全验证生成的 QName

名称空间 URI 不根据 URI 参考验证。没有按 Namespaces in XML 中的指定将本地部分作为 NCName 来验证。

qNameAsString
zh_cn
QNameString 表示形式
Throws IllegalArgumentException:
zh_cn
qNameAsStringnull 或出错时
return
zh_cn
与给定 String 对应的 QName
See also QName.toString()

Properties
public String getLocalPart()
zh_cn

获取此 QName 的本地部分。

return
zh_cn
QName 的本地部分
public String getNamespaceURI()
zh_cn

获取此 QName 的名称空间 URI。

return
zh_cn
QName 的名称空间 URI
public String getPrefix()
zh_cn

获取此 QName 的前缀。

分配给 QName 的前缀在其他上下文中可能 效。例如,可以在解析文档的上下文中为QName 分配一个前缀,但是,该前缀可能在其他文档的上下文中无效。

return
zh_cn
QName 的前缀