有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我怎么知道应该把LocalDate和OffsetDateTime作为Saxon参数传递?

我有一个元素在XSD中定义为:

<xsd:element name="publish_date" type="xsd:date"/>

问题是:

/bks:books/book[publish_date = $p1]

如果我呼叫选择器。setVariable(新的QName(“p”+(index+1)),xdmValue);其中xdmValue是从LocalDate中设置的XDM值,非常有用。但如果我向int传递OffsetDateTime或LocalDateTime(同一日期组件),查询就会失败

那么,我如何知道应该使用什么datetime对象类型来创建XdmAtomicValue呢。我可以转换成任何一种,但我需要知道是哪一种


共 (1) 个答案

  1. # 1 楼答案

    xs:datexs:dateTime类型,我认为如果你使用new XdmAtomicValue(someLocaleDate),那么你会创建一个xs:date值,而使用new XdmAtomicValue(someOffsetDateTime)new XdmAtomicValue(someLocaleDateTime)会创建一个xs:dateTime

    在XPath中,不能直接将xs:date值与带有=或其他运算符的xs:dateTime进行比较,必须将xs:date转换为xs:dateTime,或将xs:dateTime转换为xs:date,这可以通过XPath端的xs:date($p1)实现

    因此,对于API的使用,如果要比较的元素具有xs:date数据类型,我认为您还需要传入一个xs:date值,这意味着在Java端,您要以LocalDate开始