Xquery 查找包含适当元素的文档";日期时间“;格式

Xquery 查找包含适当元素的文档";日期时间“;格式,xquery,marklogic,Xquery,Marklogic,我正在marklogic-9中尝试以下查询: cts:element-value-match(xs:QName("cd:modificationDate"), "[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01].000Z", ("type=dateTime","timezone=TZ")) 为了实现这一点,但这给了我以下错误: [1.0-ml] XDMP-ARG: cts:element-value-match(xs:QName("cd:modificationDat

我正在marklogic-9中尝试以下查询:

cts:element-value-match(xs:QName("cd:modificationDate"), "[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01].000Z", ("type=dateTime","timezone=TZ"))
为了实现这一点,但这给了我以下错误:

[1.0-ml] XDMP-ARG: cts:element-value-match(xs:QName("cd:modificationDate"), "[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01].000Z", ("type=dateTime", "timezone=TZ")) -- arg2 is invalid
我想做的是找出所有符合
dateTime
这一特定模式的文档。我们在这个元素上有一个日期范围索引-
modificationDate


使用marklogic和xquery api如何才能最好地做到这一点。

只在字符串范围索引上有用,即使在那里,它也只需要简单的通配符(
*
),而不是一般的正则表达式或日期格式

如果范围索引是dateTime范围索引,那么每个值都必须符合正确的
xs:dateTime
格式,因此此查询不会告诉您任何信息

这将为您提供在该元素中具有有效日期时间的所有URI的列表:

cts:uris("", (),
    cts:element-range-query(xs:QName("modificationDate"), ">", xs:dateTime("0001-01-01T00:00:00"))
)

cts:element-value-match
只在字符串范围索引上有用,即使在那里,它也只需要简单的通配符(
*
),而不是一般的正则表达式或日期格式

如果范围索引是dateTime范围索引,那么每个值都必须符合正确的
xs:dateTime
格式,因此此查询不会告诉您任何信息

这将为您提供在该元素中具有有效日期时间的所有URI的列表:

cts:uris("", (),
    cts:element-range-query(xs:QName("modificationDate"), ">", xs:dateTime("0001-01-01T00:00:00"))
)

不完全是我想要的,但它解决了我面临的问题:)不完全是我想要的,但它解决了我面临的问题:)