Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 根据限制NaN值的XSD验证XML输入中的NaN值_C#_.net_Xml_Xsd Validation_Xml Validation - Fatal编程技术网

C# 根据限制NaN值的XSD验证XML输入中的NaN值

C# 根据限制NaN值的XSD验证XML输入中的NaN值,c#,.net,xml,xsd-validation,xml-validation,C#,.net,Xml,Xsd Validation,Xml Validation,我试图根据XSD模式验证双NaN值,XSD模式假设可以阻止这样的NaN值。然而,它在.NET中似乎有效 我还使用其他XML验证器(如在线工具和AltovaXMLSpy)对此进行了测试。这些工具不接受NaN值 我正在使用以下XSD模式 <xs:element name="myDouble"> <xs:simpleType> <xs:restriction base="xs:double"> <xs:minExcl

我试图根据XSD模式验证双NaN值,XSD模式假设可以阻止这样的NaN值。然而,它在.NET中似乎有效

我还使用其他XML验证器(如在线工具和AltovaXMLSpy)对此进行了测试。这些工具不接受NaN值

我正在使用以下XSD模式

<xs:element name="myDouble">
    <xs:simpleType>
        <xs:restriction base="xs:double">
          <xs:minExclusive value="-INF"/>
          <xs:maxExclusive value="INF"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

当我尝试使用.NET XML库验证输入时,它似乎是有效的:

<myDouble>NaN</myDouble>
NaN
然而,我意识到在线XML验证器和工具(如AltovaXMLSpy)表示该输入无效

我不明白为什么会有如此不同的行为

整个代码可以在以下github repo中找到:

Microsoft schema validator的不符合性比这严重得多;例如,它的正则表达式处理遵循.NET约定,而不是W3C规范。