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 Details

    • mStartTagPrefix

      protected String mStartTagPrefix
      Since `StartTagInfo` has no place for prefix, hold reference to one here
  • Constructor Details

    • GenericMsvValidator

      public GenericMsvValidator(org.codehaus.stax2.validation.XMLValidationSchema parent, org.codehaus.stax2.validation.ValidationContext ctxt, com.sun.msv.verifier.DocumentDeclaration vgm)
  • Method Details

    • getBaseUri

      public String getBaseUri()
      Specified by:
      getBaseUri in interface org.relaxng.datatype.ValidationContext
    • isNotation

      public boolean isNotation(String notationName)
      Specified by:
      isNotation in interface org.relaxng.datatype.ValidationContext
    • isUnparsedEntity

      public boolean isUnparsedEntity(String entityName)
      Specified by:
      isUnparsedEntity in interface org.relaxng.datatype.ValidationContext
    • resolveNamespacePrefix

      public String resolveNamespacePrefix(String prefix)
      Specified by:
      resolveNamespacePrefix in interface org.relaxng.datatype.ValidationContext
    • onID

      public void onID(org.relaxng.datatype.Datatype datatype, com.sun.msv.verifier.regexp.StringToken idToken) throws IllegalArgumentException

      Note: 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:
      onID in interface com.sun.msv.grammar.IDContextProvider2
      Throws:
      IllegalArgumentException
    • getSchema

      public org.codehaus.stax2.validation.XMLValidationSchema getSchema()
      Specified by:
      getSchema in class org.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:
      validateElementStart in class org.codehaus.stax2.validation.XMLValidator
      Throws:
      XMLStreamException
    • validateAttribute

      public String validateAttribute(String localName, String uri, String prefix, String value) throws XMLStreamException
      Specified by:
      validateAttribute in class org.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:
      validateAttribute in class org.codehaus.stax2.validation.XMLValidator
      Throws:
      XMLStreamException
    • validateElementAndAttributes

      public int validateElementAndAttributes() throws XMLStreamException
      Specified by:
      validateElementAndAttributes in class org.codehaus.stax2.validation.XMLValidator
      Throws:
      XMLStreamException
    • validateElementEnd

      public int validateElementEnd(String localName, String uri, String prefix) throws XMLStreamException
      Specified by:
      validateElementEnd in class org.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:
      validateText in class org.codehaus.stax2.validation.XMLValidator
      Throws:
      XMLStreamException
    • validateText

      public void validateText(char[] cbuf, int textStart, int textEnd, boolean lastTextSegment) throws XMLStreamException
      Specified by:
      validateText in class org.codehaus.stax2.validation.XMLValidator
      Throws:
      XMLStreamException
    • validationCompleted

      public void validationCompleted(boolean eod) throws XMLStreamException
      Specified by:
      validationCompleted in class org.codehaus.stax2.validation.XMLValidator
      Throws:
      XMLStreamException
    • getAttributeType

      public String getAttributeType(int index)
      Specified by:
      getAttributeType in class org.codehaus.stax2.validation.XMLValidator
    • getIdAttrIndex

      public int getIdAttrIndex()
      Specified by:
      getIdAttrIndex in class org.codehaus.stax2.validation.XMLValidator
    • getNotationAttrIndex

      public int getNotationAttrIndex()
      Specified by:
      getNotationAttrIndex in class org.codehaus.stax2.validation.XMLValidator