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
