Re: SVG, XSLT and Namespaces

The DTD you reference defines a fixed xmlns attribute for the svg element of
http://www.w3.org/2000/svg-20000303-stylable (which has been updated in
later drafts).  The effect should be equivalent of an explicit default
namespace declaration on the <svg> element, such as:

<svg id="nsexample" width="100pt" height="100pt" viewBox="0 0 100 100"
    xml:space="preserve"
xmlns="http://www.w3.org/2000/svg-20000303-stylable">

or using a explicit prefix for the SVG element tag names:

<svg:svg id="nsexample" width="100pt" height="100pt" viewBox="0 0 100 100"
    xml:space="preserve"
xmlns:svg="http://www.w3.org/2000/svg-20000303-stylable">


In your sample transform, you appear to want to do

<xsl:template match="path">

which would only match an element with a tag name of "path" that is not
qualified (either through a default namespace or a namespace prefix) with a
namespace.

That you should do is:

<xsl:stylesheet
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
      xmlns:svg="http://www.w3.org/2000/svg-20000303-stylable"
      xmlns="http://www.w3.org/2000/svg-20000303-stylable"
     version="1.0">
...
     <xsl:template match="svg:path">

Received on Wednesday, 29 November 2000 12:27:07 UTC