-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Description
Moving from Java11 to Java21 as part of this change we are also replacing 'plugin:com.ewerk.gradle.plugins.jaxb2' with 'com.github.bjornvester.xjc'.
Default configuration generate separate classes for collections when converting an XSD to POJO. We wants to escape this extra classes creations for collection. How to achieve xsd to pojo disable separate class creation for collections.
xjc {
xsdDir.set(layout.projectDirectory.dir("src/main/resources/xsd"))
bindingFiles.setFrom(layout.projectDirectory.dir("src/main/resources/xsd").asFileTree.matching { include("**/*.xjb") })
xjcVersion.set("3.0.2")
useJakarta.set(true)
outputJavaDir.set(layout.projectDirectory.dir("$buildDir/generated-src/java"))
defaultPackage = "jaxb.servicerequest"
}
<xs:complexType name="ABCOrderType">
<xs:complexContent>
<xs:extension base="baseOrder">
<xs:sequence>
<xs:element type="VendorComponentsType" name="VendorComponents" maxOccurs="1" minOccurs="1"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="VendorComponentsType">
<xs:sequence>
<xs:element type="VendorComponentType" name="VendorComponent" maxOccurs="unbounded" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="VendorComponentsType">
<xs:sequence>
<xs:element type="VendorComponentType" name="VendorComponent" maxOccurs="unbounded" minOccurs="1"/>
</xs:sequence>
</xs:complexType>
public class VendorComponentsType {
...
..
@XmlElement(name = "VendorComponent", required = true)
protected List<VendorComponentType> vendorComponent;
..
...
}
public class VendorComponentType {
...
}
When we are using 'plugin:com.ewerk.gradle.plugins.jaxb2' no VendorComponentsType class was created.
public class ABCOrderType
extends BaseOrder
{
@XmlElementWrapper(name = "VendorComponents", required = true)
@XmlElement(name = "VendorComponent")
protected List<VendorComponentType> vendorComponents = new ArrayList<VendorComponentType>();
}
Metadata
Metadata
Assignees
Labels
No labels