java - xmlbeans 自动将生成的源文件和 xsb 文件中的类名大写

标签 java xsd apache-poi xmlbeans

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

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

关于java - xmlbeans 自动将生成的源文件和 xsb 文件中的类名大写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61920275/

相关文章:

java - MQ——删除队列中的所有消息

java - JPA 和 Hibernate 中的 persist() 和 merge() 有什么区别?

xml - XSD 元素与元素不一致

java - 如何使用 apache poi 为 Excel 工作表中的特定行或标题添加背景颜色

java - XSSFWorksheet 在关闭文件后复制输出

android - 使用 Apache POI 在 Android 中读取 MS Excel 2010 文件

java - 如何在没有框架的情况下使用java实体类管理关系(mysql)表

java - C++ 和 Java 中的字符串连接复杂度

java - 针对多个 XSD 验证 XML

xml - XSD:嵌套类型与全局类型