@SuppressWarnings("unchecked")
public <T> DataReader<T> createReader(Class<T> cls) {
DataReader<T> dr = null;
if (cls == XMLStreamReader.class) {
dr = (DataReader<T>)new XMLStreamDataReader(this);
} else if (cls == XMLEventReader.class) {
dr = (DataReader<T>)new EventDataReader(this);
} else if (cls == Message.class) {
dr = (DataReader<T>)new MessageDataReader(this);
} else if (cls == Node.class) {