Module  java.xml
软件包  org.w3c.dom

Interface TypeInfo



  • public interface TypeInfo
    TypeInfo接口表示从与文档关联的模式中指定的ElementAttr节点引用的类型。 该类型是一对名称空间URI和名称属性,并且取决于文档的架构。

    如果文档的模式是XML DTD [ XML 1.0 ],则计算如下:

    • 如果该类型是从一个引用Attr节点, typeNamespace"http://www.w3.org/TR/REC-xml"typeName表示在[对[属性类型]属性XML Information Set 如果没有声明属性, typeNamespacetypeNamenull
    • 如果此类型由Element节点引用,则typeNamespacetypeNamenull

    如果文档的模式是XML模式[ XML Schema Part 1 ],则使用后模式验证信息集贡献(也称为PSVI贡献)计算以下值:

    • 如果[有效性]属性存在且为“无效”“不知道” :声明类型的{target namespace}和{name}属性(如果可用),否则为null

      注意:在编写本文时,XML Schema规范不需要公开声明的类型。 因此,如果有效性无效,则DOM实现可能选择不提供类型信息。

    • 如果[validity]属性存在且为“有效”
      1. 如果[成员类型定义]存在:
        1. 如果{name}不存在,则显示[member type definition]属性的{name}和{target namespace}属性;
        2. 否则,公开相应的匿名类型名称的命名空间和本地名称。
      2. 如果[type definition]属性存在:
        1. 如果{name}不存在,则显示[type definition]属性的{name}和{target namespace}属性;
        2. 否则,公开相应的匿名类型名称的命名空间和本地名称。
      3. 如果[成员类型定义匿名]存在:
        1. 如果它是false,那么暴露[成员类型定义名称][成员类型定义名称空间]属性;
        2. 否则,公开相应的匿名类型名称的命名空间和本地名称。
      4. 如果[type definition anonymous]存在:
        1. 如果为false,则显示[type definition name][type definition namespace]属性;
        2. 否则,公开相应的匿名类型名称的命名空间和本地名称。

    注意:其他模式语言不在W3C的范围内,因此应该使用TypeInfo定义如何表示其类型系统。

    另见Document Object Model (DOM) Level 3 Core Specification

    从以下版本开始:
    1.5,DOM 3级
    • 字段详细信息

      • DERIVATION_RESTRICTION

        static final int DERIVATION_RESTRICTION
        如果文档的模式是一个XML Schema [ XML Schema Part 1 ],这个常数代表由推导restriction如果复杂类型参与,或restriction ,如果简单类型的参与。
        如果其他类型定义与引用类型定义相同,则引用类型定义是通过其他类型定义的限制导出的,或者如果可以从引用类型定义的{base type definition}属性之后递归地访问另一个类型定义所涉及的所有推理方法都是限制性的。
        另请参见:
        Constant Field Values
      • DERIVATION_EXTENSION

        static final int DERIVATION_EXTENSION
        如果文档的架构是XML Schema [ XML Schema Part 1 ],则此常量表示派生extension
        如果可以从引用类型定义的{base type definition}属性之后递归地传递其他类型定义,引用类型定义是从其他类型定义引出的,并且所涉及的至少一个派生方法是一个扩展。
        另请参见:
        Constant Field Values
      • DERIVATION_UNION

        static final int DERIVATION_UNION
        如果文档的架构是XML Schema [ XML Schema Part 1 ],则该常量表示涉及简单类型的union
        如果存在两种类型定义T1和T2,例如参考类型定义是从T1由DERIVATION_RESTRICTIONDERIVATION_EXTENSION导出的,则引用类型定义是通过其他类型定义的DERIVATION_RESTRICTION导出的,T2是从DERIVATION_RESTRICTION的其他类型定义DERIVATION_RESTRICTION ,T1具有{variety} union ,其中一个{member type definitions}是T2。 请注意,T1可能与参考类型定义相同,T2可能与其他类型定义相同。
        另请参见:
        Constant Field Values
      • DERIVATION_LIST

        static final int DERIVATION_LIST
        如果文档的模式是XML Schema [ XML Schema Part 1 ],则此常量表示list
        如果存在两种类型定义T1和T2,例如参考类型定义从T1派生为DERIVATION_RESTRICTIONDERIVATION_EXTENSION ,则从另一类型定义的DERIVATION_RESTRICTION派生参考类型定义,T2由另一类型定义由DERIVATION_RESTRICTION ,T1具有{variety} 列表 ,T2是{项目类型定义}。 请注意,T1可能与参考类型定义相同,T2可能与其他类型定义相同。
        另请参见:
        Constant Field Values
    • 方法详细信息

      • getTypeName

        String getTypeName​()
        为关联的元素或属性声明的类型的名称,如果未知, null
      • getTypeNamespace

        String getTypeNamespace​()
        如果元素没有声明或没有命名空间信息可用, null相关元素或属性声明的类型的名称空间或 null
      • isDerivedFrom

        boolean isDerivedFrom​(String typeNamespaceArg,
                              String typeNameArg,
                              int derivationMethod)
        如果引用类型定义之间有派生,即所调用方法的 TypeInfo和另一种类型定义(即作为参数传递的定义)之间的派生,则返回此方法。
        参数
        typeNamespaceArg - 其他类型定义的命名空间。
        typeNameArg - 其他类型定义的名称。
        derivationMethod - 在两个类型之间应用的派生类型和条件,如该接口中提供的常量列表所述。
        结果
        如果文档的模式是DTD或没有模式与文档相关联,则此方法将始终返回false 如果文档的模式是XML模式,如果引用类型定义是根据推导参数从其他类型定义导出的,则该方法将返回true 如果参数的值为0derivationMethod参数没有设置为1 ),则如果可以通过true {base type definition},{item type definition}的任意组合达到其他类型定义,该方法将返回true ,或{成员类型定义}。