Hi Guillaume,

thanks for your answer. I don't have any problems parsing the message, I just 
found it - well - weird. It also blows up the message unnecessarily, which, 
since I am testing for a bandwidth constrained environment, might become an 
issue for larger (okay, very large) messages. So I was just wondering - why 
does this happen?

Regards,

Anne

> -----Ursprüngliche Nachricht-----
> Von: Guillaume Nodet [mailto:[email protected]]
> Gesendet: Freitag, 3. Juli 2009 10:49
> An: [email protected]
> Betreff: Re: WSN2005 with CXF-BC: Weird namespaces for nested elements
> 
> I don't have any explanation out of my head, but I don't think the xml
> is incorrect.
> AFAIK, having xmlns="" forces the namespace to not be bound (which
> would be also the case in this very example because no parent has
> xmlns="xxx" set, but it might happen).
> Also, even if the declaration of the ws addressing namespace isn't
> used, it's not illegal either.
> If you process the message with a correct xml parser, they should be
> semantically equivalent I think.
> 
> On Fri, Jul 3, 2009 at 10:40, Diefenbach Anne<[email protected]> wrote:
> > Sorry, I have to ask again. Is there any explanation for this behaviour?
> I would not have expected the broker to even look at the business message
> contained in the <Message> tags.
> >
> > Regards,
> >
> > Anne
> >
> >> -----Ursprüngliche Nachricht-----
> >> Von: Diefenbach Anne [mailto:[email protected]]
> >> Gesendet: Donnerstag, 25. Juni 2009 17:08
> >> An: [email protected]
> >> Betreff: WSN2005 with CXF-BC: Weird namespaces for nested elements
> >>
> >> Hi,
> >>
> >> I was comparing the messages sent from notification producer to broker
> >> and from broker to consumer, and noticed they differ rather
> >> considerably. Some of that can be explained by the fact that my
> producer
> >> uses FUSE Services Framework 2.1.3.1 and the broker the probably much
> >> newer servicemix-cxf-bc-2009.01, but what I thought was really weird
> was
> >> the way the latter treated the elements which in my schema [1] are
> >> defined nested in another complex type. This is the message CXF gave:
> >>
> >> <soap:Envelope
> >> xmlns:soap="http://www.w3.org/2003/05/soap-
> envelope"><soap:Body><ns6:Not
> >> ify xmlns:ns2="http://www.w3.org/2005/08/addressing";
> >> xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2";
> >> xmlns:ns4="http://docs.oasis-open.org/wsn/t-1";
> >> xmlns:ns5="http://docs.oasis-open.org/wsn/br-2";
> >> xmlns:ns6="http://docs.oasis-open.org/wsn/b-2";
> >> xmlns:ns7="http://katastropheneinsatz.fgan.de";
> >> xmlns:ns8="http://docs.oasis-open.org/wsrf/r-
> 2"><ns6:NotificationMessage
> >> ><ns6:Topic
> >> Dialect="http://docs.oasis-open.org/wsn/t-
> 1/TopicExpression/Simple">Envi
> >>
> ronmentReport</ns6:Topic><ns6:Message><ns7:environmentReport><ns7:enviro
> >> nment><ns7:weather><location>Bonn</location><temperature
> >>
> system="Celsius">15.0</temperature><wind>medium</wind><precipitation>Dri
> >>
> zzle</precipitation></ns7:weather></ns7:environment></ns7:environmentRep
> >>
> ort></ns6:Message></ns6:NotificationMessage></ns6:Notify></soap:Body></s
> >> oap:Envelope>
> >>
> >> That's exactly how I would have expected it. With the CXF-BC however, I
> >> get:
> >>
> >> <soap:Envelope
> >>
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><ns2:N
> >> otify xmlns="http://www.w3.org/2005/08/addressing";
> >> xmlns:ns2="http://docs.oasis-open.org/wsn/b-2";
> >> xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2";
> >> xmlns:ns4="http://docs.oasis-open.org/wsrf/rp-2";
> >> xmlns:ns5="http://docs.oasis-open.org/wsn/t-
> 1"><ns2:NotificationMessage>
> >> <ns2:Topic
> >> Dialect="http://docs.oasis-open.org/wsn/t-
> 1/TopicExpression/Simple">Envi
> >> ronmentReport</ns2:Topic><ns2:Message><ns7:environmentReport
> >>
> xmlns:ns7="http://katastropheneinsatz.fgan.de";><ns7:environment><ns7:wea
> >> ther><location xmlns=""
> >>
> xmlns:ns7_="http://www.w3.org/2005/08/addressing";>Bonn</location><temper
> >> ature system="Celsius" xmlns=""
> >>
> xmlns:ns7_="http://www.w3.org/2005/08/addressing";>15.0</temperature><win
> >> d xmlns=""
> >>
> xmlns:ns7_="http://www.w3.org/2005/08/addressing";>medium</wind><precipit
> >> ation xmlns=""
> >>
> xmlns:ns7_="http://www.w3.org/2005/08/addressing";>Drizzle</precipitation
> >>
> ></ns7:weather></ns7:environment></ns7:environmentReport></ns2:Message><
> >> /ns2:NotificationMessage></ns2:Notify></soap:Body></soap:Envelope>
> >>
> >> Why does it add the xmlns="" and
> >> xmlns:ns7_="http://www.w3.org/2005/08/addressing";? Is this intended
> >> behaviour?
> >>
> >> Regards,
> >>
> >> Anne
> >>
> >> [1]
> >>     <xsd:schema elementFormDefault="unqualified"
> >>       targetNamespace="http://katastropheneinsatz.fgan.de";
> >> xmlns="http://katastropheneinsatz.fgan.de";>
> >>       <xsd:attribute name="priority">
> >>         <xsd:simpleType>
> >>           <xsd:restriction base="xsd:string">
> >>             <xsd:enumeration value="emergency"/>
> >>             <xsd:enumeration value="high"/>
> >>             <xsd:enumeration value="default"/>
> >>             <xsd:enumeration value="low"/>
> >>           </xsd:restriction>
> >>         </xsd:simpleType>
> >>       </xsd:attribute>
> >>       <xsd:element name="weather">
> >>         <xsd:complexType>
> >>           <xsd:sequence>
> >>             <xsd:element name="location" type="xsd:string"/>
> >>             <xsd:element name="temperature">
> >>               <xsd:complexType mixed="true">
> >>                 <xsd:simpleContent>
> >>                   <xsd:extension base="xsd:decimal">
> >>                     <xsd:attribute default="Celsius" name="system">
> >>                       <xsd:simpleType>
> >>                         <xsd:restriction base="xsd:string">
> >>                           <xsd:enumeration value="Celsius"/>
> >>                           <xsd:enumeration value="Kelvin"/>
> >>                           <xsd:enumeration value="Fahrenheit"/>
> >>                         </xsd:restriction>
> >>                       </xsd:simpleType>
> >>                     </xsd:attribute>
> >>                   </xsd:extension>
> >>                 </xsd:simpleContent>
> >>               </xsd:complexType>
> >>             </xsd:element>
> >>             <xsd:element name="wind">
> >>               <xsd:simpleType>
> >>                 <xsd:restriction base="xsd:string">
> >>                   <xsd:enumeration value="stormy"/>
> >>                   <xsd:enumeration value="strong"/>
> >>                   <xsd:enumeration value="medium"/>
> >>                   <xsd:enumeration value="weak"/>
> >>                   <xsd:enumeration value="none"/>
> >>                 </xsd:restriction>
> >>               </xsd:simpleType>
> >>             </xsd:element>
> >>             <xsd:element name="precipitation">
> >>               <xsd:simpleType>
> >>                 <xsd:restriction base="xsd:string">
> >>                   <xsd:enumeration value="Fog"/>
> >>                   <xsd:enumeration value="Drizzle"/>
> >>                   <xsd:enumeration value="Rain"/>
> >>                   <xsd:enumeration value="Freezing drizzle"/>
> >>                   <xsd:enumeration value="Freezing rain"/>
> >>                   <xsd:enumeration value="Snow"/>
> >>                   <xsd:enumeration value="Snow grains"/>
> >>                   <xsd:enumeration value="Ice pellets"/>
> >>                   <xsd:enumeration value="Graupel"/>
> >>                   <xsd:enumeration value="Ice crystals"/>
> >>                 </xsd:restriction>
> >>               </xsd:simpleType>
> >>             </xsd:element>
> >>           </xsd:sequence>
> >>         </xsd:complexType>
> >>       </xsd:element>
> >>       <xsd:element name="environment">
> >>         <xsd:complexType>
> >>           <xsd:sequence>
> >>             <xsd:element maxOccurs="unbounded" ref="tns:weather"/>
> >>           </xsd:sequence>
> >>         </xsd:complexType>
> >>       </xsd:element>
> >>       <xsd:element name="environmentReport">
> >>         <xsd:complexType>
> >>           <xsd:sequence>
> >>             <xsd:element ref="tns:environment"/>
> >>           </xsd:sequence>
> >>         </xsd:complexType>
> >>       </xsd:element>
> >>     </xsd:schema>
> >
> 
> 
> 
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
> ------------------------
> Open Source SOA
> http://fusesource.com

Reply via email to