[英]XML validation vulnerable to culture info?
在项目结束的前一天,我遇到了一个复杂的问题:我有一个wtf服务和3个使用它的客户端应用程序。 服务具有三种方法,每种方法都接收一个xml文档作为参数并返回xml文档。 他们就是这样交流的。 我有一些XSD文件来验证生成和接收的XML。 到今天为止一切正常。 我有波兰语的窗户,今天我在英语窗户上运行我的应用程序。 正如您到目前为止可能已经意识到的那样,我从应用程序中收到一条消息,指出接收到的xml无效。 我检查了一下,在xml中突然加倍的VaR值被写成句点(或昏迷,我不记得了,但是它不起作用)。 我想知道-这个问题有什么好的解决方案吗? 我的意思是我这样验证xml:
public bool IsValid(XDocument xmlDocument, Stream xsdContent)
{
XmlSchemaSet schemaSet = new XmlSchemaSet();
XmlReader reader = XmlReader.Create(xsdContent);
schemaSet.Add(string.Empty, reader);
valid = true;
xmlDocument.Validate(schemaSet, (sender, eventt) => { valid = false; e
= eventt; });
return valid;
}
我无法告诉验证者双倍分隔符应该是什么。 我唯一想到的解决方案是在xsd中简单地指定有问题的VaR值是一个字符串,然后以编程方式检查它是否是带句点或逗号的双数。
XML模式规范指定浮点数使用句点而不是逗号表示。 语言环境对有效的XML没有任何影响。
您不包括错误。 希望它抱怨数字中有一个逗号。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.