[Zope] Re: Filesystem Page Template lowercase-ifying all my tags

Floyd May fmay at okcareertech.org
Wed Oct 26 11:03:40 EDT 2005


I found a way to hack around it.  It's definitely ugly, though.

Basically, I have a python script that calls page templates and
buffers the results as it writes out to REQUEST.RESPONSE.  Each page
template is *just a portion* of my final output XML file.  Since all
of the scripts and templates that I'm using are read from the
filesystem, they are the filesystem-equivalents to the ZODB-stored
objects.

Specifically, I discovered that the FSPageTemplate from CMFCore will
set the content_type attribute on the object to 'text/xml' if the file
begins with '<?xml'.  Otherwise, when it sees the xml-or-html-looking
content, it assumes a content_type of 'text/html', which lowercases
all the tags.

So I added an xml header to all of my page templates, and I strip it
back out inside the python script that calls the template (so that I
don't have the XML header repeated over and over in my final output
XML file).  Ugly, yes, but it does work.

fm

On 10/26/05, Fred Drake <fdrake at gmail.com> wrote:
> On 10/26/05, Floyd May <fmay at okcareertech.org> wrote:
> > It appears as though this problem is due to the content-type being set
> > inappropriately (probably text/html).  I'm attempting to render XML,
> > but each of the templates only contains a piece of my final output XML
> > file; therefore, I don't have the '<?xml ... ?>' header in the file.
> > From a perusal of the source for FSPageTemplate, this appears to be
> > the only way to get the Content-Type set to 'text/xml'.  Basically,
>
> Unfortunately, that's true for the current code.  Julien Anguenot and
> I started working on this problem (along with some other aspects of
> the XML vs. HTML behavior) based on the Zope 3 implementation for page
> templates.  The work isn't done yet, though the aspect you're
> interested in is pretty straightforward.
>
> That's only for the Zope 3 version of the code, however.  For now,
> your best bet may be to subclass the PageTemplateFile class (or
> whichever derived class of that that's relevant to you) and override
> the _cook_check() method to do what you need it to do.  If you're
> using a file-system view, you likely need to arrange for your new
> class to be used for some new filename extension; I'm not sure how to
> arrange for that.
>
>
>   -Fred
>
> --
> Fred L. Drake, Jr.    <fdrake at gmail.com>
> "Society attacks early, when the individual is helpless." --B.F. Skinner
>


More information about the Zope mailing list