【发布时间】:2014-03-17 18:04:35
【问题描述】:
我正在尝试使用 MOXy 为 XML 编组和模式生成自定义命名算法跨多个包的类。
我正在关注Eclipse documentation,并且可以让它为一个班级工作:
@XmlNameTransformer(com.example.test.NameGenerator.class)
public class Customer
或单个包:
@XmlNameTransformer(com.example.test.NameGenerator.class)
package com.example.test;
(外部绑定文件也可以,但您只能为每个绑定文件指定包)
然而,由于我的对象跨越多个包,我不想为每个包定义转换器。此外,我想动态地执行此操作(即各个包直到运行时才知道)。
我尝试在父包 (com.example) 中定义转换器,但这不起作用——看起来它需要是带注释的类所在的确切包。
有什么想法吗?
更新 - 更多信息
也许我应该提到我尝试这样做的主要原因是我可以控制 XML/XSD 的生成——最具体地说,我希望复杂类型为大写而不是默认的小写(不需要注释每个类),例如
@XmlRootElement
public class Test ...
应该生成:
<Test>
...
</Test>
而不是
<test>
...
</test>
根据我所做的其他研究,我发现这样做的唯一方法是使用XmlNameTransformer。但如果有另一种方法,而我找错了树……一定要告诉我!
【问题讨论】:
标签: java xml jaxb marshalling moxy