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

Reply via email to