如何在 xjc 中禁用 Java 命名约定?
例如,xsd 中的 sOmE_PROPerty 必须是 java 类中的 sOmE_PROPerty,而不是 someProperty。
我尝试使用 globalBindings enableJavaNamingConventions="false" 但它不起作用。
For example sOmE_PROPerty in xsd must be sOmE_PROPerty in java class not someProperty.
I tried to use globalBindings enableJavaNamingConventions="false" but it doesn't work.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要使用
underscoreBinding="asCharInWord"
而不是enableJavaNamingConventions="false"
:customer.xsd
binding.xml
JAXB 绑定文件用于自定义模式到 Java 的转换:
XJC Call
Customer
生成的属性名称现在包含下划线字符:
不使用binding.xml
如果您改为进行以下 XJC 调用:
您将看到生成的属性不包含下划线:
You will need to use
underscoreBinding="asCharInWord"
instead ofenableJavaNamingConventions="false"
:customer.xsd
binding.xml
A JAXB binding file is used to customize the schema to Java conversion:
XJC Call
Customer
The generated property names now include the underscore character:
Without Using binding.xml
If you instead make the following XJC call:
You will see that the generated properties do not include the underscore:
通过更改 com.sun.xml.bind.api.impl.NameConverter 类中 jaxb 的源代码来解决,如下所示:
Solved by changing source code of jaxb in class com.sun.xml.bind.api.impl.NameConverter like this: