package org.infinispan.configuration.parsing; import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; /** * An XML stream reader that can read nested {@code <xs:any>} content using a registered set of root * elements. * * @author <a href="mailto:david.lloyd@redhat.com">David M. Lloyd</a> * @since 6.0 */ public interface XMLExtendedStreamReader extends XMLStreamReader { /** * Handle an {@code <xs:any>}-type nested element, passing in the given value, returning after * the end of the element. Must be positioned on a {@code START_ELEMENT} or an exception will * occur. On return the cursor will be positioned on the corresponding {@code END_ELEMENT}. * * @param value * the value to pass in * @throws XMLStreamException * if an error occurs (e.g. the given value does not match the type of the handler for * the element, or the element is unknown) */ void handleAny(ConfigurationBuilderHolder holder) throws XMLStreamException; /** * Get the value of an attribute as a space-delimited string list. * * @param i the index of the attribute */ String[] getListAttributeValue(int i); /** * Returns the schema of currently being processed * * @return schema the current schema */ Schema getSchema(); /** * Sets the current schema * * @param schema */ void setSchema(Schema schema); }