Unmarshalling does not follow JAXB rules.
-----------------------------------------

                 Key: CXF-3175
                 URL: https://issues.apache.org/jira/browse/CXF-3175
             Project: CXF
          Issue Type: Bug
          Components: JAXB Databinding
    Affects Versions: 2.3.1
            Reporter: David J. M. Karlsen
            Priority: Blocker


I have a soapheader element which is declared as:
{noformat}
    <xsd:complexType name="EDBHeaderType">
        <xsd:sequence>
            <xsd:element name="SourceApplication" type="xsd:string">
            </xsd:element>
{noformat}

The JAXB2 generated code (through the cxf-codegen maven plugin will be:
{noformat}
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "EDBHeaderType", propOrder = {
    "sourceApplication"
})
public class EDBHeaderType {

    @XmlElement(name = "SourceApplication", required = true)
    protected String sourceApplication;
{noformat}

which is OK, BUT - then I get this on service invocation from a client:
{noformat}
Caused by: javax.xml.bind.UnmarshalException: unexpected element 
(uri:"http://edb.com/ws/WSCommon_v21";, local:"SourceApplication"). Expected 
elements are <{http://edb.com<{http://edb.com/ws/WSCommon_v21}sourceApplication>
{noformat}

Check the casing! It expects lowercase elements, although they are declared 
uppercase. This is not correct.
If I change it to lowercase it will in fact pass validation (but not adhere to 
the schema which declared it).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to