-
public interface TypeInfo
TypeInfo
接口表示从Element
或Attr
节点引用的类型,在与文档关联的模式中指定。 该类型是一对名称空间URI和名称属性,并且取决于文档的模式。如果文档的模式是XML DTD [ XML 1.0 ],则值计算如下:
- 如果从
Attr
节点引用此类型,则typeNamespace
是"http://www.w3.org/TR/REC-xml"
而typeName
表示[ XML Information Set ]中的[属性类型]属性。 如果该属性没有声明,则typeNamespace
和typeName
是null
。 - 如果从
Element
节点引用此类型,则typeNamespace
和typeName
是null
。
如果文档的模式是XML模式[ XML Schema Part 1 ],则使用后模式验证信息集贡献(也称为PSVI贡献)如下计算值:
- 如果[validity]属性存在并且为“invalid”或“notKnown” :声明类型的{target namespace}和{name}属性(如果可用),否则为
null
。注意:在编写本文时,XML Schema规范不要求公开声明的类型。 因此,如果有效性无效,DOM实现可能会选择不提供类型信息。
- 如果[validity]属性存在且“有效” :
- 如果存在[成员类型定义] :
- 如果{name}不存在,则公开[member type definition]属性的{name}和{target namespace}属性;
- 否则,公开相应匿名类型名称的名称空间和本地名称。
- 如果[type definition]属性存在:
- 如果{name}不存在,则公开[type definition]属性的{name}和{target namespace}属性;
- 否则,公开相应匿名类型名称的名称空间和本地名称。
- 如果[成员类型定义匿名]存在:
- 如果为false,则公开[member type definition name]和[member type definition namespace]属性;
- 否则,公开相应匿名类型名称的名称空间和本地名称。
- 如果[类型定义匿名]存在:
- 如果为false,则公开[类型定义名称]和[类型定义名称空间]属性;
- 否则,公开相应匿名类型名称的名称空间和本地名称。
- 如果存在[成员类型定义] :
注意:其他模式语言不在W3C的范围内,因此应定义如何使用
TypeInfo
表示其类型系统。- 从以下版本开始:
- 1.5,DOM Level 3
- 如果从
-
-
字段汇总
字段 变量和类型 字段 描述 static int
DERIVATION_EXTENSION
如果文档的模式是XML模式[ XML Schema Part 1 ],则此常量表示 extension的派生。static int
DERIVATION_LIST
如果文档的架构是XML架构[ XML Schema Part 1 ],则此常量表示 list 。static int
DERIVATION_RESTRICTION
static int
DERIVATION_UNION
如果文档的模式是XML模式[ XML Schema Part 1 ],则此常量表示 union(如果涉及简单类型)。
-
方法摘要
所有方法 实例方法 抽象方法 变量和类型 方法 描述 String
getTypeName()
为关联元素或属性声明的类型名称,如果未知,null
。String
getTypeNamespace()
为关联元素或属性声明的类型的命名空间,如果元素没有声明或没有可用的命名空间信息,则为null
。boolean
isDerivedFrom(String typeNamespaceArg, String typeNameArg, int derivationMethod)
如果在引用类型定义(即TypeInfo
该方法的TypeInfo
和另一个类型定义(即作为参数传递的定义)之间存在派生,则此方法返回。
-
-
-
字段详细信息
-
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_RESTRICTION
或DERIVATION_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_RESTRICTION
或DERIVATION_EXTENSION
从T1DERIVATION_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
,或来自引用类型定义的{成员类型定义}。
-
-