从TKT_ElectronicDocumentServices_v.1.0.0.xsd生成JAXB类报错求助
JAXB 基于双XSD文件生成类报错排查方案
常见报错根因及修复方法
- 校验两个XSD的依赖引用关系
若STL_For_TKT_ElectronicDocumentServices_v.1.0.0.xsd是TKT_ElectronicDocumentServices_v.1.0.0.xsd的依赖文件,需确认主XSD中<import>/<include>节点的schemaLocation属性路径与文件实际存放路径完全匹配,无拼写错误、大小写偏差(Linux/macOS环境下文件路径大小写敏感)。 - 校验XSD文件语法合法性
可使用IDEA、Eclipse等IDE自带的XSD校验功能,或xmllint命令行工具做预校验,命令示例:xmllint --noout --schema TKT_ElectronicDocumentServices_v.1.0.0.xsd STL_For_TKT_ElectronicDocumentServices_v.1.0.0.xsd
若存在标签闭合错误、类型未定义、命名空间冲突等语法问题,先修复XSD本身错误再执行JAXB生成。 - 校验JAXB生成配置参数
若使用xjc命令行生成,需同时传入两个XSD文件作为参数,示例命令:xjc TKT_ElectronicDocumentServices_v.1.0.0.xsd STL_For_TKT_ElectronicDocumentServices_v.1.0.0.xsd -d 生成类的输出目录
若使用Maven的jaxb2-maven-plugin插件,需在<schemas>节点下同时配置两个XSD的路径,不要遗漏STL前缀的依赖XSD。 - 处理类名生成冲突
若两个XSD命名空间配置不当,可能生成同名类导致冲突,可通过自定义.xjb绑定文件指定不同的生成包路径,示例配置: - 校验JAXB版本兼容性
若使用JDK 9及以上版本,JAXB已从JDK默认模块中移除,需手动引入版本匹配的JAXB API、实现包以及jaxb-xjc工具包,避免版本不兼容导致的生成异常。
内容的提问来源于stack exchange,提问作者Ferdie
相关产品推荐
相关产品推荐

