Top Description Fields Constructors Methods
org.codehaus.stax2.validation

public Class ValidatorPair

extends XMLValidator
Class Inheritance
Imports
javax.xml.stream.XMLStreamException

Simple utility class that allows chaining of XMLValidator instances. Since the class itself implements XMLValidator, multiple validators can be added by chaining these pairs; ordering of validator calls depends on ordering of the pairs.

Default semantics are quite simple: first validator of the pair is always called first, and results as/if modified by that validator are passed on to the second validator.

It is expected that this class is mostly used by actual stream reader and writer implementations; not so much by validator implementations.

Field Summary

Modifier and TypeField and Description
public static final String
protected XMLValidator
protected XMLValidator
Inherited from org.codehaus.stax2.validation.XMLValidator:
CONTENT_ALLOW_ANY_TEXTCONTENT_ALLOW_NONECONTENT_ALLOW_UNDEFINEDCONTENT_ALLOW_VALIDATABLE_TEXTCONTENT_ALLOW_WSCONTENT_ALLOW_WS_NONSTRICT

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private boolean
private boolean
public String
getAttributeType(int index)

Implements abstract org.codehaus.stax2.validation.XMLValidator.getAttributeType.

Method for getting schema-specified type of an attribute, if information is available.
public int
getIdAttrIndex()

Implements abstract org.codehaus.stax2.validation.XMLValidator.getIdAttrIndex.

Method for finding out the index of the attribute that is of type ID; derived from DTD, W4C Schema, or some other validation source.
public int
getNotationAttrIndex()

Implements abstract org.codehaus.stax2.validation.XMLValidator.getNotationAttrIndex.

Method for finding out the index of the attribute (collected using the attribute collector; having DTD/Schema-derived info in same order) that is of type NOTATION.
public XMLValidationSchema
getSchema()

Implements abstract org.codehaus.stax2.validation.XMLValidator.getSchema.

Two choices here; could either return schema of the first child, or return null.
public static boolean
public static boolean
public String
validateAttribute(String localName, String uri, String prefix, String value)

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateAttribute.

Callback method called on validator to give it a chance to validate the value of an attribute, as well as to normalize its value if appropriate (remove leading/trailing/intervening white space for certain token types etc.).
public String
validateAttribute(String localName, String uri, String prefix, char[]
Character array that contains value (possibly along with some other text)
valueChars
,
int
Index of the first character of the value in in valueChars array
valueStart
,
int
Index of the character AFTER the last character; so that the length of the value String is valueEnd - valueStart
valueEnd
)

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateAttribute.

Callback method called on validator to give it a chance to validate the value of an attribute, as well as to normalize its value if appropriate (remove leading/trailing/intervening white space for certain token types etc.).
public int
validateElementAndAttributes()

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateElementAndAttributes.

Method called after calling validateAttribute on all attributes (if any), but before starting to handle element content.
public int
validateElementEnd(String localName, String uri, String prefix)

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateElementEnd.

Method called right after encountering an element close tag.
public void
public void
validateText(String
Text content to validate
text
,
boolean
Whether this text content is the last text segment before a close element; true if it is, false if it is not, or no determination can be made. Can be used for optimizing validation -- if this is true, no text needs to be buffered since no more will be sent before the current element closes.
lastTextSegment
)

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateText.

Method called to validate textual content.
public void
validateText(char[]
Character array that contains text content to validate
cbuf
,
int
Index of the first character of the content to validate
textStart
,
int
Character following the last character of the content to validate (that is, length of content to validate is textEnd - textStart).
textEnd
,
boolean
Whether this text content is the last text segment before a close element; true if it is, false if it is not, or no determination can be made. Can be used for optimizing validation -- if this is true, no text needs to be buffered since no more will be sent before the current element closes.
lastTextSegment
)

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateText.

Method called to validate textual content.
public void
validationCompleted(boolean
Flag that indicates whether this method was called by the context due to the end of the stream (true); or by an application requesting end of validation (false).
eod
)

Implements abstract org.codehaus.stax2.validation.XMLValidator.validationCompleted.

Method called when the validation is completed; either due to the input stream ending, or due to an explicit 'stop validation' request by the application (via context object).
Inherited from org.codehaus.stax2.validation.XMLValidator:
getSchemaType

Field Detail

ATTR_TYPE_DEFAULTback to summary
public static final String ATTR_TYPE_DEFAULT
mFirstback to summary
protected XMLValidator mFirst
mSecondback to summary
protected XMLValidator mSecond

Constructor Detail

ValidatorPairback to summary
public ValidatorPair(XMLValidator first, XMLValidator second)

Method Detail

doRemoveValidatorback to summary
private boolean doRemoveValidator(XMLValidationSchema schema, XMLValidator[] results)
doRemoveValidatorback to summary
private boolean doRemoveValidator(XMLValidator vld, XMLValidator[] results)
getAttributeTypeback to summary
public String getAttributeType(int index)

Implements abstract org.codehaus.stax2.validation.XMLValidator.getAttributeType.

Doc from org.codehaus.stax2.validation.XMLValidator.getAttributeType.

Method for getting schema-specified type of an attribute, if information is available. If not, validators can return null to explicitly indicate no information was available.

Annotations
@Override
getIdAttrIndexback to summary
public int getIdAttrIndex()

Implements abstract org.codehaus.stax2.validation.XMLValidator.getIdAttrIndex.

Doc from org.codehaus.stax2.validation.XMLValidator.getIdAttrIndex.

Method for finding out the index of the attribute that is of type ID; derived from DTD, W4C Schema, or some other validation source. Usually schemas explicitly specifies that at most one attribute can have this type for any element.

Returns:int

Index of the attribute with type ID, in the current element, if one exists: -1 otherwise

Annotations
@Override
getNotationAttrIndexback to summary
public int getNotationAttrIndex()

Implements abstract org.codehaus.stax2.validation.XMLValidator.getNotationAttrIndex.

Doc from org.codehaus.stax2.validation.XMLValidator.getNotationAttrIndex.

Method for finding out the index of the attribute (collected using the attribute collector; having DTD/Schema-derived info in same order) that is of type NOTATION. DTD explicitly specifies that at most one attribute can have this type for any element.

Returns:int

Index of the attribute with type NOTATION, in the current element, if one exists: -1 otherwise

Annotations
@Override
getSchemaback to summary
public XMLValidationSchema getSchema()

Implements abstract org.codehaus.stax2.validation.XMLValidator.getSchema.

Two choices here; could either return schema of the first child, or return null. Let's do latter, do avoid accidental matches.

Annotations
@Override
removeValidatorback to summary
public static boolean removeValidator(XMLValidator root, XMLValidationSchema schema, XMLValidator[] results)
removeValidatorback to summary
public static boolean removeValidator(XMLValidator root, XMLValidator vld, XMLValidator[] results)
validateAttributeback to summary
public String validateAttribute(String localName, String uri, String prefix, String value) throws XMLStreamException

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateAttribute.

Doc from org.codehaus.stax2.validation.XMLValidator.validateAttribute.

Callback method called on validator to give it a chance to validate the value of an attribute, as well as to normalize its value if appropriate (remove leading/trailing/intervening white space for certain token types etc.).

Returns:String

Null, if the passed value is fine as is; or a String, if it needs to be replaced. In latter case, caller will replace the value before passing it to other validators. Also, if the attribute value is accessible via caller (as is the case for stream readers), caller should return this value, instead of the original one.

Annotations
@Override
validateAttributeback to summary
public String validateAttribute(String localName, String uri, String prefix, char[] valueChars, int valueStart, int valueEnd) throws XMLStreamException

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateAttribute.

Doc from org.codehaus.stax2.validation.XMLValidator.validateAttribute.

Callback method called on validator to give it a chance to validate the value of an attribute, as well as to normalize its value if appropriate (remove leading/trailing/intervening white space for certain token types etc.).

Parameters
valueChars:char[]

Character array that contains value (possibly along with some other text)

valueStart:int

Index of the first character of the value in in valueChars array

valueEnd:int

Index of the character AFTER the last character; so that the length of the value String is valueEnd - valueStart

Returns:String

Null, if the passed value is fine as is; or a String, if it needs to be replaced. In latter case, caller will replace the value before passing it to other validators. Also, if the attribute value is accessible via caller (as is the case for stream readers), caller should return this value, instead of the original one.

Annotations
@Override
validateElementAndAttributesback to summary
public int validateElementAndAttributes() throws XMLStreamException

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateElementAndAttributes.

Doc from org.codehaus.stax2.validation.XMLValidator.validateElementAndAttributes.

Method called after calling validateAttribute on all attributes (if any), but before starting to handle element content.

Returns:int

One of CONTENT_ALLOW_ constants, to indicate what kind of textual content is allowed at the scope returned to after the element has closed.

Annotations
@Override
validateElementEndback to summary
public int validateElementEnd(String localName, String uri, String prefix) throws XMLStreamException

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateElementEnd.

Doc from org.codehaus.stax2.validation.XMLValidator.validateElementEnd.

Method called right after encountering an element close tag.

Returns:int

One of CONTENT_ALLOW_ constants, to indicate what kind of textual content is allowed at the scope returned to after the element has closed.

Annotations
@Override
validateElementStartback to summary
public void validateElementStart(String localName, String uri, String prefix) throws XMLStreamException

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateElementStart.

Annotations
@Override
validateTextback to summary
public void validateText(String text, boolean lastTextSegment) throws XMLStreamException

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateText.

Doc from org.codehaus.stax2.validation.XMLValidator.validateText.

Method called to validate textual content.

Note

this method is only guaranteed to be called when validateElementAndAttributes() for the currently open element returned CONTENT_ALLOW_VALIDATABLE_TEXT (or, in case of mixed content, validateElementEnd, for the last enclosed element). Otherwise, validator context may choose not to call the method as an optimization.

Parameters
text:String

Text content to validate

lastTextSegment:boolean

Whether this text content is the last text segment before a close element; true if it is, false if it is not, or no determination can be made. Can be used for optimizing validation -- if this is true, no text needs to be buffered since no more will be sent before the current element closes.

Annotations
@Override
validateTextback to summary
public void validateText(char[] cbuf, int textStart, int textEnd, boolean lastTextSegment) throws XMLStreamException

Implements abstract org.codehaus.stax2.validation.XMLValidator.validateText.

Doc from org.codehaus.stax2.validation.XMLValidator.validateText.

Method called to validate textual content.

Note

this method is only guaranteed to be called when validateElementAndAttributes() for the currently open element returned CONTENT_ALLOW_VALIDATABLE_TEXT (or, in case of mixed content, validateElementEnd, for the last enclosed element). Otherwise, validator context may choose not to call the method as an optimization.

Parameters
cbuf:char[]

Character array that contains text content to validate

textStart:int

Index of the first character of the content to validate

textEnd:int

Character following the last character of the content to validate (that is, length of content to validate is textEnd - textStart).

lastTextSegment:boolean

Whether this text content is the last text segment before a close element; true if it is, false if it is not, or no determination can be made. Can be used for optimizing validation -- if this is true, no text needs to be buffered since no more will be sent before the current element closes.

Annotations
@Override
validationCompletedback to summary
public void validationCompleted(boolean eod) throws XMLStreamException

Implements abstract org.codehaus.stax2.validation.XMLValidator.validationCompleted.

Doc from org.codehaus.stax2.validation.XMLValidator.validationCompleted.

Method called when the validation is completed; either due to the input stream ending, or due to an explicit 'stop validation' request by the application (via context object).

Parameters
eod:boolean

Flag that indicates whether this method was called by the context due to the end of the stream (true); or by an application requesting end of validation (false).

Annotations
@Override