javax.xml.validation

java.lang.Object
  继承者 javax.xml.validation.TypeInfoProvider

public abstract class TypeInfoProvider
     
extends Object

此类提供了对 ValidatorHandler 所确定的类型信息的访问。

某些模式语言(例如 W3C XML Schema)鼓励验证器报告它分配给每个属性/元素的“类型”。那些希望访问此类型信息的应用程序可以调用此“接口”上的方法来访问这样的类型信息。

此“接口”的实现可以通过 ValidatorHandler.getTypeInfoProvider() 方法获取。

从以下版本开始:
1.5
另请参见:
TypeInfo

构造方法摘要
protected TypeInfoProvider()
          派生类的构造方法。
 
方法摘要
abstract  TypeInfo getAttributeTypeInfo(int index)
          返回指定的当前元素属性的不可变的 TypeInfo 对象。
abstract  TypeInfo getElementTypeInfo()
          返回当前元素的不可变的 TypeInfo 对象。
abstract  boolean isIdAttribute(int index)
          如果指定属性确定为 ID,则返回 true
abstract  boolean isSpecified(int index)
          如果属性是通过验证器添加的,则返回 false
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

TypeInfoProvider

protected TypeInfoProvider()
派生类的构造方法。

构造方法不执行任何动作。

方法详细信息

getElementTypeInfo

public abstract TypeInfo getElementTypeInfo()

返回当前元素的不可变的 TypeInfo 对象。

该方法只能由 ContentHandler(应用程序将其设置为 ValidatorHandler)的 startElement 事件或 endElement 事件调用。

当正在执行 W3C XML 模式验证时,在元素具有 union 类型的情况下,对 startElement 事件调用 getElementTypeInfo() 所返回的 TypeInfo 将是 union 类型。endElement 事件的调用所返回的 TypeInfo 将是实际用来验证元素的数字类型。

返回:
表示当前元素类型的不可变的 TypeInfo 对象。注意,调用者保持对所获得的 TypeInfo 的引用时间可能要长于回调作用时间。否则,如果由于某种原因验证器不能确定当前元素的类型(例如,如果验证器正从较早的错误中恢复),则此方法返回 null。
抛出:
IllegalStateException - 如果从其他 ContentHandler 方法调用了此方法。

getAttributeTypeInfo

public abstract TypeInfo getAttributeTypeInfo(int index)
返回指定的当前元素属性的不可变的 TypeInfo 对象。

该方法只能由 ContentHandler(应用程序将其设置为 ValidatorHandler)的 startElement 事件调用。

参数:
index - 属性的索引。传递给 startElement 回调的 Attributes 对象的相同索引。
返回:
表示指定属性类型的不可变的 TypeInfo 对象。注意,调用者保持对所获得的 TypeInfo 的引用时间可能要长于回调作用时间。否则,如果验证器无法确定类型,则此方法返回 null。
抛出:
IndexOutOfBoundsException - 如果索引无效。
IllegalStateException - 如果从其他 ContentHandler 方法调用了此方法。

isIdAttribute

public abstract boolean isIdAttribute(int index)
如果指定属性确定为 ID,则返回 true

属性如何“确定为 ID”的准确方式取决于模式语言。在 W3C XML 模式中,这意味着实际的属性类型为内置的 ID 类型或其派生类型。

DocumentBuilder 使用此信息来正确地实现 Attr.isId()

该方法只能由 ContentHandler(应用程序将其设置为 ValidatorHandler)的 startElement 事件调用。

参数:
index - 属性的索引。传递给 startElement 回调的 Attributes 对象的相同索引。
返回:
如果指定属性的类型为 ID,则返回 true。
抛出:
IndexOutOfBoundsException - 如果索引无效。
IllegalStateException - 如果从其他 ContentHandler 方法调用了此方法。

isSpecified

public abstract boolean isSpecified(int index)
如果属性是通过验证器添加的,则返回 false

此方法为 DocumentBuilder 提供了所需的信息,以确定 DOM 树应从 Attr.getSpecified() 方法返回的内容。

该方法只能由 ContentHandler(应用程序将其设置为 ValidatorHandler)的 startElement 事件调用。

验证器的通用指导原则是:如果属性最初就在管线中存在,则返回 true,如果它是通过验证器添加的,则返回 false。

参数:
index - 属性的索引。传递给 startElement 回调的 Attributes 对象的相同索引。
返回:
如果在验证器处理输入之前属性已存在,则返回 true,如果属性是通过验证器添加的,则返回 false
抛出:
IndexOutOfBoundsException - 如果索引无效。
IllegalStateException - 如果从其他 ContentHandler 方法调用了此方法。