无法使用带有“&”的 Xquery 查询 baseX

Can't query baseX using an Xquery with "&"

我正在尝试将 baseX REST API 与 python 的请求 post 方法一起使用,使用保存的 .xq 文件,其中包含一个带有 [=11] 的查询=]. 当运行直接在baseX上保存查询时,没有问题。

响应中显示的请求还包括原样的 & 而不是 &,但我仍然收到以下错误(响应代码为 400):

" Stopped at C:/Program Files (x86)/BaseX/webapp, 37/37:\n[XPST0003] 无效实体:'&&", "||", "!")) 。 ..'.' “

请求正文的相关部分是:

<rest:query xmlns:rest="http://basex.org/rest"> <rest:text>declare function local:enrich_node($attr, $supertype) {
    $attr, attribute {"supertype"} {$supertype}
};

declare function local:enrich($n as node()) as node() {
   typeswitch($n)
      ...
      case $e as element(operator)
         return 
              ...
              else if ($e/text()=("&amp;&amp;", "||", "!")) then
                element {name($e)}
                    {local:enrich_node($e/@*, "boolop"), for $c in $e/(* | text())
                         return local:enrich($c) } 
              else
                 ...
 };

declare variable $assign_id as xs:string external;
declare variable $submission_id as xs:string external;
for $node in db:open($assign_id, $submission_id)
return local:enrich($node)</rest:text><variable name="assign_id" value="val1"/><variable name="submission_id" value="val2"/></rest:query>

当我从查询中删除 &amp;&amp; 部分时,它起作用了。

我试图寻找相关问题,但没有找到任何东西,除了建议用另一个 &amp; 来“逃避”它,我试过了,但返回的错误是 4 &s。 有什么想法吗?

由于 rest:text 的内容必须被评估为 XQuery 代码但不应被解析为 XML 它应该有助于将 XQuery 代码包装在 rest:text 中的 CDATA部分。