|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
public interface SchemaType
SchemaType is an interface implemented by all schema types: simple and complex types, built-in and user-defined types.
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. |
| Fields inherited from interface net.sf.saxon.type.SchemaComponent |
|---|
FIXED_UP, INCOMPLETE, INVALID, UNVALIDATED, VALIDATED, VALIDATING |
| 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 XPath expression to see whether the expression is capable of delivering a value of this type. |
Value<? extends AtomicValue> |
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. |
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<? extends AtomicValue> |
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 |
| Methods inherited from interface net.sf.saxon.type.SchemaComponent |
|---|
getRedefinitionLevel, getValidationStatus |
| Field Detail |
|---|
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
| Method Detail |
|---|
String getName()
String getTargetNamespace()
int getNameCode()
int getFingerprint()
String getDisplayName()
boolean isComplexType()
boolean isSimpleType()
boolean isAtomicType()
boolean isAnonymousType()
int getBlock()
DERIVATION_LIST and DERIVATION_EXTENSION
SchemaType getBaseType()
throws UnresolvedReferenceException
IllegalStateException - if this type is not valid.
UnresolvedReferenceException - if the reference from this type to its base
type cannot be resolved; this will generally make the schema unusable, but only
if the type is actually used.int getDerivationMethod()
DERIVATION_RESTRICTIONboolean 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.DOCUMENTenv - The static evaluation context for the query or stylesheet
XPathException - if the expression will never deliver a value of the correct type
SequenceIterator<? extends AtomicValue> 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 required
AtomicValue
XPathException - if the node has no typed value (typically, if it is an element with
an element-only content type)
Value<? extends AtomicValue> 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 required
XPathException - if the node cannot be atomized, for example if this is a complex type
with element-only contentboolean isSameType(SchemaType other)
other - the other type
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 declaration
SchemaException - if the derivation is not allowedString getSystemId()
boolean isIdType()
boolean isIdRefType()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||