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. |
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 |
int | getNameCode()
Get the namecode of the name of this type. |
SequenceIterator | getTypedValue(NodeInfo node)
Get the typed value of a node that is annotated with this schema type. |
boolean | isComplexType()
Test whether this SchemaType is a complex 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 |
void | isTypeDerivationOK(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. |
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
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.
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 a complex type
Returns: true if this SchemaType is a simple type
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