0

项目结束前一天我遇到了一个复杂的问题:我有一个 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 值是一个字符串,然后以编程方式检查它是否是双数,带有句点或逗号。

4

1 回答 1

2

XML 模式规范指定浮点数使用句点而不是逗号来表示。语言环境对什么是有效的 XML 没有任何影响。

你不包括你的错误。希望它抱怨数字中有逗号。

于 2009-01-08T19:08:28.733 回答