[xquery-talk] Function Call Errors

Jonathan Robie jonathan.robie at redhat.com
Mon Feb 25 14:10:16 PST 2008


Hi Alice,

The local:distinct() function you declared has 4 parameters. The 
local:distinct() function you called has only one argument, so your 
implementation is looking for a local:distinct() function declared with 
1 parameter. You have to make your function call match your function 
declaration.

Jonathan

Wei, Alice J. wrote:
> Hi, XQeriers:
>
>    I have a piece of code here that I have modified into the following function:
>
> declare function local:distinct(
>      $seq as xs:anyAtomicType*,
>      $sorted_result as xs:integer*,
>      $count as xs:integer,
>      $doc as xs:anyAtomicType*)
>      as xs:anyAtomicType
> {
> let $sorted_result:=
> for $doc in distinct-values($ad)
> order by $doc
> return $doc
> for $r at $count in $sorted_result
> let $nodes := $ad[. = $r][1]
> return
> <ad>
> <statistics>
> Showing Result: {$count} / {count($sorted_result)}
> </statistics>
> {$nodes}
> </ad>
> };
>
> for $ad in distinct-values(collection("xmldb:exist://db/my")//ad/p[contains(upper-case(.),'BOOK')])
> return
> local:distinct($ad)
>
> This is currently, not working and keeps popping the following error:
>
> org.exist.xquery.XPathException: Call to undeclared function: local:distinct [at line 25, column 1]
>
> This is based on the XQuery in the following:
>
> let $ad := fn:collection("xmldb:exist://db/my")//ad/p[contains(upper-case(.), 'BOOK')]
> let $sorted_result:=
> for $doc in distinct-values($ad)
> order by $doc
> return $doc
> for $r at $count in $sorted_result
> let $nodes := $ad[. = $r][1]
> return
> <ad>
> <statistics>
> Showing Result: {$count} / {count($sorted_result)}
> </statistics>
> {$nodes}
> </ad>
>
> Can anyone please give me tips on how to fix up the query so that it would generate something like
>
> <ad>
> <statistics> Showing Result: 1 /1</statistics>
> <p>A business so big growing so fast, you need an appointment in most auto trim shops! Send for FREE MASTER PLAN, ILLUSTRATED BOOKLET on learning auto upholstery and interior customizing in your spare hours. No experience needed. Yet approved auto upholstery institute, dept.
> <address>
> <addressLine>RMC 1205 W. Barkley,</addressLine>
> <addressLine>Orange CA 92668</addressLine>
> </address>
> </p>
> </ad>
>
> Thanks to those who can help.
> Of anyone on the list who know any resources on where I can practice user-defined function call using interactive tabs woulld be great.
>
> ======================================================
> Alice Wei
> MIS 2008
> School of Library and Information Science
> Indiana University Bloomington
> ajwei at indiana.edu
>
> _______________________________________________
> talk at x-query.com
> http://x-query.com/mailman/listinfo/talk
>   



More information about the talk mailing list