Module java.xml
Package org.xml.sax.ext

Interface Attributes2

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

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

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

请注意,如果属性是默认的(!isSpecified()),则必然也必须在DTD中声明(isDeclared())。类似地,如果属性的类型不是CDATA,则必须已经声明。

自从:
1.5, SAX 2.0(扩展1.1 alpha)
  • Method Details

    • isDeclared

      boolean isDeclared(int index)
      除非属性在DTD中已声明,否则返回false。这有助于区分SAX报告为CDATA的两种属性:已声明的属性(因此通常有效),以及未声明的属性(永远无效)。
      参数:
      index - 属性索引(从零开始)。
      返回:
      如果属性在DTD中已声明,则返回true,否则返回false。
      抛出:
      ArrayIndexOutOfBoundsException - 当提供的索引未标识属性时。
    • isDeclared

      boolean isDeclared(String qName)
      除非属性在DTD中已声明,否则返回false。这有助于区分SAX报告为CDATA的两种属性:已声明的属性(因此通常有效),以及未声明的属性(永远无效)。
      参数:
      qName - XML的限定(带前缀)名称。
      返回:
      如果属性在DTD中已声明,则返回true,否则返回false。
      抛出:
      IllegalArgumentException - 当提供的名称未标识属性时。
    • isDeclared

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

      请记住,由于DTD不“理解”命名空间,与属性关联的命名空间URI可能不是来自DTD。声明将适用于属性的qName

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

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

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

      请记住,由于DTD不“理解”命名空间,与属性关联的命名空间URI可能不是来自DTD。声明将适用于属性的qName

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

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