我试图将加载一个相当复杂的XML模式解析为Java中的Schema对象,以便可以对XML消息进行一些验证。
我的代码与此类似:
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new StreamSource(new File("schema/schema.xsd")));
我的模式有很多导入:
…等等。当我尝试加载架构时,出现很多错误。基于与此相关的另一个问题,看来我需要指定一个资源解析器,但是这不是默认情况下应该处理的吗?
如果是这样,我是否需要一个特定的目录来相对于我正在运行的应用程序运行位置或相对于基本模式文件放置模式?
最后,当我使用XMLSpy或类似的方式加载架构时,它可以正常工作,并且我可以毫无问题地验证XML实例。