Subject: Re: [xsl] adding element in with general namespace prefix From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> Date: Wed, 08 Feb 2012 16:41:24 -0500 |
So any idea how to fix it.
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-wssecurity-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-wssecurity-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.
-- Contact us for world-wide XML consulting and instructor-led training Free 5-hour video lecture: XSLT/XPath 1.0 & 2.0 http://ude.my/uoui9h Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/ G. Ken Holman mailto:gkholman@xxxxxxxxxxxxxxxxxxxx Google+ profile: https://plus.google.com/116832879756988317389/about Legal business disclaimers: http://www.CraneSoftwrights.com/legal
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] adding element in with genera, ram | Thread | Re: [xsl] adding element in with ge, ram |
[xsl] adding element in with genera, ram | Date | Re: [xsl] adding element in with ge, ram |
Month |