Hi Pablo,

When you're working with mixed namespaces like this your best approach
is to avoid making any namespace a default. Instead just list the
namespaces in your binding (with <namespace> elements), then for each
element which uses one of the namespaces specify it directly on that
element using an ns="..." attribute. So in your example you'd need to
use ns="urn:OrdersIntf-IOrders" on the <mapping> for the
GetAllMemberItemsResponse element, and ns="urn:uClasses" on the
<mapping> or <structure> for the TKitItems element. For all the other
elements you'd just leave this attribute off, and with no default
namespace defined they'd be treated as having the empty namespace.

Doing things this way it's easy to use a single binding definition. The
<include>s approach is easier when you're working with namespaces that
apply to all the elements (the equivalent of
elementFormDefault="qualified" in a schema definition).

  - Dennis


Melchi, Pablo (GE Money, consultant) wrote:
> Hello everybody.
>
> Maybe this question has been posted before, so any link can be useful
> for me.
>
> I'm trying to unmarshall this XML using JiBX (it's a SOAP message)
>
> <NS1:GetAllMemberItemsResponse xmlns:NS1="urn:OrdersIntf-IOrders"
>     xmlns:NS2="urn:uClasses">
>       <NS2:TKitItems id="1" xsi:type="NS2:TKitItems">
>         <Code xsi:type="xsd:int">1125</Code>
>         <Msg xsi:type="xsd:string">Could not find</Msg>
>         <Count xsi:type="xsd:int">0</Count>
>         <Items xsi:type="SOAP-ENC:Array"
>         SOAP-ENC:arrayType="NS2:TInventoryItem[0]" />
>         <PlanCode xsi:type="xsd:string"></PlanCode>
>       </NS2:TKitItems>
>       <return href="#1" />
> </NS1:GetAllMemberItemsResponse>
>
> I have defined this mapping:
> <mapping name="GetAllMemberItemsResponse"
> class="com.ge.binding.response.GetAllMemberItemsResponse">
>       <namespace uri="urn:OrdersIntf-IOrders" default="elements"/>
>       <structure field="kitItems"/>
> </mapping>
>       
> <mapping name="TKitItems" class="com.ge.binding.response.TKitItems">
>       <namespace uri="urn:uClasses" default="elements" prefix="ns1"/>
>       <value name="Code" field="code"/>
> </mapping>
>
> I'm receiving this error when I try to unmarshall the message:
> Expected "{urn:uClasses}Code" start tag, found "Code" start tag (line
> -1, col -1, in SOAP-message)
>
> Any idea of how to fix this?
>
> I've been thinking about creating a third mapping with no namespace.
>
> And I have also found that there is a workound by using custom
> unmarshallers
>
> Any other suggestions?
>
> Thank you!
> -Pablo Melchi
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2008.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> jibx-users mailing list
> jibx-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jibx-users
>
>   

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
jibx-users mailing list
jibx-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jibx-users

Reply via email to