use of com.sun.xml.xsom.parser.XSOMParser in project atlasmap by atlasmap.
the class Dumper method main.
public static void main(String[] args) throws Exception {
XSOMParser reader = new XSOMParser();
// set an error handler so that you can receive error messages
reader.setErrorHandler(new ErrorReporter(System.out));
// DomAnnotationParserFactory is a convenient default to use
reader.setAnnotationParser(new DomAnnotationParserFactory());
try {
// the parse method can by called many times
for (int i = 0; i < args.length; i++) reader.parse(new File(args[i]));
XSSchemaSet xss = reader.getResult();
if (xss == null)
System.out.println("error");
else
new SchemaWriter(new OutputStreamWriter(System.out)).visit(xss);
dump(reader.getDocuments());
} catch (SAXException e) {
if (e.getException() != null)
e.getException().printStackTrace();
else
e.printStackTrace();
throw e;
}
}
use of com.sun.xml.xsom.parser.XSOMParser in project atlasmap by atlasmap.
the class XSOMParserTest method setUp.
protected void setUp() throws Exception {
if (docURL == null) {
docURL = new URL(docURLStr);
instance = new XSOMParser();
}
}
use of com.sun.xml.xsom.parser.XSOMParser in project midpoint by Evolveum.
the class DomToSchemaProcessor method createSchemaParser.
private XSOMParser createSchemaParser() {
XSOMParser parser = new XSOMParser();
if (entityResolver == null) {
entityResolver = prismContext.getEntityResolver();
if (entityResolver == null) {
throw new IllegalStateException("Entity resolver is not set (even tried to pull it from prism context)");
}
}
SchemaHandler errorHandler = new SchemaHandler(entityResolver);
parser.setErrorHandler(errorHandler);
parser.setAnnotationParser(new DomAnnotationParserFactory());
parser.setEntityResolver(errorHandler);
return parser;
}
use of com.sun.xml.xsom.parser.XSOMParser in project atlasmap by atlasmap.
the class SchemaInspector method doInspect.
private void doInspect(InputStream is) throws Exception {
xmlDocument = AtlasXmlModelFactory.createXmlDocument();
Fields fields = new Fields();
xmlDocument.setFields(fields);
namespaceContext = new AtlasXmlNamespaceContext();
rootNamespace = null;
XSOMParser parser = new XSOMParser(SAXParserFactory.newInstance());
parser.setAnnotationParser(new DomAnnotationParserFactory());
parser.setErrorHandler(new XSOMErrorHandler());
Transformer transformer = TransformerFactory.newInstance().newTransformer();
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
Document doc = dbf.newDocumentBuilder().parse(is);
Element root = doc.getDocumentElement();
if (root == null) {
throw new XmlInspectionException("XML schema document is empty");
} else if ("SchemaSet".equals(root.getLocalName())) {
XPath xpath = XPathFactory.newInstance().newXPath();
xpath.setNamespaceContext(namespaceContext);
NodeList subSchemas = (NodeList) xpath.evaluate(String.format("/%s:SchemaSet/%s:AdditionalSchemas/%s:schema", NS_PREFIX_SCHEMASET, NS_PREFIX_SCHEMASET, NS_PREFIX_XMLSCHEMA), doc, XPathConstants.NODESET);
for (int i = 0; i < subSchemas.getLength(); i++) {
Element e = (Element) subSchemas.item(i);
inheritNamespaces(e, false);
parser.parse(toInputStream(transformer, e));
}
Element rootSchema = (Element) xpath.evaluate(String.format("/%s:SchemaSet/%s:schema", NS_PREFIX_SCHEMASET, NS_PREFIX_XMLSCHEMA), doc, XPathConstants.NODE);
if (rootSchema == null) {
throw new XmlInspectionException("The root schema '/SchemaSet/schema' must be specified once and only once");
}
rootNamespace = getTargetNamespace(rootSchema);
if (rootNamespace != null && !rootNamespace.isEmpty()) {
namespaceContext.add("tns", rootNamespace);
}
inheritNamespaces(rootSchema, true);
parser.parse(toInputStream(transformer, rootSchema));
} else if ("schema".equals(root.getLocalName())) {
parser.parse(toInputStream(transformer, root));
rootNamespace = getTargetNamespace(root);
if (rootNamespace != null && !rootNamespace.isEmpty()) {
namespaceContext.add("tns", rootNamespace);
}
} else {
throw new XmlInspectionException(String.format("Unsupported document element '%s': root element must be 'schema' or 'SchemaSet'", root.getLocalName()));
}
XSSchemaSet schemaSet = parser.getResult();
printSchemaSet(schemaSet);
populateNamespaces();
}
use of com.sun.xml.xsom.parser.XSOMParser in project esb0 by karalus.
the class WSDLArtifact method getXSSchemaSet.
@Override
public XSSchemaSet getXSSchemaSet() throws SAXException {
if (_schemaSet == null) {
XSOMParser xsomParser = new XSOMParser(JAXPFactoryHelper.getSAXParserFactory());
xsomParser.setEntityResolver(getResolver());
for (byte[] schemaContent : _schemas.values()) {
InputSource is = new InputSource(new ByteArrayInputStream(schemaContent));
is.setSystemId(getURI());
xsomParser.parse(is);
}
_schemaSet = xsomParser.getResult();
}
return _schemaSet;
}
Aggregations