本文介绍了如何在 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 命名约定?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-19 18:56