XPath 1.0 中数字文字的官方定义是什么?
What is the official definition of number literals in XPath 1.0?
我正在尝试找出 XPath 1.0 语法中允许使用哪种数字的官方定义。
通过反复试验,我相信我已将其固定为:
^-?[0-9]*\.?[0-9]+$
换句话说:
- 可选
-
- 不允许领先
+
- 无指数
- 小数点前后多余的零可以省略
这对于数字文字和使用 number()
和字符串值似乎都是正确的,除了 number()
允许前导和尾随空格。
除了第二个项目符号外,这似乎与 xsd:decimal, but I can't find any mention of it in the section on Numbers 或任何提及的任何 XSD 类型相同。
这实际上是在任何地方定义的吗?如果有,在哪里?
在输入这个问题的过程中,我找到了 80% 的答案,所以我想我应该跟进并 post 它在这里,以防其他人一直在寻找这个晦涩的琐事。
Numbers is defined in the Lexical Structure节的制作:
[30] Number ::= Digits ('.' Digits?)? | '.' Digits
[31] Digits ::= [0-9]+
前导减号在 UnaryExpr 生产中处理:
[27] UnaryExpr ::= UnionExpr | '-' UnaryExpr
并且 number()
接受的值集在该函数的定义中定义:
a string that consists of optional whitespace followed by an optional minus sign followed by a Number followed by whitespace is converted to the IEEE 754 number that is nearest [(according to the IEEE 754 round-to-nearest rule) to the mathematical value represented by the string; any other string is converted to NaN
这里"Number"指的是上面[30]的词法产生
我正在尝试找出 XPath 1.0 语法中允许使用哪种数字的官方定义。
通过反复试验,我相信我已将其固定为:
^-?[0-9]*\.?[0-9]+$
换句话说:
- 可选
-
- 不允许领先
+
- 无指数
- 小数点前后多余的零可以省略
这对于数字文字和使用 number()
和字符串值似乎都是正确的,除了 number()
允许前导和尾随空格。
除了第二个项目符号外,这似乎与 xsd:decimal, but I can't find any mention of it in the section on Numbers 或任何提及的任何 XSD 类型相同。
这实际上是在任何地方定义的吗?如果有,在哪里?
在输入这个问题的过程中,我找到了 80% 的答案,所以我想我应该跟进并 post 它在这里,以防其他人一直在寻找这个晦涩的琐事。
Numbers is defined in the Lexical Structure节的制作:
[30] Number ::= Digits ('.' Digits?)? | '.' Digits
[31] Digits ::= [0-9]+
前导减号在 UnaryExpr 生产中处理:
[27] UnaryExpr ::= UnionExpr | '-' UnaryExpr
并且 number()
接受的值集在该函数的定义中定义:
a string that consists of optional whitespace followed by an optional minus sign followed by a Number followed by whitespace is converted to the IEEE 754 number that is nearest [(according to the IEEE 754 round-to-nearest rule) to the mathematical value represented by the string; any other string is converted to NaN
这里"Number"指的是上面[30]的词法产生