xjc generates no JAXBElement for nillable element with required attribute
--------------------------------------------------------------------------
Key: CXF-3732
URL: https://issues.apache.org/jira/browse/CXF-3732
Project: CXF
Issue Type: Bug
Components: JAXB Databinding
Affects Versions: 2.3.4
Reporter: Dirk Lattermann
Please consider the following schema:
{quote}
<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.example.org" targetNamespace="http://www.example.org"
elementFormDefault="qualified">
<xsd:element name="root">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="eal" nillable="true">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="att" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
{quote}
Running this through xjc generates a member {{eal}} of type {{Root.Eal}} in
{{Root}}, not of type {{JAXBElement<Root.Eal>}}.
This makes it impossible to unmarshal a document like
{quote}
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root xmlns="http://www.example.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<eal att="j" xsi:nil="true"/>
</root>
{quote}
and obtain the value for attribute {{att}} in {{eal}}, since {{eal}} is null.
The above XML document cannot be represented in the classes generated by xjc.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira