cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dusan Slivka (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CXF-6747) XSD to Java problem with enums
Date Wed, 13 Jan 2016 20:33:40 GMT
Dusan Slivka created CXF-6747:
---------------------------------

             Summary: XSD to Java problem with enums
                 Key: CXF-6747
                 URL: https://issues.apache.org/jira/browse/CXF-6747
             Project: CXF
          Issue Type: Bug
          Components: JAXB Databinding
    Affects Versions: 3.0.1
            Reporter: Dusan Slivka


Starting with version 3, roundtrip wsdl -> Java -> wsdl produces output wsdl different
from wsdl on input, if there are enums used. For example, I have the folowing XSD type in
source wsdl:
{code:xml}
  <xs:simpleType name="checksumType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="MD5"/>
      <xs:enumeration value="SHA256"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="DigestType">
    <xs:sequence>
      <xs:element minOccurs="0" name="digestValue" type="xs:string"/>
      <xs:element minOccurs="0" name="digestType" type="tns:checksumType"/>
    </xs:sequence>
  </xs:complexType>
{code}
which produces (cxf-codegen-plugin:3.0.5:wsdl2java) the following Java code:
{code:java}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "DigestType", propOrder = {
    "digestValue",
    "digestType"
})public class DigestType {
    protected String digestValue;
    @XmlSchemaType(name = "string")  // WHY??
    protected ChecksumType digestType;
}
{code}
And resulting wsdl for published service looks like this:
{code:xml}
  <xs:simpleType name="checksumType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="MD5"/>
      <xs:enumeration value="SHA256"/>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="DigestType">
    <xs:sequence>
      <xs:element minOccurs="0" name="digestValue" type="xs:string"/>
      <xs:element minOccurs="0" name="digestType" type="xs:string"/>
      <!-- xs:sring instead of tns:checksumType -->
    </xs:sequence>
  </xs:complexType>
{code}
The problem is caused by @XmlSchemaType(name = "string") annotation. I think resulting wsdl
should be equal to source wsdl.
See also:
[https://github.com/gf-metro/jaxb/issues/21]
[http://stackoverflow.com/questions/33346803/how-to-tell-jaxb-not-to-generate-xmlschematype-annotation]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message