You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Mark Lundquist <ml...@wrinkledog.com> on 2006/03/04 00:07:13 UTC

Re: Need help w/ entity resolution

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.

—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: users-unsubscribe@cocoon.apache.org
>> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>>
>
> -- 
> Josep A. Frau <pe...@uib.es>
> Centre de Tecnologies de la Informació
> Universitat de les Illes Balears
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>
>

Re: Need help w/ entity resolution

Posted by Mark Lundquist <ml...@wrinkledog.com>.
I'm using Saxon, but I made a little test in a default Cocoon build and  
I can see that it happens using Xalan as well.  The actual FileNotFound  
exception is thrown out of Xerces.  For the catalog to work when in the  
top level stylesheet but be broken in an imported stylesheet, there  
must be something about Xerces' environment for invoking the catalog  
that is different for the top-level vs. imported stylesheets, i.e.  
something that the XSLT processor controls... but something that both  
Saxon and Xalan get wrong?

Ideas, anybody?  All I want to do is to reference xhtml-lat1.ent, etc.,  
from an imported stylesheet!  It doesn't seem like it should be this  
hard!?!

:-/
—ml—

On Mar 6, 2006, at 11:16 AM, Mark Lundquist wrote:

>
> 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: users-unsubscribe@cocoon.apache.org
>>>> For additional commands, e-mail: users-help@cocoon.apache.org
>>>>
>>>>
>>>
>>> -- 
>>> Josep A. Frau <pe...@uib.es>
>>> Centre de Tecnologies de la Informació
>>> Universitat de les Illes Balears
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>>> For additional commands, e-mail: users-help@cocoon.apache.org
>>>
>>>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
For additional commands, e-mail: users-help@cocoon.apache.org


Re: Need help w/ entity resolution

Posted by Mark Lundquist <ml...@wrinkledog.com>.
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: users-unsubscribe@cocoon.apache.org
>>> For additional commands, e-mail: users-help@cocoon.apache.org
>>>
>>>
>>
>> -- 
>> Josep A. Frau <pe...@uib.es>
>> Centre de Tecnologies de la Informació
>> Universitat de les Illes Balears
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
>> For additional commands, e-mail: users-help@cocoon.apache.org
>>
>>