C# 根据限制NaN值的XSD验证XML输入中的NaN值
我试图根据XSD模式验证双NaN值,XSD模式假设可以阻止这样的NaN值。然而,它在.NET中似乎有效 我还使用其他XML验证器(如在线工具和AltovaXMLSpy)对此进行了测试。这些工具不接受NaN值 我正在使用以下XSD模式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
<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规范。