Subject: [xsl] adding element in with general namespace prefix From: ram <ram_kurra@xxxxxxxxxxx> Date: Thu, 9 Feb 2012 03:06:06 +0530 (IST) |
Hi, I have a soap request like the following <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:con1="http://abc.com/DefService/" > <soapenv:Header> </soapenv:Header> <soapenv:Body> <con1:GetDefinition> <!--Optional:--> <con1:Request><con1:Id/> </con1:Request> </con1:GetDefinition> </soapenv:Body> </soapenv:Envelope> I wanted to add ws:security with username credentials to the request like the following. <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:con="http://wellpoint.com/esb/context" xmlns:con1="http://abc.com/DefService/> <soapenv:Header> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurit y-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>abcd</wsse:Username> <wsse:Password>ramkurra</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> <soapenv:Body> <con1:GetDefinition> <con1:Id/> </con1:Response> </con1:GetDefinition> </soapenv:Body> </soapenv:Envelope> i tried with the following piece of code <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="/*[local-name()='Envelope']/*[local-name()='Header']"> <soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurit y-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username> abc</wsse:Username> <wsse:Password> xya</wsse:Password> </wsse:UsernameToken> </wsse:Security> </soapenv:Header> </xsl:template> </xsl:stylesheet> i get the result as expected, but my problem is when client sends the request with different namespace name rather than soapenv:Header, like s:Header, the following line of code will still put soapenv:Header in the result <soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> I wanted to make this namespace prefix is more of generalized manner, which picks from request. So any idea how to fix it.
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] XSLfast 5.0 Out Now!, Araszewicz, Milosz | Thread | Re: [xsl] adding element in with ge, G. Ken Holman |
[xsl] XSLfast 5.0 Out Now!, Araszewicz, Milosz | Date | Re: [xsl] adding element in with ge, G. Ken Holman |
Month |