Hi Dan,

yes, i was reading this .. but since it's experimental ;) i didn't try.
But List<Serializable> is the same "nonsense" as List<JAXBElement> which i 
have without customization.

btw. my solution was to modify wsdl for codegen process and to leave there 
only a sequence of these elements ;)

note to CXF-1620
i'm using following external customization without problems:

<?xml version="1.0" encoding="UTF-8"?>
<bindings version="2.1"
        xmlns="http://java.sun.com/xml/ns/jaxb"; 
        xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
        xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc";
        >
 
        <globalBindings>
                <xjc:javaType name="java.util.Calendar" xmlType="xsd:date"
                        adapter="xxx.common.jaxb.Date2CalendarAdapter" />
 
                <xjc:javaType name="java.util.Calendar" xmlType="xsd:time"
                        adapter="xxx.common.jaxb.Time2CalendarAdapter" />
 
                <xjc:javaType name="java.util.Calendar" 
xmlType="xsd:dateTime"
                        adapter="xxx.common.jaxb.DateTime2CalendarAdapter" 
/>
        </globalBindings>
 
</bindings>


public class Date2CalendarAdapter extends XmlAdapter<String, Calendar> {

        public Calendar unmarshal(String value) {
        return (javax.xml.bind.DatatypeConverter.parseDate(value));
    }

    public String marshal(Calendar value) {
        if (value == null) {
            return null;
        }
        return (javax.xml.bind.DatatypeConverter.printDate(value));
    }

}


public class DateTime2CalendarAdapter extends XmlAdapter<String, Calendar> 
{

        public Calendar unmarshal(String value) {
        return (javax.xml.bind.DatatypeConverter.parseDateTime(value));
    }

    public String marshal(Calendar value) {
        if (value == null) {
            return null;
        }
        return (javax.xml.bind.DatatypeConverter.printDateTime(value));
    }

}


public class Time2CalendarAdapter extends XmlAdapter<String, Calendar> {

        public Calendar unmarshal(String value) {
        return (javax.xml.bind.DatatypeConverter.parseTime(value));
    }

    public String marshal(Calendar value) {
        if (value == null) {
            return null;
        }
        return (javax.xml.bind.DatatypeConverter.printTime(value));
    }

}

best regards
jano




Daniel Kulp <[EMAIL PROTECTED]> 
07/22/2008 22:19
Bitte antworten an
[email protected]


An
[email protected]
Kopie

Thema
Re: customizing choice mapping  [Virus checked]







Just wanted to let you know that I found a solution to this.   :-)

See:
https://jaxb.dev.java.net/2.1.2/docs/vendorCustomizations.html#simple

Unfortunately, once you try that with CXF, you hit:
https://issues.apache.org/jira/browse/CXF-1620
unless you embedd the jaxb:globalBindings thing directly into the wsdl 
itself rather than an external bindings file.

I have a fix for that that I'm testing now.

Unfortunately, the produced class is kind of ugly.   You just get a 
"List<Serializable>" which I'm not exactly sure of it's contents. 
Maybe JAXBElement objects?   Don't really know.  It at least doesn't 
barf.    :-)


Dan



On Jul 10, 2008, at 4:15 PM, Daniel Kulp wrote:

>
> Just dug through the jaxb spec and I'm not seeing anything obvious. 
> If the jaxb folks couldn't help, I'm not sure who would be able to 
> help.  :-(
>
> I'm pretty sure the work the SXC folks are doing (sxc.codehaus.org) 
> runs after the processing of the schema so that doesn't really 
> help.   Not sure what to say.
>
> Dan
>
>
> On Jul 9, 2008, at 5:17 PM, [EMAIL PROTECTED] 
> wrote:
>
>>
>> Hello,
>>
>> i don't have answer from JAXB mailing list, and i cannot find a 
>> clean solution. Maybe some here knows.
>>
>> Problem:
>>
>> i'm, using jaxb2.1.6 and i cannot find a solution for mapping of 
>> one situation (see attached XSD). Without customization xjc 
>> generates only list of jaxbElements. With customization i have 3 or 
>> maybe 4 different errors depending on how do i try to map elements 
>> to property names.
>>
>> I also found this 
http://www.nabble.com/jaxb2---duplicate-element--issue-td16429810.html
>>
>> Does someone know how to map it? Atm. it's not important, if "the 
>> same elements" in various branches of choice are mapped to the same 
>> property or to different properties. But to have the same element 
>> (name+type) mapped to one property is prefered way.
>>
>> Error message depends also on fact, if i'm trying to map the 
>> elements with the same name+type to the same property name or not.
>> Some of errrors:
>> com.sun.istack.SAXParseException2: Element "{http://x.y.z}b"; shows 
>> up in more than one properties.
>> com.sun.istack.SAXParseException2: compiler was unable to honor 
>> this property customization. It is attached to a wrong place, or 
>> its inconsistent with other bindings. (this one is from the same 
>> xsd as previous, i only changed customized property names to the 
>> same for the same element name+type)
>> Other errors i had was about ambiguity and about property name 
>> collision.
>>
>>
>> thank you for sharing your idea/solution
>>
>> best regards
>> jano
>>
>>
>>
>
> ---
> Daniel Kulp
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog
>
>
>
>

---
Daniel Kulp
[EMAIL PROTECTED]
http://www.dankulp.com/blog







Reply via email to