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.

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]> 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]> 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]> 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]> wrote:
>>>
>>>> Axiom never produces malformed XML. Who said that??
>>>>
>>>> Andreas
>>>>
>>>> On Sun, Nov 20, 2011 at 17:59, Sanjiva Weerawarana
>>>> <[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]> 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]> 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]>
>>>> >> > 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]> 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]
>>>> >> >> For additional commands, e-mail: [email protected]
>>>> >> >>
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > --
>>>> >> > Charith Dhanushka Wickramarachchi
>>>> >> > http://charithwiki.blogspot.com/
>>>> >> >
>>>> >> >
>>>> >>
>>>> >> ---------------------------------------------------------------------
>>>> >> To unsubscribe, e-mail: [email protected]
>>>> >> For additional commands, e-mail: [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]
>>>> For additional commands, e-mail: [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