XML validation vulnerable to culture info?

偶尔善良 提交于 2019-12-13 04:18:13

问题


a day before end of project i run into a complicated issue: i have a wtf service and 3 client application using it. service has three methods, each one receiving an xml document as an argument and returning xml document. this is how they communicate. i've got some xsd files to validate generated and received xml's. till today everything worked fine. i've got polish windows and today i run my application on english windows. as you probably realised this far, i got a message from my application that the received xml is not valid. i checked it and the VaR value that was suppopsed to be double in the xml was written with period (or coma, i don't remember but it wasn't working). i'm wondering now - is there any good solution for this problem? i mean i validate xml like this:

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;
        }

there is no way i could tell the validator what the separator in double should be. the only solution i could think of is to simply specify in xsd that the problematic VaR value is a string and then check programmaticaly if it is a double number, with period or coma.


回答1:


The XML schema spec specifies that floating point numbers are represented using a period and not using a comma. The locale doesn't have any affect on what is valid XML.

You don't include your error. Hopefully it is complaining that there is a comma in a number.



来源:https://stackoverflow.com/questions/425341/xml-validation-vulnerable-to-culture-info

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!