Re: Using CHOOSE to control image in region-body
On Oct 8, 2008, at 13:38, Steffanina, Jeff wrote: Hi, FWIW, a small performance hint: My Friends, Thank you for the many suggestions! I have tried them all and my issue, as suggested by Jean-Francois appears to be related to the fact that my xml tag send-fax is not a direct child of the node I am processing. Instead, it a remote descendant. Therefore, I used the following code: xsl:when test=count(//send-fax = 0 Seems better to use: xsl:when test=not(//send-fax) Why? The node-set is implicitly converted to a boolean, which the processor (if intelligent enough) can evaluate as true as soon as the first such node is encountered. The expression count(//send- fax), OTOH, is more likely to trigger a complete tree-traversal starting at the context node. IIC, using a boolean would only mean a complete traversal iff the node-set is also empty (= false) Cheers Andreas - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Using CHOOSE to control image in region-body
Andreas I greatly appreciate the suggestion! I will make the change! Jeff -Original Message- From: Andreas Delmelle [mailto:[EMAIL PROTECTED] Sent: Monday, October 13, 2008 3:40 PM To: fop-users@xmlgraphics.apache.org Subject: Re: Using CHOOSE to control image in region-body On Oct 8, 2008, at 13:38, Steffanina, Jeff wrote: Hi, FWIW, a small performance hint: My Friends, Thank you for the many suggestions! I have tried them all and my issue, as suggested by Jean-Francois appears to be related to the fact that my xml tag send-fax is not a direct child of the node I am processing. Instead, it a remote descendant. Therefore, I used the following code: xsl:when test=count(//send-fax = 0 Seems better to use: xsl:when test=not(//send-fax) Why? The node-set is implicitly converted to a boolean, which the processor (if intelligent enough) can evaluate as true as soon as the first such node is encountered. The expression count(//send- fax), OTOH, is more likely to trigger a complete tree-traversal starting at the context node. IIC, using a boolean would only mean a complete traversal iff the node-set is also empty (= false) Cheers Andreas - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Using CHOOSE to control image in region-body
Hi, If you read send-faxY/send-fax, it is possible that there are some extra invisible charaters. If you want, you can investigate with string-length() and if 1, try to determine (then discard) unexpected characters. However, I can imagine 2 simple solutions that should help: First solution should be to use normalize-space() function, like this: xsl:when test=normalize-space(send-fax)='Y'... Another solution consists in using contains() function: xsl:when test=contains(send-fax,'Y')... Just for curiosity, what XSLT engine do you use? HTH, Pascal -Message d'origine- De : Jay Bryant [mailto:[EMAIL PROTECTED] Envoyé : mardi 7 octobre 2008 23:58 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-faxY/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:messageFound it/xsl:message /xsl:when xsl:otherwise xsl:messageNo 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 [EMAIL PROTECTED] To: fop-users@xmlgraphics.apache.org 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Using CHOOSE to control image in region-body
My Friends, Thank you for the many suggestions! I have tried them all and my issue, as suggested by Jean-Francois appears to be related to the fact that my xml tag send-fax is not a direct child of the node I am processing. Instead, it a remote descendant. Therefore, I used the following code: xsl:when test=count(//send-fax = 0 I will have to review some docs to clearly understand the remote descendant issue. It points out that I should have done a better job in my original template design. Thanks for all the input! Jeff -Original Message- From: Pascal Sancho [mailto:[EMAIL PROTECTED] Sent: Wednesday, October 08, 2008 3:20 AM To: fop-users@xmlgraphics.apache.org Subject: RE: Using CHOOSE to control image in region-body Hi, If you read send-faxY/send-fax, it is possible that there are some extra invisible charaters. If you want, you can investigate with string-length() and if 1, try to determine (then discard) unexpected characters. However, I can imagine 2 simple solutions that should help: First solution should be to use normalize-space() function, like this: xsl:when test=normalize-space(send-fax)='Y'... Another solution consists in using contains() function: xsl:when test=contains(send-fax,'Y')... Just for curiosity, what XSLT engine do you use? HTH, Pascal -Message d'origine- De : Jay Bryant [mailto:[EMAIL PROTECTED] Envoyé : mardi 7 octobre 2008 23:58 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-faxY/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:messageFound it/xsl:message /xsl:when xsl:otherwise xsl:messageNo 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 [EMAIL PROTECTED] To: fop-users@xmlgraphics.apache.org 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
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:[EMAIL PROTECTED] 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
Eric, I made the suggested change and checked the case. No difference in the output. Any other thoughts? Jeff From: Amick, Eric [mailto:[EMAIL PROTECTED] 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:[EMAIL PROTECTED] 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
What is the context for ./send-fax ? _ From: Steffanina, Jeff [mailto:[EMAIL PROTECTED] 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:[EMAIL PROTECTED] 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:[EMAIL PROTECTED] 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
Located in the XML file: send-faxY/send-fax Jeff From: Pete Allison [mailto:[EMAIL PROTECTED] 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:[EMAIL PROTECTED] 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:[EMAIL PROTECTED] 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:[EMAIL PROTECTED] 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
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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: Using CHOOSE to control image in region-body
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:[EMAIL PROTECTED] 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Using CHOOSE to control image in region-body
Steffanina, Jeff a écrit : Located in the XML file: send-faxY/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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Using CHOOSE to control image in region-body
Jean-François El Fouly a écrit : Steffanina, Jeff a écrit : Located in the XML file: send-faxY/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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Using CHOOSE to control image in region-body
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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Using CHOOSE to control image in region-body
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-faxY/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:messageFound it/xsl:message /xsl:when xsl:otherwise xsl:messageNo 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 [EMAIL PROTECTED] To: fop-users@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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]