5

複雑な型のシーケンスを記述した XSD があります。

<xs:complexType name="Catalog">
  <xs:sequence>
    <xs:element name="Category" minOccurs="0" maxOccurs="unbounded">
      <xs:complexType>
        <xs:sequence>
          <xs:element type="xs:string" name="ParentCategoryIDRef"/>
          <xs:element type="xs:string" name="Method"/>
        </xs:sequence>
      <xs:complexType>
    </xs:element>
  </xs:sequence>
<xs:complexType>

JaxBs XJC を使用してこれを Java クラスに変換するjava.util.Listと、Catalogクラス内にフィールドと getter/setter のが生成されますCategory

ただし、java2wsdl を使用して Axis2 Web サービスで使用するために必要なのは、Category[].

私は JaxB バインディングに少し精通しており、次を使用してコレクション タイプを指定しようとしました。

<jaxb:property collectionType="Category[]"/>

java.util.Listまだ を使用していましたが、コンストラクターを使用していたため、無効なコードになりましたnew Category[]<Category>

もちろん、生成後に生成されたコードをいつでも編集できますが、再生成しようとすると問題が発生します。

私が今持っているものは次のとおりです。

public class Catalog {
  @XmlElement(name = "Category")
  protected List<Category> category;
}

私が欲しいのは:

public class Catalog {
  @XmlElement(name = "Category")
  protected Category[] category;
}

何か案は?現在、Axis2 1.6.2 で XJC 2.2.6 を使用しています。

4

1 に答える 1