Here are some details for those who care. I'm no expert on XML namespaces and am still learning the ropes. However, I do currently use XSLT to postprocess my RSS 2.0 feed, which is in turn created by a customized RSS writer. So here's what I did. In the writer, I changed from:
add ("<rss version=\"2.0\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"
To:
add ("<rss version=\"2.0\" xmlns:rss=\"http://blogs.law.harvard.edu/tech/rss\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"
Then all RSS elements went from, e.g., <description>...</description>, to <rss:description>...</rss:description>.
This of course broke my XSLT postprocessors, so they had to change from:
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
...
To:
<xsl:stylesheet
xmlns:rss="http://blogs.law.harvard.edu/tech/rss"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
...
And then from, e.g.,
<xsl:template match="channel">
To:
<xsl:template match="rss:channel">
The XSLT postprocessing step was a useful way to assure that the original feed was valid, because it choked until I got things right. Now I've got to check and make sure the feeds produced by the postprocesser are consumable in aggregators.