org.apache.xmlbeans.impl.validator

## Class ValidatingXMLStreamReader

- java.lang.Object
- - javax.xml.stream.util.StreamReaderDelegate
  - - org.apache.xmlbeans.impl.validator.ValidatingXMLStreamReader

All Implemented Interfaces:
  XMLStreamConstants, XMLStreamReader

Direct Known Subclasses:
  ValidatingInfoXMLStreamReader

    public class ValidatingXMLStreamReader
    extends StreamReaderDelegate
    implements 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

### Field Summary

Fields
`protected Validator` `_validator`

### 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 and Description
`ValidatingXMLStreamReader()` Default constructor.

### Method Summary

All Methods Instance Methods Concrete Methods
`Object` `getProperty(String s)`
`void` `init(XMLStreamReader xsr, boolean startWithCurrentEvent, SchemaType contentType, SchemaTypeLoader stl, XmlOptions options, Collection<XmlError> 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

#### _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<org.apache.xmlbeans.XmlError>)`

### Method Detail

#### init

    public void init(XMLStreamReader xsr,
                     boolean startWithCurrentEvent,
                     SchemaType contentType,
                     SchemaTypeLoader stl,
                     XmlOptions options,
                     Collection<XmlError> 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 Object getProperty(String s)
                       throws IllegalArgumentException

Specified by:
  `getProperty` in interface `XMLStreamReader`
Overrides:
  `getProperty` in class `StreamReaderDelegate`
Throws:
  `IllegalArgumentException`

#### next

    public int next()
             throws XMLStreamException

Specified by:
  `next` in interface `XMLStreamReader`
Overrides:
  `next` in class `StreamReaderDelegate`
Throws:
  `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.