java - java jaxb:将 xml 转换为 java 枚举列表
问题描述
我正在使用 java 中的一个项目,其中通过 xjc 将 xml 输入读取到生成的类中。所以xsd模式被转换成java类型。
一切都很好,通常我没有问题,但我似乎无法正确转换:我想将枚举的 xml 列表转换为枚举的 java 列表。
这是我的 xsd 部分:
<xs:attribute name="myTypes" use="required">
<xs:simpleType >
<xs:list itemType="output.myType"/>
</xs:simpleType>
</xs:attribute>
<xs:simpleType name="output.myType">
<xs:annotation>
<xs:appinfo>
<jaxb:javaType
name="packagename.MyEnumType"
parseMethod="...TypeConverter.unmarshalOutputMyType"
printMethod="...TypeConverter.marshalOutputMyType"
/>
</xs:appinfo>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="option1"/>
<xs:enumeration value="option2"/>
<xs:enumeration value="option3"/>
</xs:restriction>
</xs:simpleType>
在进行 xjc 生成时,我不断在生成的 java 类中得到它:
public List<String> getMyTypes()
虽然我期待这个:
public List<MyEnumType> getMyTypes()
如何让 jaxb/xjc 使用 List 来生成列表,而不是仅仅将类型解析为字符串列表?如果我只是将 output.myType 直接用作属性的 simpleType,则转换效果很好,但是当我尝试将属性放入这些项目的列表时它不起作用。
解决方案
推荐阅读
- python - Shapely 多边形与 Matplotlib 楔形的交集
- linux - 计算多个文件中每个“版本”的总出现次数
- mysql - 根据不同的条件从 SQL 查询中获取多个数据
- java - 操作系统如何决定如何运行 .exe
- python - 在 24 小时内传播 Celery Django 任务
- forms - 如何将字典绑定到 Listview itemsource
- reactjs - 材质 ui 文本字段无法编辑
- django - 带有自定义错误消息的 Django 重定向
- postgresql - Dockerized Postgresql 无法访问自定义映像上的 postgresql.conf
- javascript - 猫头鹰旋转木马的背景图像不起作用