TypeInfo

public interface TypeInfo

The TypeInfo interface represents a type referenced from Element or Attr nodes, specified in the schemas associated with the document. The type is a pair of a namespace URI and name properties, and depends on the document's schema.

If the document's schema is an XML DTD [XML 1.0], the values are computed as follows:

  • If this type is referenced from an Attr node, typeNamespace is "http://www.w3.org/TR/REC-xml" and typeName represents the [attribute type] property in the [XML Information Set] . If there is no declaration for the attribute, typeNamespace and typeName are null.
  • If this type is referenced from an Element node, typeNamespace and typeName are null.

If the document's schema is an XML Schema [XML Schema Part 1] , the values are computed as follows using the post-schema-validation infoset contributions (also called PSVI contributions):

  • If the [validity] property exists AND is "invalid" or "notKnown": the {target namespace} and {name} properties of the declared type if available, otherwise null.

    Note: At the time of writing, the XML Schema specification does not require exposing the declared type. Thus, DOM implementations might choose not to provide type information if validity is not valid.

  • If the [validity] property exists and is "valid":
    1. If [member type definition] exists:
      1. If {name} is not absent, then expose {name} and {target namespace} properties of the [member type definition] property;
      2. Otherwise, expose the namespace and local name of the corresponding anonymous type name.
    2. If the [type definition] property exists:
      1. If {name} is not absent, then expose {name} and {target namespace} properties of the [type definition] property;
      2. Otherwise, expose the namespace and local name of the corresponding anonymous type name.
    3. If the [member type definition anonymous] exists:
      1. If it is false, then expose [member type definition name] and [member type definition namespace] properties;
      2. Otherwise, expose the namespace and local name of the corresponding anonymous type name.
    4. If the [type definition anonymous] exists:
      1. If it is false, then expose [type definition name] and [type definition namespace] properties;
      2. Otherwise, expose the namespace and local name of the corresponding anonymous type name.

Note: Other schema languages are outside the scope of the W3C and therefore should define how to represent their type systems using TypeInfo.

See also the Document Object Model (DOM) Level 3 Core Specification.

Constant Summary

int DERIVATION_EXTENSION If the document's schema is an XML Schema [XML Schema Part 1] , this constant represents the derivation by extension.
int DERIVATION_LIST If the document's schema is an XML Schema [XML Schema Part 1] , this constant represents the list.
int DERIVATION_RESTRICTION If the document's schema is an XML Schema [XML Schema Part 1] , this constant represents the derivation by restriction if complex types are involved, or a restriction if simple types are involved.
int DERIVATION_UNION If the document's schema is an XML Schema [XML Schema Part 1] , this constant represents the union if simple types are involved.

Public Method Summary

abstract String
getTypeName()
The name of a type declared for the associated element or attribute, or null if unknown.
abstract String
getTypeNamespace()
The namespace of the type declared for the associated element or attribute or null if the element does not have declaration