我试图找出XPath 1.0语法中允许使用哪种数字的官方定义。
通过反复试验,我相信我把它固定为:
^-?[0-9]*\.?[0-9]+$
换句话说:
-
+
这对于数字文字和使用带有字符串值的number()
似乎都是正确的,除了number()
允许前导和尾随空格。
除了第二个项目符号外,它似乎与xsd:decimal相同,但我无法在Numbers部分或任何提及任何内容的部分找到任何内容。与之对应的XSD类型。
这实际上是在任何地方定义的吗?如果是这样,在哪里?
答案 0 :(得分:2)
通过输入这个问题的80%我发现了我的答案,所以我想我应该通过并在此发布,以防其他人一直在寻找这个模糊的琐事。
Number的制作在Lexical Structure部分定义:
[30]数字:: =数字('。'数字?)? | ''数字
[31]数字:: = [0-9] +
领先的减号在UnaryExpr制作中处理:
[27] UnaryExpr :: = UnionExpr | ' - 'UnaryExpr
number()
接受的值集在该函数的定义中定义:
一个字符串,由可选的空格后跟一个可选的减号,后跟一个数字,后跟空格,转换为最接近[(根据IEEE 754舍入到最近规则)的数学的IEEE 754数字字符串表示的值;任何其他字符串都转换为NaN
这里“数字”指的是上面的词汇产生[30]。