public class SchemaValidatorImpl extends SchemaValidator
If validation fails, an exception is thrown. If validation succeeds, the validated document
can optionally be written to a specified destination. This will be a copy of the original document,
augmented with default values for absent elements and attributes, and carrying type annotations
derived from the schema processing. Expansion of defaults can be suppressed by means of the method
setExpandAttributeDefaults(boolean).
A SchemaValidator is serially resuable but not thread-safe. That is, it should normally be used in the thread where it is created, but it can be used more than once, to validate multiple input documents.
A SchemaValidator is a Destination, which allows it to receive the output of a query or transformation to be validated.
Saxon does not deliver the full PSVI as described in the XML schema specifications, only the subset of the PSVI properties featured in the XDM data model.
| Constructor and Description |
|---|
SchemaValidatorImpl(Processor processor) |
| Modifier and Type | Method and Description |
|---|---|
void |
close()
Close the destination, allowing resources to be released.
|
protected ValidationParams |
convertParams(GlobalParameterSet suppliedParams,
Collection<GlobalParam> declaredParams) |
Destination |
getDestination()
Get the Destination that will receive the validated document.
|
QName |
getDocumentElementName()
Get the name of the required top-level element of the document to be validated.
|
protected SchemaType |
getDocumentElementType()
Get the schema type against which the document element is to be validated
|
QName |
getDocumentElementTypeName()
Get the name of the required type of the top-level element of the document to be validated.
|
ErrorListener |
getErrorListener()
Get the ErrorListener being used while validating instance documents
|
InvalidityHandler |
getInvalidityHandler()
Get the InvalidityHandler used when validating instance documents
|
XdmValue |
getParameter(QName name)
Get the value that has been set for a schema parameter (a parameter defined in the schema using
the
saxon:param extension) |
Receiver |
getReceiver(Configuration config)
Return a Receiver.
|
InvalidityHandler |
getReportingHandler() |
boolean |
isCollectStatistics()
Ask whether validation statistics are to be collected
|
boolean |
isExpandAttributeDefaults()
Ask whether attribute defaults defined in a schema are to be expanded or not
(by default, fixed and default attribute values are expanded, that is, they are inserted
into the document during validation as if they were present in the instance being validated)
|
boolean |
isLax()
Ask whether validation is to be in lax mode.
|
boolean |
isUseXsiSchemaLocation()
Ask whether the schema processor is to take account of any xsi:schemaLocation and
xsi:noNamespaceSchemaLocation attributes encountered while validating an instance document
|
void |
reportValidationStatistics(Destination destination)
Report the validation statistics from the most recent validation episode
Does nothing if no validation statistics have been collected.
|
void |
setCollectStatistics(boolean collect)
Say whether validation statistics are to be collected.
|
void |
setDestination(Destination destination)
Set the Destination to receive the validated document.
|
void |
setDocumentElementName(QName name)
Set the name of the required top-level element of the document to be validated (that is, the
name of the outermost element of the document).
|
void |
setDocumentElementTypeName(QName name)
Set the name of the required type of the top-level element of the document to be validated.
|
void |
setErrorListener(ErrorListener listener)
Set the ErrorListener to be used while validating instance documents.
|
void |
setExpandAttributeDefaults(boolean expand)
Set whether attribute defaults defined in a schema are to be expanded or not
(by default, fixed and default attribute values are expanded, that is, they are inserted
into the document during validation as if they were present in the instance being validated)
|
void |
setInvalidityHandler(InvalidityHandler handler)
Set the InvalidityHandler to be used when validating instance documents
|
void |
setLax(boolean lax)
The validation mode may be either strict or lax.
|
void |
setParameter(QName name,
XdmValue value)
Set the value of a schema parameter (a parameter defined in the schema using
the
saxon:param extension) |
void |
setThreadCount(int tc) |
void |
setUseXsiSchemaLocation(boolean recognize)
Say whether the schema processor is to take account of any xsi:schemaLocation and
xsi:noNamespaceSchemaLocation attributes encountered while validating an instance document
|
void |
setValidityReporting(Destination destination)
Setup Validation Reporting feature which saves the validation errors in an XML file
|
void |
validate(Source source)
Validate an instance document supplied as a Source object
|
void |
validateMultiple(Iterable<Source> sources)
Validate multiple instance document supplied as a Iterable of instance Source objects
|
public SchemaValidatorImpl(Processor processor)
public void setLax(boolean lax)
setLax in class SchemaValidatorlax - true if validation is to be lax, false if it is to be strictpublic boolean isLax()
isLax in class SchemaValidatorpublic void setErrorListener(ErrorListener listener)
setErrorListener in class SchemaValidatorlistener - The error listener to be used. This is notified of all errors detected during the
validation episode.public ErrorListener getErrorListener()
getErrorListener in class SchemaValidatorpublic void setValidityReporting(Destination destination) throws SaxonApiException
setValidityReporting in class SchemaValidatordestination - where XML will be sentSaxonApiExceptionpublic InvalidityHandler getReportingHandler()
getReportingHandler in class SchemaValidatorpublic InvalidityHandler getInvalidityHandler()
getInvalidityHandler in class SchemaValidatorpublic void setInvalidityHandler(InvalidityHandler handler)
setInvalidityHandler in class SchemaValidatorhandler - the InvalidityHandler to be usedpublic void setCollectStatistics(boolean collect)
setCollectStatistics in class SchemaValidatorcollect - true if validation statistics are to be collected (default is false)public boolean isCollectStatistics()
isCollectStatistics in class SchemaValidatorpublic void reportValidationStatistics(Destination destination) throws SaxonApiException
reportValidationStatistics in class SchemaValidatordestination - the destination to which the statistics will be written.
The XML format of the destination is not guaranteed to be stable across
Saxon releases.SaxonApiException - if any error occurs writing the statisticspublic void setUseXsiSchemaLocation(boolean recognize)
setUseXsiSchemaLocation in class SchemaValidatorrecognize - true if these two attributes are to be recognized; false if they are to
be ignored. Default is true.public boolean isUseXsiSchemaLocation()
isUseXsiSchemaLocation in class SchemaValidatorpublic void setDestination(Destination destination)
setDestination in class SchemaValidatordestination - the destination to receive the validated documentpublic Destination getDestination()
getDestination in class SchemaValidatorpublic void setDocumentElementName(QName name)
setDocumentElementName in class SchemaValidatorname - the name of the document element, as a QName; or null to remove a previously-specified
value.public QName getDocumentElementName()
getDocumentElementName in class SchemaValidatorpublic void setDocumentElementTypeName(QName name) throws SaxonApiException
setDocumentElementTypeName in class SchemaValidatorname - the name of the type of the document element, as a QName;
or null to remove a previously-specified value. This must be the name of a type in the
schema (typically but not necessarily a complex type).SaxonApiException - if there is no known type with this namepublic QName getDocumentElementTypeName()
getDocumentElementTypeName in class SchemaValidatorprotected SchemaType getDocumentElementType()
getDocumentElementType in class SchemaValidatorpublic void setExpandAttributeDefaults(boolean expand)
setExpandAttributeDefaults in class SchemaValidatorexpand - true if defaults are to be expanded, false if notpublic boolean isExpandAttributeDefaults()
isExpandAttributeDefaults in class SchemaValidatorpublic void setParameter(QName name, XdmValue value)
saxon:param extension)setParameter in class SchemaValidatorname - the name of the schema parameter, as a QNamevalue - the value of the schema parameter, or null to clear a previously set valuepublic XdmValue getParameter(QName name)
saxon:param extension)getParameter in class SchemaValidatorname - the parameter whose name is requiredpublic void setThreadCount(int tc)
public void validateMultiple(Iterable<Source> sources) throws SaxonApiException
validateMultiple in class SchemaValidatorsources - the Iterable of instance documents to be validated. The call getSystemId() applied to
the source objects must return the base URI used for dereferencing any xsi:schemaLocation
or xsi:noNamespaceSchemaLocation attributesSaxonApiException - if the source document is found to be invalid, or if error conditions
occur that prevented validation from taking place (such as failure to read or parse the input
document). The wrapped exception acting as the cause of the SaxonApiException can be used to
distinguish these failure conditions.public void validate(Source source) throws SaxonApiException
validate in class SchemaValidatorsource - the instance document to be validated. The call getSystemId() applied to
this source object must return the base URI used for dereferencing any xsi:schemaLocation
or xsi:noNamespaceSchemaLocation attributesSaxonApiException - if the source document is found to be invalid, or if error conditions
occur that prevented validation from taking place (such as failure to read or parse the input
document). The wrapped exception acting as the cause of the SaxonApiException can be used to
distinguish these failure conditions.protected ValidationParams convertParams(GlobalParameterSet suppliedParams, Collection<GlobalParam> declaredParams) throws XPathException
XPathExceptionpublic Receiver getReceiver(Configuration config) throws SaxonApiException
DestinationgetReceiver in interface DestinationgetReceiver in class SchemaValidatorconfig - The Saxon configuration. This is supplied so that the destination can
use information from the configuration (for example, a reference to the name pool)
to construct or configure the returned Receiver.PipelineConfiguration before calling
its open() method. The caller is also responsible for ensuring that the sequence
of events sent to the Receiver represents a well-formed document: in particular the event
stream must include namespace events corresponding exactly to the namespace declarations
that are required. If the calling code cannot guarantee this, it should insert a
NamespaceReducer into the pipeline in front of the returned
Receiver.SaxonApiException - if the Receiver cannot be createdpublic void close()
throws SaxonApiException
close in interface Destinationclose in class SchemaValidatorSaxonApiException - if any failure occursCopyright (c) 2004-2014 Saxonica Limited. All rights reserved.