RE: [xsl] 1 XSL for 2 XML

Subject: RE: [xsl] 1 XSL for 2 XML
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Thu, 3 Jun 2004 13:08:24 +0100
Selecting by local-name like this is not a very good idea, when all you are
trying to do is to avoid specifying a correct namespace prefix. Firstly,
it's selecting/matching elements that it shouldn't (elements in the wrong
namespace). 

Secondly, with Saxon at any rate, it makes the search for a matching
template rule very inefficient. Saxon organizes rules by the node-kind and
node-name of the nodes that are matched, and then looks for "generic" rules
that can match multiple node kinds or multiple node-names. If all the rules
are generic, as here, then it potentially tries to match each element
against every rule.

Michael Kay 

> -----Original Message-----
> From: Petr Mach3 [mailto:Mach3P@xxxxxxxxx] 
> Sent: 03 June 2004 10:13
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] 1 XSL for 2 XML
> 
> Found answer, but ...
> Is it possible to use     exclude-result-prefixes="f"  ????
> It doesn't work for me.
> 
> <?xml version="1.0"?>
> <xsl:stylesheet version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> xmlns:f="urn:schemas-cp-com:gen">
> <xsl:output method="html" version="4.0"/>
> 
> <xsl:template match="/">
> <html><body>
> <xsl:apply-templates select="//*[local-name(.)='MYTAB']"/>
> </body></html>
> </xsl:template>
> 
> <xsl:template match="*[local-name(.)='MYTAB']">
> <table border="1">
> <th>HEAD</th>
> <th><xsl:value-of select="MYHEAD"/><xsl:value-of 
> select="f:MYHEAD"/></th>
> <xsl:apply-templates select="*[local-name(.)='MYITEM']"/>
> </table>
> </xsl:template>
> 
> <xsl:template match="*[local-name(.)='MYITEM']">
> <tr><td>ITEM</td>
> <td><xsl:value-of select="MYIT"/><xsl:value-of 
> select="f:MYIT"/></td></tr>
> </xsl:template>
> </xsl:stylesheet>
> 
> 
> 
> > Hi,
> > I need a little help. I have 2 XML and 2 XSL to view files in IE,
> > but I need only 1 XSL. Only SOAP header and namespaces is difference
> > between XML files.
> > Any help?
> ...
> > 2. XML:
> > <?xml version="1.0"?>
> > <?xml-stylesheet type='text/xsl' href='soap_mytab.xsl'?>
> > <soap:Envelope 
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"; 
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";>
> >   <soap:Header>
> >   </soap:Header>
> >   <soap:Body>
> >     <receivedocument xmlns="urn:schemas-cp-com:loc">
> >       <BodyDocuments>
> > 	<MYTAB xmlns="urn:schemas-cp-com:gen">
> > 	 <MYHEAD>AAA</MYHEAD>
> > 	 <MYITEM>
> > 	    <MYIT>A1</MYIT>
> > 	 </MYITEM>
> > 	 <MYITEM>
> > 	    <MYIT>A2</MYIT>
> > 	 </MYITEM>
> > 	</MYTAB>
> >       </BodyDocuments>
> >     </receivedocument>
> >   </soap:Body>
> > </soap:Envelope>
> > 2.XSL soap_mytab.xsl:
> > <?xml version="1.0"?>
> > <xsl:stylesheet version="1.0" 
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
> > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
> > xmlns:d="urn:schemas-cp-com:loc"
> > xmlns:f="urn:schemas-cp-com:gen">
> > <xsl:output method="html" version="4.0"/>
> > <xsl:template match="/">
> > <html><body>
> > <xsl:apply-templates 
> select="soap:Envelope/soap:Body/d:receivedocument/d:BodyDocume
> nts/f:MYTAB"/>
> > </body></html>
> > </xsl:template>
> > <xsl:template match="f:MYTAB">
> > <table border="1">
> > <th>HEAD</th><th><xsl:value-of select="f:MYHEAD"/></th>
> > <xsl:apply-templates select="f:MYITEM"/>
> > </table>
> > </xsl:template>
> > <xsl:template match="f:MYITEM">
> > <tr><td>ITEM</td><td><xsl:value-of select="f:MYIT"/></td></tr>
> > </xsl:template>
> > </xsl:stylesheet>
> > 
> 
> ____________________________________________________________
> Konečně tě vidím barevně. SAMSUNG X450 již od 2577 Kč. www.oskar.cz
> http://ad.seznam.cz/clickthru?spotId=74859
> 
> --+------------------------------------------------------------------
> 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@xxxxxxxxxxxxxxxxxxxxxx>
> --+--
> 
> 



Current Thread