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 |
locallyInvalid
nextReceiver
pipelineConfiguration, previousAtomic, systemId
PI_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, usesTypeAnnotations
attribute, characters, close, comment, endElement, getNamePool, getUnderlyingReceiver, namespace, open, processingInstruction, setPipelineConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startContent, startDocument
append, getConfiguration, getPipelineConfiguration, getSystemId, isTrueSequenceReceiver
public 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_DISALLOWED
public int getNillability()
NIL_IGNORED
, NIL_ALLOWED
, NIL_DISALLOWED
public boolean isNil()
public void startElement(NodeName nameCode, SchemaType typeCode, int locationId, int properties) throws XPathException
startElement
in interface Receiver
startElement
in class ProxyReceiver
nameCode
- 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 Receiver
endDocument
in class ProxyReceiver
XPathException
- 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-2014 Saxonica Limited. All rights reserved.