本文介绍了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适配器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-20 20:16