2017-11-23 5 views
0

私は現在、さまざまな間隔を表すXSDスキーマを作成しています。範囲の境界には、xs:double(-)INF(無限大)、see hereも含めることができます。Assert xs:double with INF failed

ここに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プロセッサのバグだと思う。