com.saxonica.validate
Class ComplexContentValidator

java.lang.Object
  extended bynet.sf.saxon.event.SequenceReceiver
      extended bynet.sf.saxon.event.ProxyReceiver
          extended bycom.saxonica.validate.ContentValidator
              extended bycom.saxonica.validate.AttributeValidator
                  extended bycom.saxonica.validate.ComplexContentValidator
All Implemented Interfaces:
Receiver, javax.xml.transform.Result

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.


Field Summary
 
Fields inherited from class com.saxonica.validate.AttributeValidator
nil
 
Fields inherited from class com.saxonica.validate.ContentValidator
invalid, pendingMessages, xsiType
 
Fields inherited from class net.sf.saxon.event.ProxyReceiver
nextReceiver, systemId
 
Fields inherited from class net.sf.saxon.event.SequenceReceiver
pipelineConfiguration, previousAtomic
 
Fields inherited from interface javax.xml.transform.Result
PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING
 
Constructor Summary
ComplexContentValidator(ElementDecl declaration, UserComplexType type)
          Create a ComplexContentValidator for a given type
 
Method Summary
 void characters(java.lang.CharSequence chars, int locationId, int properties)
          Handle character data appearing as a child of the element being validated
 void endElement()
          Validation at the end of the element being validated.
protected  ContentValidator getChildValidator()
          Get a validator to handle the children of the current element.
 UserComplexType getSchemaType()
           
 void setSchemaType(UserComplexType type)
           
 void startElement(int nameCode, int typeCode, int locationId, int properties)
          Handle the start tag for a child element of the element being validated
 
Methods inherited from class com.saxonica.validate.AttributeValidator
attribute, isNil, setAttributeGroup, startContent
 
Methods inherited from class com.saxonica.validate.ContentValidator
endDocument, getAnnotation, getContainingElement, getContainingElementLocationId, getContainingElementName, getElementDeclaration, getNamespaceResolver, isInvalid, isNillable, isOutput, makeValidator, makeValidator, makeValidator, reportValidationError, setAnnotation, setContainingElement, setElementDeclaration, setIsOutput, setNamespaceResolver, setNillable, setXSIType
 
Methods inherited from class net.sf.saxon.event.ProxyReceiver
close, comment, getConfiguration, getDocumentLocator, getNamePool, getSystemId, getUnderlyingReceiver, namespace, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument
 
Methods inherited from class net.sf.saxon.event.SequenceReceiver
append, getPipelineConfiguration
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ComplexContentValidator

public ComplexContentValidator(ElementDecl declaration,
                               UserComplexType type)
                        throws ValidationException
Create a ComplexContentValidator for a given type

Parameters:
declaration - the element declaration, if available, or null otherwise.
type - the complex type
Method Detail

setSchemaType

public void setSchemaType(UserComplexType type)
                   throws ValidationException
Throws:
ValidationException

getSchemaType

public UserComplexType getSchemaType()

startElement

public void startElement(int nameCode,
                         int typeCode,
                         int locationId,
                         int properties)
                  throws XPathException
Handle the start tag for a child element of the element being validated

Specified by:
startElement in interface Receiver
Overrides:
startElement in class AttributeValidator
Throws:
XPathException

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 class ContentValidator

characters

public void characters(java.lang.CharSequence chars,
                       int locationId,
                       int properties)
                throws XPathException
Handle character data appearing as a child of the element being validated

Specified by:
characters in interface Receiver
Overrides:
characters in class AttributeValidator
Parameters:
chars - The character content
properties - Additional properties
Throws:
XPathException - If this element does not allow character data

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 interface Receiver
Overrides:
endElement in class ProxyReceiver
Throws:
XPathException - if the element is invalid