RE: [xsl] xsl formating string

Subject: RE: [xsl] xsl formating string
From: JBryant@xxxxxxxxx
Date: Tue, 5 Apr 2005 16:21:50 -0500
My bad on that one. Typing too fast and thinking of my own problem at the 
time.

Sorry, Josh

Jay Bryant
Bryant Communication Services
(presently consulting at Synergistic Solution Technologies




"Michael Kay" <mike@xxxxxxxxxxxx> 
04/05/2005 04:02 PM
Please respond to
xsl-list@xxxxxxxxxxxxxxxxxxxxxx


To
<xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
cc

Subject
RE: [xsl] xsl formating string






Your problem is:

<xsl:when test="../format_control='C1'"/>
                                       ^
                                       |

that the xsl:when is an empty element. The fo:block is therefore a direct
child of xsl:choose, which is not allowed.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: josh higgins [mailto:doopsterus@xxxxxxxxx] 
> Sent: 05 April 2005 20:49
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] xsl formating string
> 
> am I not allowed to have fo blocks inside the when
> blocks b/c it always yells at me and tells me that I
> am not allowed to have a fo block in that section of
> the code.
> 
> 
> --- JBryant@xxxxxxxxx wrote:
> 
> > <span> is an HTML element. I didn't realize you were
> > writing FO. 
> > <fo:inline> is the FO equivalent of <span>, more or
> > less. In your case, 
> > you can put the styling information on the blocks,
> > as you have done.
> > 
> > To get this to work, you need to use a relative path
> > identifier rather 
> > than the absolute path from the root. So, you need:
> > 
> > <xsl:template name="detail">
> >   <xsl:for-each select="/invoice/detail/row">
> >     <fo:block font-size="8pt" >
> >       <xsl:apply-templates
> > select="transaction_detail"/>
> >       <xsl:value-of select="amount"/>
> >     </fo:block>
> >   </xsl:for-each> 
> > </xsl:template>
> > 
> > <xsl:template match="transaction_detail">
> >   <xsl:choose>
> >     <xsl:when test="../format_control='C1'"/>
> >       <fo:block color="blue">
> >         <xsl:value-of select="."/>
> >       </fo:block>
> >     </xsl:when>
> >     <xsl:when test="../format_control='U1'"/>
> >       <fo:block font-style="underline">
> >         <xsl:value-of select="."/>
> >       </fo:block>
> >     </xsl:when>
> >   </xsl:choose>
> > </xsl:template>
> > 
> > You also had </xsl:choose> in place of the last
> > </xsl:when>. Your XML 
> > parser should have complained about that.
> > 
> > Jay Bryant
> > Bryant Communication Services
> > (presently consulting at Synergistic Solution
> > Technologies)
> > 
> > 
> > 
> > 
> > josh higgins <doopsterus@xxxxxxxxx> 
> > 04/05/2005 02:12 PM
> > Please respond to
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > 
> > 
> > To
> > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > cc
> > 
> > Subject
> > Re: [xsl] xsl formating string
> > 
> > 
> > 
> > 
> > 
> > 
> > Ok, I have come up with the following code but it
> > does
> > not like it.  Does not like the fo:block in the
> > choose.  I tried to add the <span> </span> block but
> > it didn't like that either.  Said it was no allowed
> > there.  Ideas?
> > 
> > 
> > 
> > <xsl:template name="detail">
> >                  <xsl:for-each
> > select="/invoice/detail/row">
> >                                  <fo:block
> > font-size="8pt" >
> > 
> > <xsl:apply-templates 
> > select="transaction_detail"/>
> > <xsl:value-of select="amount"/>
> >                                  </fo:block>
> >                  </xsl:for-each> 
> > </xsl:template>
> > 
> > <xsl:template match="transaction_detail">
> >                  <xsl:choose>
> >                                  <xsl:when
> > test="/invoice/detail/row/format_control='C1'"/>
> > 
> > <fo:block color="blue">
> >  <xsl:value-of select="."/>
> > 
> > </fo:block>
> >                                  </xsl:when>
> >                                  <xsl:when
> > test="/invoice/detail/row/format_control='U1'"/>
> > 
> > <fo:block 
> > font-style="underline">
> >  <xsl:value-of select="."/>
> > 
> > </fo:block>
> >                                  </xsl:choose>
> >                  </xsl:choose>
> > </xsl:template>
> > 
> > 
> > 
> > --- JBryant@xxxxxxxxx wrote:
> > 
> > > Ah, so. In that case:
> > > 
> > > <xsl:template match="transaction_detail">
> > >   <xsl:choose>
> > >     <xsl:when test="../format_control='C1'">
> > >       <!-- Apply the C1 format -->
> > >     </xsl:when>
> > >     <xsl:when test="../format_control='.0'">
> > >       <!-- Apply the .0 format -->
> > >     </xsl:when>
> > >     <!-- and so on -->
> > >   </xsl:choose>
> > > </xsl:template>
> > > 
> > > Jay Bryant
> > > Bryant Communication Services
> > > (presently consulting at Synergistic Solution
> > > Technologies)
> > > 
> > > 
> > > 
> > > 
> > > josh higgins <doopsterus@xxxxxxxxx> 
> > > 04/05/2005 01:44 PM
> > > Please respond to
> > > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > 
> > > 
> > > To
> > > xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > cc
> > > 
> > > Subject
> > > Re: [xsl] xsl formating string
> > > 
> > > 
> > > 
> > > 
> > > 
> > > 
> > > Sorry my xml is not like that... Here is a sample
> > of
> > > my xml
> > > 
> > > <row>
> > >  <line_sequence>3</line_sequence>
> > > 
> > > <transaction_detail> 
> > > Transaction
> > > Activity</transaction_detail>
> > >  <format_control>C1</format_control>
> > > 
> > > <group_no>1</group_no>
> > >                                  </row>
> > > 
> > > format_control determines the format of
> > > transaction_detail
> > > 
> > > 
> > > --- JBryant@xxxxxxxxx wrote:
> > > > Hi, Josh,
> > > > 
> > > > For the sake of this dicussion, I assume that
> > the
> > > > strings are contained in 
> > > > elements and that the elements have format
> > > > attributes, thus:
> > > > <someElement format="C1">Some
> > String</someElement>
> > > > 
> > > > In that case, you can do this:
> > > > <xsl:template match="someElement">
> > > >   <xsl:choose>
> > > >     <xsl:when test="@format='C1'">
> > > >       <span style="color:#0000FF"><xsl:value-of
> > > > select="."/></span>
> > > >     </xsl:when>
> > > >     <xsl:when test="@format='.0'">
> > > >       <xsl:value-of select="concat(., '.0')"/>
> > > >     </xsl:when>
> > > >     <xsl:when test="somethingElse">
> > > >       And so on...
> > > >     </xsl:when>
> > > >     <xsl:otherwise>
> > > >       <xsl:message>Ruh Roh! No
> > > format!</xsl:message>
> > > >     </xsl:otherwise>
> > 
> === message truncated ===
> 
> 
> 
> 
> __________________________________ 
> Do you Yahoo!? 
> Yahoo! Personals - Better first dates. More second dates. 
> http://personals.yahoo.com

Current Thread