Re: AW: [xsl] Omitting default namespace in the output - XSLT 2.0

Subject: Re: AW: [xsl] Omitting default namespace in the output - XSLT 2.0
From: António Mota <xptm@xxxxxxx>
Date: Mon, 20 Dec 2004 17:29:43 +0000
Write a empty template for the not wanted elements:

> > <xsl:template match="*">
> > <xsl:element name="{local-name()}">
> >   <xsl:copy-of select="@*"/>
> >   <xsl:apply-templates/>
> > </xsl:element>
> > </xsl:template>

<xsl:template match="not-wanted">
<xsl:template>

Quoting Huditsch Roman <Roman.Huditsch@xxxxxxxxxxxxx>:

> Thanks for the quick reply, Michael.
> I hoped that I wouldn't need to use generic templates,
> since that would in my case also mean many unwanted
> elements copied from my source tree.
> But having clarified that <xsl:copy-of> won't help me here,
> I think that there is no other way...
>
> Thank you very much!
>
> wbr,
> Roman
>
> _______________________________________
>
> Roman Huditsch
> IT and Electronic Publishing
> LexisNexis ARD Orac
> Marxergasse 25
> 1030 Vienna
> Austria
> ph: +43-1-534 52-1514
> f: +43-1-534 52-140
> e-mail roman.huditsch@xxxxxxxxxxxxx
> www.lexisnexis.at
>
>
> > -----Urspr|ngliche Nachricht-----
> > Von: Michael Kay [mailto:mike@xxxxxxxxxxxx]
> > Gesendet: Montag, 20. Dezember 2004 15:20
> > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Betreff: RE: [xsl] Omitting default namespace in the output - XSLT 2.0
> >
> > If you copy elements using xsl:copy-of, the output elements
> > will have the same names as the input elements, and the
> > system will automatically add declarations of the namespaces
> > used in these names. You want your output elements to have a
> > different name from the input elements (same local name,
> > different URI). So you can't use copy-of.
> >
> > To copy a tree while renaming elements, use a modified form
> > of the identity template rule:
> >
> > <xsl:template match="*">
> > <xsl:element name="{local-name()}">
> >   <xsl:copy-of select="@*"/>
> >   <xsl:apply-templates/>
> > </xsl:element>
> > </xsl:template>
> >
> > Michael Kay
> > http://www.saxonica.com/
> >
> >
> > > -----Original Message-----
> > > From: Huditsch Roman [mailto:Roman.Huditsch@xxxxxxxxxxxxx]
> > > Sent: 20 December 2004 13:52
> > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > Subject: [xsl] Omitting default namespace in the output - XSLT 2.0
> > >
> > > Hi,
> > >
> > > Given an example input like:
> > >
> > > <?xml version="1.0" encoding="UTF-8"?> <norm
> > > xmlns="myDefaultNamespace">
> > > 	<table>
> > > 		<row>
> > > 			<cell>My Table</cell>
> > > 		</row>
> > > 	</table>
> > > </norm>
> > >
> > > I searched for an easy way to get output data, which is not
> > associated
> > > to my default namespace any more, with the help of <xsl:copy-of> in
> > > XSLT 2.0 I hoped that the attribute "copy-namespaces" set to "no"
> > > would help me here, but unfortunately I had no luck with Saxon 8.1.1
> > >
> > > My output still looks like
> > >
> > > <table>
> > > 	<row xmlns="myDefaultNamespace">
> > > 		<cell>My Table</cell>
> > > 	</row>
> > > </table>
> > >
> > >
> > > XSLT:
> > > =====
> > >
> > > 	<xsl:template match="ln:table">
> > > 		<table>
> > > 			<xsl:copy-of select="node() | @*"
> > > copy-namespaces="no"/>
> > > 		</table>
> > > 	</xsl:template>
> > >
> > >
> > > Thanks in advance for your input!
> > >
> > > wbr,
> > > Roman
> > > _______________________________________
> > >
> > > Roman Huditsch
> > > IT and Electronic Publishing
> > > LexisNexis ARD Orac
> > > Marxergasse 25
> > > 1030 Vienna
> > > Austria
> > > ph: +43-1-534 52-1514
> > > f: +43-1-534 52-140
> > > e-mail roman.huditsch@xxxxxxxxxxxxx
> > > www.lexisnexis.at
>
>





O SAPO ja esta livre de vmrus com a Panda Software, fique vocj tambim!
Clique em: http://antivirus.sapo.pt

Current Thread