在我正在使用的一个项目中
我使用其中发生以下元素的XML消息:
<mytimeelement></mytimeelement>
您可以看到它为空,因此我认为以下XQuery-Expression将返回空序列:
$transaction/*:flags/*:mytimeelement
不幸的是,情况似乎并非如此,因为在xs:time($arg)
中从上方调用XQuery-Expression,例如:
xs:time($transaction/*:flags/*:mytimeelement)
不返回我期望的空序列,而是返回一个异常:
Invalid time "" (too short)
问题是:我想使用xs:time($arg)
作为验证,如果元素中的值必须具有正确的格式,但是如果为空则没有关系。因此,我不仅使用xs:time
,而且还使用xs:date
和xs:decimal
进行了此操作。
我现在的问题是:为什么表达式不返回空序列而是空字符串?还是应该改用cast as xs:time
?