什么是手动类编写和从方案生成JAXB类的道具/缺点。我正在开始新的项目,并希望了解选择哪种方式来解决陷阱。
我有XML的复杂结构(基本上是FreeSwitch configuration definition),在不同的XML级别上包含可重复的类型。
答案 0 :(得分:1)
应该使用模式生成IMPO类来避免模式和java类之间的任何差异。
由于架构将在接口实体之间共享,因此双方都必须将代码确认为架构。
答案 1 :(得分:1)
@XmlElementWrapper
,而不是为该图层生成单独的类(请参阅:How generate XMLElementWrapper annotation with xjc and customized binding)。XmlAdapter
更干净(与http://blog.bdoughan.com/2011/08/xml-schema-to-java-generating.html比较)。@XmlPath
映射)。使用JAXB,它不需要是一个或另一个类型选择。您可以使用外部绑定文件,以便在clas生成期间,JAXB将使用您为某些复杂类型编写的类,然后让生成的模型的其余部分指向这些类。
示例强>
<强>更新强>
在JAXB中使用构造函数怎么样?据我所知,这是不允许的 没有puclic构造函数的类。这意味着我不能做一些 需要的字段。有没有正确的方法来处理必填字段?
JAXB需要一个可以是私有的无参数构造函数。如果您的类没有no-arg构造函数,那么您可以使用XmlAdapter
。
答案 2 :(得分:0)
JAXB生成的类是值类,它们没有任何功能。为了添加任何功能,您应该使用生成的bean创建自己的类。您还可以扩展或修改我不推荐的生成的bean。我认为这是主要问题之一。
另一方面,手动注释bean生成的模式可能不包含所有必需的约束。
这就是为什么我认为没有最好的一个。您可以根据自己的需要选择两者。