【发布时间】:2010-12-16 11:20:29
【问题描述】:
我正在尝试将一个相当复杂的 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")));
我的架构有很多导入:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="base_1">
<xs:import namespace="base_1" schemaLocation="common/MessageBase.xsd"/>
</xs:schema>
...等等。当我尝试加载架构时,出现很多错误。基于与此相关的另一个问题,我似乎需要指定一个资源解析器,但这不是应该默认处理的事情吗?
如果是这样,我是否需要将架构放置在相对于我正在编写的应用程序运行位置或相对于基本架构文件的特定目录中?
最后,当我使用 XMLSpy 或类似工具加载架构时,它工作正常,我可以毫无问题地验证 XML 实例。
【问题讨论】:
标签: java validation xsd jaxp