OK, figured it out. It was because of the '#' at the end of the csv
namespace declaration in my xslt stylesheet. This is a very common
thing to do when using owl namespaces, however apparently xslt doesn't
like it, I guess because it doesn't match exactly the csv namespace
declaration in the xml itself. For any semantic web/OWL practitioners
used to just putting the # on the end, this could be a real bad
"gotcha".
Jeff
On Jul 11, 2008, at 3:30 PM, Jeff Schmitz wrote:
Hello,
I'm trying to take the output of the CSVGenerator and transform
it. However, my xslt will not match any of the elements that have
colons in them.
e.g. for the following xml generated by CSVGenerator:
<?xml version="1.0" encoding="ISO-8859-1"?><relex xmlns:cinclude="http://apache.org/cocoon/include/1.0
">
<systems><csv:document xmlns:csv="http://apache.org/cocoon/csv/1.0">
<csv:record number="1">
<csv:field number="1">System</csv:field>
<csv:field number="2">Pump and Valve System</csv:field>
</csv:record>
</csv:document></systems>
The following xslt will not find a match:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:csv="http://apache.org/cocoon/csv/1.0#" version="2.0">
<xsl:output method="xml" indent="yes" />
<xsl:template match="/">
<!-- Write out the standard OWL start elements and imports-->
<xsl:apply-templates select="/relex/systems/csv:document/
csv:record" />
</xsl:template>
<xsl:template match="/relex/systems/csv:document/csv:record">
<matchedIt/>
</xsl:template>
</xsl:stylesheet>
I can match the "relex" and the "systems" tags just fine, but
neither of the ones with colons in them. I've tried several
variations on the template match (e.g. match=//csv:record, etc).
any ideas?
Thanks,
Jeff