如何使用冒号在原生 JSON 上添加元素范围索引

How can I add an element range index on native JSON with colon

我正在尝试在 Native JSON 属性 上添加范围索引,它在 MarkLogic Server 中的名称中包含冒号 (:)。

样本数据如下

{
  "Aspects": {
"xbrl28:TransactionTime": "2014-08-13T00:00:00+0000",
"xbrl28:Archive": "S1002U7K",
"xbrl:Period": "2014-08-13"
  },
  "_id": "27948e6d-a774-49ee-8e30-668cc4731975"
}

当我尝试在 "xbrl28:Archive" 上添加范围索引时,但我不能,因为 "xbrl28:" 被视为名称空间的前缀。 有什么办法可以避开冒号吗?

您不能将元素范围索引用于 JSON 带有冒号、空格或任何其他不符合 xs:QName 的名称的属性。我没试过,但你可以尝试使用带有如下表达式的路径索引:node()[name() = "xbrl28:Archive"] 或更好的表达式:text("xbrl28:Archive").

HTH!