I have such types in WSDL, the only difference is maxOccurs="unbounded"
, however, the Java classes generated are different:
<xs:complexType name="TypeGetPaymentDetailsAdditionRequest">
<xs:sequence>
<xs:element name="PaymentDetails"
type="tns:TypeGetPaymentDetailAdditionRequest"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TypeGetPaymentDetailsRequest">
<xs:sequence>
<xs:element name="PaymentDetails"
type="tns:TypeGetPaymentDetailRequest"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
The Java classes, the first one have the List<>
inside, while another doesn't.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
name = "TypeGetPaymentDetailsRequest",
propOrder = {"paymentDetails"}
)
public class TypeGetPaymentDetailsRequest {
@XmlElement(
name = "PaymentDetails",
required = true
)
protected List<TypeGetPaymentDetailRequest> paymentDetails;
public TypeGetPaymentDetailsRequest() {
}
public List<TypeGetPaymentDetailRequest> getPaymentDetails() {
if (this.paymentDetails == null) {
this.paymentDetails = new ArrayList();
}
return this.paymentDetails;
}
}
and
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
name = "TypeGetPaymentDetailsAdditionRequest",
propOrder = {"paymentDetails"}
)
public class TypeGetPaymentDetailsAdditionRequest {
@XmlElement(
name = "PaymentDetails",
required = true
)
protected TypeGetPaymentDetailAdditionRequest paymentDetails;
public TypeGetPaymentDetailsAdditionRequest() {
}
public TypeGetPaymentDetailAdditionRequest getPaymentDetails() {
return this.paymentDetails;
}
public void setPaymentDetails(TypeGetPaymentDetailAdditionRequest value) {
this.paymentDetails = value;
}
}
How one can force to make paymentDetails
field to be a List<>
in the second case too?
JAXB version:
jaxb "com.sun.xml.bind:jaxb-xjc:2.1.7"
Add maxOccurs="unbounded"
to the other attribute too:
<xs:complexType name="TypeGetPaymentDetailsAdditionRequest">
<xs:sequence>
<xs:element name="PaymentDetails"
type="tns:TypeGetPaymentDetailAdditionRequest"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="TypeGetPaymentDetailsRequest">
<xs:sequence>
<xs:element name="PaymentDetails"
type="tns:TypeGetPaymentDetailRequest"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>