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
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.
On 10/26/05, Fred Drake <[EMAIL PROTECTED]> wrote:
> On 10/26/05, Floyd May <[EMAIL PROTECTED]> 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 L. Drake, Jr. <fdrake at gmail.com>
> "Society attacks early, when the individual is helpless." --B.F. Skinner
Zope maillist - Zope@zope.org
** No cross posts or HTML encoding! **
(Related lists -