MarkLogic:如何生成唯一的文档/xml文件名

MarkLogic:如何生成唯一的文档/xml文件名,marklogic,Marklogic,我不熟悉MarkLogic 以下是我的要求: 我有两个实体:员工、部门。 一名员工属于一个部门 对于XML,模式将为: SomeStaff.xml: <Staff> <Name>Lee</Name> <Title>VP</Title> <DepartmentId>someUniqueURI</DepartmentId> </Staff> 李 副总裁 独一无二的 部门/someUniq

我不熟悉MarkLogic

以下是我的要求:

我有两个实体:员工、部门。 一名员工属于一个部门

对于XML,模式将为:

SomeStaff.xml:

<Staff>
  <Name>Lee</Name>
  <Title>VP</Title>
  <DepartmentId>someUniqueURI</DepartmentId>
</Staff>

李
副总裁
独一无二的
部门/someUniqueURI.xml:

<Department>
    <Name>IT</Name>
</Department>

信息技术
所以,我的问题是:

我想使用相同的XML并让MarkLogic生成文件名,例如:我想保存:

<Department>
    <Name>IT</Name>
</Department>

信息技术
MarkLogic将为它生成一个唯一的URI,并将该URI返回给客户端

我如何处理这个问题


谢谢。

只要写一点代码:

declare function add-dept ($dept as element(Department))
    as xs:string
{
    let $uri := "/departments/" || xs:string (xdmp:random())     (: or some GUID generator :)
    let $_ := xdmp:document-insert ($uri, $dept)
    return $uri
};
在要存储新部门文档的位置调用此函数:

...
let $dept-id := add-dept ($new-deptartment)
let $new-staff := create-staff ($name, $title, $dept-id)
return add-staff ($new-staff)

编写createstaff和addstaff函数留给读者作为练习。这将自动提交新的部门和员工文档。

只需编写一些代码:

declare function add-dept ($dept as element(Department))
    as xs:string
{
    let $uri := "/departments/" || xs:string (xdmp:random())     (: or some GUID generator :)
    let $_ := xdmp:document-insert ($uri, $dept)
    return $uri
};
在要存储新部门文档的位置调用此函数:

...
let $dept-id := add-dept ($new-deptartment)
let $new-staff := create-staff ($name, $title, $dept-id)
return add-staff ($new-staff)

编写createstaff和addstaff函数留给读者作为练习。这将自动提交新的部门和员工文档。

只需编写一些代码:

declare function add-dept ($dept as element(Department))
    as xs:string
{
    let $uri := "/departments/" || xs:string (xdmp:random())     (: or some GUID generator :)
    let $_ := xdmp:document-insert ($uri, $dept)
    return $uri
};
在要存储新部门文档的位置调用此函数:

...
let $dept-id := add-dept ($new-deptartment)
let $new-staff := create-staff ($name, $title, $dept-id)
return add-staff ($new-staff)

编写createstaff和addstaff函数留给读者作为练习。这将自动提交新的部门和员工文档。

只需编写一些代码:

declare function add-dept ($dept as element(Department))
    as xs:string
{
    let $uri := "/departments/" || xs:string (xdmp:random())     (: or some GUID generator :)
    let $_ := xdmp:document-insert ($uri, $dept)
    return $uri
};
在要存储新部门文档的位置调用此函数:

...
let $dept-id := add-dept ($new-deptartment)
let $new-staff := create-staff ($name, $title, $dept-id)
return add-staff ($new-staff)

编写createstaff和addstaff函数留给读者作为练习。这将以原子方式提交新的部门和员工文档。

功能可用于生成唯一的GUID。此函数是在ML7中引入的

函数可用于生成唯一的GUID。此函数是在ML7中引入的

函数可用于生成唯一的GUID。此函数是在ML7中引入的

函数可用于生成唯一的GUID。这个函数是在ML7中引入的

谢谢,Ron:)基于我已知的xdmp:random将生成一个从0到“64位长”的随机数。这意味着如果我想得到一个唯一的URI,我应该使用“GUID生成器”?有内置发电机吗?谢谢。据我所知,没有内置的GUID生成器(除非他们在ML7中添加了一些东西)。关键是,只要URI在数据库中是唯一的,就可以将其设置为任何您喜欢的内容。如果是我,我可能会将URI设置为:“/departments/”| |$dept/Name/fn:string()| |“.xml”。谢谢,Ron:)基于我已知的,xdmp:random将生成一个从0到“64位长”的随机数。这意味着如果我想得到一个唯一的URI,我应该使用“GUID生成器”?有内置发电机吗?谢谢。据我所知,没有内置的GUID生成器(除非他们在ML7中添加了一些东西)。关键是,只要URI在数据库中是唯一的,就可以将其设置为任何您喜欢的内容。如果是我,我可能会将URI设置为:“/departments/”| |$dept/Name/fn:string()| |“.xml”。谢谢,Ron:)基于我已知的,xdmp:random将生成一个从0到“64位长”的随机数。这意味着如果我想得到一个唯一的URI,我应该使用“GUID生成器”?有内置发电机吗?谢谢。据我所知,没有内置的GUID生成器(除非他们在ML7中添加了一些东西)。关键是,只要URI在数据库中是唯一的,就可以将其设置为任何您喜欢的内容。如果是我,我可能会将URI设置为:“/departments/”| |$dept/Name/fn:string()| |“.xml”。谢谢,Ron:)基于我已知的,xdmp:random将生成一个从0到“64位长”的随机数。这意味着如果我想得到一个唯一的URI,我应该使用“GUID生成器”?有内置发电机吗?谢谢。据我所知,没有内置的GUID生成器(除非他们在ML7中添加了一些东西)。关键是,只要URI在数据库中是唯一的,就可以将其设置为任何您喜欢的内容。如果是我,我可能会将URI设置为:“/departments/”| |$dept/Name/fn:string()| |“.xml”。