SchemaComponent
, java.io.Serializable
AtomicType
, ComplexType
, ListType
, SimpleType
AnySimpleType
, AnyType
, BuiltInAtomicType
, BuiltInListType
, ExternalObjectType
, Untyped
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.
Modifier and Type | Field | Description |
---|---|---|
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.
|
FIXED_UP, INCOMPLETE, INVALID, UNVALIDATED, VALIDATED, VALIDATING
Modifier and Type | Method | Description |
---|---|---|
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 DERIVATION_EXTENSION |
int |
getDerivationMethod() |
Gets the integer code of the derivation method used to derive this type from its
parent.
|
java.lang.String |
getDescription() |
Get a description of this type for use in error messages.
|
java.lang.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
|
java.lang.String |
getName() |
Get the local name of this type
|
int |
getNameCode() |
Get the namecode of the name of this type.
|
java.lang.String |
getSystemId() |
Get the URI of the schema document where the type was originally defined.
|
java.lang.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 |
isSameType(SchemaType other) |
Test whether this is the same type as another type.
|
boolean |
isSimpleType() |
Test whether this SchemaType is a simple type
|
getValidationStatus
static final int DERIVATION_RESTRICTION
static final int DERIVATION_EXTENSION
static final int DERIVATION_UNION
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.static final int DERIVATION_LIST
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.static final int DERIVE_BY_SUBSTITUTION
java.lang.String getName()
java.lang.String getTargetNamespace()
int getNameCode()
int getFingerprint()
java.lang.String getDisplayName()
boolean isComplexType()
boolean isSimpleType()
boolean isAtomicType()
boolean isAnonymousType()
int getBlock()
DERIVATION_LIST
and DERIVATION_EXTENSION
SchemaType getBaseType() throws UnresolvedReferenceException
java.lang.IllegalStateException
- if this type is not valid.UnresolvedReferenceException
int getDerivationMethod()
DERIVATION_RESTRICTION
boolean allowsDerivation(int derivation)
derivation
- the kind of derivation, for example DERIVATION_LIST
void analyzeContentExpression(Expression expression, int kind, StaticContext env) throws XPathException
expression
- the expression that delivers the contentkind
- the node kind whose content is being delivered: Type.ELEMENT
,
Type.ATTRIBUTE
, or Type.DOCUMENT
env
- The static evaluation context for the query or stylesheetXPathException
- if the expression will never deliver a value of the correct typeSequenceIterator getTypedValue(NodeInfo node) throws XPathException
atomize(net.sf.saxon.om.NodeInfo)
method, but this version returns a SequenceIterator which may
be more efficient when handling long lists.node
- the node whose typed value is requiredAtomicValue
XPathException
Value atomize(NodeInfo node) throws XPathException
getTypedValue(net.sf.saxon.om.NodeInfo)
. However, this method is often more convenient and may be
more efficient, especially in the common case where the value is expected to be a singleton.node
- the node whose typed value is requiredXPathException
boolean isSameType(SchemaType other)
other
- the other typejava.lang.String getDescription()
void checkTypeDerivationIsOK(SchemaType base, int block) throws SchemaException
base
- the base type; the algorithm tests whether derivation from this type is permittedblock
- the derivations that are blocked by the relevant element declarationSchemaException
- if the derivation is not allowedjava.lang.String getSystemId()