You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-users@xmlgraphics.apache.org by "Steffanina, Jeff" <Je...@marriott.com> on 2008/10/07 20:54:22 UTC

Using CHOOSE to control image in region-body

FOP 0.95 / Redhat Linux / Java 1.5

When the tag "send-fax" does not exist print the lilly, when send-fax=Y,
print the pebble.  I always get the Lilly.  Can you determine why?

<xsl:choose>
  <xsl:when test="./send-fax='Y'">
       <!--   region-before means region before the body(top 1/3 of
folio   -->
       <fo:region-before extent="3.0in"
                    background-repeat="no-repeat"
                    margin-top=".5in"
                    background-image="url('java/images/Pebble.jpg')"
                    background-position-vertical="bottom"
                    display-align="after" />
  </xsl:when>
  <xsl:otherwise>
      <fo:region-before extent="3.0in"
                    background-repeat="no-repeat"
                    margin-top=".5in"
                    background-image="url('java/images/Lilly.jpg')"
                    background-position-vertical="bottom"
                    display-align="after" />
  </xsl:otherwise>
</xsl:choose>



Jeff 


Re: Using CHOOSE to control image in region-body

Posted by Jay Bryant <ja...@bryantcs.com>.
> And BTW if send-fax is not a direct child of the node you're processing 
> but a remote descendant, you should write my condition with an axe:
> <xsl:if test="count(//send-fax) = 0">

That will count every instance of send-fax in the whole document.

To count descendants of the current node named send-fax to any depth, use 
count(.//send-fax).

./send-fax is the same as just send-fax because the child axis (represented 
by .) is the default axis. However, // starts at the document root unless 
it's preceded by an axis specifier. Conseqently, you don't need the . (or 
the /) in ./send-fax, but you do need it in .//send-fax.

Jay Bryant 


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


Re: Using CHOOSE to control image in region-body

Posted by Jean-François El Fouly <je...@elfouly.fr>.
Jean-François El Fouly a écrit :
> Steffanina, Jeff a écrit :
>>  
>> Located in the XML file:
>>  
>>         <send-fax>Y</send-fax>
>>  
>>  
> Recently, in a reasonably similar problem (though a bit more 
> complicated) I used
> <xsl:if test="count(send-fax) = 0">
>
> Not very elegant but it did the trick for me, and it might do for you 
> if the only thing you need is test the existence of send-fax.
>
And BTW if send-fax is not a direct child of the node you're processing 
but a remote descendant, you should write my condition with an axe:
<xsl:if test="count(//send-fax) = 0">


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


Re: Using CHOOSE to control image in region-body

Posted by Jean-François El Fouly <je...@elfouly.fr>.
Steffanina, Jeff a écrit :
>  
> Located in the XML file:
>  
>         <send-fax>Y</send-fax>
>  
>  
Recently, in a reasonably similar problem (though a bit more 
complicated) I used
<xsl:if test="count(send-fax) = 0">

Not very elegant but it did the trick for me, and it might do for you if 
the only thing you need is test the existence of send-fax.

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


Re: Using CHOOSE to control image in region-body

Posted by Kendall Shaw <sk...@atypon.com>.
Steffanina, Jeff wrote:
>  
> Located in the XML file:
>  
>         <send-fax>Y</send-fax>
>

Located where? Probably there is no send-fax element with the text 
content 'Y' that is a child of the context node. I suspect that the 
context node is something other than what you expect in the place where 
that choose instruction is. For example, if the choose is inside a 
for-each the context node is probably not what it was when the template 
matched.

Incidentally, "./send-fax='Y'" is the same as "send-fax='Y'".

Kendall

>  
>  
>
> */Jeff /*
>
> ------------------------------------------------------------------------
> *From:* Pete Allison [mailto:macsmaker@aol.com]
> *Sent:* Tuesday, October 07, 2008 3:56 PM
> *To:* fop-users@xmlgraphics.apache.org
> *Subject:* RE: Using CHOOSE to control image in region-body
>
>     What is the context for "./send-fax" ?
>      
>      
>
>     ------------------------------------------------------------------------
>     *From:* Steffanina, Jeff [mailto:Jeff.Steffanina@marriott.com]
>     *Sent:* Tuesday, October 07, 2008 2:38 PM
>     *To:* fop-users@xmlgraphics.apache.org
>     *Subject:* RE: Using CHOOSE to control image in region-body
>
>     Eric,
>     I made the suggested change and checked the case.   No difference
>     in the output.
>      
>     Any other thoughts?
>
>     */Jeff /*
>
>         ------------------------------------------------------------------------
>         *From:* Amick, Eric [mailto:Eric.Amick@mail.house.gov]
>         *Sent:* Tuesday, October 07, 2008 3:11 PM
>         *To:* fop-users@xmlgraphics.apache.org
>         *Subject:* RE: Using CHOOSE to control image in region-body
>
>         I can think of two possibilities off the top of my head: The
>         value is a lowercase Y, or there is whitespace present. Try
>         normalize-space(send-fax)='Y' instead.
>          
>         Eric Amick
>         Legislative Computer Systems
>         Office of the Clerk
>          
>
>         ------------------------------------------------------------------------
>         *From:* Steffanina, Jeff [mailto:Jeff.Steffanina@marriott.com]
>         *Sent:* Tuesday, October 7, 2008 14:54
>         *To:* fop-users@xmlgraphics.apache.org
>         *Subject:* Using CHOOSE to control image in region-body
>
>
>         FOP 0.95 / Redhat Linux / Java 1.5
>
>         When the tag "send-fax" does not exist print the lilly, when
>         send-fax=Y, print the pebble.  I always get the Lilly.  Can
>         you determine why?
>
>         <xsl:choose>
>           <xsl:when test="./send-fax='Y'">
>                <!--   region-before means region before the body(top
>         1/3 of folio   -->
>                <fo:region-before extent="3.0in"
>                             background-repeat="no-repeat"
>                             margin-top=".5in"
>                            
>         background-image="url('java/images/Pebble.jpg')"
>                             background-position-vertical="bottom"
>                             display-align="after" />
>           </xsl:when>
>           <xsl:otherwise>
>               <fo:region-before extent="3.0in"
>                             background-repeat="no-repeat"
>                             margin-top=".5in"
>                            
>         background-image="url('java/images/Lilly.jpg')"
>                             background-position-vertical="bottom"
>                             display-align="after" />
>           </xsl:otherwise>
>         </xsl:choose>
>
>
>
>         */Jeff/*
>


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


RE: Using CHOOSE to control image in region-body

Posted by "Steffanina, Jeff" <Je...@marriott.com>.
 
Located in the XML file:
 
        <send-fax>Y</send-fax>
 
 
 

Jeff 
________________________________

From: Pete Allison [mailto:macsmaker@aol.com] 
Sent: Tuesday, October 07, 2008 3:56 PM
To: fop-users@xmlgraphics.apache.org
Subject: RE: Using CHOOSE to control image in region-body



	What is the context for "./send-fax" ?
	 
	 

________________________________

	From: Steffanina, Jeff [mailto:Jeff.Steffanina@marriott.com] 
	Sent: Tuesday, October 07, 2008 2:38 PM
	To: fop-users@xmlgraphics.apache.org
	Subject: RE: Using CHOOSE to control image in region-body
	
	
	Eric,
	I made the suggested change and checked the case.   No
difference in the output.
	 
	Any other thoughts?

	Jeff 
	

________________________________

		From: Amick, Eric [mailto:Eric.Amick@mail.house.gov] 
		Sent: Tuesday, October 07, 2008 3:11 PM
		To: fop-users@xmlgraphics.apache.org
		Subject: RE: Using CHOOSE to control image in
region-body
		
		
		I can think of two possibilities off the top of my head:
The value is a lowercase Y, or there is whitespace present. Try
normalize-space(send-fax)='Y' instead.
		 
		Eric Amick
		Legislative Computer Systems
		Office of the Clerk
		 

________________________________

		From: Steffanina, Jeff
[mailto:Jeff.Steffanina@marriott.com] 
		Sent: Tuesday, October 7, 2008 14:54
		To: fop-users@xmlgraphics.apache.org
		Subject: Using CHOOSE to control image in region-body
		
		


		FOP 0.95 / Redhat Linux / Java 1.5 

		When the tag "send-fax" does not exist print the lilly,
when send-fax=Y, print the pebble.  I always get the Lilly.  Can you
determine why?

		<xsl:choose> 
		  <xsl:when test="./send-fax='Y'"> 
		       <!--   region-before means region before the
body(top 1/3 of folio   --> 
		       <fo:region-before extent="3.0in" 
		                    background-repeat="no-repeat" 
		                    margin-top=".5in" 
	
background-image="url('java/images/Pebble.jpg')" 
	
background-position-vertical="bottom" 
		                    display-align="after" /> 
		  </xsl:when> 
		  <xsl:otherwise> 
		      <fo:region-before extent="3.0in" 
		                    background-repeat="no-repeat" 
		                    margin-top=".5in" 
	
background-image="url('java/images/Lilly.jpg')" 
	
background-position-vertical="bottom" 
		                    display-align="after" /> 
		  </xsl:otherwise> 
		</xsl:choose> 



		Jeff 


RE: Using CHOOSE to control image in region-body

Posted by Pete Allison <ma...@aol.com>.
What is the context for "./send-fax" ?
 
 

  _____  

From: Steffanina, Jeff [mailto:Jeff.Steffanina@marriott.com] 
Sent: Tuesday, October 07, 2008 2:38 PM
To: fop-users@xmlgraphics.apache.org
Subject: RE: Using CHOOSE to control image in region-body


Eric,
I made the suggested change and checked the case.   No difference in the
output.
 
Any other thoughts?

Jeff 


  _____  

From: Amick, Eric [mailto:Eric.Amick@mail.house.gov] 
Sent: Tuesday, October 07, 2008 3:11 PM
To: fop-users@xmlgraphics.apache.org
Subject: RE: Using CHOOSE to control image in region-body


I can think of two possibilities off the top of my head: The value is a
lowercase Y, or there is whitespace present. Try
normalize-space(send-fax)='Y' instead.
 
Eric Amick
Legislative Computer Systems
Office of the Clerk
 

  _____  

From: Steffanina, Jeff [mailto:Jeff.Steffanina@marriott.com] 
Sent: Tuesday, October 7, 2008 14:54
To: fop-users@xmlgraphics.apache.org
Subject: Using CHOOSE to control image in region-body




FOP 0.95 / Redhat Linux / Java 1.5 

When the tag "send-fax" does not exist print the lilly, when send-fax=Y,
print the pebble.  I always get the Lilly.  Can you determine why?

<xsl:choose> 
  <xsl:when test="./send-fax='Y'"> 
       <!--   region-before means region before the body(top 1/3 of folio
--> 
       <fo:region-before extent="3.0in" 
                    background-repeat="no-repeat" 
                    margin-top=".5in" 
                    background-image="url('java/images/Pebble.jpg')" 
                    background-position-vertical="bottom" 
                    display-align="after" /> 
  </xsl:when> 
  <xsl:otherwise> 
      <fo:region-before extent="3.0in" 
                    background-repeat="no-repeat" 
                    margin-top=".5in" 
                    background-image="url('java/images/Lilly.jpg')" 
                    background-position-vertical="bottom" 
                    display-align="after" /> 
  </xsl:otherwise> 
</xsl:choose> 



Jeff 


RE: Using CHOOSE to control image in region-body

Posted by "Steffanina, Jeff" <Je...@marriott.com>.
Eric,
I made the suggested change and checked the case.   No difference in the
output.
 
Any other thoughts?

Jeff 


________________________________

	From: Amick, Eric [mailto:Eric.Amick@mail.house.gov] 
	Sent: Tuesday, October 07, 2008 3:11 PM
	To: fop-users@xmlgraphics.apache.org
	Subject: RE: Using CHOOSE to control image in region-body
	
	
	I can think of two possibilities off the top of my head: The
value is a lowercase Y, or there is whitespace present. Try
normalize-space(send-fax)='Y' instead.
	 
	Eric Amick
	Legislative Computer Systems
	Office of the Clerk
	 

________________________________

	From: Steffanina, Jeff [mailto:Jeff.Steffanina@marriott.com] 
	Sent: Tuesday, October 7, 2008 14:54
	To: fop-users@xmlgraphics.apache.org
	Subject: Using CHOOSE to control image in region-body
	
	


	FOP 0.95 / Redhat Linux / Java 1.5 

	When the tag "send-fax" does not exist print the lilly, when
send-fax=Y, print the pebble.  I always get the Lilly.  Can you
determine why?

	<xsl:choose> 
	  <xsl:when test="./send-fax='Y'"> 
	       <!--   region-before means region before the body(top 1/3
of folio   --> 
	       <fo:region-before extent="3.0in" 
	                    background-repeat="no-repeat" 
	                    margin-top=".5in" 
	
background-image="url('java/images/Pebble.jpg')" 
	                    background-position-vertical="bottom" 
	                    display-align="after" /> 
	  </xsl:when> 
	  <xsl:otherwise> 
	      <fo:region-before extent="3.0in" 
	                    background-repeat="no-repeat" 
	                    margin-top=".5in" 
	
background-image="url('java/images/Lilly.jpg')" 
	                    background-position-vertical="bottom" 
	                    display-align="after" /> 
	  </xsl:otherwise> 
	</xsl:choose> 



	Jeff 


RE: Using CHOOSE to control image in region-body

Posted by "Amick, Eric" <Er...@mail.house.gov>.
I can think of two possibilities off the top of my head: The value is a
lowercase Y, or there is whitespace present. Try
normalize-space(send-fax)='Y' instead.
 
Eric Amick
Legislative Computer Systems
Office of the Clerk
 

________________________________

From: Steffanina, Jeff [mailto:Jeff.Steffanina@marriott.com] 
Sent: Tuesday, October 7, 2008 14:54
To: fop-users@xmlgraphics.apache.org
Subject: Using CHOOSE to control image in region-body




FOP 0.95 / Redhat Linux / Java 1.5 

When the tag "send-fax" does not exist print the lilly, when send-fax=Y,
print the pebble.  I always get the Lilly.  Can you determine why?

<xsl:choose> 
  <xsl:when test="./send-fax='Y'"> 
       <!--   region-before means region before the body(top 1/3 of
folio   --> 
       <fo:region-before extent="3.0in" 
                    background-repeat="no-repeat" 
                    margin-top=".5in" 
                    background-image="url('java/images/Pebble.jpg')" 
                    background-position-vertical="bottom" 
                    display-align="after" /> 
  </xsl:when> 
  <xsl:otherwise> 
      <fo:region-before extent="3.0in" 
                    background-repeat="no-repeat" 
                    margin-top=".5in" 
                    background-image="url('java/images/Lilly.jpg')" 
                    background-position-vertical="bottom" 
                    display-align="after" /> 
  </xsl:otherwise> 
</xsl:choose> 



Jeff 


Re: Using CHOOSE to control image in region-body

Posted by Jay Bryant <ja...@bryantcs.com>.
Hi, Jeff,

I whipped up a small test to show how to solve your problem. Here's the 
contents of the (very simple) input XML file:

<test>
  <send-fax>Y</send-fax>
</test>

Here's the (also very simple XSL file):

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

  <xsl:template match="test">
    <xsl:choose>
      <xsl:when test="send-fax = 'Y'">
        <xsl:message>Found it</xsl:message>
      </xsl:when>
      <xsl:otherwise>
        <xsl:message>No joy</xsl:message>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>

When I run that XML file against that XSL file, I get "found it" on my 
command line.

I bet you can extrapolate from there how to get the XSL-FO content you want. 
If not, let me know and I'll try to help further.

HTH

Jay Bryant

----- Original Message ----- 
From: "Steffanina, Jeff" <Je...@marriott.com>
To: <fo...@xmlgraphics.apache.org>
Sent: Tuesday, October 07, 2008 1:54 PM
Subject: Using CHOOSE to control image in region-body



FOP 0.95 / Redhat Linux / Java 1.5

When the tag "send-fax" does not exist print the lilly, when send-fax=Y,
print the pebble.  I always get the Lilly.  Can you determine why?

<xsl:choose>
  <xsl:when test="./send-fax='Y'">
       <!--   region-before means region before the body(top 1/3 of
folio   -->
       <fo:region-before extent="3.0in"
                    background-repeat="no-repeat"
                    margin-top=".5in"
                    background-image="url('java/images/Pebble.jpg')"
                    background-position-vertical="bottom"
                    display-align="after" />
  </xsl:when>
  <xsl:otherwise>
      <fo:region-before extent="3.0in"
                    background-repeat="no-repeat"
                    margin-top=".5in"
                    background-image="url('java/images/Lilly.jpg')"
                    background-position-vertical="bottom"
                    display-align="after" />
  </xsl:otherwise>
</xsl:choose>



Jeff



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


RE: Using CHOOSE to control image in region-body

Posted by Pete Allison <ma...@aol.com>.
Me too also...

I have used ../SOME_NODE_NAME or variations of this.

The current node can be abreviated "." 

It's almost like your trying to access the value of attribute named "send-fax" for the current node, not the value of the element <send‑fax>.


-----Original Message-----
From: Jean-François El Fouly [mailto:jean-francois@elfouly.fr] 
Sent: Tuesday, October 07, 2008 3:03 PM
To: fop-users@xmlgraphics.apache.org
Subject: Re: Using CHOOSE to control image in region-body

Steffanina, Jeff a écrit :
>
> FOP 0.95 / Redhat Linux / Java 1.5
>
> When the tag "send-fax" does not exist print the lilly, when 
> send-fax=Y, print the pebble.  I always get the Lilly.  Can you 
> determine why?
>
"tag", do you mean an attribute of the current element ?
I would write
test="@sendfax='Y'"

I don't think I ever used a syntax like ./ I used ../ or nothing but can't understand what this is meant for (of course this can simply be a syntax I'm not used to).


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


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


Re: Using CHOOSE to control image in region-body

Posted by Jean-François El Fouly <je...@elfouly.fr>.
Steffanina, Jeff a écrit :
>
> FOP 0.95 / Redhat Linux / Java 1.5
>
> When the tag "send-fax" does not exist print the lilly, when 
> send-fax=Y, print the pebble.  I always get the Lilly.  Can you 
> determine why?
>
"tag", do you mean an attribute of the current element ?
I would write
test="@sendfax='Y'"

I don't think I ever used a syntax like ./
I used ../
or nothing
but can't understand what this is meant for (of course this can simply 
be a syntax I'm not used to).


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