我正在使用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的另一篇相关文档对我有所帮助: