Tôi đã có XSD mô tả một số chuỗi các loại phức tạp, ví dụ:Tạo mảng cho chuỗi XSD qua 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>
Bây giờ khi tôi sử dụng JaxBs XJC để chuyển đổi này vào các lớp Java nó sẽ tạo ra cho tôi một java.util.List
trong lớp Catalog
của tôi cho trường và getter/setter của Category
.
Tuy nhiên, những gì tôi cần để sử dụng nó trong dịch vụ web Axis2 sử dụng java2wsdl là các mảng như Category[]
.
tôi là một chút quen thuộc với các ràng buộc JAXB và đã cố gắng xác định loại bộ sưu tập sử dụng:
<jaxb:property collectionType="Category[]"/>
mà dẫn đến mã không hợp lệ, vì nó vẫn còn sử dụng một java.util.List
, nhưng với một constructor new Category[]<Category>
.
Tất nhiên tôi luôn có thể chỉnh sửa mã được tạo sau khi tạo, nhưng điều này sẽ gây ra sự cố khi tôi cố gắng tạo lại.
Những gì tôi đã có bây giờ là:
public class Catalog {
@XmlElement(name = "Category")
protected List<Category> category;
}
Những gì tôi muốn là:
public class Catalog {
@XmlElement(name = "Category")
protected Category[] category;
}
Bất kỳ ý tưởng? Tôi hiện đang sử dụng XJC 2.2.6 với Axis2 1.6.2.