|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.saxonica.schema.SchemaStructure
com.saxonica.schema.SchemaTypeImpl
com.saxonica.schema.UserComplexType
A user-defined complex type (that is, any complex type other than xs:anyType)
Field Summary |
Fields inherited from class com.saxonica.schema.SchemaTypeImpl |
finalProhibitions |
Fields inherited from interface net.sf.saxon.type.SchemaType |
DERIVATION_EXTENSION, DERIVATION_LIST, DERIVATION_RESTRICTION, DERIVATION_UNION, DERIVE_BY_SUBSTITUTION |
Fields inherited from interface net.sf.saxon.type.SchemaComponent |
FIXED_UP, INCOMPLETE, INVALID, UNVALIDATED, VALIDATED, VALIDATING |
Constructor Summary | |
UserComplexType(PreparedSchema schema,
javax.xml.transform.SourceLocator locator)
Creates a new Complextype with the given name |
Method Summary | |
void |
addAttributeGroupReference(AttributeGroupReference attrGroupRef)
Adds the given AttributeGroupReference to this UserComplexType |
void |
addAttributeUse(AttributeUse attrDecl)
Adds the given AttributeDecl to this UserComplexType. |
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 |
cancelValidation()
Cancel validation and compilation: this happens when the complex type is redefined |
void |
compile(PreparedSchema schema)
Compile the finite-state machine for validating instances against this type |
boolean |
computeIsAllContent()
Compute whether this complex type has a content model defined by an xs:all compositor |
boolean |
fixup(PreparedSchema schema)
Check references from this component to other components |
AllCompositor |
getAllCompositor()
For a complex type with "all" content, get the "all" compositor |
AttributeGroupDecl |
getAttributeGroup()
Returns the attribute group containing details of all the attributes defined for this complex type. |
SchemaType |
getAttributeUseType(int fingerprint)
Find an attribute use within this complex type definition having a given attribute name (identified by fingerprint), and return the schema type associated with that attribute. |
int |
getBlock()
Returns the value of the 'block' attribute for this element |
AttributeGroupDecl |
getCombinedAttributeGroup()
Returns the attribute group containing details of all the attributes defined for this complex type. |
int |
getElementParticleCardinality(int fingerprint)
Find an element particle within this complex type definition having a given element name (identified by fingerprint), and return the cardinality associated with that element particle, that is, the number of times the element can occur within this complex type. |
SchemaType |
getElementParticleType(int fingerprint)
Find an element particle within this complex type definition having a given element name (identified by fingerprint), and return the schema type associated with that element particle. |
Particle |
getExtendedParticle(PreparedSchema schema)
Get the particle corresponding to this UserComplexType, combining it with the content model of the base type if this type is derived by extension. |
AutomatonState |
getInitialState()
Get the initial state of the finite state machine used for validating against this type. |
SimpleType |
getSimpleContentType()
For a complex type with simple content, return the simple type of the content. |
TypeReference |
getSimpleContentTypeReference()
Get the reference to the simple content type |
SequenceIterator |
getTypedValue(NodeInfo node)
Get the typed value of a node that is annotated with this schema type |
boolean |
hasRegisteredExtension(UserComplexType extension)
Determine whether a particular complex type is among the registered extensions of this type |
boolean |
isAbstract()
Returns true if this UserComplexType has been marked as Abstract. |
boolean |
isAllContent()
Test whether this complex type has "all" content, that is, a content model using an xs:all compositor |
boolean |
isComplexContent()
Returns true if this complexType is a 'complexContent' |
boolean |
isEmptiable()
Test whether the content model of this complexType allows empty content |
boolean |
isEmptyContent()
Test whether the contentType of this complexType is empty |
boolean |
isMixedContent()
Determine whether this complex type allows mixed content |
boolean |
isRestricted()
Returns true if this complexType is a restriction |
boolean |
isSimpleContent()
Returns true if this complexType is a 'simpleContent' |
boolean |
isSimpleType()
Test whether this SchemaType is a simple type |
boolean |
isValidRestriction(SchemaType base,
PreparedSchema schema)
Determine whether this type is a valid restriction of another type |
void |
lookForCycles(PreparedSchema schema,
java.util.Stack references)
This method is called to look for cycles. |
void |
recompile(PreparedSchema schema)
Recompile the complex type when new members are added to the substitution group of an element |
void |
setAbstract(boolean isAbstract)
Sets whether or not this UserComplexType should be abstract. |
void |
setAnyAttribute(AttributeWildcard wildcard)
Sets the wildcard (anyAttribute) of the complexType. |
void |
setBlock(int block)
Sets the value of the 'block' attribute for this UserComplexType. |
void |
setComplexContent(boolean complexContent)
Sets whether or not this complexType is a 'complexContent' |
void |
setMixed(boolean isMixed)
Sets whether this complex type allows mixed content |
void |
setParticle(Particle particle)
Sets the particle representing the content model of this complex type |
void |
setRestriction(boolean restricted)
Sets whether or not this complexType is a restriction |
void |
setSimpleContent(boolean simpleContent)
|
void |
setSimpleContentTypeReference(TypeReference ref)
|
java.lang.String |
subsumes(ComplexType sub)
Test whether this complex type subsumes another complex type. |
boolean |
validate(PreparedSchema schema)
Checks the validity of this UserComplexType definition. |
Methods inherited from class com.saxonica.schema.SchemaStructure |
getColumnNumber, getFixupStatus, getLineNumber, getPublicId, getSchema, getSystemId, getValidationStatus, setFixupStatus, setLineNumber, setLocator, setSchema, setSystemId, setValidationStatus |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface net.sf.saxon.type.SchemaType |
allowsDerivation, getBaseType, getDerivationMethod, getDescription, getDisplayName, getFingerprint, getNameCode, isComplexType, isSameType, isTypeDerivationOK |
Methods inherited from interface net.sf.saxon.type.SchemaComponent |
getValidationStatus |
Constructor Detail |
public UserComplexType(PreparedSchema schema, javax.xml.transform.SourceLocator locator)
schema
- the owning SchemaMethod Detail |
public void addAttributeUse(AttributeUse attrDecl)
attrDecl
- the AttributeDecl to add to this UserComplexTypepublic void addAttributeGroupReference(AttributeGroupReference attrGroupRef)
attrGroupRef
- the AttributeGroupReference to add to this
UserComplexTypepublic AttributeGroupDecl getAttributeGroup()
public AttributeGroupDecl getCombinedAttributeGroup()
public boolean hasRegisteredExtension(UserComplexType extension)
public int getBlock()
getBlock
in interface SchemaType
getBlock
in class SchemaTypeImpl
public boolean isAbstract()
isAbstract
in interface ComplexType
public boolean isComplexContent()
isComplexContent
in interface ComplexType
public boolean isSimpleContent()
isSimpleContent
in interface ComplexType
public void setSimpleContent(boolean simpleContent)
public boolean isAllContent()
isAllContent
in interface ComplexType
public boolean computeIsAllContent() throws ValidationException
ValidationException
public AllCompositor getAllCompositor() throws ValidationException
ValidationException
public void setSimpleContentTypeReference(TypeReference ref)
public TypeReference getSimpleContentTypeReference()
public SimpleType getSimpleContentType()
getSimpleContentType
in interface ComplexType
public boolean isRestricted()
isRestricted
in interface ComplexType
public boolean isEmptyContent()
isEmptyContent
in interface ComplexType
public boolean isSimpleType()
isSimpleType
in interface SchemaType
public void setAbstract(boolean isAbstract)
isAbstract
- a boolean that when true makes this UserComplexType
abstract.public void setAnyAttribute(AttributeWildcard wildcard)
public void setBlock(int block)
block
- the value of the block attribute for this
UserComplexType definition, as a bit-significant integer.public void setComplexContent(boolean complexContent)
complexContent
- true if this complexType is a 'complexContent'public void setMixed(boolean isMixed)
isMixed
- if true, this type allows mixed contentpublic boolean isMixedContent()
isMixedContent
in interface ComplexType
public void setRestriction(boolean restricted)
restricted
- true if this complexType is a restrictionpublic void setParticle(Particle particle) throws SchemaException
particle
- the Particle to add
SchemaException
- if the particle cannot be added (for example,
because there is another with the same name in the same scope)public void lookForCycles(PreparedSchema schema, java.util.Stack references) throws SchemaException, UnresolvedReferenceException
lookForCycles
in interface UserSchemaComponent
lookForCycles
in class SchemaStructure
schema
- references
- A list of objects that contain direct or indirect references
to this object, and that must therefore not be referred to from this object.
SchemaException
UnresolvedReferenceException
public boolean fixup(PreparedSchema schema) throws SchemaException
fixup
in interface UserSchemaComponent
schema
- The schema is used for reporting errors
SchemaException
public boolean validate(PreparedSchema schema) throws SchemaException, ValidationException
validate
in interface UserSchemaComponent
schema
- if this is not null, any errors that are detected should
be reported using the error() method of this schema.
SchemaException
- if the ErrorListener decides that an error is fatal.
ValidationException
public boolean isValidRestriction(SchemaType base, PreparedSchema schema) throws SchemaException, ValidationException
SchemaException
ValidationException
public void compile(PreparedSchema schema) throws SchemaException, ValidationException
SchemaException
ValidationException
public void recompile(PreparedSchema schema) throws SchemaException, ValidationException
SchemaException
ValidationException
public void cancelValidation()
public AutomatonState getInitialState()
public Particle getExtendedParticle(PreparedSchema schema) throws SchemaException, ValidationException
SchemaException
ValidationException
public boolean isEmptiable() throws SchemaException, ValidationException
isEmptiable
in interface ComplexType
SchemaException
ValidationException
public SchemaType getElementParticleType(int fingerprint) throws SchemaException, ValidationException
If the element particle is not defined within this type itself, try to find it within the types derived by extension from this type. If there is one extension that defines the particle, return the type of that particle. If there are several, then if the types are consistent, return that type, otherwise return AnyType. (We don't currently construct a union type).
getElementParticleType
in interface ComplexType
fingerprint
- Identifies the name of the child element within this content model
SchemaException
ValidationException
public int getElementParticleCardinality(int fingerprint) throws SchemaException, ValidationException
StaticProperty.EXACTLY_ONE
, StaticProperty.ALLOWS_ZERO_OR_ONE
,
StaticProperty.ALLOWS_ZERO_OR_MORE
, StaticProperty.ALLOWS_ONE_OR_MORE
,
If there is no such particle, return zero.
getElementParticleCardinality
in interface ComplexType
fingerprint
- Identifies the name of the child element within this content model
SchemaException
ValidationException
public SchemaType getAttributeUseType(int fingerprint) throws SchemaException, ValidationException
getAttributeUseType
in interface ComplexType
fingerprint
- Identifies the name of the child element within this content model
SchemaException
ValidationException
public java.lang.String subsumes(ComplexType sub) throws ValidationException
subsumes
in interface ComplexType
sub
- the other type (the type that is derived by restriction, validly or otherwise)
ValidationException
public void analyzeContentExpression(Expression expression, int kind, StaticContext env) throws XPathException
analyzeContentExpression
in interface SchemaType
expression
- the expression that delivers the contentkind
- the node kind whose content is being delivered: Type.ELEMENT
,
Type.ATTRIBUTE
, or Type.DOCUMENT
env
-
XPathException
- if the expression will never deliver a value of the correct typepublic SequenceIterator getTypedValue(NodeInfo node) throws XPathException
getTypedValue
in interface SchemaType
node
- the node whose typed value is required
AtomicValue
XPathException
public 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.
atomize
in interface SchemaType
node
- the node whose typed value is required
XPathException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |