public interface NamespaceContext
用于只读 XML 名称空间上下文处理的接口。
XML 名称空间具有以下属性:
XMLConstants.XMLNS_ATTRIBUTE
("xmlns") 之后的属性名称的一部分 示例:<element xmlns:prefix="http://Namespace-name-URI">
所有 get*(*)
方法都在名称空间 URI 和前缀解析的当前范围中进行操作。
注意,可以将名称空间 URI 绑定到当前范围中的多个 前缀。当多个 XMLConstants.XMLNS_ATTRIBUTE
("xmlns") 名称空间声明出现在同一 Start 标记中,且引用同一名称空间 URI 时,便发生了这种情况,例如
<element xmlns:prefix1="http://Namespace-name-URI" xmlns:prefix2="http://Namespace-name-URI">当在逻辑父元素结构层次中的多个
XMLConstants.XMLNS_ATTRIBUTE
("xmlns") 名称空间声明中使用同一名称空间 URI 时,也将发生这种情况。例如
<parent xmlns:prefix1="http://Namespace-name-URI"> <child xmlns:prefix2="http://Namespace-name-URI"> ... </child> </parent>
只能将前缀绑定到当前范围中的单个 名称空间 URI。
有关公共 XML 值的声明,请参见 javax.xml.XMLConstants
,
XML Schema Part2: Datatypes,
Namespaces in XML,
Namespaces in XML Errata
方法摘要 | |
---|---|
String |
getNamespaceURI(String prefix) 获取绑定到当前范围中的前缀的名称空间 URI。 |
String |
getPrefix(String namespaceURI) 获取绑定到当前范围中名称空间 URI 的前缀。 |
Iterator |
getPrefixes(String namespaceURI) 获取绑定到当前范围中名称空间 URI 的所有前缀。 |
方法详细信息 |
---|
String getNamespaceURI(String prefix)
获取绑定到当前范围中的前缀的名称空间 URI。
当通过前缀请求名称空间 URI 时,下表描述了针对所有可能的前缀值返回的名称空间 URI 值:
getNamespaceURI(prefix) 返回指定的前缀值 |
|
前缀参数 | 名称空间 URI 返回值 |
DEFAULT_NS_PREFIX ("") |
返回当前范围中的默认名称空间 URI;如果不存在,则返回
|
绑定的前缀 | 绑定到当前范围中的前缀的名称空间 URI |
未绑定的前缀 | |
XMLConstants.XML_NS_PREFIX ("xml") |
XMLConstants.XML_NS_URI ("http://www.w3.org/XML/1998/namespace") |
XMLConstants.XMLNS_ATTRIBUTE ("xmlns") |
XMLConstants.XMLNS_ATTRIBUTE_NS_URI ("http://www.w3.org/2000/xmlns/") |
null |
IllegalArgumentException 被抛出 |
prefix
- 要查找的前缀
IllegalArgumentException
- 当
prefix
为
null
时
String getPrefix(String namespaceURI)
获取绑定到当前范围中名称空间 URI 的前缀。
要获取绑定到当前范围中名称空间 URI 的所有前缀,请使用 getPrefixes(String namespaceURI)
。
当通过名称空间 URI 请求前缀时,下表描述了针对所有名称空间 URI 值返回的前缀值:
对指定的名称空间 URI 调用 getPrefix(namespaceURI) 的返回值 |
|
名称空间 URI 参数 | 返回的前缀值 |
---|---|
<默认名称空间 URI> | XMLConstants.DEFAULT_NS_PREFIX ("") |
绑定名称空间 URI | 绑定到当前范围中名称空间 URI 的前缀,如果将多个前缀绑定到当前范围中的名称空间 URI,则返回其选择与实现有关的任意单个前缀 |
未绑定的名称空间 URI | null |
XMLConstants.XML_NS_URI ("http://www.w3.org/XML/1998/namespace") |
XMLConstants.XML_NS_PREFIX ("xml") |
XMLConstants.XMLNS_ATTRIBUTE_NS_URI ("http://www.w3.org/2000/xmlns/") |
XMLConstants.XMLNS_ATTRIBUTE ("xmlns") |
null |
IllegalArgumentException 被抛出 |
namespaceURI
- 要查找的名称空间的 URI
IllegalArgumentException
- 当
namespaceURI
为
null
时
Iterator getPrefixes(String namespaceURI)
获取绑定到当前范围中名称空间 URI 的所有前缀。
按任意与实现相关顺序返回 String 元素上的迭代器。
Iterator
不 可修改。例如 remove()
方法将抛出 UnsupportedOperationException
。
当通过名称空间 URI 请求前缀时,下表描述了针对所有名称空间 URI 值返回的前缀值:
对指定的名称空间 URI 调用 getPrefixes(namespaceURI) 的返回值 |
|
---|---|
名称空间 URI 参数 | 返回的前缀值 |
绑定的名称空间 URI,包括 <默认名称空间 URI> | 前缀上的 Iterator ,以任意与实现相关顺序绑定到当前范围中的名称空间 URI |
未绑定的名称空间 URI | 空 Iterator |
XMLConstants.XML_NS_URI ("http://www.w3.org/XML/1998/namespace") |
一个元素设置为 XMLConstants.XML_NS_PREFIX ("xml") 的 Iterator |
XMLConstants.XMLNS_ATTRIBUTE_NS_URI ("http://www.w3.org/2000/xmlns/") |
一个元素设置为 XMLConstants.XMLNS_ATTRIBUTE ("xmlns") 的 Iterator |
null |
IllegalArgumentException 被抛出 |
namespaceURI
- 要查找的名称空间的 URI
Iterator
IllegalArgumentException
- 当
namespaceURI
为
null
时