cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Holmes <mhol...@uvic.ca>
Subject Re: Generating plain text on Cocoon 2.1.6
Date Tue, 03 May 2005 17:04:24 GMT
Hi there,

When I switch to the XML serializer, I get an empty XML document:

<?xml version="1.0" encoding="ISO-8859-1"?>

with no root element, and the wrong encoding.

This is strange; something must be throwing the Xalan parser for a loop, 
but there's nothing weird at all in the XSL as far as I can see; it's 
adapted from another file which works fine on a different installation 
of Cocoon (2.1.5). I've copied the XSLT below -- can anyone see anything 
wrong here?

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">

<!-- output method should be text -->
		
<xsl:output method="text" encoding="utf-8" media-type="text/plain"/>

<xsl:strip-space elements="*"/>
<xsl:preserve-space elements="l hi" />

<xsl:template match="/">
		<xsl:apply-templates />
</xsl:template>

<!-- Suppress the header -->
<xsl:template match="teiHeader">
	<!-- do nothing! -->
</xsl:template>

<xsl:template match="figure">
   <xsl:text>&#x000d;&#x000a;</xsl:text>
   [<xsl:value-of select="figDesc" />]
   <xsl:text>&#x000d;&#x000a;</xsl:text>
</xsl:template>

   <xsl:template match="div | div0 | div1 | div2 | ab | head | p | lg | 
l | titlePart | docAuthor/name | docAuthor/address/addrLine">
	<xsl:text>&#x000d;&#x000a;</xsl:text>
	<xsl:apply-templates />
     <xsl:text>&#x000d;&#x000a;</xsl:text>
</xsl:template>

<xsl:template match="lb">
	<xsl:text>&#x000d;&#x000a;</xsl:text>
</xsl:template>

<xsl:template match="list">
   <xsl:for-each select="item">
     <xsl:text>&#x000d;&#x000a;</xsl:text>
     <xsl:choose>
       <xsl:when test="../@type='unordered'">
         <xsl:text>&#x2022;</xsl:text>
       </xsl:when>
       <xsl:otherwise>
         <xsl:value-of select="position()" />.
       </xsl:otherwise>
     </xsl:choose>
     <xsl:apply-templates />
     <xsl:text>&#x000d;&#x000a;</xsl:text>
   </xsl:for-each>
</xsl:template>

  <xsl:template match="note">
    <xsl:choose>
      <xsl:when test="@n">
        [Note <xsl:value-of select="@n"/>: <xsl:apply-templates />]
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates />
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

   <xsl:template match="cit"><xsl:if test="q">"<xsl:apply-templates 
select="q" />"</xsl:if><xsl:if test="bibl"> (<xsl:apply-templates 
select="bibl" />)</xsl:if>
   </xsl:template>

   <xsl:template match="biblStruct">
     <xsl:text>&#x000d;&#x000a;</xsl:text>
       <xsl:apply-templates />
   </xsl:template>

   <xsl:template match="biblStruct//title | biblStruct//publisher | 
biblStruct//pubPlace | biblStruct//date | biblStruct//biblScope">
     <xsl:text>&#x000d;&#x000a;</xsl:text>
     <xsl:apply-templates />
   </xsl:template>

   <xsl:template match="biblStruct//name">
     <xsl:text>&#x000d;&#x000a;</xsl:text>
     <xsl:value-of select="@reg" />
   </xsl:template>

<xsl:template match="text()">
	<xsl:value-of select="." />
</xsl:template>

Cheers,
Martin

</xsl:stylesheet>

Upayavira wrote:
> Martin Holmes wrote:
> 
>> I'm having problems generating plain text output (utf-8) on Cocoon 
>> 2.1.6. I get a NullPointerException. The scenario is:
>>
>>       <map:match pattern="proof/*.txt">
>>         <map:generate src="abstracts_for_proofing/{1}.xml"/>
>>         <map:transform type="xinclude"/>
>>         <map:transform type="xslt" src="xsl/text_out.xsl"/>
>>         <map:serialize type="text" />
>>       </map:match>
>>
>> The XML files are UTF-8 and the XSL file starts out like this:
>>
>>
>> <xsl:output method="text" encoding="utf-8" media-type="text/plain"/>
>>
>> <xsl:template match="/">
>>      <xsl:processing-instruction
>> name="cocoon-format">type="text/plain"</xsl:processing-instruction>
>>      <plain-text>
>>         <xsl:apply-templates />
>>     </plain-text>
>> </xsl:template>
>>
>> The XSL works fine running locally in oXygen with Saxon 6.5.3. I've 
>> tried removing the processing instruction, but it makes no difference. 
>> I've also tried adding a UTF-8 text serializer to the sitemap like this:
>>
>> <map:serializer logger="sitemap.serializer.text" mime-type="text/plain"
>>         name="text" src="org.apache.cocoon.serialization.TextSerializer">
>>         <encoding>UTF-8</encoding>
>>       </map:serializer>
>>
>> but no joy.
>>
>> I've included the top few lines of the stack trace below. Can anyone 
>> suggest what the problem might be?
> 
> 
> Thanks for the other stack trace. Unfortunately, those ones are usually 
> very difficult to debug, as the error shows up in Xalan as a null 
> pointer exception, which was actually triggered by something much 
> further back in the pipeline.
> 
> Now, have you tried replacing <map:serialize type="text"/> with 
> <map:serialize type="xml"/>
> 
> What do you see? Does it produce your text content, but wrapped in XML?
> 
> Also, the processing instruction, to my knowledge, won't make any 
> difference. It looks like a Cocoon 1.x instruction, that Cocoon 2 
> doesn't know about. Configuration like that happens in the sitemap, not 
> in processing instructions.
> 
> Regards, Upayavira


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


Mime
View raw message