繁体   English   中英

XML验证容易受到文化信息的影响?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM