Module java.xml

Interface NamespaceContext


public interface NamespaceContext
用于只读XML命名空间上下文处理的接口。

XML命名空间具有以下属性:

  • 命名空间URI:以URI表示的命名空间名称,前缀绑定到该URI
  • 前缀:从Namespace声明中的XMLConstants.XMLNS_ATTRIBUTE ("xmlns")之后的属性名称部分

示例:<element xmlns:prefix="http://Namespace-name-URI">

所有get*(*)方法在命名空间URI和前缀解析的当前范围内操作。

请注意,命名空间URI可以绑定到当前范围内的多个前缀。当在同一起始标记中发生多个XMLConstants.XMLNS_ATTRIBUTE ("xmlns")命名空间声明并且引用相同的命名空间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。

自版本:
1.5
参见:
  • Method Summary

    Modifier and Type
    Method
    Description
    获取当前范围内与前缀绑定的命名空间URI。
    getPrefix(String namespaceURI)
    获取当前范围内与命名空间URI绑定的前缀。
    getPrefixes(String namespaceURI)
    获取当前范围内与命名空间URI绑定的所有前缀。
  • Method Details

    • getNamespaceURI

      String getNamespaceURI(String prefix)
      获取当前范围内与前缀绑定的命名空间URI。

      通过前缀请求命名空间URI时,以下表格描述了所有可能前缀值的返回命名空间URI值:

      指定前缀的返回值
      前缀参数 命名空间URI返回值
      DEFAULT_NS_PREFIX ("") 当前范围内的默认命名空间URI或 XMLConstants.NULL_NS_URI("") ,当当前范围内没有默认命名空间URI时
      绑定的前缀 当前范围内绑定到前缀的命名空间URI
      未绑定的前缀 XMLConstants.NULL_NS_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 - 要查找的前缀
      返回:
      当前范围内与前缀绑定的命名空间URI
      抛出:
      IllegalArgumentException - 当prefixnull
    • getPrefix

      String getPrefix(String namespaceURI)
      获取当前范围内与命名空间URI绑定的前缀。

      要获取当前范围内绑定到命名空间URI的所有前缀,请使用getPrefixes(String namespaceURI)

      通过命名空间URI请求前缀时,以下表格描述了所有命名空间URI值的返回前缀值:

      指定命名空间URI的返回值
      命名空间URI参数 返回的前缀值
      <default Namespace 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
      返回:
      当前上下文中与命名空间URI绑定的前缀
      抛出:
      IllegalArgumentException - 当namespaceURInull
    • getPrefixes

      Iterator<String> getPrefixes(String namespaceURI)
      获取当前范围内与命名空间URI绑定的所有前缀。

      返回一个以任意、依赖于实现的顺序排列的String元素的迭代器。

      迭代器不可修改的。例如,remove()方法将抛出UnsupportedOperationException

      通过命名空间URI请求前缀时,以下表格描述了所有命名空间URI值的返回前缀值:

      指定命名空间URI的返回值
      命名空间URI参数 返回的前缀值
      绑定的命名空间URI,包括<default Namespace URI> 迭代器,按任意、依赖于实现的顺序排列,绑定到当前范围内命名空间URI的前缀
      未绑定的命名空间URI 空的迭代器
      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
      返回:
      当前范围内与命名空间URI绑定的所有前缀的迭代器
      抛出:
      IllegalArgumentException - 当namespaceURInull