[ 
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)

Reply via email to