使用 xdmp:document-insert 并指定 xml 编码
using xdmp:document-insert and specify xml encoding
我有一个 xquery 端点,它使用 xdmp:document-insert.. 将文件加载到数据库中。尝试上传具有 "ISO-8859-1" 编码的 XML 文档时失败.. 以下是我的代码
declare %rapi:transaction-mode("update") function repoLoad:post($context as map:map, $params as map:map,$input as document-node()*) as document-node()*
{
let $filename := xdmp:get-request-field-filename("upload")
let $contentType := xdmp:get-request-field-content-type("upload")
let $uri := "/documents/"
let $_ := xdmp:document-insert($uri, xdmp:get-request-field("upload"),(xdmp:default-permissions()), ("raw"))
return $uri
};
对于 xml 非 UTF8 编码的文档,这会失败。我得到以下异常。任何解决方法??
Error: AppRequestTask::run: XDMP-DOCUTF8SEQ: Invalid UTF-8 escape
sequence at line 1 -- document is not UTF-8 encoded
如果您可以使用声明编码的 XML prolog 生成有效载荷,那应该可以:
<?xml version="1.0" encoding="ISO-8859-1">
... rest of the document ...
否则,您可以在服务器上尝试类似以下的操作来生成 XML 文档以供插入:
xdmp:document-insert(
$uri,
xdmp:binary-decode(
xdmp:unquote(
xdmp:get-request-field("upload"), (), "format-binary"
),
"ISO-8859-1"
),
... collection, permissions, and other arguments ...
)
希望对您有所帮助,
我有一个 xquery 端点,它使用 xdmp:document-insert.. 将文件加载到数据库中。尝试上传具有 "ISO-8859-1" 编码的 XML 文档时失败.. 以下是我的代码
declare %rapi:transaction-mode("update") function repoLoad:post($context as map:map, $params as map:map,$input as document-node()*) as document-node()*
{
let $filename := xdmp:get-request-field-filename("upload")
let $contentType := xdmp:get-request-field-content-type("upload")
let $uri := "/documents/"
let $_ := xdmp:document-insert($uri, xdmp:get-request-field("upload"),(xdmp:default-permissions()), ("raw"))
return $uri
};
对于 xml 非 UTF8 编码的文档,这会失败。我得到以下异常。任何解决方法??
Error: AppRequestTask::run: XDMP-DOCUTF8SEQ: Invalid UTF-8 escape sequence at line 1 -- document is not UTF-8 encoded
如果您可以使用声明编码的 XML prolog 生成有效载荷,那应该可以:
<?xml version="1.0" encoding="ISO-8859-1">
... rest of the document ...
否则,您可以在服务器上尝试类似以下的操作来生成 XML 文档以供插入:
xdmp:document-insert(
$uri,
xdmp:binary-decode(
xdmp:unquote(
xdmp:get-request-field("upload"), (), "format-binary"
),
"ISO-8859-1"
),
... collection, permissions, and other arguments ...
)
希望对您有所帮助,