public interface Attributes
关于 XML 属性列表的接口。
此模块(包括源代码和文档)在公共域中,同时 没有担保。有关更多信息,请参阅 http://www.saxproject.org。
此接口允许用以下三种不同方式访问属性列表:
该列表将不包括被声明为 #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 方法(见下面)。
列表中属性的顺序没有指定,并且实现与实现之间也各不相同。
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) 根据名称空间的名称查找属性的值。 |
方法详细信息 |
---|
int getLength()
一旦知道了属性个数,就可以迭代列表。
getURI(int)
,
getLocalName(int)
,
getQName(int)
,
getType(int)
,
getValue(int)
String getURI(int index)
index
- 属性索引(从零开始)。
getLength()
String getLocalName(int index)
index
- 属性索引(从零开始)。
getLength()
String getQName(int index)
index
- 属性索引(从零开始)。
getLength()
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
- 属性索引(从零开始)。
getLength()
String getValue(int index)
如果属性值是标记(IDREFS、ENTITIES 或 NMTOKENS)列表,则将把这些标记串接成一个字符串,每个标记用单个空格分隔。
index
- 属性索引(从零开始)。
getLength()
int getIndex(String uri, String localName)
uri
- 名称空间 URI,如果该名称没有名称空间 URI,则返回空字符串。
localName
- 属性的本地名称。
int getIndex(String qName)
qName
- 限定(前缀)名。
String getType(String uri, String localName)
关于可能的类型的描述请参阅 getType(int)
。
uri
- 名称空间 URI,如果该名称没有名称空间 URI,则返回空字符串。
localName
- 属性的本地名称。
String getType(String qName)
关于可能的类型的描述请参阅 getType(int)
。
qName
- XML 限定名。
String getValue(String uri, String localName)
关于可能的值的描述请参阅 getValue(int)
。
uri
- 名称空间 URI,如果名称没有名称空间 URI,则返回空字符串。
localName
- 属性的本地名称。
String getValue(String qName)
关于可能的值的描述,请参阅 getValue(int)
。
qName
- XML 限定名。