can you please make sure, that the correct Xalan version is used? You can follow the instructions at http://wiki.cocoondev.org/Wiki.jsp?page=NoMoreDtmIdError or directly http://xml.apache.org/xalan-j/faq.html#environmentcheck.
Guardiola, Derek (ELS-STL)) wrote:
CVS "latest source distribution". I'm not sure exactly which version that is distributed but I believe it might be 2.0.4 due to the timestamp.
There are two CVS repositories, one for Cocoon 2.1, a second one for 2.0. Which one do you use? The version is also shown on the welcome or samples pages:
Cocoon 2.0: http://server:port/pathToCocoon/welcome
Cocoon 2.1: http://server:port/pathToCocoon/samples/
Joerg
Derek Guardiola Elsevier Science
-----Original Message----- From: Joerg Heinicke [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 10, 2003 3:56 PM To: [EMAIL PROTECTED] Subject: Re: sitemap.xls - XSLTFactoryLoader flaw?
Hmm, I never I had any problems with the sitemap in such a simple case with nearly all Cocoon versions 2.0.4 and below. In current 2.0 CVS and in 2.1 the sitemap.xsl (=> compiled sitemap) is no longer used as default, but the interpreted sitemap, which as a lot faster.
What's the Cocoon version you use?
Joerg
Guardiola, Derek (ELS-STL)) wrote:
lines 454 of sitemap.xls
// Prepare the pattern for "<xsl:value-of select="@pattern"/>" this.<xsl:value-of select="$matcher-name"/>_expr = this.preparePattern("<xsl:value-of select="$matcher-type"/>",
"<xsl:value-of
select="XSLTFactoryLoader:escapeBraces($factory-loader, @pattern)"/>");
The XSLTFactoryLoader:escapeBraces($factory-loader, @pattern) seems to be causing the site mappings "pattern" to come out blank after the first map:match tag. In the generated file (sitemap_xmap.java) looks like
this..
/** Prepare patterns of PreparableMatchers. */
public void prepareMatchers() throws Exception {
// Prepare the pattern for "hello.html"
this.matcher_N1006D_expr = this.preparePattern("wildcard",
"hello.html");
// Prepare the pattern for "hello2.html"
this.matcher_N1007B_expr = this.preparePattern("wildcard", "");
{SHOULD BE hello2.html}
// Prepare the pattern for "helloCustom.html"
this.matcher_N10089_expr = this.preparePattern("wildcard", "");
{SHOULD BE helloCustom.html}
// Prepare the pattern for "hellocustomgen.html"
this.matcher_N10097_expr = this.preparePattern("wildcard", "");
{SHOULD BE hellocustomgen.html}
}
the xmap file...
<map:pipelines>
<map:pipeline> <map:match pattern="hello.html" type="wildcard">
<map:generate src="test/hello.xml" />
<map:transform src="test/hello.xsl" />
<map:serialize type="html" />
</map:match>
<map:match pattern="hello2.html" type="wildcard"> <map:generate src="test/hello.xml" /> <map:transform src="test/hello.xsl" /> <map:serialize type="html" /> </map:match>
<map:match pattern="helloCustom.html" type="wildcard"> <map:generate type="myGenerator" /> <map:transform src="test/hello.xsl" /> <map:serialize type="html" /> </map:match> <map:match pattern="hellocustomgen.html" type="wildcard"> <map:generate type="myGenerator" /> <map:transform src="test/hello.xsl" /> <map:serialize type="html" /> </map:match> </map:pipeline>
</map:pipelines>
I removed the $factory-loader from the method call and it seems to be working ok now. Is this a bug in the system that might need to be corrected?
XSLTFactoryLoader:escapeBraces(@pattern) is the solution, but i don't want to circumvent anything.
-- Derek Guardiola