JaxB从XML到Java类的自动解析 2 周,3 日 Questions & Answers 4640 我对jaxb一无所知。我的问题是:使用jaxb,是否可以实现从xml文件到java对象的自动映射? 从xml文件开始,是否有什么东西可以生成带有注释jaxb Relative的Java类
# 1 楼答案 这确实是可能的。但是,您需要的是XSD而不是XML文件。有一些工具(Trang,例如)可以从一个或多个示例XML文件推断XSD 请注意,如果XML示例不完整,或者如果模式不能在单个XML文件(独占元素等)中完全表示,使用工具生成此XSD可能会得到不准确的结果 一旦有了XSD,就可以使用^{}来生成封送器/解封器类 xjc myxsd.xsd 这将生成JAXB将用于编组/解编组的带注释类。注意,您也可以自己编写这些类。一旦拥有它们,只需在代码中使用它们: File file = new File("myFile.xml"); JAXBContext jaxbContext = JAXBContext.newInstance(MyRootElement.class); Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller(); MyRootElement element = (MyRootElement) jaxbUnmarshaller.unmarshal(file);
# 2 楼答案 是的,JAXB自动执行marshalling和unmarshalling,但它需要一个架构文件。 JaxB用于将XML与Java对象绑定。它使用XSD模式文件进行编组和解编组。像XJC这样的简单ant任务很少可以使用
# 1 楼答案
这确实是可能的。但是,您需要的是XSD而不是XML文件。有一些工具(Trang,例如)可以从一个或多个示例XML文件推断XSD
请注意,如果XML示例不完整,或者如果模式不能在单个XML文件(独占元素等)中完全表示,使用工具生成此XSD可能会得到不准确的结果
一旦有了XSD,就可以使用^{} 来生成封送器/解封器类
这将生成JAXB将用于编组/解编组的带注释类。注意,您也可以自己编写这些类。一旦拥有它们,只需在代码中使用它们:
# 2 楼答案
是的,
JAXB
自动执行marshalling
和unmarshalling
,但它需要一个架构文件。 JaxB用于将XML与Java对象绑定。它使用XSD
模式文件进行编组和解编组。像XJC这样的简单ant任务很少可以使用