无法使用带有“&”的 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()=("&&", "||", "!")) 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>
当我从查询中删除 &&
部分时,它起作用了。
我试图寻找相关问题,但没有找到任何东西,除了建议用另一个 &
来“逃避”它,我试过了,但返回的错误是 4 &
s。
有什么想法吗?
由于 rest:text
的内容必须被评估为 XQuery 代码但不应被解析为 XML 它应该有助于将 XQuery 代码包装在 rest:text
中的 CDATA部分。
我正在尝试将 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()=("&&", "||", "!")) 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>
当我从查询中删除 &&
部分时,它起作用了。
我试图寻找相关问题,但没有找到任何东西,除了建议用另一个 &
来“逃避”它,我试过了,但返回的错误是 4 &
s。
有什么想法吗?
由于 rest:text
的内容必须被评估为 XQuery 代码但不应被解析为 XML 它应该有助于将 XQuery 代码包装在 rest:text
中的 CDATA部分。