The problem doesn't have to do with what I thought it did... it's something else (see below), but how to fix it?

On Mar 3, 2006, at 3:07 PM, Mark Lundquist wrote:

On Feb 23, 2006, at 12:30 AM, Josep A. Frau wrote:

You can use the entity catalog to map public DTD entities to file system files.

http://cocoon.apache.org/2.1/userdocs/concepts/catalog.html

Well, that's just the thing... I know how to use the entity catalog, and in fact it works fine — as long as the stylesheet source is hardcoded in the sitemap. But when (see below) the stylesheet is streamed through a Cocoon pipeline, then I get the error.

As it turns out, that's not the characteristic difference between stylesheets that are working and ones that aren't.

The problem is that I have a stylesheet that does an <xsl:import> of another stylesheet. The imported stylesheet needs some entities in order to parse, and the entity catalog is not being used to resolve entities in the imported stylesheet — instead, the parser is just looking for the entity at a filesystem path relative to where the stylesheet lives.

I cannot possibly be the first person to ever have this problem! How do I fix this?

Thx,
—ml—


En/na Mark Lundquist ha escrit:
Hi,

I have this in some XSLT stylesheets:

<!DOCTYPE html
[
<!ENTITY % HTMLlat1 PUBLIC
"-//W3C//ENTITIES Latin 1 for XHTML//EN"
"w3c/xhtml-lat1.ent">
%HTMLlat1;
<!ENTITY % HTMLspecial PUBLIC
"-//W3C//ENTITIES Special for XHTML//EN"
"w3c/xhtml-special.ent">
%HTMLspecial;
]>

...and this works fine for stylesheets where the TraxTransformer source is hardcoded in the sitemap. But I have one case where the stylesheet is served by a Cocoon pipeline like this:

<map:generate src="context:/config/fido/pub_templates/{flow-attribute:templatePath}"/>
<map:serialize type="xml" />

In this case Saxon throws a java.io.FileNotFoundException; it's looking for the referenced entities in the filesystem, relative to the parent directory of the stylesheet. I tried saying this in the DTD:

context://WEB-INF/entities/catalog/w3c/xhtml-lat1.ent

...but Saxon didn't like that, it says "unknown protocol".

Any ideas how I can fix this?

I actually had this app working for a long time, but I either never noticed or had forgotten that I had been locating the entity like this:

http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent

...and this was only exposed when a network problem cropped up on our server. I don't really want to be traipsing all over the net to get entities every time this stylesheet is parsed! :-/

Any help appreciated :-)
—ml—




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



--
Josep A. Frau <[EMAIL PROTECTED]>
Centre de Tecnologies de la Informació
Universitat de les Illes Balears


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


Reply via email to