您可以使用XMLCatalog来解析模式导入语句中的xsd吗?如果是这样,首选/最佳实践是什么?我想将xsds打包到jar中,因此使用相对schemaLocation不起作用。
到目前为止,我正在尝试做这样的事情:
SchemaFactory factory = SchemaFactory .newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); XMLCatalogResolver catalogResolver = new XMLCatalogResolver( new String[]{"/path/to/catalog.xml"}); factory.setResourceResolver(catalogResolver); Schema schema = factory.newSchema(new StreamSource(ClassLoader .getSystemResourceAsStream("config.xsd")));
快速浏览一下,我看到了两个问题:
XMLCatalogResolver catalogResolver = new XMLCatalogResolver( new String[]{"catalog.xml"});
the Javadoc for this method
绝对URI
Schema schema = factory.newSchema(new StreamSource(ClassLoader .getSystemResourceAsStream("config.xsd")));
new StreamSource(ClassLoader.getSystemResource("config.xsd").toString())