Module java.xml
Package org.xml.sax

Interface Attributes

已知的所有子接口:
Attributes2
已知的所有实现类:
Attributes2Impl, AttributesImpl

public interface Attributes
用于XML属性列表的接口。

此接口允许以三种不同的方式访问属性列表:

  1. 按属性索引;
  2. 按命名空间限定名称;或
  3. 按限定(带前缀)名称。

列表中不会包含在开始标记中声明为#IMPLIED但未指定的属性。它也不会包含用作命名空间声明(xmlns*)的属性,除非将http://xml.org/sax/features/namespace-prefixes功能设置为true(默认情况下为false)。由于SAX2符合原始的“XML命名空间”建议,通常不会为命名空间声明属性指定命名空间URI。

一些SAX2解析器可能支持使用可选功能标志(http://xml.org/sax/features/xmlns-uris)来请求为这些属性提供URI,符合该建议的后续不兼容的修订版。 (当定义默认元素命名空间时,属性的“本地名称”将是前缀,或者是“xmlns”)。为了可移植性,处理程序代码应始终解决该冲突,而不是要求可以更改该功能标志的解析器。

如果命名空间前缀功能(见上文)为false,则可能无法通过限定名称访问;如果http://xml.org/sax/features/namespaces功能为false,则可能无法通过命名空间限定名称访问。

此接口取代了现在已弃用的SAX1 AttributeList接口,该接口不包含命名空间支持。除了命名空间支持外,它还添加了getIndex方法(如下所示)。

列表中属性的顺序是未指定的,并且会因实现而异。

自:
1.4, SAX 2.0
另请参阅:
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    getIndex(String qName)
    通过XML限定(带前缀)名称查找属性的索引。
    int
    getIndex(String uri, String localName)
    通过命名空间名称查找属性的索引。
    int
    返回列表中属性的数量。
    getLocalName(int index)
    通过索引查找属性的本地名称。
    getQName(int index)
    通过索引查找属性的XML限定(带前缀)名称。
    getType(int index)
    通过索引查找属性的类型。
    getType(String qName)
    通过XML限定(带前缀)名称查找属性的类型。
    getType(String uri, String localName)
    通过命名空间名称查找属性的类型。
    getURI(int index)
    通过索引查找属性的命名空间URI。
    getValue(int index)
    通过索引查找属性的值。
    getValue(String qName)
    通过XML限定(带前缀)名称查找属性的值。
    getValue(String uri, String localName)
    通过命名空间名称查找属性的值。
  • Method Details

    • getLength

      int getLength()
      返回列表中属性的数量。

      一旦知道属性的数量,就可以遍历列表。

      返回:
      列表中属性的数量。
      另请参阅:
    • getURI

      String getURI(int index)
      通过索引查找属性的命名空间URI。
      参数:
      index - 属性索引(从零开始)。
      返回:
      命名空间URI,如果没有可用的URI则为空字符串,如果索引超出范围则为null。
      另请参阅:
    • getLocalName

      String getLocalName(int index)
      通过索引查找属性的本地名称。
      参数:
      index - 属性索引(从零开始)。
      返回:
      本地名称,如果未执行命名空间处理则为空字符串,如果索引超出范围则为null。
      另请参阅:
    • getQName

      String getQName(int index)
      通过索引查找属性的XML限定(带前缀)名称。
      参数:
      index - 属性索引(从零开始)。
      返回:
      XML限定名称,如果没有可用的名称则为空字符串,如果索引超出范围则为null。
      另请参阅:
    • getType

      String getType(int index)
      通过索引查找属性的类型。

      属性类型是字符串“CDATA”、“ID”、“IDREF”、“IDREFS”、“NMTOKEN”、“NMTOKENS”、“ENTITY”、“ENTITIES”或“NOTATION”(始终大写)之一。

      如果解析器尚未读取属性的声明,或者解析器不报告属性类型,则必须返回值“CDATA”,如XML 1.0建议中所述(第3.3.3节,“属性值规范化”)。对于不是符号的枚举属性,解析器将报告类型为“NMTOKEN”。

      参数:
      index - 属性索引(从零开始)。
      返回:
      属性的类型作为字符串,如果索引超出范围则为null。
      另请参阅:
    • getValue

      String getValue(int index)
      通过索引查找属性的值。

      如果属性值是令牌列表(IDREFS、ENTITIES或NMTOKENS),则将令牌连接成一个字符串,每个令牌之间用单个空格分隔。

      参数:
      index - 属性索引(从零开始)。
      返回:
      属性的值作为字符串,如果索引超出范围则为null。
      另请参阅:
    • getIndex

      int getIndex(String uri, String localName)
      通过命名空间名称查找属性的索引。
      参数:
      uri - 命名空间URI,如果名称没有命名空间URI则为空字符串。
      localName - 属性的本地名称。
      返回:
      属性的索引,如果属性不在列表中则为-1。
    • getIndex

      int getIndex(String qName)
      通过XML限定(带前缀)名称查找属性的索引。
      参数:
      qName - 限定(带前缀)名称。
      返回:
      属性的索引,如果属性不在列表中则为-1。
    • getType

      String getType(String uri, String localName)
      通过命名空间名称查找属性的类型。

      有关可能类型的描述,请参见getType(int)

      参数:
      uri - 命名空间URI,如果名称没有命名空间URI则为空字符串。
      localName - 属性的本地名称。
      返回:
      属性的类型作为字符串,如果属性不在列表中或未执行命名空间处理则为null。
    • getType

      String getType(String qName)
      通过XML限定(带前缀)名称查找属性的类型。

      有关可能类型的描述,请参见getType(int)

      参数:
      qName - XML限定名称。
      返回:
      属性的类型作为字符串,如果属性不在列表中或限定名称不可用则为null。
    • getValue

      String getValue(String uri, String localName)
      通过命名空间名称查找属性的值。

      有关可能值的描述,请参见getValue(int)

      参数:
      uri - 命名空间URI,如果名称没有命名空间URI则为空字符串。
      localName - 属性的本地名称。
      返回:
      属性的值作为字符串,如果属性不在列表中则为null。
    • getValue

      String getValue(String qName)
      通过XML限定(带前缀)名称查找属性的值。

      有关可能值的描述,请参见getValue(int)

      参数:
      qName - XML限定名称。
      返回:
      属性的值作为字符串,如果属性不在列表中或限定名称不可用则为null。