Package com.saxonica.ee.validate
Class ValidationStack
java.lang.Object
net.sf.saxon.event.SequenceReceiver
net.sf.saxon.event.ProxyReceiver
com.saxonica.ee.validate.ValidatingFilter
com.saxonica.ee.validate.ValidationStack
This class manages the receivers that do element content
validation. It maintains a stack of Validators, each of which does
local element validation of the contents of a single element,
adding a new validator to the stack to handle each layer of nesting.
-
Field Summary
Fields inherited from class net.sf.saxon.event.ProxyReceiver
nextReceiver
Fields inherited from class net.sf.saxon.event.SequenceReceiver
pipelineConfiguration, previousAtomic, systemId
Fields inherited from interface javax.xml.transform.Result
PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING
-
Constructor Summary
ConstructorsConstructorDescriptionValidationStack
(Receiver next, int initialValidationMode, SchemaType initialType) Create a validation stack -
Method Summary
Modifier and TypeMethodDescriptionvoid
characters
(UnicodeString chars, Location locationId, int properties) Character datavoid
Notify the end of a document nodevoid
End of elementGet the statistics showing the usage of individual schema components during a validation episodeGet the name of the required top-level element (if any)void
setInitialValidator
(ContentValidator validator) Set the initial validator to be used for the outermost elementvoid
setIsNilled
(boolean nilled) Indicate whether the current element is nilledvoid
setKeepStatistics
(boolean keep) Ask that statistics be maintained for the duration of the validation episode.void
Set the pipeline configurationvoid
setTopLevelElement
(NodeName name) Set the name of the required top-level element (if any)void
setUnparsedEntity
(String name, String uri, String publicId) Set the URI for an unparsed entity in the document.void
setXsiValidationErrors
(List<ValidationFailure> errors) Supply a list of errors found in attributes in the XSI namespace.void
startElement
(NodeName elemName, SchemaType typeCode, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties) Process element start tagMethods 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, startDocument
Methods inherited from class net.sf.saxon.event.SequenceReceiver
append, decompose, flatten, getConfiguration, getErrorCodeForDecomposingFunctionItems, getPipelineConfiguration, getSystemId, handlesAppend
-
Constructor Details
-
ValidationStack
Create a validation stack- Parameters:
next
- the destination of events after passing through validationinitialValidationMode
- the initial validation mode, strict/laxinitialType
- the initial type to validate against, if any
-
-
Method Details
-
setPipelineConfiguration
Description copied from interface:Receiver
Set the pipeline configuration- Specified by:
setPipelineConfiguration
in interfaceReceiver
- Overrides:
setPipelineConfiguration
in classProxyReceiver
- Parameters:
pipe
- the pipeline configuration
-
setTopLevelElement
Set the name of the required top-level element (if any)- Parameters:
name
- the name of the element that must appear at the root of the subtree being validated
-
getTopLevelElement
Get the name of the required top-level element (if any)- Returns:
- the name of the element that must appear at the root of the subtree being validated, or null if none has been set
-
setUnparsedEntity
Set the URI for an unparsed entity in the document.- Specified by:
setUnparsedEntity
in interfaceReceiver
- Overrides:
setUnparsedEntity
in classProxyReceiver
- Parameters:
name
- The name of the unparsed entityuri
- The system identifier of the unparsed entitypublicId
- The public identifier of the unparsed entity- Throws:
XPathException
- if an error occurs
-
setIsNilled
public void setIsNilled(boolean nilled) Indicate whether the current element is nilled- Parameters:
nilled
- true if xsi:nil is set
-
setXsiValidationErrors
Supply a list of errors found in attributes in the XSI namespace. This is called immediately before calling startElement on the element containing these erroneous attributes- Parameters:
errors
- the list of errors
-
startElement
public void startElement(NodeName elemName, SchemaType typeCode, AttributeMap attributes, NamespaceMap namespaces, Location location, int properties) throws XPathException Process element start tag- Specified by:
startElement
in interfaceReceiver
- Overrides:
startElement
in classProxyReceiver
- Parameters:
elemName
- the name of the element.typeCode
- 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
-
setInitialValidator
Set the initial validator to be used for the outermost element- Parameters:
validator
- the validator to be used for the outermost element being validated
-
characters
public void characters(UnicodeString chars, Location locationId, int properties) throws XPathException Description copied from class:ProxyReceiver
Character data- Specified by:
characters
in interfaceReceiver
- Overrides:
characters
in classProxyReceiver
- Parameters:
chars
- The characterslocationId
- provides information such as line number and system ID.properties
- Bit significant value. The following bits are defined:- DISABLE_ESCAPING
- Disable escaping for this text node
- USE_CDATA
- Output as a CDATA section
- Throws:
XPathException
- if an error occurs
-
endElement
End of element- Specified by:
endElement
in interfaceReceiver
- Overrides:
endElement
in classProxyReceiver
- Throws:
XPathException
- if an error occurs
-
endDocument
Notify the end of a document node- Specified by:
endDocument
in interfaceReceiver
- Overrides:
endDocument
in classProxyReceiver
- Throws:
XPathException
- if an error occurs
-
setKeepStatistics
public void setKeepStatistics(boolean keep) Ask that statistics be maintained for the duration of the validation episode. The statistics indicate how often particular schema components (currently, element declarations and types) have been used.- Parameters:
keep
- true if statistics are to be kept, false if not
-
getCoverageStatistics
Get the statistics showing the usage of individual schema components during a validation episode- Returns:
- a table showing for each component that has been used, the number of times it has been used. If statistics are not being maintained, returns null.
-