我正在使用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文件中定义的相同?
发布于 2020-05-22 00:00:56
在查看了xmlbeans文档之后,我发现可以在config.xsdconfig文件中使用qname标记覆盖java类名。详细信息如下:
https://cwiki.apache.org/confluence/display/XMLBEANS/XmlBeansFaq#XmlBeansFaq-configPackageName
另一个来自Oracle的相关文档帮助我解决了问题:
https://stackoverflow.com/questions/61920275
复制相似问题