public abstract class ContentValidator extends ValidatingFilter
| Modifier and Type | Field and Description |
|---|---|
protected ContentValidator |
childValidator |
protected boolean |
nil |
static int |
NIL_ALLOWED
Constant indicating that xsi:nil is allowed and active.
|
static int |
NIL_DISALLOWED
Constant indicating that xsi:nil is disallowed.
|
static int |
NIL_IGNORED
Constant indicating that xsi:nil is allowed but ignored; this is true when we are validating
against a type, rather than against an element declaration
|
protected List<String> |
pendingMessages |
locallyInvalidnextReceiverpipelineConfiguration, previousAtomic, systemIdPI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING| Constructor and Description |
|---|
ContentValidator(Receiver next) |
| Modifier and Type | Method and Description |
|---|---|
void |
endDocument()
Notify the end of a document node
|
protected SchemaType |
getAnnotation()
Get the type annotation code to be used on elements validated by this validator
|
protected abstract ContentValidator |
getChildValidator()
Get a validator to handle the children of the current element.
|
int |
getContainingElement()
Get the fingerprint of the name of the element being validated (for diagnostics).
|
int |
getContainingElementLocationId()
Get the location ID of the element being validated
|
protected String |
getContainingElementName()
Get the containing element name, for use in error messages.
|
protected ElementDecl |
getElementDeclaration()
Get the element declaration that this validator is validating against
|
NamespaceResolver |
getNamespaceResolver()
Get the namespace resolver
|
int |
getNillability()
Determine whether this type permits xsi:nil = true BlockCom
|
abstract SchemaType |
getSchemaType()
Get the schema type against which we are validating, if any
|
boolean |
isNil()
Determine whether xsi:nil = true was set on this element
|
protected void |
makeChildValidator(ElementDecl decl,
int nameCode,
int locationId,
int process)
Make a validator for the children of the element whose start tag is currently being processed.
|
static ContentValidator |
makeValidator(ElementDecl decl,
int nameCode,
int locationId,
ValidationContext validationContext,
SchemaType governingType,
int validation,
PipelineConfiguration pipe,
Receiver nextReceiver)
Factory method to make a validator for a particular element
|
static ContentValidator |
makeValidatorForType(ElementDecl elementDecl,
SchemaType schemaType,
PipelineConfiguration pipe,
Receiver nextReceiver)
Factory method to create a validator for elements of a given type
|
protected void |
setAnnotation(SchemaType annotation)
Set the type annotation code to be allocated by this validator
|
void |
setContainingElement(int fingerprint,
int locationId)
Set the fingerprint identifying the name of the containing element (for diagnostics)
|
protected void |
setElementDeclaration(ElementDecl decl)
Set the element declaration that this validator is validating against
|
void |
setNillability(int nillability)
Set whether this type permits xsi:nil = true
|
void |
startElement(NodeName nameCode,
SchemaType typeCode,
int locationId,
int properties)
Handle the start tag for a child element of the element being validated
|
append, getConstraintChecker, getStartTagBuffer, getValidationContext, reportIfInvalid, reportValidationError, setConstraintChecker, setStartTagBuffer, setValidationContext, usesTypeAnnotationsattribute, characters, close, comment, endElement, getNamePool, getUnderlyingReceiver, namespace, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, startDocumentappend, getConfiguration, getPipelineConfiguration, getSystemIdpublic static final int NIL_IGNORED
public static final int NIL_ALLOWED
public static final int NIL_DISALLOWED
protected ContentValidator childValidator
protected boolean nil
public ContentValidator(Receiver next)
public void setContainingElement(int fingerprint,
int locationId)
fingerprint - identifies the name of the containing elementlocationId - identifies the location of the containing elementprotected void setElementDeclaration(ElementDecl decl)
decl - the element declarationprotected ElementDecl getElementDeclaration()
public int getContainingElement()
public int getContainingElementLocationId()
protected String getContainingElementName()
public abstract SchemaType getSchemaType()
protected final void setAnnotation(SchemaType annotation)
annotation - the integer fingerprint of the name of the typeprotected final SchemaType getAnnotation()
public NamespaceResolver getNamespaceResolver()
public void setNillability(int nillability)
nillability - one of NIL_IGNORED, NIL_ALLOWED, NIL_DISALLOWEDpublic int getNillability()
NIL_IGNORED, NIL_ALLOWED, NIL_DISALLOWEDpublic boolean isNil()
public void startElement(NodeName nameCode, SchemaType typeCode, int locationId, int properties) throws XPathException
startElement in interface ReceiverstartElement in class ProxyReceivernameCode - integer code identifying the name of the element within the name pool.typeCode - integer code identifying the element's type within the name pool.locationId - an integer which can be interpreted using a LocationProvider to return
information such as line number and system ID. If no location information is available,
the value zero is supplied.properties - properties of the element nodeXPathException - if an error occurspublic static ContentValidator makeValidator(ElementDecl decl, int nameCode, int locationId, ValidationContext validationContext, SchemaType governingType, int validation, PipelineConfiguration pipe, Receiver nextReceiver) throws ValidationException
decl - the element declaration to validate against. May be null.nameCode - the name of the element (used only for diagnostics)locationId - the location of the element, or of the stylesheet instruction that generated this element (or zero)validationContext - information about the validation episodegoverningType - the type identified by xsi:type, if specified; otherwise nullvalidation - the validation mode (strict, lax, preserve, strip)pipe - the pipeline configurationnextReceiver - the next receiver in the pipelineValidationException - if a validator cannot be created, for example because
neither an element declaration nor a governing type is suppliedprotected abstract ContentValidator getChildValidator()
public static ContentValidator makeValidatorForType(ElementDecl elementDecl, SchemaType schemaType, PipelineConfiguration pipe, Receiver nextReceiver) throws ValidationException
elementDecl - the element declaration if available, otherwise null
(there will be no element declaration, for example, when doing lax validation
against an xsi:type)schemaType - the simple or complex type against which the content of the
element is to be validatedpipe - the pipeline configurationnextReceiver - the next receiver in the pipelineValidationException - if a validator cannot be constructed,
for example because the requested type is xs:untypedAtomicpublic void endDocument()
throws XPathException
endDocument in interface ReceiverendDocument in class ProxyReceiverXPathException - if an error occursprotected void makeChildValidator(ElementDecl decl, int nameCode, int locationId, int process) throws XPathException
decl - the element declaration for this element, if applicablenameCode - the name of this element, used for diagnosticslocationId - location information, used for diagnosticsXPathException - if a validation error occurs and if recovery from validation errors
has not been requested. The error will always have been reported.Copyright (c) 2004-2013 Saxonica Limited. All rights reserved.