Я использую com.github.bjornvester.xjc 'версия' 1.8.2, чтобы генерировать класс Java с использованием xsd.
Конфигурация по умолчанию Создание отдельных классов для коллекций при преобразовании этого XSD в POJO. -Не-разделенное собрание можно настроить с плагином для исключения дополнительного класса сбора. < /p>
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"
options.add("-no-separate-collection")
}
< /code>
< /code>
public class VendorComponentsType {
...
..
@XmlElement(name = "VendorComponent", required = true)
protected List vendorComponent;
..
...
}
public class VendorComponentType {
...
}
< /code>
When we are using 'plugin:com.ewerk.gradle.plugins.jaxb2' no VendorComponentsType class was created. We have changed plugin recently to adopt java 21 from java 11.
with plugin ewerk POJO class looks like below
public class ABCOrderType
extends BaseOrder
{
@XmlElementWrapper(name = "VendorComponents", required = true)
@XmlElement(name = "VendorComponent")
protected List vendorComponents = new ArrayList();
}
< /code>
xsd to pojo disable separate class creation for collections.
Подробнее здесь: https://stackoverflow.com/questions/796 ... -xjc-versi