模块  java.xml
软件包  javax.xml.validation

Class TypeInfoProvider


  • public abstract class TypeInfoProviderextends Object
    此类提供对ValidatorHandler确定的类型信息的访问

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

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

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

      • TypeInfoProvider

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

        构造函数什么都不做。

    • 方法详细信息

      • getElementTypeInfo

        public abstract TypeInfo getElementTypeInfo()

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

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

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

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

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

        该方法只能由应用程序设置为ValidatorHandlerContentHandler的startElement事件调用

        参数
        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()

        该方法只能由应用程序设置为ValidatorHandlerContentHandler的startElement事件调用

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

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

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

        该方法只能由应用程序设置为ValidatorHandlerContentHandler的startElement事件调用

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

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