我使用JibX提供的CodeGen工具创建了几个文件。这些类都具有相同的根名称,因此生成的类都具有相同的名称。
我最初通过将所有这些生成的类放入它们自己的包来解决命名冲突来解决这个问题。然后我遇到了需要声明整个包名称的问题,这很长,每次我都要声明或逐个新对象。
我最初的想法是创建一个空子类,它具有扩展原始自动生成的类的不同名称。如
public class AutoGen
{
//This class generated by CodeGen binds as expected
//No problems marshalling or unmarshalling documents
}
public class UniqueName extends com.CompanyName.ProductName.SDK.Events.HeartBeatEvent.AutoGen
{
//This class is empty
}
我现在遇到的问题是,由于缺少绑定,JibX不会将字符串或文件编组或解组到此子类。
再次阅读CodeGen文档之后,我似乎无法找到一个允许我声明生成的类名应该是什么的命令。有没有办法有效地使CodeGen生成的类具有用户声明的唯一名称?如果没有,是否有办法使JibX编组并正确地解组子类?这些解决方案都可以使用。
我提到我不能更改生成代码的xsd文件也很重要。
答案 0 :(得分:0)
您拥有的一个选项是使生成的类唯一,将它们放入您想要的任何包结构中并编辑绑定。
由于您无法更改XSD,我认为您不想手动编写相应的类,因此该选项可能是最适合您的。
要直接回答您的问题,我无法指定生成的类的名称。相反,您应该自己对这些类进行唯一命名,然后编辑绑定配置,使其与新名称和包结构相对应。
答案 1 :(得分:0)
请查看此页面上记录的JiBX名称转换器扩展程序:
http://jibx.sourceforge.net/fromschema/codegen-extends.html
如果您无法使用默认实现中提供的选项,则可以编写自己的名称转换器。
您可能需要编写自定义转换器。它应该很简单。
您可以在这里找到JiBX源代码:
祝你好运! 唐科利郎 JiBX撰稿人