Package com.ctc.wstx.msv
Class GenericMsvValidator
- java.lang.Object
-
- org.codehaus.stax2.validation.XMLValidator
-
- com.ctc.wstx.msv.GenericMsvValidator
-
- All Implemented Interfaces:
com.sun.msv.grammar.IDContextProvider2,XMLStreamConstants,org.relaxng.datatype.ValidationContext
public final class GenericMsvValidator extends org.codehaus.stax2.validation.XMLValidator implements com.sun.msv.grammar.IDContextProvider2, XMLStreamConstants
Generic validator instance to be used for all Multi-Schema Validator backed implementations. A common class can be used since functionality is almost identical between variants (RNG, W3C SChema); minor differences that exist can be configured by settings provided.Note about id context provider interface: while it'd be nice to separate that part out, it is unfortunately closely tied to the validation process. Hence it's directly implemented by this class.
-
-
Field Summary
Fields Modifier and Type Field Description protected StringmStartTagPrefixSince `StartTagInfo` has no place for prefix, hold reference to one here-
Fields inherited from class org.codehaus.stax2.validation.XMLValidator
CONTENT_ALLOW_ANY_TEXT, CONTENT_ALLOW_NONE, CONTENT_ALLOW_UNDEFINED, CONTENT_ALLOW_VALIDATABLE_TEXT, CONTENT_ALLOW_WS, CONTENT_ALLOW_WS_NONSTRICT
-
Fields inherited from interface javax.xml.stream.XMLStreamConstants
ATTRIBUTE, CDATA, CHARACTERS, COMMENT, DTD, END_DOCUMENT, END_ELEMENT, ENTITY_DECLARATION, ENTITY_REFERENCE, NAMESPACE, NOTATION_DECLARATION, PROCESSING_INSTRUCTION, SPACE, START_DOCUMENT, START_ELEMENT
-
-
Constructor Summary
Constructors Constructor Description GenericMsvValidator(org.codehaus.stax2.validation.XMLValidationSchema parent, org.codehaus.stax2.validation.ValidationContext ctxt, com.sun.msv.verifier.DocumentDeclaration vgm)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringgetAttributeType(int index)StringgetBaseUri()intgetIdAttrIndex()intgetNotationAttrIndex()org.codehaus.stax2.validation.XMLValidationSchemagetSchema()booleanisNotation(String notationName)booleanisUnparsedEntity(String entityName)voidonID(org.relaxng.datatype.Datatype datatype, com.sun.msv.verifier.regexp.StringToken idToken)Note: we have to throw a dummy marker exception, which merely signals that a validation problem is to be reported.StringresolveNamespacePrefix(String prefix)StringvalidateAttribute(String localName, String uri, String prefix, char[] valueChars, int valueStart, int valueEnd)StringvalidateAttribute(String localName, String uri, String prefix, String value)intvalidateElementAndAttributes()intvalidateElementEnd(String localName, String uri, String prefix)voidvalidateElementStart(String localName, String uri, String prefix)Method called to update information about the newly encountered (start) element.voidvalidateText(char[] cbuf, int textStart, int textEnd, boolean lastTextSegment)voidvalidateText(String text, boolean lastTextSegment)voidvalidationCompleted(boolean eod)
-
-
-
Field Detail
-
mStartTagPrefix
protected String mStartTagPrefix
Since `StartTagInfo` has no place for prefix, hold reference to one here
-
-
Method Detail
-
getBaseUri
public String getBaseUri()
- Specified by:
getBaseUriin interfaceorg.relaxng.datatype.ValidationContext
-
isNotation
public boolean isNotation(String notationName)
- Specified by:
isNotationin interfaceorg.relaxng.datatype.ValidationContext
-
isUnparsedEntity
public boolean isUnparsedEntity(String entityName)
- Specified by:
isUnparsedEntityin interfaceorg.relaxng.datatype.ValidationContext
-
resolveNamespacePrefix
public String resolveNamespacePrefix(String prefix)
- Specified by:
resolveNamespacePrefixin interfaceorg.relaxng.datatype.ValidationContext
-
onID
public void onID(org.relaxng.datatype.Datatype datatype, com.sun.msv.verifier.regexp.StringToken idToken) throws IllegalArgumentExceptionNote: we have to throw a dummy marker exception, which merely signals that a validation problem is to be reported. This is obviously messy, but has to do for now.
- Specified by:
onIDin interfacecom.sun.msv.grammar.IDContextProvider2- Throws:
IllegalArgumentException
-
getSchema
public org.codehaus.stax2.validation.XMLValidationSchema getSchema()
- Specified by:
getSchemain classorg.codehaus.stax2.validation.XMLValidator
-
validateElementStart
public void validateElementStart(String localName, String uri, String prefix) throws XMLStreamException
Method called to update information about the newly encountered (start) element. At this point namespace information has been resolved, but no DTD validation has been done. Validator is to do these validations, including checking for attribute value (and existence) compatibility.- Specified by:
validateElementStartin classorg.codehaus.stax2.validation.XMLValidator- Throws:
XMLStreamException
-
validateAttribute
public String validateAttribute(String localName, String uri, String prefix, String value) throws XMLStreamException
- Specified by:
validateAttributein classorg.codehaus.stax2.validation.XMLValidator- Throws:
XMLStreamException
-
validateAttribute
public String validateAttribute(String localName, String uri, String prefix, char[] valueChars, int valueStart, int valueEnd) throws XMLStreamException
- Specified by:
validateAttributein classorg.codehaus.stax2.validation.XMLValidator- Throws:
XMLStreamException
-
validateElementAndAttributes
public int validateElementAndAttributes() throws XMLStreamException- Specified by:
validateElementAndAttributesin classorg.codehaus.stax2.validation.XMLValidator- Throws:
XMLStreamException
-
validateElementEnd
public int validateElementEnd(String localName, String uri, String prefix) throws XMLStreamException
- Specified by:
validateElementEndin classorg.codehaus.stax2.validation.XMLValidator- Returns:
- Validation state that should be effective for the parent element state
- Throws:
XMLStreamException
-
validateText
public void validateText(String text, boolean lastTextSegment) throws XMLStreamException
- Specified by:
validateTextin classorg.codehaus.stax2.validation.XMLValidator- Throws:
XMLStreamException
-
validateText
public void validateText(char[] cbuf, int textStart, int textEnd, boolean lastTextSegment) throws XMLStreamException- Specified by:
validateTextin classorg.codehaus.stax2.validation.XMLValidator- Throws:
XMLStreamException
-
validationCompleted
public void validationCompleted(boolean eod) throws XMLStreamException- Specified by:
validationCompletedin classorg.codehaus.stax2.validation.XMLValidator- Throws:
XMLStreamException
-
getAttributeType
public String getAttributeType(int index)
- Specified by:
getAttributeTypein classorg.codehaus.stax2.validation.XMLValidator
-
getIdAttrIndex
public int getIdAttrIndex()
- Specified by:
getIdAttrIndexin classorg.codehaus.stax2.validation.XMLValidator
-
getNotationAttrIndex
public int getNotationAttrIndex()
- Specified by:
getNotationAttrIndexin classorg.codehaus.stax2.validation.XMLValidator
-
-