Module java.xml

Class TypeInfoProvider

java.lang.Object
javax.xml.validation.TypeInfoProvider

public abstract class TypeInfoProvider extends Object
该类提供了访问由ValidatorHandler确定的类型信息。

一些模式语言,如W3C XML Schema,鼓励验证器报告其为每个属性/元素分配的“类型”。希望访问此类型信息的应用程序可以调用此“接口”上定义的方法来访问此类类型信息。

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

自:
1.5
参见:
  • TypeInfo
  • Constructor Details

    • TypeInfoProvider

      protected TypeInfoProvider()
      派生类的构造函数。

      构造函数不执行任何操作。

  • Method Details

    • getElementTypeInfo

      public abstract TypeInfo getElementTypeInfo()

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

      该方法只能由应用程序设置给ValidatorHandlerContentHandlerstartElement事件或endElement事件调用。

      在执行W3C XML Schema验证时,如果元素具有联合类型,则从startElement事件调用getElementTypeInfo()返回的TypeInfo将是联合类型。从endElement事件调用返回的TypeInfo将是用于验证元素的实际成员类型。

      返回:
      代表当前元素类型的不可变TypeInfo对象。请注意,调用者可以在回调范围之外保留对获得的TypeInfo的引用。否则,如果验证器无法出于某种原因(例如,如果验证器正在从先前的错误中恢复)确定当前元素的类型,则此方法返回null。
      抛出:
      IllegalStateException - 如果从其他ContentHandler方法调用此方法。
    • getAttributeTypeInfo

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

      该方法只能由应用程序设置给ValidatorHandlerContentHandlerstartElement事件调用。

      参数:
      index - 属性的索引。与传递给startElement回调的Attributes对象的相同索引。
      返回:
      代表指定属性类型的不可变TypeInfo对象。请注意,调用者可以在回调范围之外保留对获得的TypeInfo的引用。否则,如果验证器无法确定类型,则此方法返回null。
      抛出:
      IndexOutOfBoundsException - 如果索引无效。
      IllegalStateException - 如果从其他ContentHandler方法调用此方法。
    • isIdAttribute

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

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

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

      该方法只能由应用程序设置给ValidatorHandlerContentHandlerstartElement事件调用。

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

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

      此方法提供了DocumentBuilder确定DOM树应从Attr.getSpecified()方法返回的信息。

      该方法只能由应用程序设置给ValidatorHandlerContentHandlerstartElement事件调用。

      验证器的一般准则是,如果属性最初存在于管道中,则返回true,如果是验证器添加的,则返回false。

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