Subject: Re: [xsl] Seek an XPath expression which concatenates an arbitrary number of strings From: "Michael Kay michaelkay90@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 15 Mar 2024 17:22:34 -0000 |
> Why doesn't my XPath work: concat(for $i in //binary-value return $i) > > I thought that I was simply employing XPath's "composable language" capability. > > The XPath specification says this: > > XPath is a composable language > > What does that mean? > > It means that every operator and language construct allows any XPath expression to appear as its operand. The syntax is composable, but operations only work if their operands have the correct types. You can't subtract a date from a string. For functions like concat(), the applicable types are defined by the function signature. As it happens, in 4.0 we have generalised the function signature of concat() to accept any number of arguments, each of which can be a sequence containing any number of items. But earlier releases limit it to 2 or more arguments, each of which must be a sequence of zero or one items. Composability in a language basically means that if an operation X B1 Y makes sense, then you can replace X with any expression that evaluates to X, and you can replace Y with any expression that evaluates to Y. It doesn't mean that the operation B1 has to be applicable to any imaginable operands. Michael Kay Saxonica
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Re: Seek an XPath express, Martin Honnen martin | Thread | [xsl] Trying to Extract a node with, ohaya ohaya@xxxxxxxx |
Re: [xsl] Re: Seek an XPath express, Martin Honnen martin | Date | Re: [xsl] Seek an XPath expression , Liam R. E. Quin liam |
Month |