gpt4 book ai didi

java - 带有 XSD JAVA 的 XML

转载 作者:数据小太阳 更新时间:2023-10-29 02:00:25 29 4
gpt4 key购买 nike

我被分配了一项工作来根据 XSD 验证 XML,如果所有通过的内容都将解析 XML,以便可以将其导入我的系统。

我的问题是,针对 XSD 验证 XML 的最佳方法是什么,以及将 XML 解析到我的域对象中的最佳 API 是什么。

寻求有值(value)的建议

最佳答案

第 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);

第 2 部分 - OXM

关于问题的第二部分,将 XML 解析为域对象的最佳 API 是 JAXB。 JAXB is a specification有多个实现。我领导MOXy JAXB包含有用扩展的实现,例如 XPath based mapping .

您始终可以在将 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();

关于java - 带有 XSD JAVA 的 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3893263/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com