如何在 JavaScript + Marklogic 中声明 xml 命名空间

How to declare xml namespace in JavaScript + Marklogic

我有 xml 个文档,例如 -

<domain xmlns:c="http://example.com/ns/core" xmlns="http://example.com/ns/core">
  <c:id>http://example.com/xyz/no-data</c:id>
</domain>

我正在 MarkLogic 中使用 JavaScript,并希望在 c:id 上 运行 和 element value query。像这样 -

cts.elementValueQuery(xs.QName("c:id"), "http://example.com/xyz/no-data")

但是为此我需要声明命名空间 c。如果是 xQuery,我们可以做这样的事情 -

declare namespace c="http://example.com/ns/core";

但我无法在 JavaScript 中了解如何执行此操作。

您可以使用 fn.QName() 而不是 xs.QName()。在下面的示例中,我将 nsC (namespace-C) 声明为类似于已声明的命名空间前缀。

const nsC = "http://example.com/ns/core";
cts.elementValueQuery(
  fn.QName(nsC, "id"), 
  "http://example.com/xyz/no-data"
)