XPath 1.0中数字文字的官方定义是什么?

时间:2015-01-06 09:43:30

标签: xml xslt xpath xslt-1.0 xpath-1.0

我试图找出XPath 1.0语法中允许使用哪种数字的官方定义。

通过反复试验,我相信我把它固定为:

^-?[0-9]*\.?[0-9]+$

换句话说:

  • 可选-
  • 不允许领先+
  • 无指数
  • 小数点之前或之后的冗余零可以省略

这对于数字文字和使用带有字符串值的number()似乎都是正确的,除了number()允许前导和尾随空格。

除了第二个项目符号外,它似乎与xsd:decimal相同,但我无法在Numbers部分或任何提及任何内容的部分找到任何内容。与之对应的XSD类型。

这实际上是在任何地方定义的吗?如果是这样,在哪里?

1 个答案:

答案 0 :(得分:2)

通过输入这个问题的80%我发现了我的答案,所以我想我应该通过并在此发布,以防其他人一直在寻找这个模糊的琐事。

Number的制作在Lexical Structure部分定义:

  

[30]数字:: =数字('。'数字?)? | ''数字
  [31]数字:: = [0-9] +

领先的减号在UnaryExpr制作中处理:

  

[27] UnaryExpr :: = UnionExpr | ' - 'UnaryExpr

number()接受的值集在该函数的定义中定义:

  

一个字符串,由可选的空格后跟一个可选的减号,后跟一个数字,后跟空格,转换为最接近[(根据IEEE 754舍入到最近规则)的数学的IEEE 754数字字符串表示的值;任何其他字符串都转换为NaN

这里“数字”指的是上面的词汇产生[30]。