David Glick wrote:
> Derek Broughton wrote:
>> I have a couple of browser views that are trying to render XML and
>> getting bitten by the "bug" of
>> https://bugs.launchpad.net/zope2/+bug/142801
>>
>> I realize this isn't really a bug, but how DOES one set a mime-type on a
>> browser view? There doesn't seem to be anything in the ZCML <view>
>> definition. Because the ISO 19139 xml tags I'm trying to use are mixed
>> case, but the template is being processed as text/html, the mixed-case
>> tags below are being rendered in lowercase - and then my xsl stylesheet
>> doesn't
>> work. If I put the <?xml-stylesheet?> tag into the viewlet, it would
>> probably actually look like it worked, but the raw XML would still be
>> wrong, since those tags really are mixed-case.
>>
>> My view template is simply:
>> <?xml version="1.0" encoding="iso-8859-1" ?>
>> <?xml-stylesheet type="text/xsl" href="++resource++ISO2text.xsl" ?>
>> <div tal:replace="structure provider:MetadataViewlets"
>> xmlns:tal="http://xml.zope.org/namespaces/tal"
>> />
>>
>> while the code included by the viewlet manager starts:
>>
>> <mcp:MD_Metadata
>> xmlns:ns1="http://www.opengis.net/gml/"
>> xmlns:tal="http://xml.zope.org/namespaces/tal"
>> xmlns:xlink="http://www.w3.org/1999/xlink"
>> xmlns:mcp="http://bluenet3.antcrc.utas.edu.au/mcp"
>> xmlns:gco="http://www.isotc211.org/2005/gco"
>> xmlns:gmd="http://www.isotc211.org/2005/gmd"
>> xmlns:srv="http://www.isotc211.org/2005/srv"
>> xmlns:gts="http://www.isotc211.org/2005/gts"
>> gco:isoType="gmd:MD_Metadata">
>> <gmd:fileIdentifier>
>> <gco:CharacterString tal:content="context/id" />
>> </gmd:fileIdentifier>
>> ...
>>
> You probably need to set the Content-Type HTTP header in the
> response...here's an example from
>
http://svn.plone.org/svn/plone/Plone/branches/3.3/Products/CMFPlone/skins/plone_templates/rss_template.pt
> --
>
> <metal:block tal:define="dummy
> python:request.RESPONSE.setHeader('Content-Type',
> 'text/xml;;charset='+context.plone_utils.getSiteEncoding())" />
>
Thanks, but I rather hope that's not right. Are you seriously telling me
that Zope is reading it's own _output_ stream to determine how to parse the
current template? As near as I could tell, it should have known to use the
XML, rather than HTML, parser by virtue of the <?xml?> tag at the beginning
of the template.
In any case, I tried it, and got a worse error:
Module zope.pagetemplate.pagetemplate, line 111, in pt_render
- Warning: Compilation failed
- Warning: xml.parsers.expat.ExpatError: junk after document element:
line 10, column 4
Where the template is now:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="++resource++ISO2text.xsl" ?>
<metal:block
tal:define="dummy python:request.RESPONSE.setHeader('Content-Type',
'text/xml;;charset='+context.plone_utils.getSiteEncoding())"
xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal"
/>
<div tal:replace="structure provider:MetadataViewlets"
xmlns:tal="http://xml.zope.org/namespaces/tal"
/>
and line 10 is the <div>
--
derek
_______________________________________________
Product-Developers mailing list
[email protected]
http://lists.plone.org/mailman/listinfo/product-developers