public class Verifier extends AbstractVerifier implements IVerifier
| Modifier and Type | Class and Description |
|---|---|
private static class |
Verifier.Context |
| Modifier and Type | Field and Description |
|---|---|
private DatatypeRef |
attributeType
the same instance is reused by the feedAttribute method to reduce
the number of the object creation.
|
private DatatypeRef |
characterType
this field is used to receive type information of character literals.
|
protected Acceptor |
current |
private static int |
DEFAULT_PANIC_LEVEL |
protected DocumentDeclaration |
docDecl
Schema object against which the validation will be done
|
private java.util.Set |
duplicateIds
Stores all duplicate id values.
|
static java.lang.String |
ERR_DUPLICATE_ID |
static java.lang.String |
ERR_MISSING_ATTRIBUTE |
static java.lang.String |
ERR_UNCOMPLETED_CONTENT |
static java.lang.String |
ERR_UNEXPECTED_ATTRIBUTE |
static java.lang.String |
ERR_UNEXPECTED_ELEMENT |
static java.lang.String |
ERR_UNEXPECTED_STARTTAG |
static java.lang.String |
ERR_UNEXPECTED_TEXT |
static java.lang.String |
ERR_UNSOLD_IDREF |
protected org.xml.sax.ErrorHandler |
errorHandler
Error handler
|
protected boolean |
hadError
This flag will be set to true if an error is found
|
private int |
initialPanicLevel
Initial panic level when an error is found.
|
private boolean |
isFinished
This flag will be set to true after endDocument method is called.
|
protected int |
panicLevel
Panic level.
|
(package private) Verifier.Context |
stack
context stack
|
private StartTagInfo |
sti
An object used to store start tag information.
|
private int |
stringCareLevel
current string care level.
|
private java.lang.StringBuffer |
text
characters that were read (but not processed)
|
dummyLocator, idrefs, ids, locator, namespaceSupport, performIDcheck| Constructor and Description |
|---|
Verifier(DocumentDeclaration documentDecl,
org.xml.sax.ErrorHandler errorHandler) |
| Modifier and Type | Method and Description |
|---|---|
void |
characters(char[] buf,
int start,
int len) |
void |
endDocument() |
void |
endElement(java.lang.String namespaceUri,
java.lang.String localName,
java.lang.String qName) |
protected org.relaxng.datatype.Datatype[] |
feedAttribute(Acceptor child,
java.lang.String uri,
java.lang.String localName,
java.lang.String qName,
java.lang.String value) |
java.lang.Object |
getCurrentElementType()
returns current element type.
|
org.xml.sax.ErrorHandler |
getErrorHandler() |
org.relaxng.datatype.Datatype[] |
getLastCharacterType()
gets DataType that validated the last characters.
|
void |
ignorableWhitespace(char[] buf,
int start,
int len) |
protected void |
init() |
boolean |
isValid()
checks if the document was valid.
|
static java.lang.String |
localizeMessage(java.lang.String propertyName,
java.lang.Object[] args) |
void |
onDuplicateId(java.lang.String id)
this method is called when a duplicate id value is found.
|
protected ValidityViolation |
onError(java.lang.String msg,
ErrorInfo ei) |
protected ValidityViolation |
onError(StringRef ref,
java.lang.String defaultMsg,
ErrorInfo ei)
signals an error.
|
protected void |
onNextAcceptorReady(StartTagInfo sti,
Acceptor nextAcceptor)
this method is called from the startElement method
after the tag name is processed and the child acceptor is created.
|
void |
setErrorHandler(org.xml.sax.ErrorHandler handler) |
void |
setPanicMode(boolean usePanicMode)
Turns on/off the panic mode.
|
void |
startDocument() |
void |
startElement(java.lang.String namespaceUri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes atts) |
protected void |
verifyText() |
endPrefixMapping, getBaseUri, getLocator, isNotation, isUnparsedEntity, notationDecl, onID, processingInstruction, resolveNamespacePrefix, setDocumentLocator, skippedEntity, startPrefixMapping, unparsedEntityDeclclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitgetLocatorprotected Acceptor current
Verifier.Context stack
private int stringCareLevel
private java.lang.StringBuffer text
protected org.xml.sax.ErrorHandler errorHandler
protected boolean hadError
private boolean isFinished
private final StartTagInfo sti
protected final DocumentDeclaration docDecl
protected int panicLevel
private int initialPanicLevel
private static final int DEFAULT_PANIC_LEVEL
private final DatatypeRef characterType
private final DatatypeRef attributeType
private java.util.Set duplicateIds
public static final java.lang.String ERR_UNEXPECTED_TEXT
public static final java.lang.String ERR_UNEXPECTED_ATTRIBUTE
public static final java.lang.String ERR_MISSING_ATTRIBUTE
public static final java.lang.String ERR_UNEXPECTED_STARTTAG
public static final java.lang.String ERR_UNCOMPLETED_CONTENT
public static final java.lang.String ERR_UNEXPECTED_ELEMENT
public static final java.lang.String ERR_UNSOLD_IDREF
public static final java.lang.String ERR_DUPLICATE_ID
public Verifier(DocumentDeclaration documentDecl, org.xml.sax.ErrorHandler errorHandler)
public final org.xml.sax.ErrorHandler getErrorHandler()
getErrorHandler in interface IVerifierpublic final void setErrorHandler(org.xml.sax.ErrorHandler handler)
setErrorHandler in interface IVerifierpublic final boolean isValid()
IVerifierpublic final void setPanicMode(boolean usePanicMode)
IVerifierHowever, turning it off is sometimes useful, when you are sure that the structure of the document is almost valid (e.g., validating a document generated by an application or when you are sure about the validity of the structure and only interested in validating datatypes,)
setPanicMode in interface IVerifierpublic org.relaxng.datatype.Datatype[] getLastCharacterType()
IVerifierThis method works correctly only when called immediately after startElement and endElement method. When called, this method returns DataType object that validated the last character literals.
For RELAX NG grammar, this method can return an array of length 2 or more. This happens when the last character matches <list> pattern. In that case, each type corresponds to each token (where tokens are the white-space separation of the last characters).
For any other grammar, this method always returns an array of length 1 (or null, if the type assignment failed).
So when you are using VerifierFilter, you can call this method only in your startElement and endElement method.
getLastCharacterType in interface IVerifierprotected void verifyText()
throws org.xml.sax.SAXException
org.xml.sax.SAXExceptionpublic void startElement(java.lang.String namespaceUri,
java.lang.String localName,
java.lang.String qName,
org.xml.sax.Attributes atts)
throws org.xml.sax.SAXException
startElement in interface org.xml.sax.ContentHandlerstartElement in class AbstractVerifierorg.xml.sax.SAXExceptionprotected void onNextAcceptorReady(StartTagInfo sti, Acceptor nextAcceptor) throws org.xml.sax.SAXException
This method is called before the attributes are consumed.
derived class can use this method to do something useful.
org.xml.sax.SAXExceptionprotected org.relaxng.datatype.Datatype[] feedAttribute(Acceptor child, java.lang.String uri, java.lang.String localName, java.lang.String qName, java.lang.String value) throws org.xml.sax.SAXException
org.xml.sax.SAXExceptionpublic void endElement(java.lang.String namespaceUri,
java.lang.String localName,
java.lang.String qName)
throws org.xml.sax.SAXException
endElement in interface org.xml.sax.ContentHandlerendElement in class AbstractVerifierorg.xml.sax.SAXExceptionprotected ValidityViolation onError(StringRef ref, java.lang.String defaultMsg, ErrorInfo ei) throws org.xml.sax.SAXException
org.xml.sax.SAXExceptionprotected ValidityViolation onError(java.lang.String msg, ErrorInfo ei) throws org.xml.sax.SAXException
org.xml.sax.SAXExceptionpublic java.lang.Object getCurrentElementType()
IVerifiergetCurrentElementType in interface IVerifierpublic void characters(char[] buf,
int start,
int len)
throws org.xml.sax.SAXException
characters in interface org.xml.sax.ContentHandlerorg.xml.sax.SAXExceptionpublic void ignorableWhitespace(char[] buf,
int start,
int len)
throws org.xml.sax.SAXException
ignorableWhitespace in interface org.xml.sax.ContentHandlerorg.xml.sax.SAXExceptionprotected void init()
init in class AbstractVerifierpublic void startDocument()
throws org.xml.sax.SAXException
startDocument in interface org.xml.sax.ContentHandlerorg.xml.sax.SAXExceptionpublic void endDocument()
throws org.xml.sax.SAXException
endDocument in interface org.xml.sax.ContentHandlerorg.xml.sax.SAXExceptionpublic void onDuplicateId(java.lang.String id)
AbstractVerifieronDuplicateId in class AbstractVerifierpublic static java.lang.String localizeMessage(java.lang.String propertyName,
java.lang.Object[] args)