|
|||||||||
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_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 stylesheet
XPathException
- if the expression will never deliver a value of the correct typeSequenceIterator<? 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 |