JAXB。自定义字段命名行为(camelCase为underscore_case)

时间:2013-07-11 08:13:16

标签: java xml jaxb xml-serialization

我想用强调名称序列化我的字段。例如:userName - > user_name

我知道可以使用@XmlElement(name = "user_name")注释完成,但对我的情况来说并不是很方便。

有没有办法为JAXB设置默认命名策略?

1 个答案:

答案 0 :(得分:3)

注意:我是EclipseLink JAXB(MOXy)负责人,也是JAXB(JSR-222)专家组的成员。

MOXy有XMLNameTransformer扩展名,可让您覆盖元素,属性和类型的默认命名策略。

如果您是从XML架构生成模型,则可以使用外部绑定文件来保留下划线。

<?xml version="1.0" encoding="UTF-8"?>
<jxb:bindings 
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
  version="2.1">
  <jxb:globalBindings underscoreBinding="asCharInWord"/>
</jxb:bindings>