本文介绍了complexType中的XJC javaType适配器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想让XJC在生成bean时在complexType中使用javaType标记。这是不允许的?我真的错过了很好的文档和一些可以理解的错误消息。
I want to get XJC to use the javaType tag in a complexType when generation beans. Is this not allowed? I'm really missing good documentation and some understandable error message.
这是我正在尝试的失败的错误:
Here is what I am trying which fails with the errors:
- 编译器无法兑现此转换自定义。它附加到错误的位置,或者与其他绑定不一致。
- (上面的自定义附加到架构中的以下位置)
这是XSD:
<xs:complexType name="MyMap">
<xs:annotation>
<xs:appinfo>
<xjc:javaType name="my.company.HashMapHidingGenerics" adapter="my.company.adapter.MyMapAdapter" />
</xs:appinfo>
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="entry" type="MyEntry"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="MyEntry">
<xs:attribute name="someAttribute" use="optional"/>
</xs:complexType>
推荐答案
坏消息:< javaType>
仅支持简单类型(请参阅和。
Bad news: <javaType>
only supports simple types (see Binding Declarations and Is it possible to use JAXB to map from schema to a java.util.Map?).
但是,您可以使用。
However you can achieve what you need by using @XmlAdapter
.
这篇关于complexType中的XJC javaType适配器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!