Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.xml.transform.Source;
- final java.util.ArrayList<Source> xsdSources =
- new java.util.ArrayList<Source>();
- /* POPULATE THE LIST WITH ALL THE XSDS IN DEPENDENCY ORDER.
- THAT IS, FILES WITH NO DEPENDENCIES APPEAR IN LOWER INDEX.
- I USE javax.xml.transform.stream.StreamSource, GIVING IT
- STREAMS FROM java.util.jar.JarFile#getInputStream(JarEntry). */
- final javax.xml.validation.SchemaFactory schemaFactory =
- javax.xml.validation.SchemaFactory.newInstance(
- javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
- schemaFactory.setErrorHandler(new SchemaErrorHandler());
- return schemaFactory.newSchema(xsdSources.toArray(new Source[]{}));
- xsds/import/foo/thing.xsd (<xsd:element name="thing">...</xsd:element>)
- xsds/import/foo/otherthing.xsd (<xsd:include schemaLocation="thing.xsd"/>)
- xsds/import/foo/all.xsd (<xsd:include schemaLocation="otherthing.xsd"/>)
- xsds/mystuff/main.xsd (<xsd:import namespace="foonamespace" schemaLocation="../import/foo/all.xsd/>)
- <xsd:element xmlns:foo="foonamespace" ref="foo:thing"/>
- org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'foo:thing' to a(n) 'element declaration' component.
- at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
- at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
- at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
- at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:2537)
- at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:2528)
- at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1472)
- at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseLocal(XSDElementTraverser.java:160)
- at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseLocalElements(XSDHandler.java:2049)
- at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:582)
- at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:552)
- at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:519)
- at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:485)
- at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:210)
Add Comment
Please, Sign In to add comment