项目结束前一天我遇到了一个复杂的问题:我有一个 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;
}
我无法告诉验证器 double 中的分隔符应该是什么。我能想到的唯一解决方案是简单地在 xsd 中指定有问题的 VaR 值是一个字符串,然后以编程方式检查它是否是双数,带有句点或逗号。