[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: problem with fn:contains using xsl:param

Subject: Re: problem with fn:contains using xsl:param
From: "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx>
Date: Sun, 13 Dec 2009 17:40:44 -0500
Re:  problem with fn:contains using xsl:param
At 2009-12-13 20:12 +0100, Piotr Dobrogost wrote:
I'm using Saxon-HE 9.2.0.3N to test XSLT 2.0 document I'm creating. The purpose of transformation is to generate Perl source code based on schema file.

I had this statement

<xsl:template match="xsd:element[contains(@type,'xsd:date') or contains(@type,'xsd:dateTime') or contains(@type,'xsd:bool')]">

which was working as expected and I wanted to refactor it to something like this

<xsl:param name="KnownXSDTypes">xsd:date xsd:dateTime xsd:bool</xsl:param>
(...)
<xsl:template match="xsd:element[contains($KnownXSDTypes, @type)]">

but after this change I'm getting different results. I don't see how the latter code could have different meaning than the former one.

Any ideas?

First "xsd:bool" is incomplete and would have to be "xsd:boolean".


And while it won't affect this particular example, the "protected" way of doing what you are doing with strings is to add a space at the start and end of your string with the tokens, and then add a space to the start and end of the token being searched.

In XSLT 2 you might consider something like:

  <xsl:param name="KnownXSDTypes" as="element()*">
   <type>xsd:date</type>
   <type>xsd:dateTime</type>
   <type>xsd:boolean</type>
  </xsl:param>
  ...
  <xsl:template match="xsd:element[@type=$KnownXSDTypes]">

I hope this helps.

. . . . . . . . Ken

--
XSLT/XQuery/XPath training after http://XMLPrague.cz 2010-03-15/19
Vote for your XML training:   http://www.CraneSoftwrights.com/s/i/
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
Video lesson:    http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
Video overview:  http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
G. Ken Holman                 mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
Male Cancer Awareness Nov'07  http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers:  http://www.CraneSoftwrights.com/legal

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.