本文介绍了如何在 xjc 中禁用 Java 命名约定?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
例如,xsd 中的 sOmE_PROPerty 必须是 java 类中的 sOmE_PROPerty 而不是 someProperty.
For example sOmE_PROPerty in xsd must be sOmE_PROPerty in java class not someProperty.
我尝试使用 globalBindings enableJavaNamingConventions="false" 但它不起作用.
I tried to use globalBindings enableJavaNamingConventions="false" but it doesn't work.
推荐答案
通过更改类 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:
public static final NameConverter standard = new Standard();
static class Standard extends NameUtil implements NameConverter {
public String toClassName(String s) {
return s;//toMixedCaseName(toWordList(s), true);
}
public String toVariableName(String s) {
return s;//toMixedCaseName(toWordList(s), false);
}
public String toInterfaceName( String token ) {
return token;//toClassName(token);
}
public String toPropertyName(String s) {
String prop = s;//toClassName(s);
// property name "Class" with collide with Object.getClass,
// so escape this.
if(prop.equals("Class"))
prop = "Clazz";
return prop;
}
这篇关于如何在 xjc 中禁用 Java 命名约定?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!