Mam XSD opisujące niektóre sekwencje typów złożonych, np.Generowanie tablic dla sekwencji XSD za pośrednictwem JaxB JXC
<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>
Teraz gdy używam JaxBs XJC przekonwertować to do klas Javy wygeneruje mi java.util.List
w moim Catalog
klasy dla pola i getter/setter Category
.
Jednak do korzystania z usługi internetowej Axis2 przy użyciu java2wsdl potrzebuję tablic takich jak Category[]
.
Jestem nieco zaznajomieni z powiązaniami JAXB i już próbował określający typ kolekcji za pomocą:
<jaxb:property collectionType="Category[]"/>
co skutkowało nieprawidłowym kodzie, ponieważ wciąż używając java.util.List
, ale z konstruktora new Category[]<Category>
.
Oczywiście zawsze mogę edytować wygenerowany kod po wygenerowaniu, ale spowodowałoby to problemy przy próbie ponownego wygenerowania.
Co mam teraz jest:
public class Catalog {
@XmlElement(name = "Category")
protected List<Category> category;
}
Co chcę jest:
public class Catalog {
@XmlElement(name = "Category")
protected Category[] category;
}
Jakieś pomysły? Aktualnie używam XJC 2.2.6 z Axis2 1.6.2.