org.xml.sax

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

public interface Attributes

关于 XML 属性列表的接口。

此模块(包括源代码和文档)在公共域中,同时 没有担保有关更多信息,请参阅 http://www.saxproject.org

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

  1. 通过属性索引;
  2. 通过名称空间限定的名称;或者
  3. 通过限定(前缀)名。

该列表将不包括被声明为 #IMPLIED、但未在启动标记中指定的那些属性。还不包括用作名称空间声明 (xmlns*) 的属性,除非 http://xml.org/sax/features/namespace-prefixes 功能设置为 true(默认情况下是 false)。由于 SAX2 与原始的 "Namespaces in XML" 建议一致,所以它一般不为名称空间声明属性提供名称空间 URI。

有些 SAX2 解析器可能支持使用可选的功能标记 (http://xml.org/sax/features/xmlns-uris) 请求为这些属性提供 URI,以便与该建议书以后的向后兼容的版本一致。(属性的“本地名称”将成为前缀,而在定义默认的元素名称空间时 "xmlns" 将成为前缀。)为了具有可移植性,处理程序代码应该始终解析该冲突,而不是要求解析器能够改变该功能标记的设置。

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

此接口取代现在不推荐使用的 SAX1 AttributeList 接口,后者不包括名称空间支持。除名称空间支持外,它还增加了 getIndex 方法(见下面)。

列表中属性的顺序没有指定,并且实现与实现之间也各不相同。

从以下版本开始:
SAX 2.0
另请参见:
AttributesImpl, DeclHandler.attributeDecl(java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String)

方法摘要
 int getIndex(String qName)
          通过 XML 限定(前缀)名查找属性的索引。
 int getIndex(String uri, String localName)
          通过名称空间的名称查找属性的索引。
 int getLength()
          返回此列表中的属性个数。
 String getLocalName(int index)
          通过索引查找属性的本地名称。
 String getQName(int index)
          通过索引查找属性的 XML 限定(前缀)名。
 String getType(int index)
          通过索引查找属性的类型。
 String getType(String qName)
          通过 XML 限定(前缀)名查找属性的类型。
 String getType(String uri, String localName)
          根据名称空间的名称查找属性的类型。
 String getURI(int index)
          通过索引查找属性的名称空间 URI。
 String getValue(int index)
          通过索引查找属性的值。
 String getValue(String qName)
          通过 XML 限定(前缀)名查找属性的值。
 String getValue(String uri, String localName)
          根据名称空间的名称查找属性的值。
 

方法详细信息

getLength

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

一旦知道了属性个数,就可以迭代列表。

返回:
此列表中属性的个数。
另请参见:
getURI(int), getLocalName(int), getQName(int), getType(int), getValue(int)

getURI

String getURI(int index)
通过索引查找属性的名称空间 URI。

参数:
index - 属性索引(从零开始)。
返回:
名称空间 URI,如果没有可用的,则返回空字符串;如果该索引超出范围,则返回 null。
另请参见:
getLength()

getLocalName

String getLocalName(int index)
通过索引查找属性的本地名称。

参数:
index - 属性索引(从零开始)。
返回:
本地名称,如果未执行名称空间处理,则返回空字符串,如果该索引超出范围,则返回 null。
另请参见:
getLength()

getQName

String getQName(int index)
通过索引查找属性的 XML 限定(前缀)名。

参数:
index - 属性索引(从零开始)。
返回:
XML 限定名,如果没有可用的,则返回空字符串,如果该索引超出范围,则返回 null。
另请参见:
getLength()

getType

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

属性类型是下列字符串之一:"CDATA"、"ID"、"IDREF"、"IDREFS"、"NMTOKEN"、"NMTOKENS"、"ENTITY"、"ENTITIES" 或 "NOTATION"(始终用大写字母)。

如果解析器尚未读取属性的声明,或者解析器没有报告属性类型,则必须返回值 "CDATA",如在“XML 1.0 Recommendation”(第 3.3.3 节 "Attribute-Value Normalization")中规定的。

对于不是注释的可枚举的属性,解析器将把类型报告为 "NMTOKEN"。

参数:
index - 属性索引(从零开始)。
返回:
字符串形式的属性类型,如果该索引超出范围,则返回 null。
另请参见:
getLength()

getValue

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

如果属性值是标记(IDREFS、ENTITIES 或 NMTOKENS)列表,则将把这些标记串接成一个字符串,每个标记用单个空格分隔。

参数:
index - 属性索引(从零开始)。
返回:
字符串形式的属性值,如果该索引超出范围,则返回 null。
另请参见:
getLength()

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。