ume*_*esh 4 java xml validation xsd
我已经被分配了一项工作来针对XSD验证XML,如果通过的everthing将解析XML,以便可以将其导入我的系统.
我的Qyestion是针对XSD验证XML的最佳方法,也是将XML解析为域对象的最佳API.
寻找有价值的建议
第1部分 - 验证XML
您可以使用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();
validator.validate(xml);
Run Code Online (Sandbox Code Playgroud)
第2部分 - OXM
关于问题的第二部分,将XML解析为域对象的最佳API是JAXB. JAXB是一个具有多个实现的规范.我领导MOXy JAXB实现,其中包含有用的扩展,例如基于XPath的映射.
在将XML转换为对象期间,您始终可以进行验证:
JAXBContext jc = JAXBContext.newInstance(Customer.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
URL schemaURL = // The URL to your XML Schema;
Schema schema = sf.newSchema(schemaURL);
unmarshaller.setSchema(schema);
JAXBElement<Customer> element = (JAXBElement<Customer>) unmarshaller.unmarshal(xml);
Customer customer = elemnt.getValue();
Run Code Online (Sandbox Code Playgroud)