- From: Ate Douma <ate@douma.nu>
- Date: Sun, 08 Feb 2015 23:22:42 +0100
- To: "www-voice@w3.org" <www-voice@w3.org>
Hi, I think I detected the following incorrect XPath expression in IR test 153 The scxml test document generated by the confXPath.xsl stylesheet contains the following datamodel: <datamodel> <data id="Var1" expr="0"/> <data id="Var2"/> <data id="Var3"> <node xmlns="">1</node><node xmlns="">2</node><node xmlns="">3</node> </data> <data id="Var4" expr="1"/> </datamodel> and the following <foreach> element: <foreach item="Var2" array="$Var3/*"> <if cond="$Var1/text() <$Var2/text() "> <assign location="$Var1" expr="$Var2/text()"/> <else/> <!-- values are out of order, record failure --> <assign location="$Var4" expr="0"/> </if> </foreach> The "Var2/text()" xpath expressions in the if condition check and the assignment value expression above are not valid/usable in this context. The foreach element will assign each of the Var3 <node>x</node> children to the Var2 variable, and the Var2 variable (its data node) thus will contains no (direct) text node children, only a (single) "node" child. To access the actual text value of that "node" child, the expression must be: "$Var2/*/text()" or if desired "$Var2/node[1]/text()". And IMO a similar incorrect xpath expression, although produced differently and in different context, exists in test 155 where: expr="$Var1/text() + $Var2/text()" should be: expr="$Var1/text() + $Var2/*/text()" or expr="$Var1/text() + $Var2/node[1]/text()" to produce the correct result. Thanks, Ate
Received on Sunday, 8 February 2015 22:23:11 UTC