-
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贡献)计算以下值:
- 如果[有效性]属性存在且为“无效”或“不知道” :声明类型的{target namespace}和{name}属性(如果可用),否则为
null
。注意:在编写本文时,XML Schema规范不需要公开声明的类型。 因此,如果有效性无效,则DOM实现可能选择不提供类型信息。
- 如果[validity]属性存在且为“有效” :
- 如果[成员类型定义]存在:
- 如果{name}不存在,则显示[member type definition]属性的{name}和{target namespace}属性;
- 否则,公开相应的匿名类型名称的命名空间和本地名称。
- 如果[type definition]属性存在:
- 如果{name}不存在,则显示[type definition]属性的{name}和{target namespace}属性;
- 否则,公开相应的匿名类型名称的命名空间和本地名称。
- 如果[成员类型定义匿名]存在:
- 如果它是false,那么暴露[成员类型定义名称]和[成员类型定义名称空间]属性;
- 否则,公开相应的匿名类型名称的命名空间和本地名称。
- 如果[type definition anonymous]存在:
- 如果为false,则显示[type definition name]和[type definition namespace]属性;
- 否则,公开相应的匿名类型名称的命名空间和本地名称。
- 如果[成员类型定义]存在:
注意:其他模式语言不在W3C的范围内,因此应该使用
TypeInfo
定义如何表示其类型系统。- 从以下版本开始:
- 1.5,DOM 3级
- 如果该类型是从一个引用
-
-
Field Summary
Fields Modifier and Type Field 描述 static int
DERIVATION_EXTENSION
如果文档的架构是XML Schema [ XML Schema Part 1 ],则该常量表示由 extension导出的 。static int
DERIVATION_LIST
如果文档的架构是XML Schema [ XML Schema Part 1 ],则该常量代表 list 。static int
DERIVATION_RESTRICTION
static int
DERIVATION_UNION
如果文档的模式是XML Schema [ XML Schema Part 1 ],则该常量表示 union,如果涉及简单类型。
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 String
getTypeName()
为关联的元素或属性声明的类型的名称,如果未知,null
。String
getTypeNamespace()
如果该元素没有声明或没有命名空间信息可用,null
相关元素或属性声明的类型的命名空间或null
。boolean
isDerivedFrom(String typeNamespaceArg, String typeNameArg, int derivationMethod)
如果在引用类型定义(即其上调用该方法的TypeInfo
和另一个类型定义(即作为参数传递的定义)之间存在派生,则返回此方法。
-
-
-
字段详细信息
-
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_RESTRICTION
或DERIVATION_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_RESTRICTION
或DERIVATION_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
。 如果参数的值为0
(derivationMethod
参数没有设置为1
),则如果可以通过true
{base type definition},{item type definition}的任意组合达到其他类型定义,该方法将返回true
,或{成员类型定义}。
-
-