org.xml.sax.ext

接口
所有超级接口:
Attributes
所有已知实现类:
Attributes2Impl

public interface Attributes2
     
extends Attributes

SAX2 扩展,用于扩充通过 Attributes 提供的每个属性信息。如果实现支持此扩展,则 ContentHandler.startElement() 中提供的属性将实现此接口,并且 http://xml.org/sax/features/use-attributes2 功能标志将具有值 true

此模块(包括源代码和文档)在公共域中,同时 没有担保

XMLReader 实现无需支持此信息,并且它不是仅核心 SAX2 分发的一部分。

注意,如果属性是默认的 (!isSpecified()),则它还必须在 DTD 中声明 (isDeclared())。类似地,如果属性的类型是除 CDATA 之外的任何类型,则它必须已声明。

从以下版本开始:
SAX 2.0 (extensions 1.1 alpha)

方法摘要
 boolean isDeclared(int index)
          返回 false,除非在 DTD 中声明了该属性。
 boolean isDeclared(String qName)
          返回 false,除非在 DTD 中声明该属性。
 boolean isDeclared(String uri, String localName)
          返回 false,除非在 DTD 中声明属性。
 boolean isSpecified(int index)
          返回 true,除非 DTD 默认提供属性值。
 boolean isSpecified(String qName)
          返回 true,除非由 DTD 默认提供属性值。
 boolean isSpecified(String uri, String localName)
          返回 true,除非由 DTD 默认提供属性值。
 
从接口 org.xml.sax.Attributes 继承的方法
getIndex, getIndex, getLength, getLocalName, getQName, getType, getType, getType, getURI, getValue, getValue, getValue
 

方法详细信息

isDeclared

boolean isDeclared(int index)
返回 false,除非在 DTD 中声明了该属性。这有助于区别 SAX 报告为 CDATA 的两种属性:声明的属性(因此,通常是有效的)和未声明的属性(永远是无效的)。

参数:
index - 属性索引(从零开始)。
返回:
如果在 DTD 中声明属性,则返回 true,否则返回 false。
抛出:
ArrayIndexOutOfBoundsException - 当提供的索引不标识属性时。

isDeclared

boolean isDeclared(String qName)
返回 false,除非在 DTD 中声明该属性。这有助于区别 SAX 报告为 CDATA 的两种属性:声明的属性(因此,通常是有效的)和未声明的属性(永远是无效的)。

参数:
qName - XML 限定(加前缀的)名称。
返回:
如果在 DTD 中声明属性,则返回 true,否则返回 false。
抛出:
IllegalArgumentException - 当提供的名称不标识属性时。

isDeclared

boolean isDeclared(String uri,
                   String localName)
返回 false,除非在 DTD 中声明属性。这有助于区别 SAX 报告为 CDATA 的两种属性:声明的属性(因此,通常是有效的)和未声明的属性(永远是无效的)。

请记住,由于 DTD 不能“理解”名称空间,所以与属性关联的名称空间 URI 不可以来自 DTD。该声明将会应用于属性的 qName

参数:
uri - 名称空间 URI,如果该名称没有名称空间 URI,则为空字符串。
localName - 属性的本地名称。
返回:
如果在 DTD 中声明属性,则返回 true,否则返回 false。
抛出:
IllegalArgumentException - 当提供的名称不标识属性时。

isSpecified

boolean isSpecified(int index)
返回 true,除非 DTD 默认提供属性值。

参数:
index - 属性索引(从零开始)。
返回:
如果在 XML 文本中找到该值,则返回 true,如果由 DTD 默认提供值,则返回 false。
抛出:
ArrayIndexOutOfBoundsException - 当提供的索引不标识属性时。

isSpecified

boolean isSpecified(String uri,
                    String localName)
返回 true,除非由 DTD 默认提供属性值。

请记住,由于 DTD 不能“理解”名称空间,所以与属性关联的名称空间 URI 不可以来自 DTD。该声明将会应用于属性的 qName

参数:
uri - 名称空间 URI,如果该名称没有名称空间 URI,则为空字符串。
localName - 属性的本地名称。
返回:
如果在 XML 文本中找到该值,则返回 true,如果由 DTD 默认提供值,则返回 false。
抛出:
IllegalArgumentException - 当提供的名称不标识属性时。

isSpecified

boolean isSpecified(String qName)
返回 true,除非由 DTD 默认提供属性值。

参数:
qName - XML 限定(加前缀的)名称。
返回:
如果在 XML 文本中找到该值,则返回 true,如果由 DTD 默认提供值,则返回 false。
抛出:
IllegalArgumentException - 当提供的名称不标识属性时。