xsl-list
[Top] [All Lists]

Re: [xsl] Required item type of first argument of <function> is node(); supplied value has item type xs:string

2010-02-19 15:58:51
At 2010-02-19 13:52 -0800, Spencer Tickner wrote:
Ok, then if I make the template more generic.. ie:

In my response I made it generic by declaring the type of the parameter as an item:

   <xsl:pram name="n" as="item()"/>

       <xsl:function name="qp:test" as="item()*"
xmlns:functx="http://www.qplegaleze.ca";>
               <xsl:param name="n"/>

Is there a way to test if $n is a String?

Sure:

  <xsl:when test="$n instance of xsd:string">

... but because your second <xsl:when> relies on $n being a node, I thought it safest to catch all atomic values by testing that the argument isn't a node. I tell my students to write their transformations defensively so as to catch unexpected inputs. I don't think it is safe to simply check only for a string because the next test is going to choke on atomic values of other types.

I hope this helps.

. . . . . . . . . . . . Ken


--
XSLT/XQuery training:      after http://XMLPrague.cz 2010-03-15/19
XSLT/XQuery training:         San Carlos, California 2010-04-26/30
Principles of XSLT for XQuery Writers: San Francisco,CA 2010-05-03
XSLT/XQuery/UBL/Code List training: Trondheim,Norway 2010-06-02/11
Vote for your XML training:   http://www.CraneSoftwrights.com/s/i/
Crane Softwrights Ltd.          http://www.CraneSoftwrights.com/s/
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>
--~--