code_junkie

Errors forming a JAXP Schema (javax.xml.validation.Schema)

Nov 13th, 2011
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.54 KB | None | 0 0
  1. import javax.xml.transform.Source;
  2.  
  3. final java.util.ArrayList<Source> xsdSources =
  4. new java.util.ArrayList<Source>();
  5. /* POPULATE THE LIST WITH ALL THE XSDS IN DEPENDENCY ORDER.
  6. THAT IS, FILES WITH NO DEPENDENCIES APPEAR IN LOWER INDEX.
  7. I USE javax.xml.transform.stream.StreamSource, GIVING IT
  8. STREAMS FROM java.util.jar.JarFile#getInputStream(JarEntry). */
  9.  
  10. final javax.xml.validation.SchemaFactory schemaFactory =
  11. javax.xml.validation.SchemaFactory.newInstance(
  12. javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
  13. schemaFactory.setErrorHandler(new SchemaErrorHandler());
  14. return schemaFactory.newSchema(xsdSources.toArray(new Source[]{}));
  15.  
  16. xsds/import/foo/thing.xsd (<xsd:element name="thing">...</xsd:element>)
  17. xsds/import/foo/otherthing.xsd (<xsd:include schemaLocation="thing.xsd"/>)
  18. xsds/import/foo/all.xsd (<xsd:include schemaLocation="otherthing.xsd"/>)
  19. xsds/mystuff/main.xsd (<xsd:import namespace="foonamespace" schemaLocation="../import/foo/all.xsd/>)
  20.  
  21. <xsd:element xmlns:foo="foonamespace" ref="foo:thing"/>
  22.  
  23. org.xml.sax.SAXParseException: src-resolve: Cannot resolve the name 'foo:thing' to a(n) 'element declaration' component.
  24. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
  25. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131)
  26. at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384)
  27. at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaErr(XSDHandler.java:2537)
  28. at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.reportSchemaError(XSDHandler.java:2528)
  29. at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.getGlobalDecl(XSDHandler.java:1472)
  30. at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDElementTraverser.traverseLocal(XSDElementTraverser.java:160)
  31. at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.traverseLocalElements(XSDHandler.java:2049)
  32. at com.sun.org.apache.xerces.internal.impl.xs.traversers.XSDHandler.parseSchema(XSDHandler.java:582)
  33. at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadSchema(XMLSchemaLoader.java:552)
  34. at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:519)
  35. at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaLoader.loadGrammar(XMLSchemaLoader.java:485)
  36. at com.sun.org.apache.xerces.internal.jaxp.validation.XMLSchemaFactory.newSchema(XMLSchemaFactory.java:210)
Add Comment
Please, Sign In to add comment