Package com.saxonica.ee.validate
Class ComplexContentValidator
- java.lang.Object
-
- net.sf.saxon.event.SequenceReceiver
-
- net.sf.saxon.event.ProxyReceiver
-
- com.saxonica.ee.validate.ValidatingFilter
-
- com.saxonica.ee.validate.ContentValidator
-
- com.saxonica.ee.validate.AttributeValidator
-
- com.saxonica.ee.validate.ComplexContentValidator
-
- All Implemented Interfaces:
javax.xml.transform.Result
,Receiver
public class ComplexContentValidator extends AttributeValidator
This class is a filter that is used to validate the content of an element with a complex type. As each child element is encountered, it is used to compute a transition in the finite state machine compiled for the given complex type.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.saxonica.ee.validate.ContentValidator
ContentValidator.Nillability
-
-
Field Summary
-
Fields inherited from class com.saxonica.ee.validate.ContentValidator
childValidator, nilled, pendingMessages
-
Fields inherited from class net.sf.saxon.event.ProxyReceiver
nextReceiver
-
Fields inherited from class net.sf.saxon.event.SequenceReceiver
pipelineConfiguration, previousAtomic, systemId
-
-
Constructor Summary
Constructors Constructor Description ComplexContentValidator(ElementDecl declaration, UserComplexType type, Receiver next)
Create a ComplexContentValidator for a given type
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
characters(UnicodeString chars, Location locationId, int properties)
Handle character data appearing as a child of the element being validatedvoid
endElement()
Validation at the end of the element being validated.protected ContentValidator
getChildValidator()
Get a validator to handle the children of the current element.SchemaType
getSchemaType()
Get the schema type against which we are validating, if anyvoid
setPipelineConfiguration(PipelineConfiguration pipe)
Set the pipeline configurationvoid
setSchemaType(UserComplexType type)
Set the schema type against which this validator is to validate the instance elementvoid
startElement(NodeName elemName, SchemaType elemType, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties)
Handle the start tag for a child element of the element being validated-
Methods inherited from class com.saxonica.ee.validate.AttributeValidator
getMostRecentAttributeType, processWildcardTerm, setAttributeGroup, validateAttributes
-
Methods inherited from class com.saxonica.ee.validate.ContentValidator
checkNoCharactersWhenNil, checkNoChildrenWhenNil, endDocument, getAnnotation, getContainingElement, getContainingElementLocationId, getContainingElementName, getElementDeclaration, getNamespaceResolver, getNillability, isNilled, makeChildValidator, makeValidator, makeValidatorForType, setAnnotation, setContainingElement, setElementDeclaration, setNillability, setNilled
-
Methods inherited from class com.saxonica.ee.validate.ValidatingFilter
append, getAttributeInheritor, getConstraintChecker, getValidationContext, reportIfInvalid, reportValidationError, setConstraintChecker, setStartTagBuffer, setValidationContext, usesTypeAnnotations
-
Methods inherited from class net.sf.saxon.event.ProxyReceiver
close, comment, getNamePool, getNextReceiver, open, processingInstruction, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument
-
Methods inherited from class net.sf.saxon.event.SequenceReceiver
append, decompose, flatten, getConfiguration, getErrorCodeForDecomposingFunctionItems, getPipelineConfiguration, getSystemId, handlesAppend
-
-
-
-
Constructor Detail
-
ComplexContentValidator
public ComplexContentValidator(ElementDecl declaration, UserComplexType type, Receiver next) throws MissingComponentException
Create a ComplexContentValidator for a given type- Parameters:
declaration
- the element declaration, if available, or null otherwise.type
- the complex typenext
- the next receiver in the pipeline- Throws:
MissingComponentException
- if the schema is incomplete or invalid
-
-
Method Detail
-
setPipelineConfiguration
public void setPipelineConfiguration(PipelineConfiguration pipe)
Description copied from interface:Receiver
Set the pipeline configuration- Specified by:
setPipelineConfiguration
in interfaceReceiver
- Overrides:
setPipelineConfiguration
in classProxyReceiver
- Parameters:
pipe
- the pipeline configuration
-
setSchemaType
public void setSchemaType(UserComplexType type) throws MissingComponentException
Set the schema type against which this validator is to validate the instance element- Parameters:
type
- the schema type used for validation- Throws:
MissingComponentException
- if there is a problem with the schema
-
getSchemaType
public SchemaType getSchemaType()
Description copied from class:ContentValidator
Get the schema type against which we are validating, if any- Specified by:
getSchemaType
in classContentValidator
- Returns:
- the schema type that this validator is validating against, or null
-
startElement
public void startElement(NodeName elemName, SchemaType elemType, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties) throws XPathException
Handle the start tag for a child element of the element being validated- Specified by:
startElement
in interfaceReceiver
- Overrides:
startElement
in classAttributeValidator
- Parameters:
elemName
- the name of the element.elemType
- the type annotation of the element.attributes
- the attributes of this elementnamespaces
- the in-scope namespaces of this element: generally this is all the in-scope namespaces, without relying on inheriting namespaces from parent elementslocation
- an object providing information about the module, line, and column where the node originatedproperties
- bit-significant properties of the element node. If there are no relevant properties, zero is supplied. The definitions of the bits are in classReceiverOption
- Throws:
XPathException
- if an error occurs
-
getChildValidator
protected ContentValidator getChildValidator()
Get a validator to handle the children of the current element. This is called immediately on return from the startElement call that starts this element.- Specified by:
getChildValidator
in classContentValidator
- Returns:
- the validator to be used to handle the children
-
characters
public void characters(UnicodeString chars, Location locationId, int properties) throws XPathException
Handle character data appearing as a child of the element being validated- Specified by:
characters
in interfaceReceiver
- Overrides:
characters
in classAttributeValidator
- Parameters:
chars
- The character contentlocationId
- the location of the node in the source, or of the instruction that created itproperties
- Additional properties @throws XPathException If this element does not allow character data- Throws:
XPathException
- if an error occurs
-
endElement
public void endElement() throws XPathException
Validation at the end of the element being validated. (Note this is a different element from the one passed to startElement).- Specified by:
endElement
in interfaceReceiver
- Overrides:
endElement
in classProxyReceiver
- Throws:
XPathException
- if the element is invalid
-
-