org.apache.xmlbeans.impl.validator
Class ValidatingXMLStreamReader

java.lang.Object
  extended by javax.xml.stream.util.StreamReaderDelegate
      extended by org.apache.xmlbeans.impl.validator.ValidatingXMLStreamReader
All Implemented Interfaces:
javax.xml.stream.XMLStreamConstants, javax.xml.stream.XMLStreamReader
Direct Known Subclasses:
ValidatingInfoXMLStreamReader

public class ValidatingXMLStreamReader
extends javax.xml.stream.util.StreamReaderDelegate
implements javax.xml.stream.XMLStreamReader

This class is a wrapper over a generic XMLStreamReader that provides validation. There are 3 cases:
1) the XMLStreamReader represents a document, it contains only one element document - in this case the user schema type should be null or it should be a document SchemaType
2) the XMLStreamReader represents an xml-fragment (content only) - must have at least one user type or xsi:type
a) it has an xsi:type - if user schema type is available it has to be a base type of xsi:type
b) it doesn't have xsi:type - user must provide a schema type otherwise will error and will not do validation
3) the XMLStreamReader represents a global attribute - i.e. user schema type is null and only one attribute

Author:
Cezar Andrei (cezar.andrei at bea.com) Date: Feb 13, 2004

Field Summary
protected  Validator _validator
           
static java.lang.String OPTION_ATTTRIBUTE_VALIDATION_COMPAT_MODE
           
 
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
ValidatingXMLStreamReader()
          Default constructor.
 
Method Summary
 java.lang.Object getProperty(java.lang.String s)
           
 void init(javax.xml.stream.XMLStreamReader xsr, boolean startWithCurrentEvent, SchemaType contentType, SchemaTypeLoader stl, XmlOptions options, java.util.Collection errorListener)
          Used in case of reusing the same ValidatinXMLStreamReader object
 boolean isValid()
           
 int next()
           
protected  void validate_attribute(int attIndex)
           
protected  void validate_attributes(int attCount)
           
 
Methods inherited from class javax.xml.stream.util.StreamReaderDelegate
close, getAttributeCount, getAttributeLocalName, getAttributeName, getAttributeNamespace, getAttributePrefix, getAttributeType, getAttributeValue, getAttributeValue, getCharacterEncodingScheme, getElementText, getEncoding, getEventType, getLocalName, getLocation, getName, getNamespaceContext, getNamespaceCount, getNamespacePrefix, getNamespaceURI, getNamespaceURI, getNamespaceURI, getParent, getPIData, getPITarget, getPrefix, getText, getTextCharacters, getTextCharacters, getTextLength, getTextStart, getVersion, hasName, hasNext, hasText, isAttributeSpecified, isCharacters, isEndElement, isStandalone, isStartElement, isWhiteSpace, nextTag, require, setParent, standaloneSet
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.xml.stream.XMLStreamReader
close, getAttributeCount, getAttributeLocalName, getAttributeName, getAttributeNamespace, getAttributePrefix, getAttributeType, getAttributeValue, getAttributeValue, getCharacterEncodingScheme, getElementText, getEncoding, getEventType, getLocalName, getLocation, getName, getNamespaceContext, getNamespaceCount, getNamespacePrefix, getNamespaceURI, getNamespaceURI, getNamespaceURI, getPIData, getPITarget, getPrefix, getText, getTextCharacters, getTextCharacters, getTextLength, getTextStart, getVersion, hasName, hasNext, hasText, isAttributeSpecified, isCharacters, isEndElement, isStandalone, isStartElement, isWhiteSpace, nextTag, require, standaloneSet
 

Field Detail

OPTION_ATTTRIBUTE_VALIDATION_COMPAT_MODE

public static final java.lang.String OPTION_ATTTRIBUTE_VALIDATION_COMPAT_MODE
See Also:
Constant Field Values

_validator

protected Validator _validator
Constructor Detail

ValidatingXMLStreamReader

public ValidatingXMLStreamReader()
Default constructor. Use init(...) to set the params. See init(javax.xml.stream.XMLStreamReader, boolean, org.apache.xmlbeans.SchemaType, org.apache.xmlbeans.SchemaTypeLoader, org.apache.xmlbeans.XmlOptions, java.util.Collection)

Method Detail

init

public void init(javax.xml.stream.XMLStreamReader xsr,
                 boolean startWithCurrentEvent,
                 SchemaType contentType,
                 SchemaTypeLoader stl,
                 XmlOptions options,
                 java.util.Collection errorListener)
Used in case of reusing the same ValidatinXMLStreamReader object

Parameters:
xsr - The stream to be validated
startWithCurrentEvent - Validation will start if true with the current event or if false with the next event in the stream
contentType - The schemaType of the content. This can be null for document and global Att validation
stl - SchemaTypeLoader context of validation
options - Validator options
errorListener - Errors and warnings listener

getProperty

public java.lang.Object getProperty(java.lang.String s)
                             throws java.lang.IllegalArgumentException
Specified by:
getProperty in interface javax.xml.stream.XMLStreamReader
Overrides:
getProperty in class javax.xml.stream.util.StreamReaderDelegate
Throws:
java.lang.IllegalArgumentException

next

public int next()
         throws javax.xml.stream.XMLStreamException
Specified by:
next in interface javax.xml.stream.XMLStreamReader
Overrides:
next in class javax.xml.stream.util.StreamReaderDelegate
Throws:
javax.xml.stream.XMLStreamException

validate_attributes

protected void validate_attributes(int attCount)

validate_attribute

protected void validate_attribute(int attIndex)

isValid

public boolean isValid()
Returns:
Returns the validation state up to this point. NOTE: At least one START ELEMENT should have been consumed for a valid value to be returned.