我正在使用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架构绑定?
我尝试了很多方法,但它们都不起作用。
答案 0 :(得分:0)
不幸的是,在生成的XML中生成(甚至使用)名称空间前缀的行为完全取决于编组器,与XSD无关。
http://blogs.oracle.com/enterprisetechtips/entry/customizing_jaxb对如何处理自定义命名空间前缀生成有很好的解释。从你的问题来看,你似乎已经意识到了这一点。它是一个JAXB 2.0+功能,所以如果你的jaxb实现不支持它,也许是时候得到更高版本了?