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
nextReceiverFields inherited from class net.sf.saxon.event.SequenceReceiver
pipelineConfiguration, previousAtomic, systemIdFields 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 TypeMethodDescriptionvoidcharacters(UnicodeString chars, Location locationId, int properties) Character datavoidNotify the end of a document nodevoidEnd 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)voidsetInitialValidator(ContentValidator validator) Set the initial validator to be used for the outermost elementvoidsetIsNilled(boolean nilled) Indicate whether the current element is nilledvoidsetKeepStatistics(boolean keep) Ask that statistics be maintained for the duration of the validation episode.voidSet the pipeline configurationvoidsetTopLevelElement(NodeName name) Set the name of the required top-level element (if any)voidsetUnparsedEntity(String name, String uri, String publicId) Set the URI for an unparsed entity in the document.voidsetXsiValidationErrors(List<ValidationFailure> errors) Supply a list of errors found in attributes in the XSI namespace.voidstartElement(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, usesTypeAnnotationsMethods inherited from class net.sf.saxon.event.ProxyReceiver
close, comment, getNamePool, getNextReceiver, open, processingInstruction, setSystemId, setUnderlyingReceiver, startDocumentMethods 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:ReceiverSet the pipeline configuration- Specified by:
setPipelineConfigurationin interfaceReceiver- Overrides:
setPipelineConfigurationin 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:
setUnparsedEntityin interfaceReceiver- Overrides:
setUnparsedEntityin 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:
startElementin interfaceReceiver- Overrides:
startElementin 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:ProxyReceiverCharacter data- Specified by:
charactersin interfaceReceiver- Overrides:
charactersin 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:
endElementin interfaceReceiver- Overrides:
endElementin classProxyReceiver- Throws:
XPathException- if an error occurs
-
endDocument
Notify the end of a document node- Specified by:
endDocumentin interfaceReceiver- Overrides:
endDocumentin 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.
-