我想让xjc在生成bean时在complexType中使用javatype标记。这是不允许的吗?我真的缺少好的文档和一些可以理解的错误信息。
以下是我正在尝试的,但失败的错误:
编译器无法接受此转换自定义项。它附加到错误的位置,或与其他绑定不一致。
(以上自定义项附加到架构中的以下位置)
这里是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>
只支持简单类型(请参见 Binding Declarations和Is it possible to use JAXB to map from schema to a java.util.Map?)。
但是,您可以通过使用@XmlAdapter
来实现您的需要。
关于java - XType CX中的JavaType适配器,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9844502/