Module java.xml
Package 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信息集]中的值。如果属性没有声明,则typeNamespacetypeNamenull
  • 如果此类型是从Element节点引用的,则typeNamespacetypeNamenull

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

  • 如果[validity]属性存在且为"invalid"或"notKnown":如果可用,则为声明类型的{目标命名空间}和{name}属性,否则为null

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

  • 如果[validity]属性存在且为"valid":
    1. 如果存在[member type definition]
      1. 如果{name}不缺失,则公开[member type definition]属性的{name}和{目标命名空间}属性;
      2. 否则,公开相应匿名类型名称的命名空间和本地名称。
    2. 如果存在[type definition]属性:
      1. 如果{name}不缺失,则公开[type definition]属性的{name}和{目标命名空间}属性;
      2. 否则,公开相应匿名类型名称的命名空间和本地名称。
    3. 如果存在[member type definition anonymous]
      1. 如果为false,则公开[member type definition name][member type definition namespace]属性;
      2. 否则,公开相应匿名类型名称的命名空间和本地名称。
    4. 如果存在[type definition anonymous]
      1. 如果为false,则公开[type definition name][type definition namespace]属性;
      2. 否则,公开相应匿名类型名称的命名空间和本地名称。

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

另请参阅文档对象模型(DOM)Level 3核心规范

自从:
1.5, DOM Level 3
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    如果文档的模式是XML Schema [XML Schema第1部分],此常量表示通过扩展派生。
    static final int
    如果文档的模式是XML Schema [XML Schema第1部分],此常量表示列表
    static final int
    如果文档的模式是XML Schema [XML Schema第1部分],此常量表示如果涉及复杂类型,则通过限制派生,或者如果涉及简单类型,则通过限制
    static final int
    如果文档的模式是XML Schema [XML Schema第1部分],此常量表示如果涉及简单类型,则为联合
  • Method Summary

    Modifier and Type
    Method
    Description
    为关联元素或属性声明的类型名称,如果未知则为null
    为关联元素或属性声明的类型的命名空间,如果元素没有声明或没有命名空间信息可用,则为null
    boolean
    isDerivedFrom(String typeNamespaceArg, String typeNameArg, int derivationMethod)
    此方法返回引用类型定义之间的派生关系,即调用该方法的TypeInfo与传递的其他类型定义之间的关系。
  • Field Details

    • DERIVATION_RESTRICTION

      static final int DERIVATION_RESTRICTION
      如果文档的模式是XML Schema [XML Schema第1部分],此常量表示如果涉及复杂类型,则通过限制派生,或者如果涉及简单类型,则通过限制
      如果其他类型定义与引用类型定义相同,或者可以通过从引用类型定义的{基本类型定义}属性递归到其他类型定义,并且涉及的所有派生方法都是限制,则引用类型定义是通过限制派生的。
      另请参阅:
    • DERIVATION_EXTENSION

      static final int DERIVATION_EXTENSION
      如果文档的模式是XML Schema [XML Schema第1部分],此常量表示通过扩展派生。
      如果其他类型定义可以通过从引用类型定义的{基本类型定义}属性递归到其他类型定义,并且涉及的至少一个派生方法是扩展,则引用类型定义是通过扩展派生的。
      另请参阅:
    • DERIVATION_UNION

      static final int DERIVATION_UNION
      如果文档的模式是XML Schema [XML Schema第1部分],此常量表示如果涉及简单类型,则为联合
      如果存在两个类型定义T1和T2,使得引用类型定义通过DERIVATION_RESTRICTIONDERIVATION_EXTENSION从T1派生,并且T2通过DERIVATION_RESTRICTION从其他类型定义派生,T1具有{variety} union,并且{member type definitions}中的一个是T2,则引用类型定义是通过联合派生的。请注意,T1可能与引用类型定义相同,T2可能与其他类型定义相同。
      另请参阅:
    • DERIVATION_LIST

      static final int DERIVATION_LIST
      如果文档的模式是XML Schema [XML Schema第1部分],此常量表示列表
      如果存在两个类型定义T1和T2,使得引用类型定义通过DERIVATION_RESTRICTIONDERIVATION_EXTENSION从T1派生,并且T2通过DERIVATION_RESTRICTION从其他类型定义派生,T1具有{variety} list,并且T2是{item type definition}。请注意,T1可能与引用类型定义相同,T2可能与其他类型定义相同。
      另请参阅:
  • Method Details

    • getTypeName

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

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

      boolean isDerivedFrom(String typeNamespaceArg, String typeNameArg, int derivationMethod)
      此方法返回引用类型定义之间的派生关系,即调用该方法的TypeInfo与传递的其他类型定义之间的关系。
      参数:
      typeNamespaceArg - 其他类型定义的命名空间。
      typeNameArg - 其他类型定义的名称。
      derivationMethod - 两种类型之间的派生类型和条件,如此接口提供的常量列表中所述。
      返回:
      如果文档的模式是DTD或文档未关联模式,则此方法将始终返回false。如果文档的模式是XML Schema,则如果引用类型定义根据派生参数从其他类型定义派生,则该方法将返回true。如果参数的值为0(没有将1设置为derivationMethod参数的位),则如果可以通过从引用类型定义递归任意组合的{基本类型定义}、{项目类型定义}或{成员类型定义}到达其他类型定义,则该方法将返回true