如何验证我已经在内存中作为DOM文档的XML文档?
答案 0 :(得分:2)
您可以使用javax.xml.validation
API验证内存中的XML。以下是使用JAXBSource
使用这些API的示例,用于验证DOM模型只需使用DOMSource
。
package blog.validation;
import java.io.File;
import javax.xml.XMLConstants;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.util.JAXBSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
public class Demo {
public static void main(String[] args) throws Exception {
Customer customer = new Customer();
customer.setName("Jane Doe");
customer.getPhoneNumbers().add(new PhoneNumber());
customer.getPhoneNumbers().add(new PhoneNumber());
customer.getPhoneNumbers().add(new PhoneNumber());
JAXBContext jc = JAXBContext.newInstance(Customer.class);
JAXBSource source = new JAXBSource(jc, customer);
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("customer.xsd"));
Validator validator = schema.newValidator();
validator.setErrorHandler(new MyErrorHandler());
validator.validate(source);
}
}
了解更多信息
答案 1 :(得分:0)
你是如何组成你的模特的?我有一个解决方案,我得到一个文本格式的XML消息,我用xmlbeans解析。然后我有能力调用它的验证方法。所以在我的maven构建过程中编译了一个Java类,它反映了我的XSD。
答案 2 :(得分:0)