为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用Java和带有include的XSD验证XML文件?

如何使用Java和带有include的XSD验证XML文件?

眼眸繁星 2019-12-26 11:00:01
我正在使用Java 5 javax.xml.validation.Validator来验证XML文件。我已经完成了一个仅使用导入的架构,并且一切正常。现在,我尝试使用另一种使用导入和包含的模式进行验证。我的问题是主模式中的元素被忽略,验证表明它找不到它们的声明。这里是我建的模式:InputStream includeInputStream = getClass().getClassLoader().getResource("include.xsd").openStream();InputStream importInputStream = getClass().getClassLoader().getResource("import.xsd").openStream();InputStream mainInputStream = getClass().getClassLoader().getResource("main.xsd").openStream();Source[] sourceSchema = new SAXSource[]{includeInputStream , importInputStream, mainInputStream };Schema schema = factory.newSchema(sourceSchema);现在这是main.xsd中声明的摘录<xsd:schema xmlns="http://schema.omg.org/spec/BPMN/2.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:import="http://www.foo.com/import" targetNamespace="http://main/namespace" elementFormDefault="qualified" attributeFormDefault="unqualified">    <xsd:import namespace="http://www.foo.com/import" schemaLocation="import.xsd"/>    <xsd:include schemaLocation="include.xsd"/>    <xsd:element name="element" type="tElement"/>    <...></xsd:schema>如果我将包含的XSD的代码复制到main.xsd中,则可以正常工作。如果没有,验证将找不到“ Element”的声明。
查看完整描述

3 回答

  • 3 回答
  • 0 关注
  • 578 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信