我有一个方法可以针对XSD验证XML文档。
public void validateAgainstXSD(String xsdPath, Document document) throws SAXException, IOException
{
SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = factory.newSchema(new StreamSource(new File(xsdPath)));
Validator validator = schema.newValidator();
validator.validate(new DOMSource(document));
}
这种方法运行正常。我现在尝试的是验证单个元素 -
NodeList nodeList = doc.getElementsByTagName(rootTag);
for(int i = 0 ; i < nodeList.getLength();i++)
{
Element element = (Element)nodeList.item(i);
//Validate only this element
}
我一无所知。有人可以帮助我吗?
答案 0 :(得分:1)
Validator.validate(Source source)
需要javax.xml.transform.Source
,which can be either a document or an element:
<强>参数强>:
source - 要验证的XML。必须是XML文档或XML元素 并且不能为空。
因此,如果您的代码已用于该文档,
validator.validate(new DOMSource(document));
您应该能够替换元素来代替文档:
validator.validate(new DOMSource(element));
,验证应从那里开始。