xmlbeans 自动将生成的源文件和 xsb 文件中的 class 名称大写

xmlbeans auto-capitalize the class name in generated sources and xsb files

我正在使用 xmlbeans 为我们的模式生成 jar 文件,但是我注意到我们的 .xsd 文件中定义的方法之一存在问题。 .xsd 文件中的方法名称是 "UserGetRequest21sp1V2"(sp1 的小写 "s")。此方法名称在生成的 class 和 xsb 文件中被转换为 "UserGetRequest21Sp1V2"(sp1 的大写 "S")。我试图修改源文件和 xsb 文件以将大写字母 "S" 替换为小写字母,但是一旦您更改 index.xsb 文件,魔术 cookie 也会更改并且文件变得无效。

$ dumpxsb ./schemaorg_apache_xmlbeans/system/s1DB123878BBA9EF9AE780681B98C7DCC/index.xsb
/Softwares/xmlbeans-3.1.0/bin
./schemaorg_apache_xmlbeans/system/s1DB123878BBA9EF9AE780681B98C7DCC/index.xsb
  Magic cookie: efbfbd7a
  Wrong magic cookie.

从这个无效文件生成的 jar returns 我们的主应用程序中的一个异常。

我们的后端系统区分大小写,returns 大写请求的授权错误 "S"。我在 xmlbeans 文档中读到它遵循 java 约定,即 CamelCase 来生成 class 名称。

有没有办法让生成的 java classes 和 xsb 文件中的 class 名称与架构 xsd 文件中定义的相同?

查看 xmlbeans 文档后,我发现可以使用 config.xsdconfig 文件中的 qname 标记覆盖 java 类名。详情在这里提到:

https://cwiki.apache.org/confluence/display/XMLBEANS/XmlBeansFaq#XmlBeansFaq-configPackageName

Oracle 的另一个相关文档帮助了我:

https://docs.oracle.com/cd/E13226_01/workshop/docs81/doc/en/workshop/guide/howdoi/howGuideXMLBeansTypeNaming.html?skipReload=true