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 楼答案
有
xs:date
和xs: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开始