项目结束前一天我遇到了一个复杂的问题:我有一个wtf服务和3个使用它的客户端应用程序。 service有三个方法,每个方法接收一个xml文档作为参数并返回xml文档。这是他们沟通的方式。我有一些xsd文件来验证生成和接收的xml。直到今天一切正常。我有光泽的窗户,今天我在英文窗口上运行我的应用程序。你可能已经意识到这一点,我从我的应用程序收到一条消息,说明收到的xml无效。我检查了它,并且在xml中支持为double的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;
}
我无法告诉验证器double中的分隔符应该是什么。我能想到的唯一解决方案就是在xsd中简单地指定有问题的VaR值是一个字符串,然后检查programmaticaly是否是一个带有句点或昏迷的双数字。