OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: transfer namespace within XSL



From: Ivo Ottiger mailto:ivo.ottiger@bluewin.ch wrote:
> I try to transform the following XML Doc
>
> <?xml version = "1.0" encoding = "UTF-8"?>
> <PortfolioResp xmlns = "http://www.portfolio.org/Portfolio/Response"
> xmlns:xhtml="http://www.w3.org/1999/xhtml">
> <Quote>
> <Symbol>SUNW</Symbol>
> <Time>9:51AM</Time>
> <Price>16.06</Price>
> <Change>-1.53%</Change>
> <Volume>3,729,800</Volume>
> </Quote>
> </PortfolioResp>
>
> whith the following XSL into a new one without namespace
>
> <?xml version="1.0"?>
> <!-- quotes.xsl: Transform to Quote.dtd vocabulary -->
> <xsl:stylesheet version="1.0"
>   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>   xmlns:xhtml="http://www.w3.org/1999/xhtml">
>   <xsl:output method="xml" doctype-system="Quote.dtd" indent="yes"/>
>   <xsl:template match="/">
>     <Quotes>
>       <xsl:for-each select="xhtml:PortfolioResp/xhtml:Quote">
>         <Quote>
>           <Symbol Ticker="{xhtml:Symbol}"></Symbol>
>           <Time><xsl:value-of select="xhtml:Time"/></Time>
>           <Price><xsl:value-of select="xhtml:Price"/></Price>
>         </Quote>
>       </xsl:for-each>
>     </Quotes>
>   </xsl:template>
> </xsl:stylesheet>
>
> which should look like this one
>
> <?xml version = "1.0" encoding = "UTF-8"?>
> <Quotes>
> <Quote Symbol="SUNW">
> <Time>9:51AM</Time>
> <Price>16.06</Price>
> </Quote>
> </Quotes>
>
> But without any success. Can somebody help me.
> Thanks.

From a quick glance it looks like a namespace prefix problem.  In your XSLT
stylesheet you refer to the elements xhtml:PortfolioResp and xhtml:Quote.
In the stylesheet the prefix xhtml rightly refers to the URI
http://www.w3.org/1999/xhtml but the elements you reference are in the
namespace with the URI http://www.portfolio.org/Portfolio/Response.  You
simply need to create a new namespace prefix in your XLST stylesheet and use
that as the prefix for the PortfolioResp and Quote elements.

Regards
Rob Lugt
ElCel Technology
http://www.elcel.com