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 的另一个相关文档帮助了我:
我正在使用 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 的另一个相关文档帮助了我: