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