java - JAXB XJC:如何生成 java 类
问题描述
我正在尝试使用xjc
工具来根据某些模式生成 java 代码。
我正在执行这个命令:
xjc -d generated -p net.mycom.tech .
第一个问题是,
-b bindings.xjb
是为了什么?它应该有哪些内容?它是强制性的吗?我收到这两种错误消息:
一个。
[ERROR] Two declarations cause a collision in the ObjectFactory class.
湾。
A class/interface with the same name "net.mycom.tech.DatosGenericos" is already in use. Use a class customization to resolve this conflict.
我的文件夹包含几个 xsd:
请帮忙?
解决方案
对于 XJC 编译器,-b用于覆盖默认规则的外部 JAXB 绑定。作为示例,请在下面找到一个小片段。该文件的名称是mybind.xjb。
<jaxb:bindings version="2.0" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
jaxb:extensionBindingPrefixes="xjc">
<jaxb:globalBindings>
<xjc:simple />
<xjc:serializable uid="-1" />
<jaxb:javaType name="java.util.Calendar" xmlType="xs:dateTime"
parse="javax.xml.bind.DatatypeConverter.parseDateTime"
print="javax.xml.bind.DatatypeConverter.printDateTime" />
</jaxb:globalBindings>
</jaxb:bindings>
在这种情况下,上面的mybind.xjb将 dateTime 类型覆盖为 java.util.Calendar 类型
有关更多详细信息,您可以参考下面的 oracle 文档链接。 https://docs.oracle.com/cd/E17802_01/webservices/webservices/docs/1.5/tutorial/doc/JAXBUsing4.html
就错误而言,我建议将类生成到一个空的新目录。您必须使用以下命令
xjc -d src -p com.projectname.place.functionality xmlSchema.xsd
在上述情况下,请确保目录 src 不包含任何 java 文件。
推荐阅读
- flutter - Flutter Dart Model 如何写一个通用的模态类
- flutter - Flutter Bloc Cubit Navigator Problem BlocProvider.of() 调用的上下文不包含 CityCubit 类型的 Bloc/Cubit
- ios - 具有一个静态和一个动态子级的堆栈视图?
- javascript - IntersectionObserver 不适用于长部分 JS 的小屏幕
- matlab - 如何使用 MATLAB 报告生成器将 Matlab 二维数组导出为 pdf 格式的条件格式表?
- c++ - C++程序计算文本中空白的数量
- ruby-on-rails - 如何在我的助手而不是视图中循环访问 ActiveRecord_Relation?
- python - 如何在电报机器人中制作复选框列表?(Python)
- redirect - .net core 3.1 禁用自动 HTTPS 重定向
- vue.js - Vue 无法查看在 for 循环中设置的对象属性