java.lang.String data = null;
try{
// Read in data file and stringify it
File inpf = new File("data.xml");
FileInputStream fis = new FileInputStream(inpf);
byte [] b = new byte[5000];
int len = fis.read(b);
data = new java.lang.String(b,0,len);
}
catch(Exception e){}
// Create input stream for resource
ByteArrayInputStream ins = new ByteArrayInputStream(data.getBytes());
// Create resource
Resource resource = new XMLResourceImpl();
// Create XMLMap, used for proper XML mapping. This is an empty Map,
// it is using generated annotations for proper streaming
XMLResource.XMLMap xmlMap = new XMLMapImpl();
// Create options map for loading
Map options = new HashMap();
// Populate options
options.put(XMLResource.OPTION_XML_MAP,xmlMap);
// Initialize package, required for putting package in the registry
CnaPackage cPackage = CnaPackageImpl.init();
try{
resource.load(ins,options);
}
catch(Exception e){
e.printStackTrace();
}
// Get the root element from the resource
Message message = (Message)(resource.getContents().get(0));
This seems to be fairly straightforward code, but it does not work, because I am not using resource, thus not defining URL. I have two options. Either to create resource just for the sake of URL or modify XMLHandler, XMLLoadImpl and XMLResourceImpl to check for nulls. Is it a bug? Feature? What is your recommendation?