* turn off default behaviour of tolerating malformed xml
* tests using this option and bad xml will load
*/
options.put(SDOHelper.XMLOptions.XML_LOAD_LAX_FORM, new Integer(1));
final HelperContext hc = SDOUtil.createHelperContext(false, options);
final XMLStreamHelper streamHelper = SDOUtil.createXMLStreamHelper(hc);
hc.getXSDHelper().define(
"<schema xmlns=\"http://www.w3.org/2001/XMLSchema\" targetNamespace=\"testNS\">"+
"<element name=\"root\">"+
"<complexType>"+
"<sequence>"+
"<element name=\"unqualifiedElement\" type=\"string\"/>"+
"<element name=\"qualifiedElement\" form=\"qualified\" type=\"string\"/>"+
"</sequence>"+
"<attribute name=\"unqualifiedAttribute\" type=\"string\"/>"+
"<attribute name=\"qualifiedAttribute\" form=\"qualified\" type=\"string\"/>"+
"</complexType>"+
"</element>"+
"</schema>");
final String xml="<p:root xmlns:p=\"testNS\" p:unqualifiedAttribute=\"u\" qualifiedAttribute=\"q\">"+
"<p:unqualifiedElement/>"+
"<qualifiedElement/>"+
"</p:root>";
final XMLInputFactory inputFactory = XMLInputFactory.newInstance();
final XMLStreamReader reader1 = inputFactory.createXMLStreamReader(new StringReader(xml));
int event = reader1.getEventType();
while (!(event == XMLStreamConstants.START_ELEMENT)){
event = reader1.next();
}
final DataObject dataObject = streamHelper.loadObject(reader1);
/*
* this malformed xml will load, as lax is forced ON
*/
assertNotNull(dataObject);
}