if (source == null) {
return null;
}
try {
HelperContext helperContext = SDOContextHelper.getHelperContext(context, true);
XMLStreamHelper streamHelper = SDOUtil.createXMLStreamHelper(helperContext);
final QName elementName = SDOContextHelper.getElement(context);
final XMLHelper xmlHelper = helperContext.getXMLHelper();
// Allow privileged access to read properties. REquires java.util.PropertyPermission
// XML.load.form.lax read in security policy.
XMLDocument document = AccessController.doPrivileged(new PrivilegedAction<XMLDocument>() {
public XMLDocument run() {
return xmlHelper.createDocument(source, elementName.getNamespaceURI(), elementName.getLocalPart());
}
});
return streamHelper.createXMLStreamReader(document);
} catch (XMLStreamException e) {
// TODO: Add context to the exception
throw new TransformationException(e);
}
}