2017-11-23 2 views
0

현재 다양한 간격을 나타 내기 위해 XSD 스키마를 만들고 있습니다. 범위의 경계에는 xs:double(-)INF (무한대), see here도 포함될 수 있습니다.Assert xs : double with INF 실패

다음은 XSD 파일의 관련 부분입니다. 모든 형식적 또는 구조적 문제는이 질문과 관련이 없습니다. assert 테스트가 이전 버전에서는 제공되지 않았기 때문에 XSD 1.1을 사용하고 있습니다. to 값이 잘 형성 범위를 갖기 위해서는, from보다 크면

<xs:element name="range"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="value" type="xs:double"/> 
     </xs:sequence> 
     <xs:attribute name="from" type="xs:double"/> 
     <xs:attribute name="to" type="xs:double"/> 
     <xs:assert test="@to > @from"/> 
    </xs:complexType> 
</xs:element> 

assert 체크 단순히 테스트한다. 정상적인 부동 소수점 숫자로 테스트가 잘되지만, INF 값을 사용하면 테스트가 실패합니다.

<range from="10" to="INF"> 
    <value>0.9</value> 
</range> 

CVC-assertion.3.13.4.1 : 어설 평가 ('> @from @to') 요소 유형의 '범위'에 대한 '#anonymous'성공하지 못했습니다.

나는 나의 질문은되도록 범위에 테두리 또는 내가 다른 길을 갈 필요가있는 경우이 무한대 값을 포함 할 수있는 방법이 있는지 검사가, INF을 처리하는 방법을 알고하지 않습니다 가정합니다.

답변

0

Saxon-EE는이 예제를 성공적으로 검증합니다. XSD 프로세서의 버그라고 생각합니다.

관련 문제