javax.xml.namespace
类 QName
java.lang.Object
javax.xml.namespace.QName
-
所有已实现的接口:
- Serializable
public class QNameextends Objectimplements Serializable
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
是不可变的。
-
从以下版本开始:
- 1.5 另请参见:
- XML 模式第二部分:Datatypes specification, Namespaces in XML, Namespaces in XML 勘误表, 序列化表格
构造方法摘要 | |
---|---|
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 |
构造方法详细信息 |
---|
QName
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)
-
QName
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
时
-
QName
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)
-
方法详细信息 |
---|
getNamespaceURI
public String getNamespaceURI()
-
获取此
QName
的名称空间 URI。 -
-
返回:
-
此
QName
的名称空间 URI
-
此
getLocalPart
public String getLocalPart()
-
获取此
QName
的本地部分。 -
-
返回:
-
此
QName
的本地部分
-
此
getPrefix
public String getPrefix()
-
获取此
QName
的前缀。分配给
QName
的前缀在其他上下文中可能无 效。例如,可以在解析文档的上下文中为QName
分配一个前缀,但是,该前缀可能在其他文档的上下文中无效。 -
-
返回:
-
此
QName
的前缀
-
此
equals
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
-
hashCode
public final int hashCode()
-
生成此
QName
的哈希码。使用
QName
的名称空间 URI 和本地部分计算哈希码。前缀不能 用于计算哈希码。此方法满足
Object.hashCode()
的常规协定。 -
-
返回:
-
此
QName
Object
的哈希码
另请参见:
-
Object.equals(java.lang.Object)
,Hashtable
-
此
toString
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
表示形式
-
此
valueOf
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
或出错时
-