模块  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贡献)如下计算值:

    • 如果[validity]属性存在并且为“invalid”“notKnown” :声明类型的{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,则公开[member type definition name][member type definition namespace]属性;
        2. 否则,公开相应匿名类型名称的名称空间和本地名称。
      4. 如果[类型定义匿名]存在:
        1. 如果为false,则公开[类型定义名称][类型定义名称空间]属性;
        2. 否则,公开相应匿名类型名称的名称空间和本地名称。

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

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

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

      • DERIVATION_RESTRICTION

        static final int DERIVATION_RESTRICTION
        如果文档的模式是XML模式[ XML Schema Part 1 ],则此常量表示如果涉及复杂类型则由restriction派生,或者如果涉及简单类型则表示restriction
        如果其他类型定义与引用类型定义相同,或者如果可以在引用类型定义中的{base type definition}属性之后递归地到达其他类型定义,则通过限制从其他类型定义派生引用类型定义,所涉及的所有推导方法都是限制。
        另请参见:
        常数字段值
      • DERIVATION_EXTENSION

        static final int DERIVATION_EXTENSION
        如果文档的模式是XML模式[ XML Schema Part 1 ],则此常量表示extension的派生。
        如果可以在引用类型定义的{base type definition}属性之后递归地到达其他类型定义,则通过来自其他类型定义的扩展来派生引用类型定义,并且所涉及的至少一个派生方法是扩展。
        另请参见:
        常数字段值
      • DERIVATION_UNION

        static final int DERIVATION_UNION
        如果文档的模式是XML模式[ XML Schema Part 1 ],则此常量表示union(如果涉及简单类型)。
        ,如果存在两个类型定义T1和T2,例如参考类型定义是从T1派生的,由DERIVATION_RESTRICTIONDERIVATION_EXTENSION ,T2是从其他类型定义派生的DERIVATION_RESTRICTION ,T1具有DERIVATION_RESTRICTION派生类型定义。 {variety} union ,{member type definitions}之一是T2。 注意,T1可以与引用类型定义相同,T2可以与其他类型定义相同。
        另请参见:
        常数字段值
      • DERIVATION_LIST

        static final int DERIVATION_LIST
        如果文档的模式是XML模式[ XML Schema Part 1 ],则此常量表示list
        ,如果存在两个类型定义T1和T2,则引用类型定义是从其他类型定义的列表派生的,例如引用类型定义是通过DERIVATION_RESTRICTIONDERIVATION_EXTENSION从T1 DERIVATION_EXTENSION ,T2是通过DERIVATION_RESTRICTION从其他类型定义DERIVATION_RESTRICTION ,T1具有{variety} 列表 ,T2是{item type definition}。 注意,T1可以与引用类型定义相同,T2可以与其他类型定义相同。
        另请参见:
        常数字段值
    • 方法详细信息

      • getTypeName

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

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

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