我想让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 DeclarationsIs 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/

10-10 04:24