net.sf.saxon.type
public interface SchemaType extends SchemaComponent
There is a hierarchy of interfaces that extend SchemaType, representing the top levels of the schema type system: SimpleType and ComplexType, with SimpleType further subdivided into List, Union, and Atomic types.
The implementations of these interfaces are organized into a different hierarchy: on the one side, built-in types such as AnyType, AnySimpleType, and the built-in atomic types and list types; on the other side, user-defined types defined in a schema.
| Field Summary | |
|---|---|
| static int | DERIVATION_EXTENSION
If the document's schema is an XML Schema [XML Schema Part 1]
, this constant represents the derivation by
extension.
|
| static int | DERIVATION_LIST
If the document's schema is an XML Schema [XML Schema Part 1]
, this constant represents the list.
|
| static 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.
|
| static 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.
|
| static int | DERIVE_BY_SUBSTITUTION
Derivation by substitution.
|
| Method Summary | |
|---|---|
| boolean | allowsDerivation(int derivation)
Determines whether derivation (of a particular kind)
from this type is allowed, based on the "final" property |
| void | analyzeContentExpression(Expression expression, int kind, StaticContext env)
Analyze an expression to see whether the expression is capable of delivering a value of this
type. |
| Value | atomize(NodeInfo node)
Get the typed value of a node that is annotated with this schema type. |
| void | checkTypeDerivationIsOK(SchemaType base, int block)
Check that this type is validly derived from a given type, following the rules for the Schema Component
Constraint "Is Type Derivation OK (Simple)" (3.14.6) or "Is Type Derivation OK (Complex)" (3.4.6) as
appropriate. |
| SchemaType | getBaseType()
Returns the base type that this type inherits from. |
| int | getBlock()
Returns the value of the 'block' attribute for this type, as a bit-signnificant
integer with fields such as DERIVATION_LIST and |
| int | getDerivationMethod()
Gets the integer code of the derivation method used to derive this type from its
parent. |
| String | getDescription()
Get a description of this type for use in error messages. |
| String | getDisplayName()
Get the display name of the type: that is, a lexical QName with an arbitrary prefix |
| int | getFingerprint()
Get the fingerprint of the name of this type |
| String | getName()
Get the local name of this type |
| int | getNameCode()
Get the namecode of the name of this type. |
| String | getSystemId()
Get the URI of the schema document where the type was originally defined. |
| String | getTargetNamespace()
Get the target namespace of this type |
| SequenceIterator | getTypedValue(NodeInfo node)
Get the typed value of a node that is annotated with this schema type. |
| boolean | isAnonymousType()
Test whether this is an anonymous type |
| boolean | isAtomicType()
Test whether this SchemaType is an atomic type |
| boolean | isComplexType()
Test whether this SchemaType is a complex type |
| boolean | isIdRefType()
Ask whether this type is an IDREF or IDREFS type. |
| boolean | isIdType()
Ask whether this type is an ID type. |
| boolean | isSameType(SchemaType other)
Test whether this is the same type as another type. |
| boolean | isSimpleType()
Test whether this SchemaType is a simple type |
DERIVATION_RESTRICTION or
DERIVATION_EXTENSION, T2 is derived from the other type
definition by DERIVATION_RESTRICTION, T1 has {variety} list, and T2 is the {item type definition}. Note that T1 could be the same as
the reference type definition, and T2 could be the same as the other
type definition.DERIVATION_RESTRICTION or
DERIVATION_EXTENSION, T2 is derived from the other type
definition by DERIVATION_RESTRICTION, T1 has {variety} union, and one of the {member type definitions} is T2. Note that T1 could be
the same as the reference type definition, and T2 could be the same
as the other type definition.Parameters: derivation the kind of derivation, for example DERIVATION_LIST
Returns: true if this kind of derivation is allowed
Parameters: expression the expression that delivers the content kind the node kind whose content is being delivered: ELEMENT, ATTRIBUTE, or DOCUMENT env The static evaluation context for the query or stylesheet
Throws: XPathException if the expression will never deliver a value of the correct type
Parameters: node the node whose typed value is required
Returns: the typed value.
Since: 8.5
Parameters: base the base type; the algorithm tests whether derivation from this type is permitted block the derivations that are blocked by the relevant element declaration
Throws: SchemaException if the derivation is not allowed
Returns: the base type.
Throws: IllegalStateException if this type is not valid.
Returns: the value of the 'block' attribute for this type
Returns: a numeric code representing the derivation method, for example DERIVATION_RESTRICTION
Returns: text identifing the type, for use in a phrase such as "the type XXXX".
Returns: a lexical QName identifying the type
Returns: the fingerprint. Returns an invented fingerprint for an anonymous type.
Returns: the local name of this type definition, if it has one. Return null in the case of an anonymous type.
Returns: the namecode. Returns an invented namecode for an anonymous type.
Returns: the URI of the schema document. Returns null if the information is unknown or if this is a built-in type
Returns: the target namespace of this type definition, if it has one. Return null in the case of an anonymous type, and in the case of a global type defined in a no-namespace schema.
Parameters: node the node whose typed value is required
Returns: a SequenceIterator over the atomic values making up the typed value of the specified node. The objects returned by this iterator are of type AtomicValue
Returns: true if this SchemaType is an anonymous type
Returns: true if this SchemaType is an atomic type
Returns: true if this SchemaType is a complex type
Parameters: other the other type
Returns: true if this is the same type as other
Returns: true if this SchemaType is a simple type