xsl-list
[Top] [All Lists]

Re: [xsl] adding element in with general namespace prefix

2012-02-08 15:46:15
i completly agree with you, but some time service provider may not like it when 
he sees the request, he may question, why are you keeping different namespace 
prefix for same namespace.
   i wanted to be consistent in the entire soap request that i am sending

--- On Thu, 9/2/12, G. Ken Holman <gkholman(_at_)CraneSoftwrights(_dot_)com> 
wrote:

From: G. Ken Holman <gkholman(_at_)CraneSoftwrights(_dot_)com>
Subject: Re: [xsl] adding element in with general namespace prefix
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com, 
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Date: Thursday, 9 February, 2012, 3:11 AM
A true XML application ignores the
namespace prefix and relies only 
on the namespace URI associated with the namespace prefix.

Can you explain why it is important to you that the prefix
be the 
same?  It is irrelevant.  This request is
equivalent to an XML-based 
namespace-aware application:

   <giraffe:Envelope 
xmlns:giraffe="http://schemas.xmlsoap.org/soap/envelope/";>

An XML application will still see the above as a SOAP
envelope.

At 2012-02-09 03:06 +0530, ram wrote:
       So any idea how to fix
it.

It isn't broken.

I hope this helps.

. . . . . . . . . . Ken

At 2012-02-09 03:06 +0530, ram wrote:
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(_at_)CraneSoftwrights(_dot_)com
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--