As described on the XQueryInvoker.doInvoke method comment at [1]: "...Currently no collections are supported, i.e. if there is more then one element in the result only the first one will returned."
So I managed to add this support: When more than one result is returned by the xquery execution, the results are stored in a collection (org.apache.tuscany.sca.databinding.saxon.collection.ItemList) and it's returned. When the data transformation is done before returning the result to the caller, it transforms each value contained in the ItemList object to a DataObject or a Java Object (when the Item is a Value object instead of a NodeInfo). The transformed objects are placed in a Java array of the same type the caller is expecting (target type). More details about this transformation can be found at the comments at [2]. If I committed some mistake, let me know ; ) Suggestions of some other needed improvements are always welcome =D Adriano Crestani [1] - http://svn.apache.org/viewvc/tuscany/java/sca/modules/implementation-xquery/src/main/java/org/apache/tuscany/sca/implementation/xquery/XQueryInvoker.java?revision=668359&view=markup&pathrev=673003 [2] - http://svn.apache.org/viewvc/tuscany/java/sca/modules/databinding-saxon/src/main/java/org/apache/tuscany/sca/databinding/saxon/ItemList2ObjectTransformer.java?view=markup&pathrev=673004
