complexType中的XJC javaType适配器

时间:2012-03-23 18:18:35

标签: java xml jaxb xsd xjc

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

1 个答案:

答案 0 :(得分:5)

坏消息:<javaType>仅支持简单类型(请参阅 Binding DeclarationsIs it possible to use JAXB to map from schema to a java.util.Map?)。

但是,您可以使用@XmlAdapter来实现所需。