Also, "!" is not a valid operator in Xquery.  In fact, there is no logical NOT 
operator in Xquery 
(http://www.w3.org/TR/2001/WD-xquery-20010607/#section-Logical-operators).  Use 
the function fn:not() instead.

Doug Glidden
Software Engineer
The Boeing Company
[email protected]

-----Original Message-----
From: [email protected] 
[mailto:[email protected]] On Behalf Of Jason Hunter
Sent: Wednesday, November 11, 2009 12:09
To: General Mark Logic Developer Discussion
Subject: Re: [MarkLogic Dev General] question regarding a code snippet..

You just need to add a "return" before the "if", to make it into a legal FLWOR 
statement.

-jh-

On Nov 11, 2009, at 12:18 PM, Srinivas Mandadapu wrote:

> Thanks for the reply. It worked like a charm. On the same note I have
> another question in Xquery in below snippet:
>
> xquery version "1.0-ml";
> import module namespace thsr="http://marklogic.com/xdmp/thesaurus";
> at "/MarkLogic/thesaurus.xqy";
>
> extractSynonyms("drugs")
>
> declare function extractSynonyms($synTerm) {
>    let $thsrEntry := thsr:lookup("/EBISynonyms/Synonyms.xml",
> $synTerm)
>
>    if(!fn:empty($thsrEntry))
>    then $synTerm
>    else ""
> };
>
> Why is the code erroring out at conditional if statement!!? It seems
> like a simple conditional statement to check whether any synonym
> entries exist for the given term.
>
> I appreciate your help.
>
> Thanks,
> Srini
>
>
>
> Rix, Brad wrote:
>> A couple of things here,
>>
>> You need to query for you elements in the thesaurus namespace.
>>
>> declare namespace thesaurus = "http://marklogic.com/xdmp/thesaurus";;
>>
>> You also are already at the "entry" element when you defined the
>> variable $synEntry.  Note, the query is now  fn:count($synEntry/
>> thesaurus:synonym)  (skip the entry and add the namespace).
>>
>> Try the following:
>>
>> xquery version "1.0-ml";
>>
>> declare namespace thesaurus = "http://marklogic.com/xdmp/thesaurus";;
>>
>> let $synEntry := <entry xmlns="http://marklogic.com/xdmp/thesaurus";>
>>           <term>zinc</term>
>>           <part-of-speech>noun</part-of-speech>
>>           <qualifiers>
>>             <qualifier>vicinity</qualifier>
>>           </qualifiers>
>>           <synonym>
>>             <term>zinc chelate</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc content</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc dust</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc isotopes</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc radioisotopes</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc retention</term>
>>           </synonym>
>>           <synonym>
>>             <term>zincum</term>
>>           </synonym>
>>           <synonym>
>>             <term>zn</term>
>>           </synonym>
>>         </entry>
>>
>> let $synonymsCount := fn:count($synEntry/thesaurus:synonym)
>>
>> return $synonymsCount
>>
>>
>>
>>
>> <ATT00001.gif>
>>
>> Brad Rix
>>
>> Senior Developer
>>
>> +1 (303) 542-2172  |  Office
>> +1 (303) 915-2771  |  Mobile
>>
>> [email protected]
>>
>> http://www.flatironssolutions.com
>> IM:   AIM:   BradRix   MSN:  [email protected]
>>
>>
>>
>>
>>
>>
>>
>> From: [email protected] [mailto:general-
>> [email protected]] On Behalf Of Srinivas Mandadapu
>> Sent: Tuesday, November 10, 2009 9:29 AM
>> To: General Mark Logic Developer Discussion
>> Subject: [MarkLogic Dev General] question regarding a code snippet..
>>
>> xquery version "1.0-ml";
>>
>> let $synEntry := <entry xmlns="http://marklogic.com/xdmp/thesaurus";>
>>           <term>zinc</term>
>>           <part-of-speech>noun</part-of-speech>
>>           <qualifiers>
>>             <qualifier>vicinity</qualifier>
>>           </qualifiers>
>>           <synonym>
>>             <term>zinc chelate</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc content</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc dust</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc isotopes</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc radioisotopes</term>
>>           </synonym>
>>           <synonym>
>>             <term>zinc retention</term>
>>           </synonym>
>>           <synonym>
>>             <term>zincum</term>
>>           </synonym>
>>           <synonym>
>>             <term>zn</term>
>>           </synonym>
>>         </entry>
>>
>> let $synonymsCount := fn:count($synEntry/entry/synonym)
>>
>> return $synonymsCount
>>
>>
>> The synonym count is coming out as "0" instead of "8"...still
>> couldn't figure out where I am going wrong.
>>
>> I really appreciate if someone can help me on this.
>>
>> Thanks,
>> Srini
>>
>>
>>
>> _______________________________________________
>> General mailing list
>>
>> [email protected]
>> http://xqzone.com/mailman/listinfo/general
>>
>>
>>
>
> _______________________________________________
> General mailing list
> [email protected]
> http://xqzone.com/mailman/listinfo/general

_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general
_______________________________________________
General mailing list
[email protected]
http://xqzone.com/mailman/listinfo/general

Reply via email to