[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Strip Soap namespace?


soap namespace
XSL, XSLT and XPath questions would be better posted to the following list:

   http://www.mulberrytech.com/xsl/xsl-list

There are a number of subscribers who would enthusiastically respond to 
such questions.

There is also an *excellent* FAQ at:

   http://www.dpawson.co.uk

Helpful information regarding the Microsoft MSXML DLL can be found at:

   http://www.netcrucible.com/xslt/msxml-faq.htm

There are voluminous resource pages at:

   http://xml.coverpages.org/xsl.html

At 2002-07-29 16:07 -0600, Paul Coleman wrote:
>I have an xml input document as follows:

Your example was corrupted and incomplete, so I tried to guess at what you 
actually have.

>I am trying get just the soap body elements out via XSLT, but I always get 
>the soap ns on the justiceXML element.  My style sheet is as follows:
>
><?xml version="1.0"?>
><xsl:stylesheet version="1.0" 
>xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" 
>xmlns:xsl=<http://www.w3.org/1999/XSL/Transform>http://www.w3.org/1999/XSL/Transform 
>
>exclude-result-prefixes="soap-env">

Note the exclude-result-prefixes= attribute only prunes unwanted namespace 
nodes from the stylesheet node tree and never has any effect on the source 
node tree.  You still need it in your stylesheet since you need to declare 
the envelope namespace, though my example below doesn't have any literal 
result elements that could bring over the namespace, it might in the future 
so it is best to prepare ahead of time.

><xsl:output method="xml" />
>   <xsl:template match="justiceXML">
>   <xsl:copy-of select="." />

The act of copying an element node from either the source or stylesheet 
tree to the result tree will also copy all of that element's attached 
namespace nodes, of which there will be one for every ancestral namespace 
declaration.  Thus, every element in your justiceXML sub-tree branch will 
drag along a SOAP namespace because the SOAP namespace is declared in an 
element ancestor of the sub-tree.

></xsl:template>
></xsl:stylesheet>
>and my output:
><?xml version="1.0" encoding="UTF-8"?>
><justiceXML xmlns:soap-env=" class="OTrackNameListRequest" 
>type="request"/><payload><person><personName><firstName>MICHAEL</firstName><lastName>MOLEN</lastName><fullName>MICHAEL 
>MOLEN</fullName></personName><personDescription><sex>Male</sex><birthDate>1960-07-11</birthDate></personDescription></person></payload></justiceXML>
>
>Question:  is there a way to supress the soap namespace from the output?

A working example is below, with the XML instance that I tried to divine 
from the non-well-formed examples you gave (even your output quoted above 
isn't well formed).

>Using  exclude-result-prefixes doesn't make any difference.

... by definition.

The solution below will work stripping the SOAP namespace from any 
excerpted body contents, and is not tied specifically to the justiceXML 
element type.

I hope this helps.

................... Ken


T:\ftemp>type justin.xml
<?xml version="1.0" encoding="UTF-8"?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
   <soap-env:Body>
     <justiceXML type="request" class="OTrackNameListRequest">
       <payload>
         <person>
           <personName>
             <firstName>MICHAEL</firstName>
             <lastName>MOLEN</lastName>
             <fullName>MICKEY MOLEN</fullName>
           </personName>
           <personDescription>
             <sex>Male</sex>
             <birthDate>1910-08-01</birthDate>
           </personDescription>
         </person>
       </payload>
     </justiceXML>
   </soap-env:Body>
</soap-env:Envelope>

T:\ftemp>type justin.xsl
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                 xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/"
                 exclude-result-prefixes="soap-env"
                 version="1.0">

<xsl:template match="/">
   <xsl:apply-templates select="soap-env:Envelope/soap-env:Body/node()"/>
</xsl:template>

<xsl:template match="*"> <!--synthesize element with the input name-->
   <xsl:element name="{name(.)}" namespace="{namespace-uri(.)}">
     <xsl:copy-of select="@*"/>
     <xsl:apply-templates/>
   </xsl:element>
</xsl:template>

</xsl:stylesheet>

T:\ftemp>xt justin.xml justin.xsl justin.out

T:\ftemp>type justin.out
<?xml version="1.0" encoding="utf-8"?>

     <justiceXML type="request" class="OTrackNameListRequest">
       <payload>
         <person>
           <personName>
             <firstName>MICHAEL</firstName>
             <lastName>MOLEN</lastName>
             <fullName>MICKEY MOLEN</fullName>
           </personName>
           <personDescription>
             <sex>Male</sex>
             <birthDate>1910-08-01</birthDate>
           </personDescription>
         </person>
       </payload>
     </justiceXML>

T:\ftemp>rem Done!


--
Upcoming hands-on in-depth 3-days XSLT/XPath and/or 2-days XSL-FO:
-                               North America:  Sep 30-Oct  4,2002
-                               Japan:          Oct  7-Oct 11,2002

G. Ken Holman                 mailto:gkholman@C...
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/x/
Box 266, Kars, Ontario CANADA K0A-2E0  +1(613)489-0999 (Fax:-0995)
ISBN 0-13-065196-6                       Definitive XSLT and XPath
ISBN 1-894049-08-X   Practical Transformation Using XSLT and XPath
ISBN 1-894049-07-1                Practical Formatting Using XSLFO
XSL/XML/DSSSL/SGML/OmniMark services, books (electronic, printed),
articles, training (instructor-live,Internet-live,web/CD,licensed)
Next public training:           2002-08-05,26,27,09-30,10-03,07,10


PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.