Module  java.xml
软件包  javax.xml.validation

Class TypeInfoProvider



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

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

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

    从以下版本开始:
    1.5
    另请参见:
    TypeInfo
    • 构造方法详细信息

      • TypeInfoProvider

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

        构造函数什么也不做。

    • 方法详细信息

      • getElementTypeInfo

        public abstract TypeInfo getElementTypeInfo​()

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

        该方法只能由应用程序设置为ValidatorHandler的startElement事件或者endElement事件调用 ContentHandler

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

        结果
        一个不可变的TypeInfo对象,表示当前元素的类型。 请注意,呼叫者可以保留对获取的TypeInfo引用长于回调范围。 否则,如果验证器由于某种原因无法确定当前元素的类型(例如,如果验证器从早期错误中恢复),则此方法返回null。
        异常
        IllegalStateException - 如果从其他ContentHandler方法调用此方法。
      • getAttributeTypeInfo

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

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

        参数
        index - 属性的索引。 相同的索引为Attributes对象传递给startElement回调。
        结果
        一个不可变的TypeInfo对象,表示指定属性的类型。 请注意,呼叫者可以保留对获取的TypeInfo引用长于回调范围。 否则,如果验证器无法确定类型,则此方法返回null。
        异常
        IndexOutOfBoundsException - 如果索引无效。
        IllegalStateException - 如果从其他ContentHandler方法调用此方法。
      • isIdAttribute

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

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

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

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

        参数
        index - 属性的索引。 Attributes对象的相同索引传递给startElement回调。
        结果
        如果指定属性的类型为ID,则为true。
        异常
        IndexOutOfBoundsException - 如果索引无效。
        IllegalStateException - 如果这种方法是从其他ContentHandler方法调用的。
      • isSpecified

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

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

        该方法只能通过ContentHandler的startElement事件调用 ,该应用程序将设置为ValidatorHandler

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

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