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[(_at_)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(_at_)CraneSoftwrights(_dot_)com
Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--