我正在使用 xmlbeans 为我们的架构生成 jar 文件,但是我注意到 .xsd 文件中定义的方法之一存在问题。 .xsd 文件中的方法名称为“UserGetRequest21sp1V2”(sp1 为小写“s”)。在生成的类和 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 在我们的主应用程序中返回一个异常。
我们的后端系统区分大小写,对于大写“S”的请求,它会返回授权错误。我在 xmlbeans 文档中读到它遵循 java 约定,即 CamelCase 来生成类名。
是否有办法使生成的 java 类和 xsb 文件中的类名与架构 xsd 文件中定义的保持一致?
最佳答案
查看 xmlbeans 文档后,我发现可以使用 config.xsdconfig 文件中的 qname
标记覆盖 java 类名。详细信息如下:
https://cwiki.apache.org/confluence/display/XMLBEANS/XmlBeansFaq#XmlBeansFaq-configPackageName
Oracle 的另一个相关文档帮助了我:
关于java - xmlbeans 自动将生成的源文件和 xsb 文件中的类名大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61920275/