2015-01-06 3 views
2

XPath 1.0 구문에서 허용되는 숫자의 종류에 대한 공식적인 정의를 이해하려고합니다.XPath 1.0의 숫자 리터럴의 공식 정의는 무엇입니까?

  • 옵션 -
  • +을 선도하는 것은 허용되지 않습니다
  • 없음 지수 : 즉

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

    : 시행 착오를 통해

    , 나는 내가 같이 아래로 고정 믿습니다
  • 소수점 앞뒤의 중복 0 포인트는

를 생략 할 수 있으며,이 두 숫자 리터럴에 대한 선도 및 후행 공백 허용 number() 제외하고, 문자열 값으로 number()을 사용하는 사실로 보인다.

두 번째 글 머리 기호를 제외하고는 xsd:decimal과 같지만 Numbers 섹션이나 여기에 해당하는 XSD 유형에 대한 언급은 찾을 수 없습니다.

사실 어디서나 정의 되었습니까? 그렇다면 어디에서?

답변

2

이 질문을 입력하는 방법 중 80 %는 답변을 찾았으므로 누구도이 멍청한 퀴즈를 찾고있는 경우를 대비하여 여기를 따라야한다고 생각했습니다.

Number S의 제조는 Lexical Structure 섹션에서 정의된다

[30] :: = 디지트 번호 (숫자 '.'?)? | '.' 숫자
[31] 숫자 :: = [0-9] +

선행 빼기 기호가 UnaryExpr 생산에 처리됩니다

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

그리고 number()에 허용되는 값 세트

가 그 함수의 정의에 정의되어 UnaryExpr :

숫자 선택적인 빼기 부호 다음에 다음에 선택적 공백으로 구성된 문자열 공백 문자 다음에 오는 IEEE 754 번호는 문자열로 표시된 수학적 값에 가장 가까운 [IEEE 754 가장 가까운 규칙에 따라] 가장 가까운 값으로 변환됩니다. 다른 문자열은 NaN으로 변환됩니다.

여기서 "숫자"는 위의 어휘 생성 [30]을 참조합니다.

+0

'어휘 구조'섹션은 내가 본 첫 번째 장소입니다. – EJP

+0

@ EJP 분명히, 나는 너의 좋은 감각이 부족하다. – JLRishe

관련 문제