On Sat, Oct 9, 2010 at 1:19 PM, Andreas Veithen
<[email protected]> wrote:
> In that case, the XPath should look like this:
>
> //*[local-name()='Message']/*[local-name()='header']/*[local-name()='msgType']

Thanks Andreas. This is helpful to me as well :)

>
> This is ugly, but this is to be expected since you are using an XML
> anti-pattern, namely defining different XML formats that have similar
> structure but use different namespaces.

+1

Thanks,
Hiranya

>
> Andreas
>
> On Fri, Oct 8, 2010 at 20:28, Abid Khan-EXT <[email protected]> wrote:
>> Hiranya,
>>
>> Thanks for the quick response, but I cannot put the URL either since 
>> different messages will have different namespace and or URL.
>>
>> Thanks & Regards,
>> Abid
>>
>>
>> -----Original Message-----
>> From: Hiranya Jayathilaka [mailto:[email protected]]
>> Sent: Friday, October 08, 2010 12:25 PM
>> To: [email protected]
>> Subject: Re: If the message has name space setting the switch mediator does 
>> not work?
>>
>> On Fri, Oct 8, 2010 at 9:42 PM, Abid Khan-EXT <[email protected]> wrote:
>>> Hello Andreas,
>>>
>>> I understand that, but what if the message has no-prefix namespace 
>>> something like:
>>
>> That's fine. As far as the functionality is concerned, URL is he
>> important part in the namespace. Prefix could be anything. The prefix
>> used in your XPath doesn't have to match to the prefix in the message.
>> In fact message doesn't have to have a prefix at all.
>>
>> Thanks,
>> Hiranya
>>
>>
>>>
>>> <Message xmlns="http://www.company.com/test"/>
>>> ....
>>> ...
>>> </Message>
>>>
>>> This what I have most of the messages that I am processing with Synapse, 
>>> have not prefix name space or default namespace declaration. Which is the 
>>> problem I am facing.
>>>
>>>
>>>
>>> Thanks & Regards,
>>> Abid
>>>
>>>
>>> -----Original Message-----
>>> From: Andreas Veithen [mailto:[email protected]]
>>> Sent: Friday, October 08, 2010 10:07 AM
>>> To: [email protected]
>>> Subject: Re: If the message has name space setting the switch mediator does 
>>> not work?
>>>
>>> Try with something like this:
>>>
>>> <switch source="//p:Message/p:header/p:msgType"
>>> xmlns:p="http://www.company.com/test";>
>>>
>>> Note that XPath expressions in Synapse configuration files are
>>> supposed to work the same way as XPath expressions in XSLT, so if you
>>> have a colleague who is familiar with XSLT, he may help you to figure
>>> out the details.
>>>
>>> Andreas
>>>
>>> On Fri, Oct 8, 2010 at 17:46, Abid Khan-EXT <[email protected]> wrote:
>>>> I am not sure what is the difference in both ways here is how I am 
>>>> creating the switch:
>>>>
>>>> <switch source="//Message/header/msgType">
>>>>         <case regex="RequesResponse">
>>>>                 <validate>
>>>>                         <schema key="Message01"/>
>>>>                         <on-fail>
>>>>                                 <sequence key="ValidationFaultSequence" />
>>>>                         </on-fail>
>>>>                 </validate>
>>>>         </case>
>>>>         <case regex="Publish">
>>>>                 <validate>
>>>>                         <schema key=" Message02"/>
>>>>                         <on-fail>
>>>>                                 <sequence key="ValidationFaultSequence" />
>>>>                         </on-fail>
>>>>                 </validate>^M
>>>>         </case>
>>>> </switch>
>>>>
>>>> This exact switch works if the name space of the document is removed, and 
>>>> does not work otherwise.
>>>>
>>>> Please advise.
>>>>
>>>> Thanks & Regards,
>>>> Abid
>>>>
>>>> -----Original Message-----
>>>> From: Supun Kamburugamuva [mailto:[email protected]]
>>>> Sent: Thursday, October 07, 2010 8:29 PM
>>>> To: [email protected]
>>>> Subject: Re: If the message has name space setting the switch mediator 
>>>> does not work?
>>>>
>>>> I believe you are using XPath to get a value of a element. You can write a
>>>> Xpath in such a way that it works both with namespace qualified elements as
>>>> well as normal elements.
>>>>
>>>> Thanks,
>>>> Supun..
>>>>
>>>> On Tue, Sep 28, 2010 at 9:12 PM, Abid Khan-EXT 
>>>> <[email protected]>wrote:
>>>>
>>>>> Hello all,
>>>>>
>>>>> I am receiving a message and the switch works if I take the namespace
>>>>> string out of the message, but I cannot tell the sender to remove it. Is
>>>>> there anything I can do that synapse can handle the name space.
>>>>>
>>>>> Message that starts with something like this is not handled properly, by
>>>>> "switch" mediator.
>>>>>
>>>>> <Request xmlns="http://www.company.com/test"; xmlns:xsi="
>>>>> http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="
>>>>> http://www.company.com/test ../test/Request.xsd">
>>>>>
>>>>>
>>>>> Thanks & Regards,
>>>>>
>>>>> Abid Khan
>>>>> Java Consultant
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Tech Lead, WSO2 Inc
>>>> http://wso2.org
>>>> supunk.blogspot.com
>>>>
>>>
>>
>>
>>
>> --
>> Hiranya Jayathilaka
>> Senior Software Engineer;
>> WSO2 Inc.;  http://wso2.org
>> E-mail: [email protected];  Mobile: +94 77 633 3491
>> Blog: http://techfeast-hiranya.blogspot.com
>>
>



-- 
Hiranya Jayathilaka
Senior Software Engineer;
WSO2 Inc.;  http://wso2.org
E-mail: [email protected];  Mobile: +94 77 633 3491
Blog: http://techfeast-hiranya.blogspot.com

Reply via email to