Проблема при использовании внешних переменных xquery из командной строки в BaseX

У меня есть следующий запрос в файле XQ с именем «consulta.xq»

declare namespace xs = "http://www.w3.org/2001/XMLSchema";
declare variable $word as xs:string+ external;

for $entry in doc("cni_es_cushimariano2008")//e 
where $entry//l[matches(., $word)] 
return <e>{$entry//r//text()} --> {$entry//l//text()}</e>

Моя база данных "cni_es_cushimariano2008" имеет следующую структуру/данные:

<?xml version="1.0" encoding="UTF-8"?>
<dictionary>
<alphabet>aeiobchjmnñprsty</alphabet>
<section id="main" type="standard">
    <!-- cuidarse (de alguien). aamaantsi. -->
    <e>
        <p>
            <l>cuidarse (de alguien)</l>
            <r>aamaantsi<s n="verbo intransitivo"/>
                <s n="infinitivo"/>
            </r>
        </p>
    </e>
    <!-- celoso. aamaantsi. -->
    <e>
        <p>
            <l>celoso</l>
            <r>aamaantsi<s n="adjetivo"/>
            </r>
        </p>
    </e>
    <!-- traer. aamaantsi. -->
    <e>
        <p>
            <l>traer</l>
            <r>aamaantsi<s n="verbo transitivo"/>
                <s n="infinitivo"/>
            </r>
        </p>
    </e>
</section>
</dictionary>

Я пытаюсь выполнить следующую инструкцию командной строки

$ basex -b$word=celoso consulta.xq

но я не получаю ожидаемого результата и получаю следующее сообщение:

[XPDY0002] No value assigned to $word as xs:string+.

Я не эксперт по Basex и XQuery, поэтому буду признателен за любой ответ, который может мне помочь. Заранее спасибо.


person richardtk_1    schedule 09.08.2013    source источник


Ответы (1)


Символ $ предположительно интерпретируется вашей командной оболочкой, так что $word не достигает места назначения. Может быть, нужно сбежать,

$ basex -b\$word=celoso consulta.xq

или даже опущено,

$ basex -bword=celoso consulta.xq
person Gunther    schedule 09.08.2013