users@jaxb.java.net

Re: unmarshal + namespace declaration == unexpected element

From: Wolfgang Laun <wolfgang.laun_at_gmail.com>
Date: Fri, 9 Jan 2009 09:45:54 +0100

The correct XML form for using a namespace is:
<nsx:DescribeVolumesResponse xmlns:nsx="
http://ec2.amazonaws.com/doc/2008-12-01/">
  ...
</nsx:DescribeVolumesResponse>

-W

On Thu, Jan 8, 2009 at 6:01 PM, Stephen More <stephen.more_at_gmail.com> wrote:

> >> On Thu, Jan 8, 2009 at 2:45 AM, Wolfgang Laun wrote:
> >> > You can add a namespace definition to this annotation:
> >> >
> >> > @XmlRootElement(name =
> >> >
> >> > "DescribeVolumesResponse",namespace="
> http://ec2.amazonaws.com/doc/2008-12-01/")
> >>
> >> That does make the exception go away, but the unmarshaling is no longer
> >> working.
> >>
> >
> > Could you be more specific, please?
>
> Working xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <DescribeVolumesResponse>
> <ResponseMetadata>
> <RequestId>c3c4620f-e652-4610-b572-7fe0e6faa062</RequestId>
> </ResponseMetadata>
> </DescribeVolumesResponse>
>
> DescribeVolumesResponse dvr = (DescribeVolumesResponse)u.unmarshal(new
> javax.xml.transform.stream.StreamSource(new
> java.io.StringReader(responseBodyString)));
>
> ResponseMetadata rm = dvr.getResponseMetadata();
> System.out.println( rm.getRequestId() );
>
> Output: c3c4620f-e652-4610-b572-7fe0e6faa062
>
> Non working xml:
> <?xml version="1.0" encoding="UTF-8"?>
> <DescribeVolumesResponse xmlns="http://ec2.amazonaws.com/doc/2008-12-01/">
> <ResponseMetadata>
>
> <RequestId>c3c4620f-e652-4610-b572-7fe0e6faa062</RequestId>
> </ResponseMetadata>
> </DescribeVolumesResponse>
>
> Added
> @XmlRootElement(name =
> "DescribeVolumesResponse",namespace="
> http://ec2.amazonaws.com/doc/2008-12-01/")
>
> Now ResponseMetadata rm is null.
>
> -Steve
>