On 11/21/2011 11:18 AM, Aleksander Slominski wrote:
> Hi,
>
> from what I remember of XML and Namespaces: when you detach any child
> element such as saml:Assertion then all in-scope namespace declared
> prefixes should be copied.
IIRC, Axiom did exactly what you mentioned, however I am not sure how it
works today. (did not use Axiom for years now).

Deepal
>
> The serializer should recognize if it is serializing a standalone or
> embedded XML. Is there any API for it? For standalone it should print
> all in-scope declared namesapce prefixes.
>
> HTH,
>
> Alek
>
> On Sun, Nov 20, 2011 at 11:31 PM, Charith Wickramarachchi
> <[email protected] <mailto:[email protected]>> wrote:
>
>     Hi ,
>
>     Looked more in to the details of whats happening. So here the
>     problem is the element that have this redundant names space is the
>     <saml:Assertion ... element which is a signed one.
>
>      
>     The incoming message to synapse looks like this.
>
>     <soapenv:Envelope
>     xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
>     
> xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> 
>        <soapenv:Header> 
>           <oas:Security> 
>     <saml:Assertion ....
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> ...
>     </saml:Assertion> 
>     </oas:Security> 
>        </soapenv:Header> 
>     ........................... 
>     </soapenv:Envelope>
>
>
>     and output is like
>
>     <soapenv:Envelope
>     xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
>     
> xmlns:oas="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";> 
>        <soapenv:Header> 
>           <oas:Security> 
>     <saml:Assertion ...> ... </saml:Assertion> 
>     </oas:Security> 
>        </soapenv:Header>
>
>
>     So in this case isn't it wrong to do this kind of optimizations ?
>
>     thanks,
>     Charith
>
>
>
>
>
>     On Mon, Nov 21, 2011 at 8:50 AM, Charith Wickramarachchi
>     <[email protected] <mailto:[email protected]>>
>     wrote:
>
>         Hi ,
>
>         This is an issue with the BE service. When the message comes
>         to synapse from the client. In its SOAP Message it has same
>         name space declared at two levels.
>
>         At Envelope level and and inside a header. So as a result when
>         message go through synapse  it will omit this redundant names
>         space declaration.
>         But BE service will fail to process this header due to 
>         missing namesspace. So its due to BEs xml phaser assumes that
>         headers are self contained and they do not see the namesspace
>         defined at Envelope level.
>
>         thanks,
>         Charith
>
>
>         On Sun, Nov 20, 2011 at 11:12 PM, Sanjiva Weerawarana
>         <[email protected] <mailto:[email protected]>> wrote:
>
>             "So when synapse forward them  to the BE service they get
>             omitted as they are defined at SOAP Envelope level." 
>
>             Maybe Synapse is not serializing the headers properly?
>
>             Sanjiva.
>
>             On Sun, Nov 20, 2011 at 10:55 PM, Andreas Veithen
>             <[email protected]
>             <mailto:[email protected]>> wrote:
>
>                 Axiom never produces malformed XML. Who said that??
>
>                 Andreas
>
>                 On Sun, Nov 20, 2011 at 17:59, Sanjiva Weerawarana
>                 <[email protected] <mailto:[email protected]>>
>                 wrote:
>                 > Isn't that a bug?
>                 > If I declare an NS at the Envelope node then that
>                 cannot be removed if
>                 > anyone inside uses it. If I'm serializing only the
>                 Header element(s) then
>                 > any in scope namespaces must be available and worst
>                 case every element will
>                 > re-serialize them. However under no condition is it
>                 correct to serialize a
>                 > child element and end up with malformed XML!
>                 >
>                 > Sanjiva.
>                 >
>                 > On Sat, Nov 19, 2011 at 10:28 PM, Andreas Veithen
>                 > <[email protected]
>                 <mailto:[email protected]>> wrote:
>                 >>
>                 >> Assuming that the namespace in question is not the
>                 SOAP envelope
>                 >> namespace, instead of hacking Axiom, wouldn't it be
>                 easier to remove
>                 >> the namespace declaration from the SOAP envelope
>                 (so that it will be
>                 >> serialized in the SOAP header block)?
>                 >>
>                 >> Andreas
>                 >>
>                 >> On Sat, Nov 19, 2011 at 06:11, Charith Wickramarachchi
>                 >> <[email protected]
>                 <mailto:[email protected]>> wrote:
>                 >> > Hi Andreas,
>                 >> >
>                 >> > Issue was this causes an Error in a 3rd party
>                 web-service engine when
>                 >> > processing some soap headers.
>                 >> >
>                 >> > Scenario is this. Synapse get a soap request
>                 which contains some
>                 >> > redundant
>                 >> > namespace declarations at header level which are
>                 internally used inside
>                 >> > the
>                 >> > headers. So when synapse forward them  to the BE
>                 service they get
>                 >> > omitted as
>                 >> > they are defined at SOAP Envelope level.
>                 >> >
>                 >> > BE services header processor incorrectly assumes
>                 that headers are self
>                 >> > contained so this causes an error.
>                 >> >
>                 >> > I was wondering it may make scene to make it
>                 configurable  as if we
>                 >> > think
>                 >> > of  synapse point of view omitting redundant
>                 namespaces may not be a
>                 >> > good
>                 >> > idea sometimes. Specially integrating with
>                 legacies like this. WDYT ? (
>                 >> > I do
>                 >> > agree that this in pure AXIOM point of view its
>                 the correct thing to do
>                 >> > as
>                 >> > it will reduce the data content that is written
>                 to the wire etc.. )
>                 >> >
>                 >> > Can please you point me to a place where this is
>                 done ? So that i can
>                 >> > hack
>                 >> > the code for the time being for my self and later
>                 provide a patch if
>                 >> > devs
>                 >> > are ok with my above idea.
>                 >> >
>                 >> > thanks,
>                 >> > Charith
>                 >> >
>                 >> >
>                 >> >
>                 >> >
>                 >> >
>                 >> > On Fri, Nov 18, 2011 at 3:55 PM, Andreas Veithen
>                 >> > <[email protected]
>                 <mailto:[email protected]>>
>                 >> > wrote:
>                 >> >>
>                 >> >> No, the namespace repairing performed by the
>                 serialize and
>                 >> >> serializeAndConsume methods is not configurable.
>                 >> >>
>                 >> >> What is the use case for preserving a redundant
>                 namespace declaration
>                 >> >> on a SOAP header?
>                 >> >>
>                 >> >> Andreas
>                 >> >>
>                 >> >> On Fri, Nov 18, 2011 at 03:23, Charith
>                 Wickramarachchi
>                 >> >> <[email protected]
>                 <mailto:[email protected]>> wrote:
>                 >> >> > Hi devs ,
>                 >> >> >
>                 >> >> > When we serialize a OMElement axiom will omit
>                 redundant namesspace
>                 >> >> > declarations by default. Is it possible to
>                 disable this behavior ?
>                 >> >> > In my case i want to keep the redundant
>                 namesspace declarations in
>                 >> >> > SOAP
>                 >> >> > headers.
>                 >> >> >
>                 >> >> >
>                 >> >> > thanks,
>                 >> >> > Charith
>                 >> >> >
>                 >> >> > --
>                 >> >> > Charith Dhanushka Wickramarachchi
>                 >> >> > http://charithwiki.blogspot.com/
>                 >> >> >
>                 >> >> >
>                 >> >>
>                 >> >>
>                 
> ---------------------------------------------------------------------
>                 >> >> To unsubscribe, e-mail:
>                 [email protected]
>                 <mailto:[email protected]>
>                 >> >> For additional commands, e-mail:
>                 [email protected] <mailto:[email protected]>
>                 >> >>
>                 >> >
>                 >> >
>                 >> >
>                 >> > --
>                 >> > Charith Dhanushka Wickramarachchi
>                 >> > http://charithwiki.blogspot.com/
>                 >> >
>                 >> >
>                 >>
>                 >>
>                 
> ---------------------------------------------------------------------
>                 >> To unsubscribe, e-mail:
>                 [email protected]
>                 <mailto:[email protected]>
>                 >> For additional commands, e-mail:
>                 [email protected] <mailto:[email protected]>
>                 >>
>                 >
>                 >
>                 >
>                 > --
>                 > Sanjiva Weerawarana, Ph.D.
>                 > Founder, Director & Chief Scientist; Lanka Software
>                 Foundation;
>                 > http://www.opensource.lk/
>                 > Founder, Chairman & CEO; WSO2; http://wso2.com/
>                 > Founder & Director; Thinkcube Systems;
>                 http://www.thinkcube.com/
>                 > Member; Apache Software Foundation;
>                 http://www.apache.org/
>                 > Visiting Lecturer; University of Moratuwa;
>                 http://www.cse.mrt.ac.lk/
>                 >
>                 > Blog: http://sanjiva.weerawarana.org/
>                 >
>
>                 
> ---------------------------------------------------------------------
>                 To unsubscribe, e-mail: [email protected]
>                 <mailto:[email protected]>
>                 For additional commands, e-mail:
>                 [email protected] <mailto:[email protected]>
>
>
>
>
>             -- 
>             Sanjiva Weerawarana, Ph.D.
>             Founder, Director & Chief Scientist; Lanka Software
>             Foundation; http://www.opensource.lk/
>             Founder, Chairman & CEO; WSO2; http://wso2.com/
>             Founder & Director; Thinkcube Systems;
>             http://www.thinkcube.com/
>             Member; Apache Software Foundation; http://www.apache.org/
>             Visiting Lecturer; University of Moratuwa;
>             http://www.cse.mrt.ac.lk/
>
>             Blog: http://sanjiva.weerawarana.org/
>
>
>
>
>         -- 
>         Charith Dhanushka Wickramarachchi
>         http://charithwiki.blogspot.com/
>
>
>
>
>     -- 
>     Charith Dhanushka Wickramarachchi
>     http://charithwiki.blogspot.com/
>
>
>
>
> -- 
> The best way to predict the future is to invent it - Alan Kay

Reply via email to