java.lang.Object javax.xml.namespace.QName
public class QName
QName
表示 XML 规范中定义的限定名称:XML 模式第二部分:Datatypes specification、Namespaces in XML、Namespaces in XML 勘误表。
QName
的值包含名称空间 URI、本地部分和前缀。
QName
中包括前缀,以保留词汇信息(当在 XML 输入源
中存在 时)。前缀不 用于 QName.equals(Object)
或计算 QName.hashCode()
。仅 使用名称空间 URI 和本地部分定义相等性和哈希码。
如果没有指定名称空间 URI,则将其设置为 XMLConstants.NULL_NS_URI
。如果没有指定前缀,则将其设置为 XMLConstants.DEFAULT_NS_PREFIX
。
QName
是不可变的。
构造方法摘要 | |
---|---|
QName(String localPart) 指定本地部分的 QName 构造方法。 |
|
QName(String namespaceURI, String localPart) 指定名称空间 URI 和本地部分的 QName 构造方法。 |
|
QName(String namespaceURI, String localPart, String prefix) 指定名称空间 URI、本地部分和前缀的 QName 构造方法。 |
方法摘要 | |
---|---|
boolean |
equals(Object objectToTest) 测试此 QName 与另一个 Object 的相等性。 |
String |
getLocalPart() 获取此 QName 的本地部分。 |
String |
getNamespaceURI() 获取此 QName 的名称空间 URI。 |
String |
getPrefix() 获取此 QName 的前缀。 |
int |
hashCode() 生成此 QName 的哈希码。 |
String |
toString() 此 QName 的 String 表示形式。 |
static QName |
valueOf(String qNameAsString) 从解析格式化 String 中派生的 QName 。 |
从类 java.lang.Object 继承的方法 |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
构造方法详细信息 |
---|
public QName(String namespaceURI, String localPart)
指定名称空间 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
-
QName
的名称空间 URI
localPart
-
QName
的本地部分
IllegalArgumentException
- 当
localPart
为
null
时
QName(String namespaceURI, String localPart, String prefix)
public QName(String namespaceURI, String localPart, String prefix)
指定名称空间 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
-
QName
的名称空间 URI
localPart
-
QName
的本地部分
prefix
-
QName
的前缀
IllegalArgumentException
- 当
localPart
或
prefix
为
null
时
public QName(String localPart)
指定本地部分的 QName
构造方法。
如果本地部分为 null
,则抛出 IllegalArgumentException
。允许 "" 的本地部分保持与 QName 1.0 的兼容行为。
使用此构造方法时,将名称空间 URI 设置为 XMLConstants.NULL_NS_URI
,并将前缀设置为 XMLConstants.DEFAULT_NS_PREFIX
。
在 XML 上下文中,所有元素和属性名称都存在于名称空间的上下文中。在构造 QName
的过程中,使其显式存在有助于避免诊断 XML 有效性错误的难度。优先使用构造方法 QName(String namespaceURI, String localPart)
和 QName(String namespaceURI, String localPart, String prefix)
。
没有按 Namespaces in XML 中的指定将本地部分作为 NCName 来验证。
localPart
-
QName
的本地部分
IllegalArgumentException
- 当
localPart
为
null
时
QName(String namespaceURI, String localPart)
,
QName(String namespaceURI, String localPart, String prefix)
方法详细信息 |
---|
public String getNamespaceURI()
获取此 QName
的名称空间 URI。
QName
的名称空间 URI
public String getLocalPart()
获取此 QName
的本地部分。
QName
的本地部分
public String getPrefix()
获取此 QName
的前缀。
分配给 QName
的前缀在其他上下文中可能无 效。例如,可以在解析文档的上下文中为 QName
分配一个前缀,但是,该前缀可能在其他文档的上下文中无效。
QName
的前缀
public final boolean equals(Object objectToTest)
测试此 QName
与另一个 Object
的相等性。
如果要测试的 Object
不是 QName
,或为 null
,那么此方法返回 false
。
当且仅当名称空间 URI 和本地部分相等时,才认为两个 QName
相等。此方法使用 String.equals()
检查名称空间 URI 和本地部分的相等性。前缀不能 用于确定相等性。
此方法满足 Object.equals(Object)
的常规协定。
objectToTest
- 要测试与此
QName
相等性的
Object
Object
等于此
QName
,则返回
true
,否则返回
false
Object.hashCode()
,
Hashtable
public final int hashCode()
生成此 QName
的哈希码。
使用 QName
的名称空间 URI 和本地部分计算哈希码。前缀不能 用于计算哈希码。
此方法满足 Object.hashCode()
的常规协定。
QName
Object
的哈希码
Object.equals(java.lang.Object)
,
Hashtable
public String toString()
此 QName
的 String
表示形式。
James Clark 定义了将 QName
表示为 String
的公认方法。虽然这不是标准 规范,但其使用很频繁,例如 Transformer.setParameter(String name, Object value)
。此实现将 QName
表示为:"{" + Namespace URI + "}" + 本地部分。如果名称空间 URI .equals(XMLConstants.NULL_NS_URI)
,则仅返回本地部分。此方法适用于调试或记录人为消耗。
注:前缀值不能 作为 String
表示形式的一部分返回。
此方法满足 Object.toString()
的常规协定。
QName
的
String
表示形式
public static QName valueOf(String qNameAsString)
从解析格式化 String
中派生的 QName
。
如果 String
为 null
,或者不符合 QName.toString()
格式,则抛出 IllegalArgumentException
。
String
必须 是 QName.toString()
返回的格式。
James Clark 定义了将 QName
表示为 String
的公认方法。虽然这不是标准 规范,但其使用很频繁,例如 Transformer.setParameter(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
-
QName
的
String
表示形式
String
对应的
QName
IllegalArgumentException
- 当
qNameAsString
为
null
或出错时
QName.toString()