我在以下代码中将 String 转换为 org.w3.dom.Document:
public static Document convertStringToDocument(String xmlSource)
throws SAXException, ParserConfigurationException, IOException{
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
return builder.parse(new InputSource(new StringReader(xmlSource)));
}
我如何通过 xsd 验证它,就像我在此处使用 JAXBSource 所做的那样。
JAXBContext jc = JAXBContext.newInstance(Test.class);
JAXBSource source = new JAXBSource(jc, ga2);
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = sf.newSchema(new File("my.xsd"));
Validator validator = schema.newValidator();
validator.setErrorHandler(new MyErrorHandler());
//validator.validate(source);
validator.validate(new DOMSource(ConnectureXmlParser.convertStringToDocument("<test>Test</test>")));
所以它适用于我班级的 JAXBSource,但不适用于 Document 类型。我应该怎么做才能在同一个 xsd 上验证我的 org.w3c.dom.Document ?