XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Go to previous topicPrev TopicGo to next topicNext Topic
Kam ChanSubject: How to resolve XPTY0004 error
Author: Kam Chan
Date: 08 Jul 2009 11:20 AM
Originally Posted: 08 Jul 2009 11:19 AM

When running my xQuery, I am getting the following error, but it doesn't tell me which file or line this refers to.

[DataDirect][XQuery][err:XPTY0004]A sequence with more than one item does not match the type element(Form, xs:anyType)? according to the Sequence Type Matching rules.

I took a guess on where this might be happening on, and commented out large portions of code. One block of code, if I removed, the xQuery runs. But if I add back just one single line (which had been used many times before and in many other functions), the problem comes back.

I don't have anywhere in the xQuery declaring the type "element(Form, xs:anyType)?".

How can I resolve this error?



Alberto MassariSubject: How to resolve XPTY0004 error
Author: Alberto Massari
Date: 09 Jul 2009 04:07 AM
Hi Kam,
the element(Form) sequence type is generated also when writing an XPath expression containing /Form/...
Can you find such expression in your code?


Kam ChanSubject: How to resolve XPTY0004 error
Author: Kam Chan
Date: 09 Jul 2009 09:26 AM
Hi Alberto,

No, not really. There is no node or element in the source XML data with name "Form". So there is no xPath or any code looks for /Form/ or something like that. There is an attribute (@type) that might have the value of "form" (lowercase).

The only thing is the output XML does get created with <Form></Form> nodes. These are just created by the xQuery code, but not searched for. There is no xPath code that looks for /Form/ from the result.

The only place that I "look into" the resulting XML is follows:

let $resultDetails := laforms:CA04130807-recursive($system, $form, $allRelevantDetails, $requestId, 0)
let $resultDetailsCount := count($resultDetails)

In the first line, the function returns 0 or more <Form></From> elements (with contents inside). And the count() function just counts how many of these <Form></Form> elements are there.



Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.