每当我使用xquery
添加一个curl
脚本时,服务器上的结果文件都会丢失所有分页符和一些空格。这导致行一起运行,而某些单词也一起运行。由于保留字与其他字串在一起,导致脚本失败。
我正在使用的命令是这样:
curl --anyauth --user username:password -X PUT -d @"./badactorasset-lib.xqy" -i -H "Content-type: application/xquery" http://localhost:8004/v1/ext/badactor/badactorasset-lib.xqy
当我通过查询控制台浏览MarkLogic服务器上的其他.xqy文件时,那些带有换行符的文件显示完美中断。我添加的文件都缺少换行符,并且看起来不可读。
***过去已加载到服务器上的另一个文件的示例:
xquery version "1.0-ml";
module namespace ba = "http://marklogic.com/badactor/badactor";
declare option xdmp:mapping "false";
declare variable $ba:ETYPES := ("HX", "FER", "RER", "ELEC", "INSTR");
declare function ba:get-duration($type as xs:string) as xs:yearMonthDuration
{
let $years :=
if ($type eq "HX") then 5
else if ($type eq "FER") then 10
else if ($type eq "RER") then 2
else if ($type eq "ELEC") then 10
else if ($type eq "INSTR") then 2
else 0
return xs:yearMonthDuration("P" || fn:string($years) || "Y")
};
***我在服务器上的文件示例:
xquery version "1.0-ml";module namespace ba = "http://marklogic.com/badactor/badactorasset";declare option xdmp:mapping "false";declare variable $ba:ETYPES := ("HX", "FER", "RER", "ELEC", "INSTR");declare function ba:get-duration($type as xs:string) as xs:yearMonthDuration{ let $years := if ($type eq "HX") then 5 else if ($type eq "FER") then 10 else if ($type eq "RER") then 2 else if ($type eq "ELEC") then 10 else if ($type eq "INSTR") then 2 else 0 return xs:yearMonthDuration("P" || fn:string($years) || "Y")};declare function ba:get-threshold($type as xs:string) as xs:integer{ if ($type eq "INST
我想念什么?为什么我的文件丢失了结构?
答案 0 :(得分:2)
我在一些与MarkLogic不相关的文档中发现了深层问题。
我应该使用“ --data-binary
”标志代替默认的“ -d
”标志,以保留换行符。在MarkLogic的网站上或任何示例中都没有对此进行讨论,但是它修复了我的文件。
现在是完整卷曲命令:
curl --anyauth --user username:password -X PUT --data-binary @"./badactorasset-lib.xqy" -i -H "Content-type: application/xquery" http://localhost:8004/v1/ext/badactor/badactorasset-lib.xqy