Is the transform done by XSLPortlet namespace aware?

Judging by the example xsl documents in the jetspeed distribution, I would think yes,
but the behavior with my own documents is not as I expect.


I started with the XML document listed below under Example 1. I specified the namespaces
for rdf and dublin core (dc). Elements are qualified appropriately. In the xsl
stylesheet, I defined the namespaces for rdf and dublin core. For convenience I used
the same prefixes, rdf and dc. When I apply the xml document to the stylesheet via the
XSL portlet, the output is the content of each element, one per line. i.e.,
Document Title Here
29 March 2004
John Doe
Subject
Some Description Text
Copyright (c) 2003 - 2004 The MITRE Corporation. All rights reserved.
application/vnd.ms-powerpoint
en


If I delete the namespace prefixes from both the xml and xsl documents, the output is
what I expect. See Example 2. I set the rdf namespace to be the default in both the
xml and xsl. For the test I deleted the dc prefix on title and date. In this case,
Jetspeed outputs the html. In this example, dc:rights is not recognized during the transform.


This makes me wonder 1) what I'm doing wrong, 2) if XSL portlet processing supports
namespaces. FWIW, I noteced in the XALAN faq (http://xml.apache.org/xalan-j/faq.html#faq-N10201)
and the unofficial JAXP faq at http://xml.apache.org/~edwingo/jaxp-faq.html#nsDefaults
that there is a warning that JAXP is not namespace aware by default. The code snippet xalan faq to instantiate a SAXParserFactory looks very similar
to what is going on in jetspeed.util.SimpleTransform.


Any comments are appreciated,

-- Michael Los





----------------------------------------
Example 1:
Jetspeed outputs content of each element; one per line.
Applying to xalan on command line results in html output and "IN DESCRIPTION" being printed
-----------------------------------------
=================
XML Doc
=================
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
xmlns:dc="http://purl.org/dc/elements/1.1/";> <rdf:Description about="http://somwhere.org/fileref.ppt";>
<dc:title>Document Title Here</dc:title>
<dc:date>29 March 2004</dc:date>
<dc:creator>John Doe</dc:creator>
<dc:subject>Subject</dc:subject>
<dc:description>Some Description Text</dc:description>
<dc:rights>Copyright (c) 2003 - 2004 The MITRE Corporation. All rights reserved.</dc:rights>
<dc:format>application/vnd.ms-powerpoint</dc:format>
<dc:language>en</dc:language>
</rdf:Description>
</rdf:RDF>


=================
XSL Doc
=================
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
xmlns:dc="http://purl.org/dc/elements/1.1/";> <xsl:output indent="yes" method="html"/>


<xsl:template match="/rdf:RDF">
<html><head></head><body>
<xsl:apply-templates select="rdf:Description" />
</body></html>
</xsl:template>

<xsl:template match="rdf:Description">
IN DESCRIPTION
<div><a>
<xsl:attribute name="href"><xsl:value-of select="@about"/></xsl:attribute>
<xsl:value-of select="dc:title"/>
</a></div>
<xsl:value-of select="dc:date"/><br />
<xsl:value-of select="dc:rights"/>
</xsl:template>


</xsl:stylesheet>

------------- END EXAMPLE 1 -------------------

----------------------------------------
Example 2:
Jetspeed outputs HTML. "IN DESCRIPTION" is printed. Rights element is not recognized
Running xalan directly on command line results in every content element printed out.
-----------------------------------------
=================
XML Doc
=================
<?xml version="1.0"?>
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
xmlns:dc="http://purl.org/dc/elements/1.1/";> <Description about="http://somwhere.org/fileref.ppt";>
<title>Document Title Here</title>
<date>29 March 2004</date>
<dc:creator>John Doe</dc:creator>
<dc:subject>Subject</dc:subject>
<dc:description>Some Description Text</dc:description>
<dc:rights>Copyright (c) 2003 - 2004 The MITRE Corporation. All rights reserved.</dc:rights>
<dc:format>application/vnd.ms-powerpoint</dc:format>
<dc:language>en</dc:language>
</Description>
</RDF>



=================
XSL Doc
=================
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
xmlns:dc="http://purl.org/dc/elements/1.1/";> <xsl:output indent="yes" method="html"/>


<xsl:template match="/RDF">
 <html><head></head><body>
 <xsl:apply-templates select="Description" />
 </body></html>
</xsl:template>

<xsl:template match="Description">
IN DESCRIPTION
<div><a>
<xsl:attribute name="href"><xsl:value-of select="@about"/></xsl:attribute>
<xsl:value-of select="title"/>
</a></div>
<xsl:value-of select="date"/><br />
<!-- rights is not matched in jetspeed; not namespace aware? -->
<xsl:value-of select="dc:rights"/>
</xsl:template>
</xsl:stylesheet>


------------- END EXAMPLE 2 -------------------




--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to