Subject: RE: AW: [xsl] exclude result prefixes doesn't stop prefix from showingup. From: "Michael Kay" <mhk@xxxxxxxxx> Date: Fri, 22 Aug 2003 19:06:33 +0100 |
> > Thanks for the idea, but it didn't change the behavior, the > result still > looks like this: > > <?xml version="1.0" encoding="utf-8"?> > <codeBook xmlns="http://www.icpsr.umich.edu/DDI"> > <docDscr xmlns:ddi="http://www.icpsr.umich.edu/DDI"> > <citation> > <titlStmt>... Now you do have a namespace declaration in the result which is not being used, and is only there because it was in scope for the literal result element that created it. This *is* the situation where exclude-result-prefixes works. Michael Kay > > Markus Abt wrote: > > > Mark, > > try to put the namespace node at the root element of the result, > > not at xsl:stylesheet: > > > > <?xml version="1.0" encoding="iso-8859-1"?> > > <xsl:stylesheet > > version="1.0" > > xmlns:ddi="http://www.icpsr.umich.edu/DDI" > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > > > > <xsl:template match="ddi:codeBook"> > > <xsl:copy xmlns="http://www.icpsr.umich.edu/DDI"> > > <xsl:apply-templates select="@*"/> > > <docDscr> > > <citation> > > <titlStmt> > > <titl> > > <xsl:value-of > select="ddi:stdyDscr/ddi:citation/ddi:titlStmt/ddi:titl"/> > > </titl> > > </titlStmt> > > </citation> > > </docDscr> > > <xsl:apply-templates select="*"/> > > </xsl:copy> > > </xsl:template> > > </xsl:stylesheet> > > > > > > Regards, > > Markus > > __________________________ > > Markus Abt > > Comet Computer GmbH > > http://www.comet.de > > > > > > > > ---------- > > Von: Mark R. Diggory > > Gesendet: Freitag, 22. August 2003 17:33 > > An: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > > Betreff: Re: [xsl] exclude result prefixes doesn't stop > prefix from showingup. > > > > I did see that particular Q/A in the XSL FAQ and in your > book, I agree > > it works, but I feel like its a bit of an overkill > > > > Initially I had tried to write the stylesheet using the DDI > namespace > > as > > the default namespace, like below. but this failed to > detect the default > > namespace in the source document so none of the source > elements were > > properly matched. I thought to myself, there should be some > way I can > > match the default namespace in the source document? But I > can't find > > anything that does this. I came across the #default entity, > but this > > doesn't seem to fit either. > > > > <?xml version="1.0" encoding="UTF-8"?> > > <xsl:stylesheet > > version="1.0" > > xmlns="http://www.icpsr.umich.edu/DDI" > > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > > exclude-result-prefixes="ddi" > > > > > <xsl:template match="codeBook"> > > <xsl:copy> > > <xsl:apply-templates select="@*"/> > > <docDscr> > > ... > > <titl> > > <xsl:value-of > select="stdyDscr/citation/titlStmt/titl"/> > > </titl> > > ... > > </docDscr> > > <xsl:apply-templates select="*"/> > > </xsl:copy> > > </xsl:template> > > > > ... > > </xsl:stylesheet> > > > > Michael Kay wrote: > > > >>exclude-result-prefixes only affects the namespaces copied from the > >>stylesheet by a literal result element, it doesn't affect > copying of > >>namespaces from source documents. In any case, the codeBook > element is > >>in the namespace http://www.icpsr.umich.edu/DDI, so the > namespace must > >>be declared. exclude-result-prefixes only suppresses > namespaces that > >>are not used in any element or attribute name, and this > namespace is > >>used. What you want to do is not to suppress the namespace > >>declaration, it is to change the name of the element, which > you can do > >>by using <xsl:element name="{local-name(.)}"> in place of xsl:copy. > >> > >>Michael Kay > >> > >> > >> > >>>-----Original Message----- > >>>From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx > >>>[mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of > >>>Mark R. Diggory > >>>Sent: 21 August 2003 23:10 > >>>To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > >>>Subject: [xsl] exclude result prefixes doesn't stop prefix > >> > >>>from showing up. > >> > >>> > >>>I have a stylesheet that copies an xml document with a > >>>default namespace > >>>while it also is adding some content to it: > >>> > >>>*The stylesheet* > >>> > >>><?xml version="1.0" encoding="UTF-8"?> > >>><xsl:stylesheet > >>> version="1.0" > >>> xmlns="http://www.icpsr.umich.edu/DDI" > >>> xmlns:ddi="http://www.icpsr.umich.edu/DDI" > >>> xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > >>> exclude-result-prefixes="ddi" > >>> > > >>> > >>> <xsl:template match="@* | *"> > >>> <xsl:copy> > >>> <xsl:apply-templates select="* | @* | text()"/> > >>> </xsl:copy> > >>> </xsl:template> > >>> > >>> <xsl:template match="ddi:codeBook"> > >>> <xsl:copy> > >>> <xsl:apply-templates select="@*"/> > >>> <docDscr> > >>> <citation> > >>> <titlStmt> > >>> <titl> > >>> <xsl:value-of > >>>select="ddi:stdyDscr/ddi:citation/ddi:titlStmt/ddi:titl"/> > >>> </titl> > >>> </titlStmt> > >>> </citation> > >>> </docDscr> > >>> <xsl:apply-templates select="*"/> > >>> </xsl:copy> > >>> </xsl:template> > >>></xsl:stylesheet> > >>> > >>>*The xml document* > >>> > >>><?xml version="1.0" encoding="utf-8"?> > >>><codeBook xmlns="http://www.icpsr.umich.edu/DDI" > > >>> <stdyDscr> .... > >>> > >>> > >>>*the resulting xml document* > >>> > >>> > >>><?xml version="1.0" encoding="utf-8"?> > >>><codeBook xmlns="http://www.icpsr.umich.edu/DDI"> > >>> <docDscr xmlns:ddi="http://www.icpsr.umich.edu/DDI"> > >>> <citation> > >>> ... > >>> </citation> > >>> </docDscr> > >>> <stdyDscr> > >>> <citation> > >>> <titlStmt> > >>> <titl>Foo bar</titl> > >>> </titlStmt> > >>> </citation> > >>> </stdyDscr> > >>></codeBook> > >>> > >>>My problem is that I'm getting an extra > >>>xmlns:ddi="http://www.icpsr.umich.edu/DDI" in the docDscr > >>>element even > >>>though I'm suppressing it in the excludes. Is there any way I > >>>can stop > >>>this from happening? > >>> > >>>-Mark Diggory > >>>Harvard MIT Data Center > >>> > >>> > >>> > >>>XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > >>> > >> > >> > >> > >> > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > >> > > > > > > > > XSL-List info and archive: > http://www.mulberrytech.com/xsl/xsl-list > > > > > > > > XSL-List > info and archive: http://www.mulberrytech.com/xsl/xsl-list > > > > > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list > XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: AW: [xsl] exclude result prefix, Mark R. Diggory | Thread | Re: AW: [xsl] exclude result prefix, Mark R. Diggory |
RE: [xsl] exclude result prefixes d, Michael Kay | Date | Re: [xsl] Date format, Rick Taylor |
Month |