org.xmlpull.v1.wrapper.XmlPullParserWrapper Maven / Gradle / Ivy
/* -*- c-basic-offset: 4; indent-tabs-mode: nil; -*- //------100-columns-wide------>|*/
// for license please see accompanying LICENSE.txt file (available also at http://www.xmlpull.org/)
package org.xmlpull.v1.wrapper;
import java.lang.reflect.Proxy;
import java.lang.reflect.InvocationHandler;
import java.io.IOException;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
/**
* Extensions to XmlPullParser interface
*
* @author Aleksander Slominski
* @author Naresh Bhatia
*/
public interface XmlPullParserWrapper extends XmlPullParser {
public static final String XSI_NS = "http://www.w3.org/2001/XMLSchema-instance";
public static final String XSD_NS = "http://www.w3.org/2001/XMLSchema";
/**
* Return value of attribute with given name and no namespace.
*/
public String getAttributeValue(String name);
/**
* Return PITarget from Processing Instruction (PI) as defined in
* XML 1.0 Section 2.6 Processing Instructions
* [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
*/
public String getPITarget() throws IllegalStateException;
/**
* Return everything past PITarget and S from Processing Instruction (PI) as defined in
* XML 1.0 Section 2.6 Processing Instructions
* [16] PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
*
* NOTE: if there is no PI data it returns empty string.
*/
public String getPIData() throws IllegalStateException;
/**
* Read attribute value and return it or throw exception if
* current element does not have such attribute.
*/
public String getRequiredAttributeValue(String name)
throws IOException, XmlPullParserException;
/**
* Read attribute value and return it or throw exception if
* current element does not have such attribute.
*/
public String getRequiredAttributeValue(String namespace, String name)
throws IOException, XmlPullParserException;
/**
* Read the text of a required element and return it or throw exception if
* required element is not found. Useful for getting the text of simple
* elements such as johndoe . Assumes that parser is
* just before the start tag and leaves the parser at the end tag. If the
* text is nil (e.g. ), then a null will be returned.
*/
public String getRequiredElementText(String namespace, String name)
throws IOException, XmlPullParserException;
/**
* Is the current tag nil? Checks for xsi:nil="true".
*/
public boolean isNil() throws IOException, XmlPullParserException;
/**
* Tests if the current event is of the given type and if the namespace and name match.
* null will match any namespace and any name. If the test passes a true is returned
* otherwise a false is returned.
*/
public boolean matches(int type, String namespace, String name)
throws XmlPullParserException;
/**
* call parser nextTag() and check that it is START_TAG, throw exception if not.
*/
public void nextStartTag()
throws XmlPullParserException, IOException;
/**
* combine nextTag(); pp.require(pp.START_TAG, null, name);
*/
public void nextStartTag(String name)
throws XmlPullParserException, IOException;
/**
* combine nextTag(); pp.require(pp.START_TAG, namespace, name);
*/
public void nextStartTag(String namespace, String name)
throws XmlPullParserException, IOException;
/**
* Call parser nextTag() and check that it is END_TAG, throw exception if not.
*/
public void nextEndTag() throws XmlPullParserException, IOException;
/**
* combine nextTag(); pp.require(pp.END_TAG, null, name);
*/
public void nextEndTag(String name)
throws XmlPullParserException, IOException;
/**
* combine nextTag(); pp.require(pp.END_TAG, namespace, name);
*/
public void nextEndTag(String namespace, String name)
throws XmlPullParserException, IOException;
/**
* Read text content of element ith given namespace and name
* (use null namespace do indicate that nemspace should not be checked)
*/
public String nextText(String namespace, String name)
throws IOException, XmlPullParserException;
/**
* Skip sub tree that is currently porser positioned on.
*
NOTE: parser must be on START_TAG and when funtion returns
* parser will be positioned on matching END_TAG
*/
public void skipSubTree()
throws XmlPullParserException, IOException;
// set of methods to read XSD types
// /**
// * Read string content of elment and try to convert it to double.
// * Take special care of INF, Infinity and NaN.
// * After this method executed the parser is positioned on END_TAG.
// */
// public double readDouble() throws XmlPullParserException, IOException;
//
// /**
// * Read string content of elment and convert it to float.
// * Take special care of INF, Infinity and NaN.
// * After this method executed the parser is positioned on END_TAG.
// */
// public float readFloat() throws XmlPullParserException, IOException;
//
// /**
// * Read string content of elment and try to convert it to int.
// * Take special care of INF, Infinity and NaN.
// * After this method executed the parser is positioned on END_TAG.
// */
// public int readInt() throws XmlPullParserException, IOException;
//
// /**
// * Check for xsi:nil and if it has value 'true' returns null
// * as described in
// * XML Schemas
// * Part 1
// * otherwise it calls nextText().
// * After this method executed the parser is positioned on END_TAG.
// */
// public String readString() throws XmlPullParserException, IOException;
//
// /**
// * Check that parser is on START_TAG with given namespace and name
// * and then call readDouble().
// */
// public double readDoubleElement(String namespace, String name)
// throws XmlPullParserException, IOException;
//
// /**
// * Check that parser is on START_TAG with given namespace and name
// * and then call readFloat().
// */
// public float readFloatElement(String namespace, String name)
// throws XmlPullParserException, IOException;
//
// /**
// * Check that parser is on START_TAG with given namespace and name
// * and then call readInt().
// */
// public int readIntElement(String namespace, String name)
// throws XmlPullParserException, IOException;
//
// /**
// * Check that parser is on START_TAG with given namespace and name
// * and then call readString().
// */
// public String readStringElemet(String namespace, String name)
// throws XmlPullParserException, IOException;
//
}