org.jibx.runtime.impl
Class StAXReaderWrapper

java.lang.Object
  extended by org.jibx.runtime.impl.StAXReaderWrapper
All Implemented Interfaces:
IXMLReader

public class StAXReaderWrapper
extends java.lang.Object
implements IXMLReader

Wrapper for a StAX parser implementation. This delegates most calls more or less directly, only adding the required namespace functionality on top of the StAX API.


Field Summary
 
Fields inherited from interface org.jibx.runtime.IXMLReader
CDSECT, COMMENT, DOCDECL, END_DOCUMENT, END_TAG, ENTITY_REF, IGNORABLE_WHITESPACE, PROCESSING_INSTRUCTION, START_DOCUMENT, START_TAG, TEXT
 
Constructor Summary
StAXReaderWrapper(javax.xml.stream.XMLStreamReader rdr, java.lang.String name, boolean nsa)
          Constructor used by factory.
 
Method Summary
 java.lang.String buildPositionString()
          Build current parse input position description.
 int getAttributeCount()
          Get the number of attributes of the current start tag.
 java.lang.String getAttributeName(int index)
          Get an attribute name from the current start tag.
 java.lang.String getAttributeNamespace(int index)
          Get an attribute namespace from the current start tag.
 java.lang.String getAttributePrefix(int index)
          Get an attribute prefix from the current start tag.
 java.lang.String getAttributeValue(int index)
          Get an attribute value from the current start tag.
 java.lang.String getAttributeValue(java.lang.String ns, java.lang.String name)
          Get an attribute value from the current start tag.
 int getColumnNumber()
          Get current source column number.
 java.lang.String getDocumentName()
          Get document name.
 int getEventType()
          Gets the current parse event type, without changing the current parse state.
 java.lang.String getInputEncoding()
          Return the input encoding, if known.
 int getLineNumber()
          Get current source line number.
 java.lang.String getName()
          Get element name from the current start or end tag.
 java.lang.String getNamespace()
          Get element namespace from the current start or end tag.
 java.lang.String getNamespace(java.lang.String prefix)
          Get namespace URI associated with prefix.
 int getNamespaceCount(int depth)
          Get number of namespace declarations active at depth.
 java.lang.String getNamespacePrefix(int index)
          Get namespace prefix.
 java.lang.String getNamespaceUri(int index)
          Get namespace URI.
 int getNestingDepth()
          Get current element nesting depth.
 java.lang.String getPrefix()
          Get element prefix from the current start or end tag.
 java.lang.String getText()
          Get current text.
 void init()
          Initialize reader.
 boolean isNamespaceAware()
          Return namespace processing flag.
 int next()
          Advance to next binding component of input document.
 int nextToken()
          Advance to next parse event of input document.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StAXReaderWrapper

public StAXReaderWrapper(javax.xml.stream.XMLStreamReader rdr,
                         java.lang.String name,
                         boolean nsa)
Constructor used by factory. This checks the parser state, and if positioned at a start tag it initializes the namespace information for that start tag.

Parameters:
rdr - event reader
name - document name
nsa - namespace aware flag
Method Detail

init

public void init()
Initialize reader.

Specified by:
init in interface IXMLReader

buildPositionString

public java.lang.String buildPositionString()
Build current parse input position description.

Specified by:
buildPositionString in interface IXMLReader
Returns:
text description of current parse position

nextToken

public int nextToken()
              throws JiBXException
Description copied from interface: IXMLReader
Advance to next parse event of input document.

Specified by:
nextToken in interface IXMLReader
Returns:
parse event type code
Throws:
JiBXException - if error reading or parsing document

next

public int next()
         throws JiBXException
Description copied from interface: IXMLReader
Advance to next binding component of input document. This is a higher-level operation than IXMLReader.nextToken(), which consolidates text content and ignores parse events for components such as comments and PIs.

Specified by:
next in interface IXMLReader
Returns:
parse event type code
Throws:
JiBXException - if error reading or parsing document

getEventType

public int getEventType()
                 throws JiBXException
Description copied from interface: IXMLReader
Gets the current parse event type, without changing the current parse state.

Specified by:
getEventType in interface IXMLReader
Returns:
parse event type code
Throws:
JiBXException - if error parsing document

getName

public java.lang.String getName()
Description copied from interface: IXMLReader
Get element name from the current start or end tag.

Specified by:
getName in interface IXMLReader
Returns:
local name if namespace handling enabled, full name if namespace handling disabled

getNamespace

public java.lang.String getNamespace()
Description copied from interface: IXMLReader
Get element namespace from the current start or end tag.

Specified by:
getNamespace in interface IXMLReader
Returns:
namespace URI if namespace handling enabled and element is in a namespace, empty string otherwise

getPrefix

public java.lang.String getPrefix()
Description copied from interface: IXMLReader
Get element prefix from the current start or end tag.

Specified by:
getPrefix in interface IXMLReader
Returns:
prefix text (null if no prefix)

getAttributeCount

public int getAttributeCount()
Description copied from interface: IXMLReader
Get the number of attributes of the current start tag.

Specified by:
getAttributeCount in interface IXMLReader
Returns:
number of attributes

getAttributeName

public java.lang.String getAttributeName(int index)
Description copied from interface: IXMLReader
Get an attribute name from the current start tag.

Specified by:
getAttributeName in interface IXMLReader
Parameters:
index - attribute index
Returns:
local name if namespace handling enabled, full name if namespace handling disabled

getAttributeNamespace

public java.lang.String getAttributeNamespace(int index)
Description copied from interface: IXMLReader
Get an attribute namespace from the current start tag.

Specified by:
getAttributeNamespace in interface IXMLReader
Parameters:
index - attribute index
Returns:
namespace URI if namespace handling enabled and attribute is in a namespace, empty string otherwise

getAttributePrefix

public java.lang.String getAttributePrefix(int index)
Description copied from interface: IXMLReader
Get an attribute prefix from the current start tag.

Specified by:
getAttributePrefix in interface IXMLReader
Parameters:
index - attribute index
Returns:
prefix for attribute (null if no prefix present)

getAttributeValue

public java.lang.String getAttributeValue(int index)
Description copied from interface: IXMLReader
Get an attribute value from the current start tag.

Specified by:
getAttributeValue in interface IXMLReader
Parameters:
index - attribute index
Returns:
value text

getAttributeValue

public java.lang.String getAttributeValue(java.lang.String ns,
                                          java.lang.String name)
Description copied from interface: IXMLReader
Get an attribute value from the current start tag.

Specified by:
getAttributeValue in interface IXMLReader
Parameters:
ns - namespace URI for expected attribute (may be null or the empty string for the empty namespace)
name - attribute name expected
Returns:
attribute value text, or null if missing

getText

public java.lang.String getText()
Description copied from interface: IXMLReader
Get current text. When positioned on a TEXT event this returns the actual text; for CDSECT it returns the text inside the CDATA section; for COMMENT, DOCDECL, or PROCESSING_INSTRUCTION it returns the text inside the structure.

Specified by:
getText in interface IXMLReader
Returns:
text for current event

getNestingDepth

public int getNestingDepth()
Description copied from interface: IXMLReader
Get current element nesting depth. The returned depth always includes the current start or end tag (if positioned on a start or end tag).

Specified by:
getNestingDepth in interface IXMLReader
Returns:
element nesting depth

getNamespaceCount

public int getNamespaceCount(int depth)
Description copied from interface: IXMLReader
Get number of namespace declarations active at depth.

Specified by:
getNamespaceCount in interface IXMLReader
Parameters:
depth - element nesting depth
Returns:
number of namespaces active at depth

getNamespaceUri

public java.lang.String getNamespaceUri(int index)
Description copied from interface: IXMLReader
Get namespace URI.

Specified by:
getNamespaceUri in interface IXMLReader
Parameters:
index - declaration index
Returns:
namespace URI

getNamespacePrefix

public java.lang.String getNamespacePrefix(int index)
Description copied from interface: IXMLReader
Get namespace prefix.

Specified by:
getNamespacePrefix in interface IXMLReader
Parameters:
index - declaration index
Returns:
namespace prefix, null if a default namespace

getDocumentName

public java.lang.String getDocumentName()
Description copied from interface: IXMLReader
Get document name.

Specified by:
getDocumentName in interface IXMLReader
Returns:
document name, null if not known

getLineNumber

public int getLineNumber()
Description copied from interface: IXMLReader
Get current source line number.

Specified by:
getLineNumber in interface IXMLReader
Returns:
line number from source document, -1 if line number information not available

getColumnNumber

public int getColumnNumber()
Description copied from interface: IXMLReader
Get current source column number.

Specified by:
getColumnNumber in interface IXMLReader
Returns:
column number from source document, -1 if column number information not available

getNamespace

public java.lang.String getNamespace(java.lang.String prefix)
Description copied from interface: IXMLReader
Get namespace URI associated with prefix.

Specified by:
getNamespace in interface IXMLReader
Parameters:
prefix - namespace prefix to be matched (null for default namespace)
Returns:
associated URI (null if prefix not defined)

getInputEncoding

public java.lang.String getInputEncoding()
Description copied from interface: IXMLReader
Return the input encoding, if known. This is only valid after parsing of a document has been started.

Specified by:
getInputEncoding in interface IXMLReader
Returns:
input encoding (null if unknown)

isNamespaceAware

public boolean isNamespaceAware()
Description copied from interface: IXMLReader
Return namespace processing flag.

Specified by:
isNamespaceAware in interface IXMLReader
Returns:
namespace processing flag (true if namespaces are processed by reader, false if not)


Project Web Site