如何在没有本地XSD文件的情况下针对其XML Schema验证XML?

时间:2011-03-08 16:20:03

标签: java xml xsd

这是我的XML:

<?xml version="1.0"?>
<root xmlns="http://example.com/first-schema.xsd"
  xmlns:f="http://example.com/second-schema.xsd">
  <f:foo>test</f:foo>
</root>

现在我想验证这个XML是否是XMLSchema有效的。我本地没有这些first-schema.xsdsecond-schema.xsd个文件。而且,我对他们一无所知。我只是想确保我的XML文档对模式有效。是否可以用Java做?

1 个答案:

答案 0 :(得分:3)

您可以使用javax.xml.validation API。

SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); 
URL schemaURL = // The URL to your XML Schema; 
Schema schema = sf.newSchema(schemaURL); 
Validator validator = schema.newValidator();
DOMSource source = new DOMSource(xmlDOM);
validator.validate(source);

下面的示例演示了如何针对模式验证JAXB对象模型,但是您会发现使用DOM的DOMSource替换JAXBSource很容易:

相关问题