[
https://issues.apache.org/jira/browse/CXFXJC-44?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andriy Redko reassigned CXFXJC-44:
----------------------------------
Assignee: Andriy Redko
> cxf-xjc-dv generates compilation failure when XJC simple binding mode is used
> -----------------------------------------------------------------------------
>
> Key: CXFXJC-44
> URL: https://issues.apache.org/jira/browse/CXFXJC-44
> Project: CXF XJC Utils
> Issue Type: Bug
> Components: DV Plugin
> Affects Versions: 4.0.0
> Reporter: Jan Litvik
> Assignee: Andriy Redko
> Priority: Major
>
> I am using cxf-xjc-plugin v 4.0.0 to generate java code from xsd.
> Java code is generated without issue until I use cxf-xjc-dv(v 4.0.0) plugin.
> In this case Compilation failure is thrown: java.util.List is abstract;
> cannot be instantiated
> The problematic piece of code:
> List<Serializable> andsAndOrsAndNots = new List<Serializable>();
> Issue is similar to this https://issues.apache.org/jira/browse/CXFXJC-7
> I investigated the behavior and found out that issue occurs when binding file
> is configured and it contains xjc:simple binding mode.
> When XJC simple binding mode or cxf-xjc-dv plugin is not used, java code is
> generated but it does not meet our requirements.
>
> *Schema definition snippet:*
> {code:java}
> <xs:element name="query">
> <xs:complexType>
> <xs:choice>
> <xs:element ref="and"/>
> <xs:element ref="or"/>
> <xs:element ref="not"/>
> <xs:sequence>
> <xs:element name="table" type="StringRequired"/>
> <xs:element name="column" type="StringRequired"/>
> <xs:element name="operator" type="StringRequired"/>
> <xs:element name="value" type="xs:string"/>
> </xs:sequence>
> </xs:choice>
> </xs:complexType>
> </xs:element>
> <xs:element name="and">
> <xs:complexType>
> <xs:choice minOccurs="2" maxOccurs="unbounded">
> <xs:element ref="and"/>
> <xs:element ref="or"/>
> <xs:element ref="not"/>
> <xs:element ref="query"/>
> </xs:choice>
> </xs:complexType>
> </xs:element>
> <xs:element name="or">
> <xs:complexType>
> <xs:choice minOccurs="2" maxOccurs="unbounded">
> <xs:element ref="and"/>
> <xs:element ref="or"/>
> <xs:element ref="not"/>
> <xs:element ref="query"/>
> </xs:choice>
> </xs:complexType>
> </xs:element>
> <xs:element name="not">
> <xs:complexType>
> <xs:choice>
> <xs:element ref="and"/>
> <xs:element ref="or"/>
> <xs:element ref="not"/>
> <xs:element ref="query"/>
> </xs:choice>
> </xs:complexType>
> </xs:element>
> <xs:simpleType name="StringRequired">
> <xs:restriction base="xs:string">
> <xs:minLength value="1" />
> </xs:restriction>
> </xs:simpleType>
> {code}
>
> *Maven:*
> {code:java}
> <plugin>
> <groupId>org.apache.cxf</groupId>
> <artifactId>cxf-xjc-plugin</artifactId>
> <version>4.0.0</version>
> <executions>
> <execution>
> <id>xjc</id>
> <phase>generate-sources</phase>
> <goals>
> <goal>xsdtojava</goal>
> </goals>
> <configuration>
> <xsdOptions>
> <xsdOption>
>
> <xsd>${basedir}/src/main/resources/query.xsd</xsd>
> <bindingFile>
>
> ${basedir}/src/main/jaxbconfig/config_jaxb.xjb</bindingFile>
> <extension>true</extension>
> <extensionArgs>
> <arg>-Xdv</arg>
> </extensionArgs>
> </xsdOption>
> </xsdOptions>
> <extensions>
> <extension>
>
> org.apache.cxf.xjcplugins:cxf-xjc-dv:4.0.0</extension>
> </extensions>
> </configuration>
> </execution>
> </executions>
> </plugin> {code}
> *JAXB binding config:*
> {code:java}
> <jaxb:bindings xmlns:jaxb="https://jakarta.ee/xml/ns/jaxb"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema"
> xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc" version="3.0">
>
> <jaxb:globalBindings>
> <xjc:simple/>
> <jaxb:serializable uid="1" />
> </jaxb:globalBindings>
>
> </jaxb:bindings> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)