sources pom plugin generate from example classes java maven xsd unmarshalling jaxb2

java - pom - maven jaxb2 plugin xjb



¿Genera clase Java basada en XSD sin sustitución de bloque? (0)

Estoy obteniendo el siguiente error mientras maven build usando el compilador jaxb (maven-jaxb2-plugin)

A class/interface with the same name "org.somePackage.customer" is already in use. Use a class customization to resolve this conflict. at com.sun.tools.xjc.util.CodeModelClassFactory.createClass(CodeModelClassFactory.java:121) at com.sun.tools.xjc.util.CodeModelClassFactory.createClass(CodeModelClassFactory.java:82) at com.sun.tools.xjc.generator.bean.ImplStructureStrategy$1.createClasses(ImplStructureStrategy.java:82) at com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassDef(BeanGenerator.java:437) at com.sun.tools.xjc.generator.bean.BeanGenerator.getClazz(BeanGenerator.java:469) at com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:194) at com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:166) at com.sun.tools.xjc.model.Model.generateCode(Model.java:290) at org.jvnet.mjiip.v_2_2.XJC22Mojo.generateCode(XJC22Mojo.java:70)

Qué no funciona

<xsd:element name="customer" > ........ </xsd:element> <xsd:element name="permanentCustomer" type="customer"/>

Que funciona

<xsd:element name="customer" block="substitution"> ........ </xsd:element> <xsd:element name="permanentCustomer" type="customer"/>

No estoy seguro de por qué eliminar el problema de creación de atributo de bloque aquí?

Mi suposición es que el compilador jaxb intenta de nuevo crear la clase de cliente basada en element name = "permanentCustomer" que ya ha creado en base al elemento name = "customer". Por lo tanto, no quiero crear un objeto java para permanentCustomer mientras deshace la asignación, ya que ya se creó durante la creación del cliente. Hay una manera de hacer eso ?