有没有修改代码修改JAXB生成的xml前缀的方法?

时间:2011-10-17 14:53:01

标签: namespaces xsd jaxb schema

我正在使用JAXB将对象编组为xml,现在生成的xml就像

<QueryServiceElement xmlns="http://tools.ding.com/query">
</QueryServiceElement>

我想要的是:

<ts1:QueryServiceElement xmlns:ts1="http://tools.ding.com/query">
</ts1:QueryServiceElement>

由于代码已经与多个地方共享,所以我不能在JAXB Marshaller中使用mapper属性,而我的jaxb也不支持mapper属性,它抛出异常,有没有办法通过修改来做到这一点xsd文件或jaxb架构绑定?

我尝试了很多方法,但它们都不起作用。

1 个答案:

答案 0 :(得分:0)

不幸的是,在生成的XML中生成(甚至使用)名称空间前缀的行为完全取决于编组器,与XSD无关。

http://blogs.oracle.com/enterprisetechtips/entry/customizing_jaxb对如何处理自定义命名空间前缀生成有很好的解释。从你的问题来看,你似乎已经意识到了这一点。它是一个JAXB 2.0+功能,所以如果你的jaxb实现不支持它,也许是时候得到更高版本了?