|
Subject: Re: [xsl] Why doesn't exclude-result-prefixes rid me of xmlns=""? From: "Jeffrey Moss" <jeff@xxxxxxxxxxxx> Date: Tue, 13 Apr 2004 10:03:32 -0600 |
I've found that it only puts this in when you use xsl:copy (it aught to have
a parameter to avoid that, I think). Here is my solution:
<xsl:template match="xhtml:*">
<!-- This is an identity template for XHTML elements -->
<!-- xsl:copy is no good because it explicitly gives the namespace
uri -->
<xsl:element name="{name(.)}">
<xsl:for-each select="@*">
<xsl:attribute name="{name(.)}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:for-each>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
as opposed to:
<xsl:template match="xhtml:*">
<xsl:copy>
<xsl:apply-templates />
</xsl:copy>
</xsl:template>
I don't suppose the xmlns= would hurt to have in your xhtml output, but I
just wanted a 1:1 transformation in all cases, probably the same with you.
-Jeff
----- Original Message -----
From: "Michael Kay" <mhk@xxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Tuesday, April 13, 2004 2:41 AM
Subject: RE: [xsl] Why doesn't exclude-result-prefixes rid me of xmlns=""?
> You have created an <html> element in the "http://www.w3.org/1999/xhtml"
> namespace, and within it you have created a <div> element that is in no
> namespace. The xmlns="" is generated in order to ensure that the <div>
> element is in no namespace, which is what you requested. If you want the
> <div> element to be in the XHTML namespace, you need to ensure that the
> <div> element in the stylesheet has an
xmlns="http://www.w3.org/1999/xhtml"
> declaration in scope.
>
> Responding to the question in your subject line, exclude-result-prefixes
is
> provided to help you get rid of namespaces declarations that are not used
in
> the result document. It will never get rid of namespace declarations that
> are generated to put elements in the right namespace.
>
> Michael Kay
>
> > -----Original Message-----
> > From: Michael Terry [mailto:formido@xxxxxxx]
> > Sent: 13 April 2004 08:05
> > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > Subject: [xsl] Why doesn't exclude-result-prefixes rid me of xmlns=""?
> >
> > Hi,
> >
> > After searching Google, I figured out how to
> > exclude-result-prefixes,
> > but I'm still getting an unwanted 'xmlns=""' in one of my outputted
> > divs. Can someone tell me why?
> >
> > Following on, I've included excerpts from the source, the
> > script, and
> > the result. At the bottom, I pasted in the browser display from the
> > result of running the processor-version.xsl on itself, plus links to
> > the relevant full texts, should they be necessary.
> >
> > --------------------------------------
> > dictionary.xmloutline (source excerpt)
> > --------------------------------------
> > <?xml version="1.0" encoding="utf-8" standalone="no"?>
> > <!DOCTYPE oo:outline PUBLIC "-//omnigroup.com//DTD OUTLINE 2.0//EN"
> > "xmloutline-v2.dtd">
> > <outline
> > xmlns:oo="http://www.omnigroup.com/namespace/OmniOutliner/v2"
> > version="1.0">
> > <oo:columns>
> >
> > ... snip ...
> >
> > <oo:root background-color='#ffffff' alternate-color='#d6ffed'>
> > <oo:item expanded="yes">
> > <oo:values>
> > <oo:rich-text><oo:p alignment="left"><oo:font face="Monaco"
> > size="10">OmniWeb:</oo:font></oo:p></oo:rich-text>
> > </oo:values>
> > <oo:children>
> > <oo:item expanded="yes">
> > <oo:values>
> > <oo:rich-text><oo:p alignment="left"><oo:font
> > face="Monaco"
> > size="10">classes:</oo:font></oo:p></oo:rich-text>
> > </oo:values>
> > <oo:children>
> > <oo:item expanded="yes">
> > <oo:values>
> > <oo:rich-text><oo:p alignment="left"><oo:font
> > face="Monaco" size="10">application:</oo:font></oo:p></oo:rich-text>
> > </oo:values>
> > <oo:children>
> > <oo:item expanded="yes">
> > <oo:values>
> > <oo:rich-text><oo:p alignment="left"><oo:font
> > face="Monaco" size="10">commands:</oo:font></oo:p></oo:rich-text>
> > </oo:values>
> > <oo:children>
> > <oo:item expanded="yes">
> > <oo:values>
> > <oo:rich-text><oo:p><oo:font face="Monaco"
> > size="10">activate:</oo:font></oo:p></oo:rich-text>
> > </oo:values>
> > <oo:children>
> >
> > --------------------------------------
> > format_dictionary.xsl (full text)
> > --------------------------------------
> > <?xml version="1.0"?>
> >
> > <xsl:stylesheet
> > version="1.0"
> > xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> > xmlns:oo="http://www.omnigroup.com/namespace/OmniOutliner/v2"
> > exclude-result-prefixes="oo">
> >
> > <xsl:output
> > method="xml"
> > indent="yes"
> >
> > doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
> > doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"/>
> >
> > <xsl:template match="/">
> > <html xmlns="http://www.w3.org/1999/xhtml"
> > xml:lang="en" lang="en">
> > <head>
> > <title>OmniWeb AppleScript Documentation</title>
> > <meta http-equiv="Content-Type"
> > content="text/html;
> > charset=us-ascii"/>
> > </head>
> > <body>
> > <xsl:apply-templates select="outline/oo:root"/>
> > </body>
> > </html>
> > </xsl:template>
> >
> > <xsl:template match="oo:root">
> > <xsl:apply-templates select="oo:item"/>
> > </xsl:template>
> >
> > <xsl:template match="oo:item">
> > <div>
> > <xsl:value-of select="./oo:values/oo:rich-text/oo:p"/>
> > <xsl:apply-templates select="oo:children/oo:item"/>
> > </div>
> > </xsl:template>
> >
> > </xsl:stylesheet>
> >
> > --------------------------------------
> > dictionary.html (result excerpt)
> > --------------------------------------
> > <?xml versioasdfsan="1.0" encoding="UTF-8"?>
> > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
> > "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
> > <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
> > <head>
> > <title>OmniWeb AppleScript Documentation</title>
> > <meta http-equiv="Content-Type" content="text/html;
> > charset=us-ascii" />
> > </head>
> > <body>
> > <div
> > xmlns="">OmniWeb:<div>classes:<div>application:<div>commands:
> > <div>activate:<div>activate</div>
> > </div>
> > <div>count:<div>count</div>
> > <div>count it each browser</div>
> > <div>count each browser</div>
> > </div>
> >
> > --------------------------------------
> > processor version info
> > --------------------------------------
> > Vendor: Apache Software Foundation
> > Vendor URL: http://xml.apache.org/xalan-c
> >
> > --------------------------------------
> > links to full texts
> > --------------------------------------
> > <http://homepage.mac.com/formido/dictionary.xmloutline>
> > <http://homepage.mac.com/formido/format_dictionary.xsl>
> > <http://homepage.mac.com/formido/dictionary.html>
> > <http://homepage.mac.com/formido/processor_version_info.html>
> >
> > Mike
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Writing to a text file, Jeffrey Moss | Thread | Re: [xsl] Why doesn't exclude-resul, David Carlisle |
| Re: [xsl] Writing to a text file, Wendell Piez | Date | Re: [xsl] Writing to a text file, Jeffrey Moss |
| Month |